【資料遷移】使用傳輸表空間遷移資料

楊奇龍發表於2010-08-21


恢復管理器: Release 11.1.0.6.0 - Production on 星期六 8月 21 23:23:22 2010

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

連線到目標資料庫: ORCL (DBID=1253972717)

RMAN>transport tablespace users
2>tablespace destination 'f:\lib\tbsd'
3>auxiliary  destination 'f:\lib\auxd'
4>datapump directory dump_dir
5>dump file 'user.dmp'
6>import script. 'user.sql'
7>export log 'user.log';
=====================================================
使用目標資料庫控制檔案替代恢復目錄
RMAN-05026: 警告: 假定以下表空間集適用於指定的時間點
表空間列表要求具有 UNDO 段
表空間 SYSTEM
表空間 UNDOTBS1
使用 SID='fuak' 建立自動例項
=======================================================
供自動例項使用的初始化引數:
db_name=ORCL
compatible=11.1.0.0.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_ORCL_fuak
large_pool_size=1M
shared_pool_size=110M
processes=50
#No auxiliary parameter file used
db_create_file_dest=f:\lib\ad
control_files=f:\lib\ad/cntrl_tspitr_ORCL_fuak.f


啟動自動例項 ORCL
Oracle 例項已啟動
系統全域性區域總計     205070336 位元組
Fixed Size                     1332104 位元組
Variable Size                146803832 位元組
Database Buffers              50331648 位元組
Redo Buffers                   6602752 位元組
自動例項已建立
====================================================
記憶體指令碼的內容:
{
# set the until clause
set until  scn 1773870;
# 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 於 21-8月 -10
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: SID=44 裝置型別=DISK
分配的通道: ORA_AUX_DISK_2
通道 ORA_AUX_DISK_2: SID=43 裝置型別=DISK
分配的通道: ORA_AUX_DISK_3
通道 ORA_AUX_DISK_3: SID=41 裝置型別=DISK

通道 ORA_AUX_DISK_1: 正在開始還原資料檔案備份集
通道 ORA_AUX_DISK_1: 正在還原控制檔案
通道 ORA_AUX_DISK_1: 正在讀取備份片段 F:\ORACL\PRODUCT\11.1.0\DB_1\DATABASE\CTRL_C-1253972717-20100821-02.CTL
通道 ORA_AUX_DISK_1: 段控制程式碼 = F:\ORACL\PRODUCT\11.1.0\DB_1\DATABASE\CTRL_C-1253972717-20100821-02.CTL 標記 = TAG20100821T221141
通道 ORA_AUX_DISK_1: 已還原備份片段 1
通道 ORA_AUX_DISK_1: 還原完成, 用時: 00:00:01
輸出檔名=F:\LIB\AD\CNTRL_TSPITR_ORCL_FUAK.F
完成 restore 於 21-8月 -10
====================================================
sql 語句: alter database mount clone database
sql 語句: alter system archive log current
sql 語句: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;

記憶體指令碼的內容:
{
# generated tablespace point-in-time recovery script
# set the until clause
set until  scn 1773870;
# 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  3 to new;
# set an omf destination filename for restore
set newname for clone datafile  2 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  4 to
 "f:\lib\td\USERS01.DBF";
# rename all tempfiles
switch clone tempfile all;
# restore the tablespaces in the recovery set plus the auxiliary tablespaces
restore clone datafile  1, 3, 2, 4;
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  3 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  4 online";
# make the controlfile point at the restored datafiles, then recover them
recover clone database tablespace  "USERS", "SYSTEM", "UNDOTBS1", "SYSAUX" delete archivelog;
alter clone database open resetlogs;
}

正在執行記憶體指令碼
正在執行命令: SET until clause
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
正在執行命令: SET NEWNAME
臨時檔案 1 在控制檔案中已重新命名為 F:\LIB\AD\TSPITR_ORCL_FUAK\DATAFILE\O1_MF_TEMP_%U_.TMP
啟動 restore 於 21-8月 -10
使用通道 ORA_AUX_DISK_1
使用通道 ORA_AUX_DISK_2
使用通道 ORA_AUX_DISK_3

通道 ORA_AUX_DISK_1: 正在開始還原資料檔案備份集
通道 ORA_AUX_DISK_1: 正在指定從備份集還原的資料檔案
通道 ORA_AUX_DISK_1: 將資料檔案 00003 還原到 F:\LIB\AD\TSPITR_ORCL_FUAK\DATAFILE\O1_MF_UNDOTBS1_%U_.DBF
通道 ORA_AUX_DISK_1: 正在讀取備份片段 F:\BACKUP\ORCL_14LLU7MS_36_1_14LLU7MS.BAK
通道 ORA_AUX_DISK_2: 正在開始還原資料檔案備份集
通道 ORA_AUX_DISK_2: 正在指定從備份集還原的資料檔案
通道 ORA_AUX_DISK_2: 將資料檔案 00004 還原到 F:\LIB\TD\USERS01.DBF
通道 ORA_AUX_DISK_2: 正在讀取備份片段 F:\BACKUP\ORCL_16LLU7OV_38_1_16LLU7OV.BAK
通道 ORA_AUX_DISK_3: 正在開始還原資料檔案備份集
通道 ORA_AUX_DISK_3: 正在指定從備份集還原的資料檔案
通道 ORA_AUX_DISK_3: 將資料檔案 00002 還原到 F:\LIB\AD\TSPITR_ORCL_FUAK\DATAFILE\O1_MF_SYSAUX_%U_.DBF
通道 ORA_AUX_DISK_3: 正在讀取備份片段 F:\BACKUP\ORCL_13LLU7MK_35_1_13LLU7MK.BAK
通道 ORA_AUX_DISK_2: 段控制程式碼 = F:\BACKUP\ORCL_16LLU7OV_38_1_16LLU7OV.BAK 標記 = FULL
通道 ORA_AUX_DISK_2: 已還原備份片段 1
通道 ORA_AUX_DISK_2: 還原完成, 用時: 00:00:01
通道 ORA_AUX_DISK_2: 正在開始還原資料檔案備份集
通道 ORA_AUX_DISK_2: 正在指定從備份集還原的資料檔案
通道 ORA_AUX_DISK_2: 將資料檔案 00001 還原到 F:\LIB\AD\TSPITR_ORCL_FUAK\DATAFILE\O1_MF_SYSTEM_%U_.DBF
通道 ORA_AUX_DISK_2: 正在讀取備份片段 F:\BACKUP\ORCL_12LLU7MD_34_1_12LLU7MD.BAK
通道 ORA_AUX_DISK_1: 段控制程式碼 = F:\BACKUP\ORCL_14LLU7MS_36_1_14LLU7MS.BAK 標記 = FULL
通道 ORA_AUX_DISK_1: 已還原備份片段 1
通道 ORA_AUX_DISK_1: 還原完成, 用時: 00:00:17
通道 ORA_AUX_DISK_2: 段控制程式碼 = F:\BACKUP\ORCL_12LLU7MD_34_1_12LLU7MD.BAK 標記 = FULL
通道 ORA_AUX_DISK_2: 已還原備份片段 1
通道 ORA_AUX_DISK_2: 還原完成, 用時: 00:01:16
通道 ORA_AUX_DISK_3: 段控制程式碼 = F:\BACKUP\ORCL_13LLU7MK_35_1_13LLU7MK.BAK 標記 = FULL
通道 ORA_AUX_DISK_3: 已還原備份片段 1
通道 ORA_AUX_DISK_3: 還原完成, 用時: 00:01:17
完成 restore 於 21-8月 -10

資料檔案 1 已轉換成資料檔案副本
輸入資料檔案副本 RECID=6 STAMP=727658776 檔名=F:\LIB\AD\TSPITR_ORCL_FUAK\DATAFILE\O1_MF_SYSTEM_66ZVYFBQ_.DBF
資料檔案 3 已轉換成資料檔案副本
輸入資料檔案副本 RECID=7 STAMP=727658776 檔名=F:\LIB\AD\TSPITR_ORCL_FUAK\DATAFILE\O1_MF_UNDOTBS1_66ZVYC8S_.DBF
資料檔案 2 已轉換成資料檔案副本
輸入資料檔案副本 RECID=8 STAMP=727658776 檔名=F:\LIB\AD\TSPITR_ORCL_FUAK\DATAFILE\O1_MF_SYSAUX_66ZVYCTC_.DBF
資料檔案 4 已轉換成資料檔案副本
輸入資料檔案副本 RECID=9 STAMP=727658776 檔名=F:\LIB\TD\USERS01.DBF

sql 語句: alter database datafile  1 online
sql 語句: alter database datafile  3 online
sql 語句: alter database datafile  2 online
sql 語句: alter database datafile  4 online
啟動 recover 於 21-8月 -10
使用通道 ORA_AUX_DISK_1
使用通道 ORA_AUX_DISK_2
使用通道 ORA_AUX_DISK_3

正在開始介質的恢復
執行緒 1 序列 17 的歸檔日誌已作為檔案 F:\ORACL\ARCHIVE1\ARC1_17_726448405.LOG 存在於磁碟上
執行緒 1 序列 18 的歸檔日誌已作為檔案 F:\ORACL\ARCHIVE1\ARC1_18_726448405.LOG 存在於磁碟上
執行緒 1 序列 19 的歸檔日誌已作為檔案 F:\ORACL\ARCHIVE1\ARC1_19_726448405.LOG 存在於磁碟上
執行緒 1 序列 20 的歸檔日誌已作為檔案 F:\ORACL\ARCHIVE1\ARC1_20_726448405.LOG 存在於磁碟上
執行緒 1 序列 21 的歸檔日誌已作為檔案 F:\ORACL\ARCHIVE1\ARC1_21_726448405.LOG 存在於磁碟上
歸檔日誌檔名=F:\ORACL\ARCHIVE1\ARC1_17_726448405.LOG 執行緒=1 序列=17
歸檔日誌檔名=F:\ORACL\ARCHIVE1\ARC1_18_726448405.LOG 執行緒=1 序列=18
歸檔日誌檔名=F:\ORACL\ARCHIVE1\ARC1_19_726448405.LOG 執行緒=1 序列=19
歸檔日誌檔名=F:\ORACL\ARCHIVE1\ARC1_20_726448405.LOG 執行緒=1 序列=20
歸檔日誌檔名=F:\ORACL\ARCHIVE1\ARC1_21_726448405.LOG 執行緒=1 序列=21
介質恢復完成, 用時: 00:00:03
完成 recover 於 21-8月 -10
=================================================
資料庫已開啟
記憶體指令碼的內容:
{
#mark read only the tablespace that will be exported
sql clone "alter tablespace USERS read only";
# export the tablespaces in the recovery set
host 'expdp userid=
'********'
 transport_tablespaces= USERS dumpfile=
users2.dmp directory=
dump_dir logfile=
users2.log';
}
正在執行記憶體指令碼

sql 語句: alter tablespace USERS read only

主機命令完成
/*
   The following command may be used to import the tablespaces.
   Substitute values for and .
   impdp directory= dumpfile= 'users2.dmp' transport_datafiles= f:\lib\td\USERS01.DBF
*/
--------------------------------------------------------------
-- Start of sample PL/SQL script. for importing the tablespaces
--------------------------------------------------------------
-- creating directory objects
CREATE DIRECTORY STREAMS$DIROBJ$1 AS  'f:\lib\td\';
/* 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 :=  'users2.dmp';
  dump_file.directory_object := 'dump_dir';
  -- forming list of datafiles for import
  tbs_files( 1).file_name :=  'USERS01.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;
--------------------------------------------------------------
-- End of sample PL/SQL script
--------------------------------------------------------------

刪除自動例項
關閉自動例項
Oracle 例項已關閉
自動例項已刪除
=======================================================================
刪除自動例項
自動例項已刪除
DBGANY:     Mismatched message length! [23:28:04.718] (krmiduem)
DBGANY:     Mismatched message length! [23:28:04.718] (krmiduem)
 MAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS
RMAN-00571: ===========================================================
RMAN-00600: internal error, arguments [3045] [] [] [] []
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: transport tablespace 命令 (在 08/21/2010 23:28:04 上) 失敗
ORA-27056: 無法刪除檔案
OSD-04024: 無法刪除檔案。
O/S-Error: (OS 32) 另一個程式正在使用此檔案,程式無法訪問。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-671568/,如需轉載,請註明出處,否則將追究法律責任。

相關文章