oracle實驗記錄 (transport tablespace(Rman))
利用rman(tablespace 不要 read only)
將XH DB 的TEXTXH TABLESPACE 傳送到 orcl db
前期檢查還是要進行的,版本 平臺,是否自包含(dbms_tts.transport_set_check)
如果平臺不一樣 RMAN TRANSPORT TABLESPACE XXX 中加 to
platform 'LinuxIA(32-bit)'(平臺名) (手動EXPEDP/IMPDP 的話用RMAN CONVERT DATAFILE(database,tablesapce) TO PLATFORM. ,另外可以使用 FORMAT ,db_file_name_convert
設定轉換後名字路徑)
alter tablespace xhtr read only;***************
RMAN> convert tablespace xhtr to platform='Linux IA (32-bit)';
啟動 backup 於 24-9月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 啟動資料檔案轉換
輸入資料檔案 fno=00008 name=D:\XHDATAFILE\XHTR.DBF
已轉換的資料檔案 = D:\ORACLE\PRODUCT\10.2.0\DB_2\DATABASE\DATA_D-XH_I-3093395309_TS
-XHTR_FNO-8_0FKQ20E8
通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:01
完成 backup 於 24-9月 -09
另外在實驗中遇到一個錯誤 實驗的表空間名字為 test2 如果是test 需要大寫 加 '','TEST',而test2 這種方法不行 最後沒解決
SQL> desc v$reserved_words;
名稱 是否為空? 型別
----------------------------------------- -------- ----------------------------
KEYWORD VARCHAR2(30)
LENGTH NUMBER
RESERVED VARCHAR2(1)
RES_TYPE VARCHAR2(1)
RES_ATTR VARCHAR2(1)
RES_SEMI VARCHAR2(1)
DUPLICATE VARCHAR2(1)
This view gives a list of all SQL keywords. To determine whether a particular keyword is reserved in any way, check the RESERVED, RES_TYPE, RES_ATTR, and
RES_SEMI columns
KEYWORD VARCHAR2(30) Name of the keyword
LENGTH NUMBER Length of the keyword
RESERVED VARCHAR2(1) A value of Y means that the keyword cannot be used as an identifier. A value of N means that it is not reserved.
RES_TYPE VARCHAR2(1) A value of Y means that the keyword cannot be used as a type name. A value of N means that it is not reserved.
RES_ATTR VARCHAR2(1) A value of Y means that the keyword cannot be used as an attribute name. A value of N means that it is not reserved.
RES_SEMI VARCHAR2(1) A value of Y means that the keyword is not allowed as an identifier in certain situations, such as in DML. A value of N means that it is
not reserved.
DUPLICATE VARCHAR2(1) A value of Y means that the keyword is a duplicate of another keyword. A value of N means that it is not a duplicate.
SQL> select *from v$reserved_words where keyword='TEST';
KEYWORD LENGTH R R R R D
------------------------------ ---------- - - - - -
TEST 4 N N N N N
SQL> select name from v$database;
NAME
---------
XH
SQL> create tablespace xhtest datafile 'd:\xhdatafile\xhtest.dbf' size 10m;
表空間已建立。
SQL>
SQL> conn xh/a123
已連線。
SQL> create table t1 (a int) tablespace xhtest;
表已建立。
SQL> insert into t1 values(1);
已建立 1 行。
SQL> commit;
提交完成。
SQL> select * from t1;
A
----------
1
C:\>rman target xh/a123@xh
恢復管理器: Release 10.2.0.1.0 - Production on 星期三 9月 23 16:26:15 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: XH (DBID=3093395309)
RMAN> transport tablespace XHTEST tablespace destination 'd:\a' auxiliary destinati
on 'd:\b'
2> ;
為了看的更清楚 看清RMAN 過程 所有的RMAN 輸出都有
RMAN-05026: 警告: 假定以下表空間集適用於指定的時間點
表空間列表要求具有 UNDO 段
表空間 SYSTEM
表空間 UNDOTBS1
使用 SID='zCxv' 建立自動例項
供自動例項使用的初始化引數:
db_name=XH
compatible=10.2.0.1.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_XH_zCxv
large_pool_size=1M
shared_pool_size=110M
#No auxiliary parameter file used
db_create_file_dest=d:\b
control_files=d:\b/cntrl_tspitr_XH_zCxv.f
啟動自動例項 XH
Oracle 例項已啟動
系統全域性區域總計 205520896 位元組
Fixed Size 1248092 位元組
Variable Size 146801828 位元組
Database Buffers 50331648 位元組
Redo Buffers 7139328 位元組
自動例項已建立
記憶體指令碼的內容:
{
# set the until clause
set until scn 1085288;
# restore the controlfile
restore clone controlfile;
# mount the controlfile
sql clone 'alter database mount clone database';
# archive current online log for tspitr to a resent until time
sql 'alter system archive log current';
# avoid unnecessary autobackups for structural changes during TSPITR
sql 'begin dbms_backup_restore.AutoBackupFlag(FALSE); end;';
}
正在執行記憶體指令碼
正在執行命令: SET until clause
啟動 restore 於 23-9月 -09
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=37 devtype=DISK
通道 ORA_AUX_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_AUX_DISK_1: 正在復原控制檔案
通道 ORA_AUX_DISK_1: 正在讀取備份段 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH
\BACKUPSET\2009_09_23\O1_MF_NCSNF_TAG20090923T174229_5CMVFYX9_.BKP
通道 ORA_AUX_DISK_1: 已恢復備份段 1
段控制程式碼 = D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_09_23\O1_MF
_NCSNF_TAG20090923T174229_5CMVFYX9_.BKP 標記 = TAG20090923T174229
通道 ORA_AUX_DISK_1: 恢復完成, 用時: 00:00:01
輸出檔名=D:\B\CNTRL_TSPITR_XH_ZCXV.F
完成 restore 於 23-9月 -09
sql 語句: alter database mount clone database
sql 語句: alter system archive log current
sql 語句: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;
釋放的通道: ORA_AUX_DISK_1
記憶體指令碼的內容:
{
# generated tablespace point-in-time recovery script
# set the until clause
set until scn 1085288;
# set an omf destination filename for restore
set newname for clone datafile 1 to new;
# set an omf destination filename for restore
set newname for clone datafile 2 to new;
# set an omf destination filename for restore
set newname for clone datafile 3 to new;
# set an omf destination tempfile
set newname for clone tempfile 1 to new;
# set a destination filename for restore
set newname for datafile 7 to
"d:\a\XHTEST.DBF";
# rename all tempfiles
switch clone tempfile all;
# restore the tablespaces in the recovery set plus the auxilliary tablespaces
restore clone datafile 1, 2, 3, 7;
switch clone datafile all;
#online the datafiles restored or flipped
sql clone "alter database datafile 1 online";
#online the datafiles restored or flipped
sql clone "alter database datafile 2 online";
#online the datafiles restored or flipped
sql clone "alter database datafile 3 online";
#online the datafiles restored or flipped
sql clone "alter database datafile 7 online";
# make the controlfile point at the restored datafiles, then recover them
recover clone database tablespace "XHTEST", "SYSTEM", "UNDOTBS1", "SYSAUX" delete
archivelog;
alter clone database open resetlogs;
# PLUG HERE the creation of a temporary tablespace if export fails due to lack
# of temporary space.
# For example in Unix these two lines would do that:
#sql clone "create tablespace aux_tspitr_tmp
# datafile ''/tmp/aux_tspitr_tmp.dbf'' size 500K";
}
正在執行記憶體指令碼
正在執行命令: SET until clause
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
臨時檔案 1 在控制檔案中已重新命名為 D:\B\TSPITR_X\DATAFILE\O1_MF_TEMP_%U_.TMP
啟動 restore 於 23-9月 -09
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=39 devtype=DISK
通道 ORA_AUX_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_AUX_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00001恢復到D:\B\TSPITR_X\DATAFILE\O1_MF_SYSTEM_%U_.DBF
正將資料檔案00002恢復到D:\B\TSPITR_X\DATAFILE\O1_MF_UNDOTBS1_%U_.DBF
正將資料檔案00003恢復到D:\B\TSPITR_X\DATAFILE\O1_MF_SYSAUX_%U_.DBF
正將資料檔案00007恢復到D:\A\XHTEST.DBF
通道 ORA_AUX_DISK_1: 正在讀取備份段 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH
\BACKUPSET\2009_09_23\O1_MF_NNNDF_TAG20090923T174229_5CMVD62X_.BKP
通道 ORA_AUX_DISK_1: 已恢復備份段 1
段控制程式碼 = D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_09_23\O1_MF
_NNNDF_TAG20090923T174229_5CMVD62X_.BKP 標記 = TAG20090923T174229
通道 ORA_AUX_DISK_1: 恢復完成, 用時: 00:00:55
完成 restore 於 23-9月 -09
資料檔案 1 已轉換成資料檔案副本
輸入資料檔案副本 recid=5 stamp=698349154 檔名=D:\B\TSPITR_X\DATAFILE\O1_MF_SYSTEM
_5CMVXBVT_.DBF
資料檔案 2 已轉換成資料檔案副本
輸入資料檔案副本 recid=6 stamp=698349155 檔名=D:\B\TSPITR_X\DATAFILE\O1_MF_UNDOTB
S1_5CMVXBX9_.DBF
資料檔案 3 已轉換成資料檔案副本
輸入資料檔案副本 recid=7 stamp=698349155 檔名=D:\B\TSPITR_X\DATAFILE\O1_MF_SYSAUX
_5CMVXBWS_.DBF
資料檔案 7 已轉換成資料檔案副本
輸入資料檔案副本 recid=8 stamp=698349155 檔名=D:\A\XHTEST.DBF
sql 語句: alter database datafile 1 online
sql 語句: alter database datafile 2 online
sql 語句: alter database datafile 3 online
sql 語句: alter database datafile 7 online
啟動 recover 於 23-9月 -09
使用通道 ORA_AUX_DISK_1
正在開始介質的恢復
存檔日誌執行緒 1 序列 42 已作為檔案 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\A
RCHIVELOG\2009_09_23\O1_MF_1_42_5CMVG07B_.ARC 存在於磁碟上
存檔日誌執行緒 1 序列 43 已作為檔案 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\A
RCHIVELOG\2009_09_23\O1_MF_1_43_5CMVJCD6_.ARC 存在於磁碟上
存檔日誌檔名 =D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\ARCHIVELOG\2009_09_
23\O1_MF_1_42_5CMVG07B_.ARC 執行緒 =1 序列 =42
存檔日誌檔名 =D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\ARCHIVELOG\2009_09_
23\O1_MF_1_43_5CMVJCD6_.ARC 執行緒 =1 序列 =43
介質恢復完成, 用時: 00:00:02
完成 recover 於 23-9月 -09
資料庫已開啟
記憶體指令碼的內容:
{
#mark read only the tablespace that will be exported
sql clone "alter tablespace XHTEST read only";
# create directory for datapump export
sql clone "create or replace directory STREAMS_DIROBJ_DPDIR as ''
d:\a''";
# export the tablespaces in the recovery set
host 'expdp userid=\"/@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=oracle)(ARGV0=o
raclezCxv)(ARGS=^'(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))^')(ENVS=^'ORACL
E_SID=zCxv^'))(CONNECT_DATA=(SID=zCxv))) as sysdba\" transport_tablespaces=
XHTEST dumpfile=
dmpfile.dmp directory=
STREAMS_DIROBJ_DPDIR logfile=
explog.log';
}
正在執行記憶體指令碼
sql 語句: alter tablespace XHTEST read only
sql 語句: create or replace directory STREAMS_DIROBJ_DPDIR as ''d:\a''
Export: Release 10.2.0.1.0 - Production on 星期三, 23 9月, 2009 17:52:58
Copyright (c) 2003, 2005, Oracle. All rights reserved.
連線到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
啟動 "SYS"."SYS_EXPORT_TRANSPORTABLE_01": userid="/********@(DESCRIPTION=(ADDRESS=
(PROTOCOL=beq)(PROGRAM=oracle)(ARGV0=oraclezCxv)(ARGS='(DESCRIPTION=(LOCAL=YES)(ADD
RESS=(PROTOCOL=beq)))')(ENVS='ORACLE_SID=zCxv'))(CONNECT_DATA=(SID=zCxv))) AS SYSDB
A" transport_tablespaces= XHTEST dumpfile=dmpfile.dmp directory=STREAMS_DIROBJ_DPDI
R logfile=explog.log
處理物件型別 TRANSPORTABLE_EXPORT/PLUGTS_BLK
處理物件型別 TRANSPORTABLE_EXPORT/TABLE
處理物件型別 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
已成功載入/解除安裝了主表 "SYS"."SYS_EXPORT_TRANSPORTABLE_01"
******************************************************************************
SYS.SYS_EXPORT_TRANSPORTABLE_01 的轉儲檔案集為:
D:\A\DMPFILE.DMP
作業 "SYS"."SYS_EXPORT_TRANSPORTABLE_01" 已於 17:53:50 成功完成
主機命令完成
/*
The following command may be used to import the tablespaces.
Substitute values for
impdp
d:\a\XHTEST.DBF
*/
--------------------------------------------------------------
-- Start of sample PL/SQL script. for importing the tablespaces
--------------------------------------------------------------
-- creating directory objects
CREATE DIRECTORY STREAMS$DIROBJ$1 AS 'd:\a\';
CREATE DIRECTORY STREAMS$DIROBJ$DPDIR AS 'd:\a';
/* PL/SQL Script. to import the exported tablespaces */
DECLARE
-- the datafiles
tbs_files dbms_streams_tablespace_adm.file_set;
cvt_files dbms_streams_tablespace_adm.file_set;
-- the dumpfile to import
dump_file dbms_streams_tablespace_adm.file;
dp_job_name VARCHAR2(30) := NULL;
-- names of tablespaces that were imported
ts_names dbms_streams_tablespace_adm.tablespace_set;
BEGIN
-- dump file name and location
dump_file.file_name := 'dmpfile.dmp';
dump_file.directory_object := 'STREAMS$DIROBJ$DPDIR';
-- forming list of datafiles for import
tbs_files( 1).file_name := 'XHTEST.DBF';
tbs_files( 1).directory_object := 'STREAMS$DIROBJ$1';
-- import tablespaces
dbms_streams_tablespace_adm.attach_tablespaces(
datapump_job_name => dp_job_name,
dump_file => dump_file,
tablespace_files => tbs_files,
converted_files => cvt_files,
tablespace_names => ts_names);
-- output names of imported tablespaces
IF ts_names IS NOT NULL AND ts_names.first IS NOT NULL THEN
FOR i IN ts_names.first .. ts_names.last LOOP
dbms_output.put_line('imported tablespace '|| ts_names(i));
END LOOP;
END IF;
END;
/
-- dropping directory objects
DROP DIRECTORY STREAMS$DIROBJ$1;
DROP DIRECTORY STREAMS$DIROBJ$DPDIR;
--------------------------------------------------------------
-- End of sample PL/SQL script
--------------------------------------------------------------
刪除自動例項
關閉自動例項
Oracle 例項已關閉
自動例項已刪除
已刪除輔助例項檔案 D:\B\CNTRL_TSPITR_XH_ZCXV.F
已刪除輔助例項檔案 D:\B\TSPITR_X\DATAFILE\O1_MF_SYSTEM_5CMVXBVT_.DBF
已刪除輔助例項檔案 D:\B\TSPITR_X\DATAFILE\O1_MF_UNDOTBS1_5CMVXBX9_.DBF
已刪除輔助例項檔案 D:\B\TSPITR_X\DATAFILE\O1_MF_SYSAUX_5CMVXBWS_.DBF
已刪除輔助例項檔案 D:\B\TSPITR_X\DATAFILE\O1_MF_TEMP_5CMVZKB8_.TMP
已刪除輔助例項檔案 D:\B\TSPITR_X\ONLINELOG\O1_MF_1_5CMVZCOH_.LOG
已刪除輔助例項檔案 D:\B\TSPITR_X\ONLINELOG\O1_MF_2_5CMVZF6C_.LOG
已刪除輔助例項檔案 D:\B\TSPITR_X\ONLINELOG\O1_MF_3_5CMVZGBQ_.LOG
RMAN>
C:\>set oracle_sid=orcl
C:\>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期三 9月 23 17:56:18 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> @D:\a\impscript.sql
SP2-0310: 無法開啟檔案 "D:\a\impscript.sql"
SQL> @ D:\a\impscript.sql
SP2-0310: 無法開啟檔案 "D:\a\impscript.sql"
SQL> @D:\a\impscript.sql
SP2-0310: 無法開啟檔案 "D:\a\impscript.sql"
SQL> @D:\a\impscrpt.sql
目錄已建立。
目錄已建立。
PL/SQL 過程已成功完成
目錄已刪除。
目錄已刪除。
SQL> select tablespace_name from dba_tablespaces;
TABLESPACE_NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS
EXAMPLE
TEST
RMAN_TS
TESTXH
XHTEST
已選擇10行。
從上面可以分析到 為什麼 rman不需要read only 很簡單 rman 建立一個auxiliary database 把要transport 的 tablespace及其必要的檔案controlfile,undo,system 從備份中
restore過去,然後進行 recover (利用archivelog 恢復到最新)然後將auyxiliary db中 transport tablesapce read only, exp匯出,然後製作一個impdp指令碼 ,在要target
端執行這個匯入指令碼就行了
~~~~~~~~~~~~~~
rman 沒有備份的時候
C:\>rman target xh/a123@xh
恢復管理器: Release 10.2.0.1.0 - Production on 星期四 9月 24 09:48:16 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: XH (DBID=3093395309)
RMAN> delete noprompt backup;
使用目標資料庫控制檔案替代恢復目錄
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=134 devtype=DISK
備份段列表
BP 關鍵字 BS 關鍵字 Pc# Cp# 狀態 裝置型別段名稱
------- ------- --- --- ----------- ----------- ----------
9 9 1 1 AVAILABLE DISK D:\ORACLE\PRODUCT\10.2.0\FLASH_RECO
VERY_AREA\XH\BACKUPSET\2009_09_23\O1_MF_NNNDF_TAG20090923T173725_5CMV2PC7_.BKP
10 10 1 1 AVAILABLE DISK D:\ORACLE\PRODUCT\10.2.0\FLASH_RECO
VERY_AREA\XH\BACKUPSET\2009_09_23\O1_MF_NCSNF_TAG20090923T173725_5CMV4H4W_.BKP
11 11 1 1 AVAILABLE DISK D:\ORACLE\PRODUCT\10.2.0\FLASH_RECO
VERY_AREA\XH\BACKUPSET\2009_09_23\O1_MF_ANNNN_TAG20090923T174226_5CMVD42X_.BKP
12 12 1 1 AVAILABLE DISK D:\ORACLE\PRODUCT\10.2.0\FLASH_RECO
VERY_AREA\XH\BACKUPSET\2009_09_23\O1_MF_NNNDF_TAG20090923T174229_5CMVD62X_.BKP
13 13 1 1 AVAILABLE DISK D:\ORACLE\PRODUCT\10.2.0\FLASH_RECO
VERY_AREA\XH\BACKUPSET\2009_09_23\O1_MF_NCSNF_TAG20090923T174229_5CMVFYX9_.BKP
14 14 1 1 AVAILABLE DISK D:\ORACLE\PRODUCT\10.2.0\FLASH_RECO
VERY_AREA\XH\BACKUPSET\2009_09_23\O1_MF_ANNNN_TAG20090923T174328_5CMVG21G_.BKP
已刪除備份段
備份段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_09_23\
O1_MF_NNNDF_TAG20090923T173725_5CMV2PC7_.BKP recid=9 stamp=698348246
已刪除備份段
備份段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_09_23\
O1_MF_NCSNF_TAG20090923T173725_5CMV4H4W_.BKP recid=10 stamp=698348303
已刪除備份段
備份段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_09_23\
O1_MF_ANNNN_TAG20090923T174226_5CMVD42X_.BKP recid=11 stamp=698348548
已刪除備份段
備份段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_09_23\
O1_MF_NNNDF_TAG20090923T174229_5CMVD62X_.BKP recid=12 stamp=698348550
已刪除備份段
備份段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_09_23\
O1_MF_NCSNF_TAG20090923T174229_5CMVFYX9_.BKP recid=13 stamp=698348606
已刪除備份段
備份段 handle=D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\XH\BACKUPSET\2009_09_23\
O1_MF_ANNNN_TAG20090923T174328_5CMVG21G_.BKP recid=14 stamp=698348610
6 物件已刪除
RMAN> list backup;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~沒有備份了
SQL> create tablespace xhtr datafile 'd:\xhdatafile\xhtr.dbf' size 10m;
表空間已建立。
SQL> create table t2 (a int) tablespace xhtr;
表已建立。
SQL> insert into t2 values(1);
已建立 1 行。
SQL> commit;
提交完成。
SQL> select * from t2;
A
----------
1
SQL> select group#,status from v$log;
GROUP# STATUS
---------- ----------------
1 INACTIVE
2 INACTIVE
3 CURRENT
SQL> alter database begin backup ;
資料庫已更改。
SQL> host copy d:\ORACLE\PRODUCT\10.2.0\ORADATA\xh\SYSTEM01.DBF d:\catalog\SYSTEM0
1.DBF
已複製 1 個檔案。
SQL> host copy d:\ORACLE\PRODUCT\10.2.0\ORADATA\xh\undotbs01.DBF d:\catalog\undotb
s01.DBF
已複製 1 個檔案。
SQL> host copy d:\xhdatafile\xhtr.dbf d:\catalog\xhtr.DBF
已複製 1 個檔案。
SQL> alter database end backup;
資料庫已更改。
SQL> alter database backup controlfile to 'd:\catalog\tctl.ctl';
資料庫已更改。
SQL> show user;
USER 為 "XH"
AUXILIARY DB 要正常使用需要UNDO ,SYSTEM, CONTROLFILE
表空間列表要求具有 UNDO 段
表空間 SYSTEM
表空間 UNDOTBS1
SQL> alter database backup controlfile to 'd:\catalog\tctl.ctl';
資料庫已更改。~要用這樣的backup controlfile才能 註冊進來否則 註冊時候
(ORA-19620: D:\CATALOG\TEST.CTL 的型別不是 backup control file)有這個錯誤
RMAN> catalog start with 'd:\catalog';
搜尋與樣式 d:\catalog 匹配的所有檔案
資料庫未知檔案的列表
=====================================
檔名: D:\catalog\coNTROL01.CTL
檔名: D:\catalog\SYSTEM01.DBF
檔名: D:\catalog\TCTL.CTL
檔名: D:\catalog\test.CTL
檔名: D:\catalog\undotbs01.DBF
檔名: D:\catalog\xhtr.DBF
是否確實要將上述檔案列入目錄 (輸入 YES 或 NO)? yes
正在編制檔案目錄...
目錄編制完畢
已列入目錄的檔案的列表
=======================
檔名: D:\catalog\SYSTEM01.DBF
檔名: D:\catalog\TCTL.CTL
檔名: D:\catalog\undotbs01.DBF
檔名: D:\catalog\xhtr.DBF
未列入目錄的檔案的列表
=======================================
檔名: D:\catalog\coNTROL01.CTL
RMAN-07519: 原因: 編制目錄時出錯。請參閱 alert.log。~~~~~~~~~~~~~~~~~
檔名: D:\catalog\test.CTL
RMAN-07519: 原因: 編制目錄時出錯。請參閱 alert.log。~~~~~~~~~~~~~~~~~~這2個controlfile是 host copy產生所以不行
RMAN> list copy of controlfile;
控制檔案副本列表
關鍵字 S 完成時間 Ckp SCN Ckp 時間 名稱
------- - ---------- ---------- ---------- ----
8 A 24-9月 -09 1115458 24-9月 -09 D:\CATALOG\TCTL.CTL
6 A 24-9月 -09 1115458 24-9月 -09 D:\CATALOG\TCTL.CTL
RMAN> list copy of database;
資料檔案副本列表
關鍵字 檔案 S 完成時間 Ckp SCN Ckp 時間 名稱
------- ---- - ---------- ---------- ---------- ----
1 1 A 24-9月 -09 1109552 24-9月 -09 D:\CATALOG\SYSTEM01.DBF
9 2 A 24-9月 -09 1115360 24-9月 -09 D:\CATALOG\UNDOTBS01.DBF
10 8 A 24-9月 -09 1115360 24-9月 -09 D:\CATALOG\XHTR.DBF
RMAN> transport tablespace xhtr tablespace destination 'd:\a' auxiliary destination
'd:\b';
RMAN-05026: 警告: 假定以下表空間集適用於指定的時間點
表空間列表要求具有 UNDO 段
表空間 SYSTEM
表空間 UNDOTBS1
使用 SID='cwbw' 建立自動例項
供自動例項使用的初始化引數:
db_name=XH
compatible=10.2.0.1.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_XH_cwbw
large_pool_size=1M
shared_pool_size=110M
#No auxiliary parameter file used
db_create_file_dest=d:\b
control_files=d:\b/cntrl_tspitr_XH_cwbw.f
啟動自動例項 XH
Oracle 例項已啟動
系統全域性區域總計 205520896 位元組
Fixed Size 1248092 位元組
Variable Size 146801828 位元組
Database Buffers 50331648 位元組
Redo Buffers 7139328 位元組
自動例項已建立
刪除自動例項
關閉自動例項
Oracle 例項已關閉
自動例項已刪除
RMAN-03002: tranport tablespace 命令 (在 09/24/2009 11:07:49 上) 失敗
RMAN-20202: 在恢復目錄中未找到表空間
RMAN-06019: 無法轉換表空間名稱"XHTR"
RMAN> list copy of tablespace xhtr;
資料檔案副本列表
關鍵字 檔案 S 完成時間 Ckp SCN Ckp 時間 名稱
------- ---- - ---------- ---------- ---------- ----
10 8 A 24-9月 -09 1115360 24-9月 -09 D:\CATALOG\XHTR.DBF
這個錯誤 說在catalog中沒有xhtr這個TABLESPACE 原因是 備份的控制檔案太新了 create tablespace xhtr 產生的 redo 還在current redo裡沒有針對這個tablespace的
archivelog
SQL> alter system switch logfile; 解決
系統已更改。
RMAN> transport tablespace xhtr tablespace destination 'd:\a' auxiliary destination
'd:\b';
RMAN-05026: 警告: 假定以下表空間集適用於指定的時間點
表空間列表要求具有 UNDO 段
表空間 SYSTEM
表空間 UNDOTBS1
使用 SID='zBFh' 建立自動例項
供自動例項使用的初始化引數:
db_name=XH
compatible=10.2.0.1.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_XH_zBFh
large_pool_size=1M
shared_pool_size=110M
#No auxiliary parameter file used
db_create_file_dest=d:\b
control_files=d:\b/cntrl_tspitr_XH_zBFh.f
啟動自動例項 XH
Oracle 例項已啟動
系統全域性區域總計 205520896 位元組
Fixed Size 1248092 位元組
Variable Size 146801828 位元組
Database Buffers 50331648 位元組
Redo Buffers 7139328 位元組
自動例項已建立
記憶體指令碼的內容:
{
# set the until clause
set until scn 1115701;
# restore the controlfile
restore clone controlfile;
# mount the controlfile
sql clone 'alter database mount clone database';
# archive current online log for tspitr to a resent until time
sql 'alter system archive log current';
# avoid unnecessary autobackups for structural changes during TSPITR
sql 'begin dbms_backup_restore.AutoBackupFlag(FALSE); end;';
}
正在執行記憶體指令碼
正在執行命令: SET until clause
啟動 restore 於 24-9月 -09
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=37 devtype=DISK
通道 ORA_AUX_DISK_1: 正在復原控制檔案
通道 ORA_AUX_DISK_1: 已複製控制檔案副本
輸出檔名=D:\CATALOG\TCTL.CTL
輸出檔名=D:\B\CNTRL_TSPITR_XH_ZBFH.F
完成 restore 於 24-9月 -09
sql 語句: alter database mount clone database
sql 語句: alter system archive log current
sql 語句: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;
釋放的通道: ORA_DISK_1
釋放的通道: ORA_AUX_DISK_1
記憶體指令碼的內容:
{
# generated tablespace point-in-time recovery script
# set the until clause
set until scn 1115701;
# set an omf destination filename for restore
set newname for clone datafile 1 to new;
# set an omf destination filename for restore
set newname for clone datafile 2 to new;
# set an omf destination filename for restore
set newname for clone datafile 3 to new;
# set an omf destination tempfile
set newname for clone tempfile 1 to new;
# set a destination filename for restore
set newname for datafile 8 to
"d:\a\XHTR.DBF";
# rename all tempfiles
switch clone tempfile all;
# restore the tablespaces in the recovery set plus the auxilliary tablespaces
restore clone datafile 1, 2, 3, 8;
switch clone datafile all;
#online the datafiles restored or flipped
sql clone "alter database datafile 1 online";
#online the datafiles restored or flipped
sql clone "alter database datafile 2 online";
#online the datafiles restored or flipped
sql clone "alter database datafile 3 online";
#online the datafiles restored or flipped
sql clone "alter database datafile 8 online";
# make the controlfile point at the restored datafiles, then recover them
recover clone database tablespace "XHTR", "SYSTEM", "UNDOTBS1", "SYSAUX" delete ar
chivelog;
alter clone database open resetlogs;
# PLUG HERE the creation of a temporary tablespace if export fails due to lack
# of temporary space.
# For example in Unix these two lines would do that:
#sql clone "create tablespace aux_tspitr_tmp
# datafile ''/tmp/aux_tspitr_tmp.dbf'' size 500K";
}
正在執行記憶體指令碼
正在執行命令: SET until clause
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
臨時檔案 1 在控制檔案中已重新命名為 D:\B\TSPITR_X\DATAFILE\O1_MF_TEMP_%U_.TMP
啟動 restore 於 24-9月 -09
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=39 devtype=DISK
刪除自動例項
關閉自動例項
Oracle 例項已關閉
自動例項已刪除
RMAN-03002: tranport tablespace 命令 (在 09/24/2009 11:09:34 上) 失敗
RMAN-03015: 在儲存的指令碼Memory Script中出現錯誤
RMAN-06026: 有些目標沒有找到 - 終止恢復
RMAN-06023: 沒有找到資料檔案3的副本來恢復
RMAN> list copy of datafile 3;
RMAN> 又失敗了 原因很簡單需要sysaux tablespace(recover clone database tablespace "XHTR", "SYSTEM", "UNDOTBS1", "SYSAUX"
delete ar)
原因在與
SQL> select OCCUPANT_NAME, OCCUPANT_DESC from v$sysaux_occupants;
OCCUPANT_NAME
----------------------------------------------------------------
OCCUPANT_DESC
----------------------------------------------------------------
LOGMNR
LogMiner
LOGSTDBY
Logical Standby
STREAMS
Oracle Streams~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~streamS 資訊 存sysaux中 當生成 IMPDP指令碼時實際使用 streams
(dbms_streams_tablespace_adm.file_set,dbms_streams_tablespace_adm.attach_tablespaces)
SQL> alter database begin backup ;
資料庫已更改。
SQL> host copy d:\ORACLE\PRODUCT\10.2.0\ORADATA\xh\SYSAUX01.DBF d:\catalog\SYSAUX0
1.DBF
已複製 1 個檔案。
SQL> alter database end backup;
資料庫已更改。
SQL> alter system switch logfile;
系統已更改。
RMAN> catalog datafilecopy 'd:\catalog\sysaux01.dbf';
已將資料檔案副本列入目錄
資料檔案副本 filename=D:\CATALOG\SYSAUX01.DBF recid=11 stamp=698412296
RMAN> list copy of datafile 3;
資料檔案副本列表
關鍵字 檔案 S 完成時間 Ckp SCN Ckp 時間 名稱
------- ---- - ---------- ---------- ---------- ----
11 3 A 24-9月 -09 1116790 24-9月 -09 D:\CATALOG\SYSAUX01.DBF
RMAN> list copy of tablespace sysaux;
資料檔案副本列表
關鍵字 檔案 S 完成時間 Ckp SCN Ckp 時間 名稱
------- ---- - ---------- ---------- ---------- ----
11 3 A 24-9月 -09 1116790 24-9月 -09 D:\CATALOG\SYSAUX01.DBF
RMAN> transport tablespace xhtr tablespace destination 'd:\a' auxiliary destination
'd:\b';
最後完成
可以 向前面那樣 登陸 ORCL DB 然後執行指令碼也可以 手動
.DMP ,和 匯入指令碼 ,EXPLOG (可以手動調整前面這些儲存位置和名字), 還有 transport tablespace 的datafile DELAUTE 存在tablespace destination
C:\>set oracle_sid=orcl
C:\>sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 9月 24 11:34:45 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> col file_name format a30
SQL> col tablespace format a10
SQL> col tablespace_name format a10
SQL> select tablespace_name,file_name from dba_data_files;
TABLESPACE FILE_NAME
---------- ------------------------------
SYSTEM E:\SYSDATAFILE2.DBF
TEST D:\TEST.DBF
EXAMPLE E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\EXAMPLE01.DBF
USERS E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\USERS01.DBF
SYSAUX E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\SYSAUX01.DBF
TABLESPACE FILE_NAME
---------- ------------------------------
UNDOTBS1 E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\UNDOTBS01.DBF
SYSTEM E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\SYSTEM01.DBF
RMAN_TS D:\RMAN_TS.DBF
TESTXH E:\ORCLDATAFILE\TESTXH.DBF
XHTEST D:\A\XHTEST.DBF
已選擇10行。
SQL>
SQL> host mkdir d:\impdp
SQL> host copy d:\a\DMPFILE.DMP d:\impdp\dumpfile.dmp
已複製 1 個檔案。
SQL> create directory implist as 'd:\impdp';
SQL> host impdp system/a831115 directory=implist dumpfile=dumpfile.dmp transport_
datafiles=d:\a\XHTR.DBF remap_schema=xh:system
SQL> select tablespace_name,file_name from dba_data_files;
TABLESPACE FILE_NAME
---------- ------------------------------
SYSTEM E:\SYSDATAFILE2.DBF
TEST D:\TEST.DBF
EXAMPLE E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\EXAMPLE01.DBF
USERS E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\USERS01.DBF
SYSAUX E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\SYSAUX01.DBF
TABLESPACE FILE_NAME
---------- ------------------------------
UNDOTBS1 E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\UNDOTBS01.DBF
SYSTEM E:\ORACLE\PRODUCT\10.2.0\ORADA
TA\ORCL\SYSTEM01.DBF
RMAN_TS D:\RMAN_TS.DBF
TESTXH E:\ORCLDATAFILE\TESTXH.DBF
XHTEST D:\A\XHTEST.DBF
XHTR D:\A\XHTR.DBF
已選擇11行。
SQL> conn system/a831115
已連線。
SQL> select * from t2;
A
----------
1
其他:
在執行transport tablespace 命令時候 會產生DUMPFILE.DMP,impscrpt.SQL,EXPLOG.LOG 預設都是用這些名字 生成在 tablespace destination 位置,AUXILIXARY DB所用的輔
助檔案'system,undo,sysaux ,COTROLFILE在 ' auxiliary destination位置
如果不想要 DUMPFILE.DMP,impscrpt.SQL,EXPLOG.LOG 在 tablespace destination位置可以改
DATAPUMP DIRECTORY XXXX
DUMP FILE 'XXX.dmp'
IMPORT SCRIPT. 'XXXX.sql'
EXPORT LOG 'XXXX.log';
另外 這個類似TSPITR 恢復 我們可以將要傳輸的表空間在auxiliary db中進行恢復,恢復到特定時間點是需加上until scn,until time ,until restore point 'XXX'(還原點)
create restore point V$RESTORE_POINT
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12020513/viewspace-615460/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle實驗記錄 (transport tablespace(EXPDP/IMPDP))Oracle
- oracle實驗記錄 (exp/imp transport tablespace)Oracle
- oracle實驗記錄 (oracle 10G rman transport database)OracleDatabase
- oracle實驗記錄 (bigfile tablespace)Oracle
- oracle實驗記錄Rman duplicate database(1)OracleDatabase
- oracle實驗記錄Rman duplicate database 2OracleDatabase
- Oracle 12C RMAN transport tablespace from PDB of RAC CDB to remote PDBOracleREM
- oracle實驗記錄 (恢復read only tablespace(1))Oracle
- oracle實驗記錄 (恢復read only tablespace(2))Oracle
- oracle實驗記錄 (恢復-rman catalog)Oracle
- oracle實驗記錄 (恢復-rman保留策略)Oracle
- oracle實驗記錄 (恢復-rman恢復)Oracle
- oracle實驗記錄 (恢復-rman維護(1))Oracle
- oracle實驗記錄 (恢復-rman維護(2))Oracle
- oracle實驗記錄 (恢復-rman增量備份)Oracle
- oracle實驗記錄 (rman 備份檢查&preview)OracleView
- 10.2R2 rman transport tablespace特性測試!
- oracle10g ASM transport_tablespaceOracleASM
- oracle實驗記錄 (恢復-rman reset incatnation(1))Oracle
- oracle實驗記錄 (恢復-rman操作delete(all) input )Oracledelete
- oracle10g_rman_syntax testing_upgrade catalog_transport tablespaceOracle
- oracle實驗記錄 (oracle 10G dataguard(8)rman 建立dg)Oracle
- TRANSPORT TABLESPACE總結
- 使用rman在不同平臺之間傳送oracle asm表空間(transport tablespace)OracleASM
- oracle實驗記錄 (恢復-rman操作(設定&備份))Oracle
- 測試rman transport tablespace命令時遇著的小問題~~
- oracle實驗記錄 (oracle 10G dataguard(9)rman恢復與dg)Oracle
- oracle實驗記錄 (flashback)Oracle
- oracle實驗記錄 (OMF)Oracle
- oracle實驗記錄 (NET)Oracle
- oracle實驗記錄 (audit)Oracle
- oracle實驗記錄 (oracle reset parameter)Oracle
- Oracle Data Redaction實驗記錄Oracle
- oracle實驗記錄 (block cleanout)OracleBloC
- oracle實驗記錄 (dump undo)Oracle
- oracle實驗記錄 (inlist card)Oracle
- oracle實驗記錄 (恢復-rman基於控制檔案的恢復)Oracle
- oracle實驗記錄 (oracle 資料字典)Oracle