RMAN遷移表空間
Windows xp
Oracle 10.2.0.1
備份資料庫:
RMAN> backup as compressed backupset database current controlfile plus archivelog;
建目錄:
SQL> create directory d_output as 'd:\oracle\product\10.2.0\oradata\auxi\output\';
執行遷移操作:
這裡的輔助例項系統會自動建立並在最後自動刪除!
C:\>rman target /
恢復管理器: Release 10.2.0.1.0 - Production on 星期一 4月 27 17:16:42 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連線到目標資料庫: ORCL (DBID=1211958316)
RMAN> transport tablespace 'TEST' auxiliary destination 'D:\oracle\product\10.2.0\oradata\auxi' datapump directory d_output dump file 'test_meta.dp' export log 'test_meta.log' import script. 'test_imp.src' tablespace destination 'D:\oracle\product\10.2.0\oradata\auxi';
RMAN-05026:警告:假定以下表空間集適用於指定的時間點
表空間列表要求具有 UNDO 段
表空間 SYSTEM
表空間 UNDOTBS1
使用 SID='Ehwr' 建立自動例項
供自動例項使用的初始化引數:
db_name=ORCL
compatible=10.2.0.1.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_ORCL_Ehwr
large_pool_size=1M
shared_pool_size=110M
#No auxiliary parameter file used
db_create_file_dest=D:\oracle\product\10.2.0\oradata\auxi
control_files=D:\oracle\product\10.2.0\oradata\auxi/cntrl_tspitr_ORCL_Ehwr.f
啟動自動例項 ORCL
Oracle 例項已啟動
系統全域性區域總計 205520896 位元組
Fixed Size 1248092 位元組
Variable Size 146801828 位元組
Database Buffers 50331648 位元組
Redo Buffers 7139328 位元組
自動例項已建立
記憶體指令碼的內容:
{
# set the until clause
set until scn 884730;
# 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 於 27-4月 -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
\ORCL\AUTOBACKUP\2009_04_27\O1_MF_S_685295725_4ZBS7GWS_.BKP
通道 ORA_AUX_DISK_1: 已恢復備份段 1
段控制程式碼 = D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\AUTOBACKUP\2009_04_27
\O1_MF_S_685295725_4ZBS7GWS_.BKP 標記 = TAG20090427T155525
通道 ORA_AUX_DISK_1: 恢復完成, 用時: 00:00:02
輸出檔名=D:\ORACLE\PRODUCT\10.2.0\ORADATA\AUXI\CNTRL_TSPITR_ORCL_EHWR.F
完成 restore 於 27-4月 -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 884730;
# 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 6 to
"D:\oracle\product\10.2.0\oradata\auxi\TEST.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, 6;
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 6 online";
# make the controlfile point at the restored datafiles, then recover them
recover clone database tablespace "TEST", "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:\ORACLE\PRODUCT\10.2.0\ORADATA\AUXI\TSPITR_O
\DATAFILE\O1_MF_TEMP_%U_.TMP
啟動 restore 於 27-4月 -09
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=39 devtype=DISK
通道 ORA_AUX_DISK_1: 正在開始恢復資料檔案備份集
通道 ORA_AUX_DISK_1: 正在指定從備份集恢復的資料檔案
正將資料檔案00001恢復到D:\ORACLE\PRODUCT\10.2.0\ORADATA\AUXI\TSPITR_O\DATAFILE\O
1_MF_SYSTEM_%U_.DBF
正將資料檔案00002恢復到D:\ORACLE\PRODUCT\10.2.0\ORADATA\AUXI\TSPITR_O\DATAFILE\O
1_MF_UNDOTBS1_%U_.DBF
正將資料檔案00003恢復到D:\ORACLE\PRODUCT\10.2.0\ORADATA\AUXI\TSPITR_O\DATAFILE\O
1_MF_SYSAUX_%U_.DBF
正將資料檔案00006恢復到D:\ORACLE\PRODUCT\10.2.0\ORADATA\AUXI\TEST.DBF
通道 ORA_AUX_DISK_1: 正在讀取備份段 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA
\ORCL\BACKUPSET\2009_04_27\O1_MF_NNNDF_TAG20090427T155424_4ZBS5KCQ_.BKP
通道 ORA_AUX_DISK_1: 已恢復備份段 1
段控制程式碼 = D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_04_27\
O1_MF_NNNDF_TAG20090427T155424_4ZBS5KCQ_.BKP 標記 = TAG20090427T155424
通道 ORA_AUX_DISK_1: 恢復完成, 用時: 00:01:06
完成 restore 於 27-4月 -09
資料檔案 1 已轉換成資料檔案副本
輸入資料檔案副本 recid=6 stamp=685297575 檔名=D:\ORACLE\PRODUCT\10.2.0\ORADATA
\AUXI\TSPITR_O\DATAFILE\O1_MF_SYSTEM_4ZBTZ6NJ_.DBF
資料檔案 2 已轉換成資料檔案副本
輸入資料檔案副本 recid=7 stamp=685297576 檔名=D:\ORACLE\PRODUCT\10.2.0\ORADATA
\AUXI\TSPITR_O\DATAFILE\O1_MF_UNDOTBS1_4ZBTZ6PG_.DBF
資料檔案 3 已轉換成資料檔案副本
輸入資料檔案副本 recid=8 stamp=685297576 檔名=D:\ORACLE\PRODUCT\10.2.0\ORADATA
\AUXI\TSPITR_O\DATAFILE\O1_MF_SYSAUX_4ZBTZ6OZ_.DBF
資料檔案 6 已轉換成資料檔案副本
輸入資料檔案副本 recid=9 stamp=685297576 檔名=D:\ORACLE\PRODUCT\10.2.0\ORADATA
\AUXI\TEST.DBF
sql 語句: alter database datafile 1 online
sql 語句: alter database datafile 2 online
sql 語句: alter database datafile 3 online
sql 語句: alter database datafile 6 online
啟動 recover 於 27-4月 -09
使用通道 ORA_AUX_DISK_1
正在開始介質的恢復
存檔日誌執行緒 1 序列 42 已作為檔案 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\O
RCL\ARCHIVELOG\2009_04_27\O1_MF_1_42_4ZBS7BTC_.ARC 存在於磁碟上
存檔日誌執行緒 1 序列 43 已作為檔案 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\O
RCL\ARCHIVELOG\2009_04_27\O1_MF_1_43_4ZBS8ZDP_.ARC 存在於磁碟上
存檔日誌執行緒 1 序列 44 已作為檔案 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\O
RCL\ARCHIVELOG\2009_04_27\O1_MF_1_44_4ZBSKNF5_.ARC 存在於磁碟上
存檔日誌執行緒 1 序列 45 已作為檔案 D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\O
RCL\ARCHIVELOG\2009_04_27\O1_MF_1_45_4ZBTCBQX_.ARC 存在於磁碟上
存檔日誌檔名 =D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\200
9_04_27\O1_MF_1_42_4ZBS7BTC_.ARC 執行緒 =1 序列 =42
存檔日誌檔名 =D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\200
9_04_27\O1_MF_1_43_4ZBS8ZDP_.ARC 執行緒 =1 序列 =43
存檔日誌檔名 =D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\200
9_04_27\O1_MF_1_44_4ZBSKNF5_.ARC 執行緒 =1 序列 =44
存檔日誌檔名 =D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\200
9_04_27\O1_MF_1_45_4ZBTCBQX_.ARC 執行緒 =1 序列 =45
介質恢復完成, 用時: 00:00:08
完成 recover 於 27-4月 -09
資料庫已開啟
記憶體指令碼的內容:
{
#mark read only the tablespace that will be exported
sql clone "alter tablespace TEST read only";
# export the tablespaces in the recovery set
host 'expdp userid=\"/@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=oracle)(ARGV
0=oracleEhwr)(ARGS=^'(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))^')(ENVS=^
'ORACLE_SID=Ehwr^'))(CONNECT_DATA=(SID=Ehwr))) as sysdba\" transport_tablespaces
=
TEST dumpfile=
test_meta.dp directory=
d_output logfile=
test_meta.log';
}
正在執行記憶體指令碼
sql 語句: alter tablespace TEST read only
Export: Release 10.2.0.1.0 - Production on 星期一, 27 4月, 2009 16:26:46
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=(ADDRE
SS=(PROTOCOL=beq)(PROGRAM=oracle)(ARGV0=oracleEhwr)(ARGS='(DESCRIPTION=(LOCAL=YE
S)(ADDRESS=(PROTOCOL=beq)))')(ENVS='ORACLE_SID=Ehwr'))(CONNECT_DATA=(SID=Ehwr)))
AS SYSDBA" transport_tablespaces= TEST dumpfile=test_meta.dp directory=d_output
logfile=test_meta.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:\ORACLE\PRODUCT\10.2.0\ORADATA\AUXI\OUTPUT\TEST_META.DP
作業 "SYS"."SYS_EXPORT_TRANSPORTABLE_01" 已於 16:27:20 成功完成
主機命令完成
/*
The following command may be used to import the tablespaces.
Substitute values for
impdp
les= D:\oracle\product\10.2.0\oradata\auxi\TEST.DBF
*/
--------------------------------------------------------------
-- Start of sample PL/SQL script. for importing the tablespaces
--------------------------------------------------------------
-- creating directory objects
CREATE DIRECTORY STREAMS$DIROBJ$1 AS 'D:\oracle\product\10.2.0\oradata\auxi\';
/* 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 := 'test_meta.dp';
dump_file.directory_object := 'd_output';
-- forming list of datafiles for import
tbs_files( 1).file_name := 'TEST.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 例項已關閉
自動例項已刪除
刪除自動例項
自動例項已刪除
驗證遷移結果:
由於我的表空間是專為此次實驗新建的,所以我直接刪除了TEST表空間,再由D:\oracle\product\10.2.0\oradata\auxi目錄下生成的相關檔案匯入做結果驗證。生產環境千萬不可如此!!!
C:\>impdp test/test directory=d_output dumpfile=TEST_META.DP logfile=imp_test.log transport_datafiles=D:\oracle\product\10.2.0\oradata\auxi\test.dbf
Import: Release 10.2.0.1.0 - Production on 星期一, 27 4月, 2009 16:42:06
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
已成功載入/解除安裝了主表 "TEST"."SYS_IMPORT_TRANSPORTABLE_01"
啟動 "TEST"."SYS_IMPORT_TRANSPORTABLE_01": test/******** directory=d_output dumpf
ile=TEST_META.DP logfile=imp_test.log transport_datafiles=D:\oracle\product\10.2
.0\oradata\auxi\test.dbf
處理物件型別 TRANSPORTABLE_EXPORT/PLUGTS_BLK
處理物件型別 TRANSPORTABLE_EXPORT/TABLE
處理物件型別 TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
作業 "TEST"."SYS_IMPORT_TRANSPORTABLE_01" 已於 16:43:26 成功完成
select相關table,驗證結果。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/17997/viewspace-591977/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用RMAN簡單遷移表空間
- 表空間遷移
- 遷移表空間
- 利用RMAN遷移表空間碰到的問題(五)
- 利用RMAN遷移表空間碰到的問題(四)
- 利用RMAN遷移表空間碰到的問題(三)
- 利用RMAN遷移表空間碰到的問題(二)
- 利用RMAN遷移表空間碰到的問題(一)
- 【遷移】表空間transport
- Oracle10g新特性——利用RMAN遷移表空間Oracle
- ORACLE表批量遷移表空間Oracle
- 遷移SYSTEM表空間為本地管理表空間
- expdp/impdp 遷移表空間
- Oracle10g新特性——利用RMAN遷移表空間(二)Oracle
- Oracle10g新特性——利用RMAN遷移表空間(一)Oracle
- 跨平臺表空間遷移(傳輸表空間)
- 遷移表到新的表空間
- table/index/LOBINDEX遷移表空間Index
- lob欄位表空間遷移
- 基於可傳輸表空間的表空間遷移
- 利用可傳輸表空間跨平臺遷移 -RMAN CONVERT
- 利用oracle10g_rman_convert_transportable tablespace遷移表空間Oracle
- Oracle 不同平臺間表空間遷移Oracle
- MySQL 遷移表空間,備份單表MySql
- 表、索引遷移表空間alter table move索引
- 空間遷移
- Oracle中表空間、表、索引的遷移Oracle索引
- 表空間遷移辦法補充
- 資料庫物件遷移表空間資料庫物件
- 【資料遷移】使用傳輸表空間遷移資料
- 線上遷移表空間資料檔案
- 不同使用者,不同表空間遷移
- Oracle 表空間資料檔案遷移Oracle
- 分割槽表對應的表空間遷移案例
- oracle 12c 使用RMAN的傳輸表空間功能在PDB之間遷移資料Oracle
- Oracle 12cbigfile表空間物件遷移Oracle物件
- mysql共享表空間擴容,收縮,遷移MySql
- InnoDB資料表空間檔案平滑遷移