用rman恢复非常简单,不过原理跟手动是一样一样的
C:\>set oracle_sid=orcl
C:\>rman target '/ as sysdba'
恢复管理器: Release 10.2.0.1.0 - Production on 星期五 8月 28 11:09:23 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: ORCL (DBID=1223510333)
RMAN> backup database;
启动 backup 于 28-8月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF
输入数据文件 fno=00003 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSAUX01.DBF
输入数据文件 fno=00005 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\EXAMPLE01.DBF
输入数据文件 fno=00002 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\UNDOTBS01.DBF
输入数据文件 fno=00006 name=D:\TEST.DBF
输入数据文件 fno=00004 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\USERS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 28-8月 -09
通道 ORA_DISK_1: 已完成段 1 于 28-8月 -09
段句柄=E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_28\O1_MF
_NNNDF_TAG20090828T114749_59GNV6TV_.BKP 标记=TAG20090828T114749 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:03:09
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 28-8月 -09
通道 ORA_DISK_1: 已完成段 1 于 28-8月 -09
段句柄=E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_28\O1_MF
_NCSNF_TAG20090828T114749_59GO14MK_.BKP 标记=TAG20090828T114749 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03
完成 backup 于 28-8月 -09
11:48:02 SQL> conn xh/a831115
已连接。
11:51:24 SQL> create table t1 (a int) tablespace users;
表已创建。
11:51:27 SQL> create table t2 (a int) tablespace test;
表已创建。
11:51:39 SQL> insert into t1 values(1);
已创建 1 行。
11:51:49 SQL> insert into t2 values(1);
已创建 1 行。
11:51:55 SQL> commit;
提交完成。
11:51:57 SQL> select current_scn from v$database;
CURRENT_SCN
-----------
868500
11:52:08 SQL> truncate table t2;
表被截断。
11:52:13 SQL> select current_scn from v$database;
CURRENT_SCN
-----------
868520
11:52:15 SQL> insert into t1 values (2);
已创建 1 行。
11:52:21 SQL> commit;
提交完成。
11:52:25 SQL> alter system switch logfile;
系统已更改。
11:52:27 SQL> select group#,status ,first_change# from v$log;
GROUP# STATUS FIRST_CHANGE#
---------- ---------------- -------------
1 ACTIVE 867754
2 INACTIVE 867144
3 CURRENT 868528
11:52:28 SQL> alter system checkpoint;
系统已更改。
11:52:29 SQL> execute sys.dbms_tts.transport_set_check('TEST',true);
PL/SQL 过程已成功完成。
11:52:35 SQL> select * from sys.transport_set_violations;
未选定行
11:52:37 SQL> create table t3 (a int) tablespace test;
表已创建。
11:53:10 SQL> select owner,name,tablespace_name from sys.ts_pitr_objects_to_be_drop
ped where tablespace_name='TEST' and creation_time>to_date('2009-08-28 11:51:55','y
yyy-mm-dd hh24:mi:ss');
OWNER
------------------------------
NAME TABLESPACE_NAME
-------------------------------------------------- --------------------
XH
T3 TEST~~~~~~~~~~~~~~~~~~~~~~~~~~~~这个表将在恢复后丢失exp出来先
11:53:16 SQL> insert into t3 values(1);
已创建 1 行。
11:54:54 SQL> commit;
提交完成。
要求是与 手动一样,恢复t2 到truncate前,加了一条test tablespace上 要丢失的imp回来
C:\>exp 'system/a831115 as sysdba' tables=xh.t3 file=e:\t5.dmp
Export: Release 10.2.0.1.0 - Production on 星期五 8月 28 11:53:52 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
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即将导出指定的表通过常规路径...
当前的用户已更改为 XH
. . 正在导出表 T3导出了 0 行
成功终止导出, 没有出现警告。
C:\>exp 'system/a831115 as sysdba' tables=xh.t3 file=e:\t3.dmp
Export: Release 10.2.0.1.0 - Production on 星期五 8月 28 11:55:02 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
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
即将导出指定的表通过常规路径...
当前的用户已更改为 XH
. . 正在导出表 T3导出了 1 行
成功终止导出, 没有出现警告。
RRMAN> recover tablespace 'TEST' until scn 868500 auxiliary destination 'd:\auxiliar(以下是完整的输出 可以看到与手动过程是一样的)
y'
2> ;
启动 recover 于 28-8月 -09
使用通道 ORA_DISK_1
RMAN-05026: 警告: 假定以下表空间集适用于指定的时间点
表空间列表要求具有 UNDO 段
表空间 SYSTEM
表空间 UNDOTBS1
使用 SID='faqm' 创建自动实例
供自动实例使用的初始化参数:
db_name=ORCL
compatible=10.2.0.1.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_ORCL_faqm
large_pool_size=1M
shared_pool_size=110M
#No auxiliary parameter file used
db_create_file_dest=d:\auxiliary
control_files=d:\auxiliary/cntrl_tspitr_ORCL_faqm.f
启动自动实例 ORCL
Oracle 实例已启动
系统全局区域总计 205520896 字节
Fixed Size 1248092 字节
Variable Size 146801828 字节
Database Buffers 50331648 字节
Redo Buffers 7139328 字节
自动实例已创建
内存脚本的内容:
{
# set the until clause
set until scn 868500;
# 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 于 28-8月 -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: 正在读取备份段 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\OR
CL\BACKUPSET\2009_08_28\O1_MF_NCSNF_TAG20090828T114749_59GO14MK_.BKP
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段句柄 = E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_28\O1_
MF_NCSNF_TAG20090828T114749_59GO14MK_.BKP 标记 = TAG20090828T114749
通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:00:02
输出文件名=D:\AUXILIARY\CNTRL_TSPITR_ORCL_FAQM.F
完成 restore 于 28-8月 -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 868500;
plsql <<declare
sqlstatement varchar2(512);
offline_not_needed exception;
pragma exception_init(offline_not_needed, -01539);
begin
sqlstatement := 'alter tablespace '|| 'TEST' ||' offline for recover';
krmicd.writeMsg(6162, sqlstatement);
krmicd.execSql(sqlstatement);
exception
when offline_not_needed then
null;
end; >>>;
# 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 tempfile
set newname for clone tempfile 1 to new;
# set a destination filename for restore
set newname for datafile 6 to
"D:\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, 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 "TEST", "SYSTEM", "UNDOTBS1" 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
sql 语句: alter tablespace TEST offline for recover
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
临时文件 1 在控制文件中已重命名为 D:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_TEMP_%U_.TMP
启动 restore 于 28-8月 -09
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=39 devtype=DISK
通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_SYSTEM_%U_.DBF
正将数据文件00002恢复到D:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_UNDOTBS1_%U_.DBF
正将数据文件00006恢复到D:\TEST.DBF
通道 ORA_AUX_DISK_1: 正在读取备份段 E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\OR
CL\BACKUPSET\2009_08_28\O1_MF_NNNDF_TAG20090828T114749_59GNV6TV_.BKP
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段句柄 = E:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2009_08_28\O1_
MF_NNNDF_TAG20090828T114749_59GNV6TV_.BKP 标记 = TAG20090828T114749
通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:00:35
完成 restore 于 28-8月 -09
数据文件 1 已转换成数据文件副本
输入数据文件副本 recid=11 stamp=696081426 文件名=D:\AUXILIARY\TSPITR_O\DATAFILE\O1_
MF_SYSTEM_59GOCHB8_.DBF
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=12 stamp=696081426 文件名=D:\AUXILIARY\TSPITR_O\DATAFILE\O1_
MF_UNDOTBS1_59GOCHC7_.DBF
sql 语句: alter database datafile 1 online
sql 语句: alter database datafile 2 online
sql 语句: alter database datafile 6 online
启动 recover 于 28-8月 -09
使用通道 ORA_AUX_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 11 已作为文件 E:\ARCHIVELOG\ARC00011_0695918991.001.ARC 存在于
磁盘上
存档日志文件名 =E:\ARCHIVELOG\ARC00011_0695918991.001.ARC 线程 =1 序列 =11
介质恢复完成, 用时: 00:00:02
完成 recover 于 28-8月 -09
数据库已打开
内存脚本的内容:
{
# export the tablespaces in the recovery set
host 'exp userid =\"/@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=oracle)(ARGV0=or
aclefaqm)(ARGS=^'(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))^')(ENVS=^'ORACLE
_SID=faqm^'))(CONNECT_DATA=(SID=faqm))) as sysdba\" point_in_time_recover=y tablesp
aces=
TEST file=
tspitr_a.dmp';
# shutdown clone before import
shutdown clone immediate
# import the tablespaces in the recovery set
host 'imp userid =\"/@ as sysdba\" point_in_time_recover=y file=
tspitr_a.dmp';
# online/offline the tablespace imported
sql "alter tablespace TEST online";
sql "alter tablespace TEST offline";
# enable autobackups in case user does open resetlogs from RMAN after TSPITR
sql 'begin dbms_backup_restore.AutoBackupFlag(TRUE); end;';
}
正在执行内存脚本
Export: Release 10.2.0.1.0 - Production on 星期五 8月 28 11:57:25 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
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 将不导出表数据 (行)
即将导出表空间时间点恢复对象...
对于表空间 TEST...
. 正在导出簇定义
. 正在导出表定义
. . 正在导出表 T2
. 正在导出引用完整性约束条件
. 正在导出触发器
. 终止时间点恢复
成功终止导出, 没有出现警告。
主机命令完成
数据库已关闭
数据库已卸载
Oracle 实例已关闭
Import: Release 10.2.0.1.0 - Production on 星期五 8月 28 11:57:50 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
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
即将导入表空间时间点恢复对象...
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 SYS 的对象导入到 SYS
. 正在将 XH 的对象导入到 XH
. . 正在导入表 "T2"
. 正在将 SYS 的对象导入到 SYS
成功终止导入, 没有出现警告。
主机命令完成
sql 语句: alter tablespace TEST online
sql 语句: alter tablespace TEST offline
sql 语句: begin dbms_backup_restore.AutoBackupFlag(TRUE); end;
删除自动实例
自动实例已删除
已删除辅助实例文件 D:\AUXILIARY\CNTRL_TSPITR_ORCL_FAQM.F
已删除辅助实例文件 D:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_SYSTEM_59GOCHB8_.DBF
已删除辅助实例文件 D:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_UNDOTBS1_59GOCHC7_.DBF~~~~~~~~~~~~~~自动删除
已删除辅助实例文件 D:\AUXILIARY\TSPITR_O\DATAFILE\O1_MF_TEMP_59GODZ4W_.TMP
已删除辅助实例文件 D:\AUXILIARY\TSPITR_O\ONLINELOG\O1_MF_1_59GODT00_.LOG
已删除辅助实例文件 D:\AUXILIARY\TSPITR_O\ONLINELOG\O1_MF_2_59GODVDP_.LOG
已删除辅助实例文件 D:\AUXILIARY\TSPITR_O\ONLINELOG\O1_MF_3_59GODWGN_.LOG
完成 recover 于 28-8月 -09
11:54:56 SQL> select * from t1;
A
----------
1
2
11:58:39 SQL> select * from t2;
select * from t2
*
第 1 行出现错误:
ORA-00376: 此时无法读取文件 6
ORA-01110: 数据文件 6: 'D:\TEST.DBF'
11:58:40 SQL> alter tablespace test online;
表空间已更改。
11:58:51 SQL> select * from t2;
A
----------
1
11:58:52 SQL> select * from t3;
select * from t3
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
C:\>imp '/ as sysdba' tables=t3 fromuser=xh file=e:\t3.dmp
Import: Release 10.2.0.1.0 - Production on 星期五 8月 28 12:01:00 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
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 SYS 的对象导入到 SYS
. 正在将 XH 的对象导入到 XH
. . 正在导入表 "T3"导入了 1 行
成功终止导入, 没有出现警告。
11:58:56 SQL> select * from t3;
A
----------
1
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12020513/viewspace-613479/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12020513/viewspace-613479/