一,、在測(cè)試表中插入數(shù)據(jù)
C:\Documents and Settings\Administrator.XY>set oracle_sid=orcl C:\Documents and Settings\Administrator.XY>sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 2月 13 15:49:52 2007
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> conn test1/test1
已連接,。 SQL> insert into t select * from dba_objects; 已創(chuàng)建50361行,。
SQL> commit;
提交完成,。
SQL> select count(*) from t;
COUNT(*)
---------- 50361 SQL>
二,、備份數(shù)據(jù)庫
C:\Documents and Settings\Administrator.XY>rman target/ 恢復(fù)管理器: Release 10.2.0.1.0 - Production on 星期二 2月 13 15:51:45 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連接到目標(biāo)數(shù)據(jù)庫: ORCL (DBID=1140649303)
RMAN> backup database format 'd:\%s.bak';
啟動(dòng) backup 于 13-2月 -07
使用通道 ORA_DISK_1 通道 ORA_DISK_1: 啟動(dòng)全部數(shù)據(jù)文件備份集 通道 ORA_DISK_1: 正在指定備份集中的數(shù)據(jù)文件 輸入數(shù)據(jù)文件 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF 輸入數(shù)據(jù)文件 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF 輸入數(shù)據(jù)文件 fno=00005 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF 輸入數(shù)據(jù)文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF 輸入數(shù)據(jù)文件 fno=00006 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST01.DBF 輸入數(shù)據(jù)文件 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF 通道 ORA_DISK_1: 正在啟動(dòng)段 1 于 13-2月 -07 通道 ORA_DISK_1: 已完成段 1 于 13-2月 -07 段句柄=D:\51.BAK 標(biāo)記=TAG20070213T155246 注釋=NONE 通道 ORA_DISK_1: 備份集已完成, 經(jīng)過時(shí)間:00:01:06 通道 ORA_DISK_1: 啟動(dòng)全部數(shù)據(jù)文件備份集 通道 ORA_DISK_1: 正在指定備份集中的數(shù)據(jù)文件 備份集中包括當(dāng)前控制文件 在備份集中包含當(dāng)前的 SPFILE 通道 ORA_DISK_1: 正在啟動(dòng)段 1 于 13-2月 -07 通道 ORA_DISK_1: 已完成段 1 于 13-2月 -07 段句柄=D:\52.BAK 標(biāo)記=TAG20070213T155246 注釋=NONE 通道 ORA_DISK_1: 備份集已完成, 經(jīng)過時(shí)間:00:00:08 完成 backup 于 13-2月 -07 RMAN>
三,、刪除表 C:\Documents and Settings\Administrator.XY>sqlplus "/as sysdba" SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 2月 13 15:57:40 2007
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> conn test1/test1
已連接。 SQL> drop table t; 表已刪除,。
SQL>
四,、創(chuàng)建輔助實(shí)例(auxiliary instance) C:\Documents and Settings\Administrator.XY>oradim -NEW -SID auxdb 創(chuàng)建輔助實(shí)例的密碼文件 創(chuàng)建輔助實(shí)例的參數(shù)文件 #DB_FILE_NAME_CONVERT('target database','auxiliary database')
*.db_name=orcl #(the same to the target database) *.db_unique_name=auxdb *.DB_FILE_NAME_CONVERT=('d:\oracle\product\10.2.0\oradata\orcl','d:\test') *.LOG_FILE_NAME_CONVERT=('d:\oracle\product\10.2.0\oradata\orcl','d:\test') *.control_files='D:\test\CONTROLT01.CTL','D:\test\CONTROLT02.CTL','D:\test\CONTROLT03.CTL' *.REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE *.compatible='10.2.0.1.0' *.db_block_size=8192 *.sga_target=250000000 background_dump_dest=d:\test\bdump core_dump_dest=d:\test\cdump user_dump_dest=d:\test\udump 以nomount方式打開 五,、使用rman tspitr恢復(fù)數(shù)據(jù)
C:\Documents and Settings\Administrator.XY>rman target sys/oracle@orcl auxiliary sys/aux@aux 恢復(fù)管理器: Release 10.2.0.1.0 - Production on 星期二 2月 13 16:00:43 2007
Copyright (c) 1982, 2005, Oracle. All rights reserved.
連接到目標(biāo)數(shù)據(jù)庫: ORCL (DBID=1140649303)
已連接到輔助數(shù)據(jù)庫: ORCL (未裝載) RUN{
allocate auxiliary channel c1 type disk; set newname for datafile 6 to 'd:\test\test01.dbf'; recover tablespace 'TEST1' until time "to_date('2007-02-13 15:57:40' , 'yyyy-mm-dd hh24:mi:ss')" AUXILIARY DESTINATION 'd:\test\test01.dbf'; } 如果不設(shè)置set newname for datafile 6 to 'd:\test\test01.dbf'; 默認(rèn)將恢復(fù)到原來所在位置,。
也可以使用如下語句來將datafile 6的位置指定到另一個(gè)目錄下
recover tablespace 'TEST1' until time "to_date('2007-02-13 15:57:40' , 'yyyy-mm-dd hh24:mi:ss')" AUXILIARY DESTINATION 'd:\test\test01.dbf';
RMAN> RUN{ 2> allocate auxiliary channel c1 type disk; 3> set newname for datafile 6 to 'd:\test\test01.dbf'; 4> recover tablespace 'TEST1' until time "to_date('2007-02-13 15:57:40' , 'yyyy mm-dd hh24:mi:ss')"; 5> } 使用目標(biāo)數(shù)據(jù)庫控制文件替代恢復(fù)目錄
分配的通道: c1 通道 c1: sid=36 devtype=DISK 正在執(zhí)行命令: SET NEWNAME
啟動(dòng) recover 于 13-2月 -07
RMAN-05026: 警告: 假定以下表空間集適用于指定的時(shí)間點(diǎn) 表空間列表要求具有 UNDO 段
表空間 SYSTEM 表空間 UNDOTBS1 內(nèi)存腳本的內(nèi)容:
{ # set the until clause set until time "to_date('2007-02-13 15:57:40' , 'yyyy-mm-dd hh24:mi:ss')"; # 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;'; } 正在執(zhí)行內(nèi)存腳本 正在執(zhí)行命令: SET until clause
啟動(dòng) restore 于 13-2月 -07
通道 c1: 正在開始恢復(fù)數(shù)據(jù)文件備份集
通道 c1: 正在復(fù)原控制文件 通道 c1: 正在讀取備份段 D:\52.BAK 通道 c1: 已恢復(fù)備份段 1 段句柄 = D:\52.BAK 標(biāo)記 = TAG20070213T155246 通道 c1: 恢復(fù)完成, 用時(shí): 00:00:03 輸出文件名=D:\TEST\CONTROLT01.CTL 輸出文件名=D:\TEST\CONTROLT02.CTL 輸出文件名=D:\TEST\CONTROLT03.CTL 完成 restore 于 13-2月 -07 sql 語句: alter database mount clone database
sql 語句: alter system archive log current
sql 語句: begin dbms_backup_restore.AutoBackupFlag(FALSE); end;
內(nèi)存腳本的內(nèi)容:
{ # generated tablespace point-in-time recovery script # set the until clause set until time "to_date('2007-02-13 15:57:40' , 'yyyy-mm-dd hh24:mi:ss')"; plsql <<<-- tspitr_2 declare sqlstatement varchar2(512); offline_not_needed exception; pragma exception_init(offline_not_needed, -01539); begin sqlstatement := 'alter tablespace '|| 'TEST1' ||' offline for recover'; krmicd.writeMsg(6162, sqlstatement); krmicd.execSql(sqlstatement); exception when offline_not_needed then null; end; >>>; # set a destination filename for restore set newname for datafile 1 to "D:\TEST\SYSTEM01.DBF"; # set a destination filename for restore set newname for datafile 2 to "D:\TEST\UNDOTBS01.DBF"; # set a destination tempfile set newname for tempfile 1 to "D:\TEST\TEMP01.DBF"; # set a destination filename for restore set newname for datafile 6 to "D:\TEST\TEST01.DBF"; # rename all tempfiles switch clone tempfile all; # restore the tablespaces in the recovery set plus the auxilliary tablespaces restore clone datafile 1, 2, 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 6 online"; # make the controlfile point at the restored datafiles, then recover them recover clone database tablespace "TEST1", "SYSTEM", "UNDOTBS1" delete archive og; 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"; } 正在執(zhí)行內(nèi)存腳本 正在執(zhí)行命令: SET until clause
sql 語句: alter tablespace TEST1 offline for recover
正在執(zhí)行命令: SET NEWNAME
正在執(zhí)行命令: SET NEWNAME
正在執(zhí)行命令: SET NEWNAME
正在執(zhí)行命令: SET NEWNAME
啟動(dòng) restore 于 13-2月 -07 通道 c1: 正在開始恢復(fù)數(shù)據(jù)文件備份集
通道 c1: 正在指定從備份集恢復(fù)的數(shù)據(jù)文件 正將數(shù)據(jù)文件00001恢復(fù)到D:\TEST\SYSTEM01.DBF 正將數(shù)據(jù)文件00002恢復(fù)到D:\TEST\UNDOTBS01.DBF 正將數(shù)據(jù)文件00006恢復(fù)到D:\TEST\TEST01.DBF 通道 c1: 正在讀取備份段 D:\51.BAK 通道 c1: 已恢復(fù)備份段 1 段句柄 = D:\51.BAK 標(biāo)記 = TAG20070213T155246 通道 c1: 恢復(fù)完成, 用時(shí): 00:00:35 完成 restore 于 13-2月 -07 sql 語句: alter database datafile 1 online sql 語句: alter database datafile 2 online
sql 語句: alter database datafile 6 online
啟動(dòng) recover 于 13-2月 -07
正在開始介質(zhì)的恢復(fù)
存檔日志線程 1 序列 43 已作為文件 D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ARCHIVE
ARC00043_0613390304.001 存在于磁盤上 存檔日志文件名 =D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\ARCHIVE\ARC00043_06133903 4.001 線程 =1 序列 =43 介質(zhì)恢復(fù)完成, 用時(shí): 00:00:01 完成 recover 于 13-2月 -07 數(shù)據(jù)庫已打開
內(nèi)存腳本的內(nèi)容:
{ # export the tablespaces in the recovery set host 'exp userid =\"sys/aux@aux as sysdba\" point_in_time_recover=y tablespaces TEST1 file=
tspitr_a.dmp'; #rename a datafile in recovery set sql "alter database rename file ''D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEST01 DBF'' to ''D:\TEST\TEST01.DBF''"; # shutdown clone before import shutdown clone immediate # import |
|