16.4.1 全自动 TSPITR
准备:
C:/>sqlplus sys/demo@demo as sysdba
SQL*Plus: Release 10.2.0.3.0 - Production on 星期四 1月 15 17:08:25 2009
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> create tablespace tbs01 datafile 'd:/demo/tbs01.dbf' size 1M autoextend on
next 512K maxsize unlimited extent management local segment space management aut
o;
表空间已创建。
SQL> create tablespace tbs02 datafile 'd:/demo/tbs02.dbf' size 1M autoextend on
next 512K maxsize unlimited extent management local segment space management aut
o;
表空间已创建。
SQL> create user colin identified by colin;
用户已创建。
SQL> grant connect,resource to colin;
授权成功。
SQL> conn colin/colin@demo
已连接。
SQL> create table tab01(c int) tablespace tbs01;
表已创建。
SQL> create table tab02(c int) tablespace tbs02;
表已创建。
SQL> insert into tab01 values(1);
已创建 1 行。
SQL> insert into tab01 values(2);
已创建 1 行。
SQL> insert into tab02 values(1);
已创建 1 行。
SQL> insert into tab02 values(2);
已创建 1 行。
SQL> commit;
提交完成。
SQL> conn sys/demo@demo as sysdba
已连接。
SQL> alter system switch logfile;
系统已更改。
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
C:/>rman target sys/demo@demo nocatalog
恢复管理器: Release 10.2.0.3.0 - Production on 星期四 1月 15 17:10:36 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: DEMO (DBID=3420134445)
使用目标数据库控制文件替代恢复目录
RMAN> backup database plus archivelog format='d:/demo/bak/%d_%s_%p.bak';
启动 backup 于 15-1月 -09
当前日志已存档
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=141 devtype=DISK
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =75 记录 ID=207 时间戳=676228224
输入存档日志线程 =1 序列 =76 记录 ID=209 时间戳=676228247
通道 ORA_DISK_1: 正在启动段 1 于 15-1月 -09
通道 ORA_DISK_1: 已完成段 1 于 15-1月 -09
段句柄=D:/DEMO/BAK/DEMO_60_1.BAK 标记=TAG20090115T171048 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
完成 backup 于 15-1月 -09
启动 backup 于 15-1月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=D:/DEMO/SYSTEM01.DBF
输入数据文件 fno=00003 name=D:/DEMO/SYSAUX01.DBF
输入数据文件 fno=00002 name=D:/DEMO/UNDOTBS01.DBF
输入数据文件 fno=00004 name=D:/DEMO/USERS01.DBF
输入数据文件 fno=00005 name=D:/DEMO/TBS01.DBF
输入数据文件 fno=00006 name=D:/DEMO/TBS02.DBF
通道 ORA_DISK_1: 正在启动段 1 于 15-1月 -09
通道 ORA_DISK_1: 已完成段 1 于 15-1月 -09
段句柄=D:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/DEMO/BACKUPSET/2009_01_15/O1
_MF_NNNDF_TAG20090115T171052_4PXZDXGV_.BKP 标记=TAG20090115T171052 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:01:06
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
在备份集中包含当前的 SPFILE
通道 ORA_DISK_1: 正在启动段 1 于 15-1月 -09
通道 ORA_DISK_1: 已完成段 1 于 15-1月 -09
段句柄=D:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/DEMO/BACKUPSET/2009_01_15/O1
_MF_NCSNF_TAG20090115T171052_4PXZH0LG_.BKP 标记=TAG20090115T171052 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:05
完成 backup 于 15-1月 -09
启动 backup 于 15-1月 -09
当前日志已存档
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 正在启动存档日志备份集
通道 ORA_DISK_1: 正在指定备份集中的存档日志
输入存档日志线程 =1 序列 =77 记录 ID=212 时间戳=676228324
通道 ORA_DISK_1: 正在启动段 1 于 15-1月 -09
通道 ORA_DISK_1: 已完成段 1 于 15-1月 -09
段句柄=D:/DEMO/BAK/DEMO_63_1.BAK 标记=TAG20090115T171205 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
完成 backup 于 15-1月 -09
RMAN> backup current controlfile format='d:/demo/bak/%d.ctl' REUSE;
启动 backup 于 15-1月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
备份集中包括当前控制文件
通道 ORA_DISK_1: 正在启动段 1 于 15-1月 -09
通道 ORA_DISK_1: 已完成段 1 于 15-1月 -09
段句柄=D:/DEMO/BAK/DEMO.CTL 标记=TAG20090115T171224 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:02
完成 backup 于 15-1月 -09
RMAN> exit
恢复管理器完成。
C:/>sqlplus sys/demo@demo as sysdba
SQL*Plus: Release 10.2.0.3.0 - Production on 星期四 1月 15 17:12:43 2009
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select * from colin.tab01;
C
----------
1
2
SQL> select * from colin.tab02;
C
----------
1
2
SQL> archive log list;
数据库日志模式 存档模式
自动存档 启用
存档终点 d:/demo/archive
最早的联机日志序列 76
下一个存档日志序列 78
当前日志序列 78
SQL> truncate table colin.tab01;
表被截断。
SQL> alter system switch logfile;
系统已更改。
SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options 断开
恢复:
C:/>rman target sys/demo@demo nocatalog
恢复管理器: Release 10.2.0.3.0 - Production on 星期四 1月 15 17:14:47 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: DEMO (DBID=3420134445)
使用目标数据库控制文件替代恢复目录
RMAN> run
2> {
3> recover tablespace tbs01 until logseq 78 auxiliary destination 'd:/demo/auxi'
;
4> sql 'alter tablespace tbs01 online';
5> backup tablespace tbs01 format='d:/demo/bak/%d_%s_%p.bak';
6> }
启动 recover 于 15-1月 -09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=140 devtype=DISK
RMAN-05026: 警告: 假定以下表空间集适用于指定的时间点
表空间列表要求具有 UNDO 段
表空间 SYSTEM
表空间 UNDOTBS1
使用 SID='scyj' 创建自动实例
供自动实例使用的初始化参数:
db_name=DEMO
compatible=10.2.0.3.0
db_block_size=8192
db_files=200
db_unique_name=tspitr_DEMO_scyj
large_pool_size=1M
shared_pool_size=110M
#No auxiliary parameter file used
db_create_file_dest=d:/demo/auxi
control_files=d:/demo/auxi/cntrl_tspitr_DEMO_scyj.f
启动自动实例 DEMO
Oracle 实例已启动
系统全局区域总计 205520896 字节
Fixed Size 1289700 字节
Variable Size 146801180 字节
Database Buffers 50331648 字节
Redo Buffers 7098368 字节
自动实例已创建
内存脚本的内容:
{
# set the until clause
set until logseq 78 thread 1;
# 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 于 15-1月 -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
/DEMO/BACKUPSET/2009_01_15/O1_MF_NCSNF_TAG20090115T171052_4PXZH0LG_.BKP
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段句柄 = D:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/DEMO/BACKUPSET/2009_01_15/
O1_MF_NCSNF_TAG20090115T171052_4PXZH0LG_.BKP 标记 = TAG20090115T171052
通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:00:04
输出文件名=D:/DEMO/AUXI/CNTRL_TSPITR_DEMO_SCYJ.F
完成 restore 于 15-1月 -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 logseq 78 thread 1;
plsql <<<-- tspitr_2
declare
sqlstatement varchar2(512);
offline_not_needed exception;
pragma exception_init(offline_not_needed, -01539);
begin
sqlstatement := 'alter tablespace '|| 'TBS01' ||' 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 5 to
"D:/DEMO/TBS01.DBF";
# rename all tempfiles
switch clone tempfile all;
# restore the tablespaces in the recovery set plus the auxilliary tablespaces
restore clone datafile 1, 2, 5;
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 5 online";
# make the controlfile point at the restored datafiles, then recover them
recover clone database tablespace "TBS01", "SYSTEM", "UNDOTBS1" delete archivel
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";
}
正在执行内存脚本
正在执行命令: SET until clause
sql 语句: alter tablespace TBS01 offline for recover
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
正在执行命令: SET NEWNAME
临时文件 1 在控制文件中已重命名为 D:/DEMO/AUXI/TSPITR_D/DATAFILE/O1_MF_TEMP_%U_.
TMP
启动 restore 于 15-1月 -09
分配的通道: ORA_AUX_DISK_1
通道 ORA_AUX_DISK_1: sid=39 devtype=DISK
通道 ORA_AUX_DISK_1: 正在开始恢复数据文件备份集
通道 ORA_AUX_DISK_1: 正在指定从备份集恢复的数据文件
正将数据文件00001恢复到D:/DEMO/AUXI/TSPITR_D/DATAFILE/O1_MF_SYSTEM_%U_.DBF
正将数据文件00002恢复到D:/DEMO/AUXI/TSPITR_D/DATAFILE/O1_MF_UNDOTBS1_%U_.DBF
正将数据文件00005恢复到D:/DEMO/TBS01.DBF
通道 ORA_AUX_DISK_1: 正在读取备份段 D:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA
/DEMO/BACKUPSET/2009_01_15/O1_MF_NNNDF_TAG20090115T171052_4PXZDXGV_.BKP
通道 ORA_AUX_DISK_1: 已恢复备份段 1
段句柄 = D:/ORACLE/PRODUCT/10.2.0/FLASH_RECOVERY_AREA/DEMO/BACKUPSET/2009_01_15/
O1_MF_NNNDF_TAG20090115T171052_4PXZDXGV_.BKP 标记 = TAG20090115T171052
通道 ORA_AUX_DISK_1: 恢复完成, 用时: 00:00:56
完成 restore 于 15-1月 -09
数据文件 1 已转换成数据文件副本
输入数据文件副本 recid=40 stamp=676228728 文件名=D:/DEMO/AUXI/TSPITR_D/DATAFILE/
O1_MF_SYSTEM_4PXZT0RF_.DBF
数据文件 2 已转换成数据文件副本
输入数据文件副本 recid=41 stamp=676228728 文件名=D:/DEMO/AUXI/TSPITR_D/DATAFILE/
O1_MF_UNDOTBS1_4PXZT0SR_.DBF
sql 语句: alter database datafile 1 online
sql 语句: alter database datafile 2 online
sql 语句: alter database datafile 5 online
启动 recover 于 15-1月 -09
使用通道 ORA_AUX_DISK_1
正在开始介质的恢复
存档日志线程 1 序列 77 已作为文件 C:/DEMO/ARCHIVE/ARC00077_0676208632.001 存在于
磁盘上
存档日志文件名 =C:/DEMO/ARCHIVE/ARC00077_0676208632.001 线程 =1 序列 =77
介质恢复完成, 用时: 00:00:04
完成 recover 于 15-1月 -09
数据库已打开
内存脚本的内容:
{
# export the tablespaces in the recovery set
host 'exp userid =/"/@(DESCRIPTION=(ADDRESS=(PROTOCOL=beq)(PROGRAM=oracle)(ARGV0
=oraclescyj)(ARGS=^'(DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))^')(ENVS=^'
ORACLE_SID=scyj^'))(CONNECT_DATA=(SID=scyj))) as sysdba/" point_in_time_recover=
y tablespaces=
TBS01 file=
tspitr_a.dmp';
# shutdown clone before import
shutdown clone immediate
# import the tablespaces in the recovery set
host 'imp userid =/"sys/demo@demo as sysdba/" point_in_time_recover=y file=
tspitr_a.dmp';
# online/offline the tablespace imported
sql "alter tablespace TBS01 online";
sql "alter tablespace TBS01 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.3.0 - Production on 星期四 1月 15 17:19:16 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集
注: 将不导出表数据 (行)
即将导出表空间时间点恢复对象...
对于表空间 TBS01...
. 正在导出簇定义
. 正在导出表定义
. . 正在导出表 TAB01
. 正在导出引用完整性约束条件
. 正在导出触发器
. 终止时间点恢复
成功终止导出, 没有出现警告。
主机命令完成
数据库已关闭
数据库已卸载
Oracle 实例已关闭
Import: Release 10.2.0.3.0 - Production on 星期四 1月 15 17:19:35 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
经由常规路径由 EXPORT:V10.02.01 创建的导出文件
即将导入表空间时间点恢复对象...
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入
. 正在将 SYS 的对象导入到 SYS
. 正在将 COLIN 的对象导入到 COLIN
. . 正在导入表 "TAB01"
. 正在将 SYS 的对象导入到 SYS
成功终止导入, 没有出现警告。
主机命令完成
sql 语句: alter tablespace TBS01 online
sql 语句: alter tablespace TBS01 offline
sql 语句: begin dbms_backup_restore.AutoBackupFlag(TRUE); end;
删除自动实例
自动实例已删除
已删除辅助实例文件 D:/DEMO/AUXI/CNTRL_TSPITR_DEMO_SCYJ.F
已删除辅助实例文件 D:/DEMO/AUXI/TSPITR_D/DATAFILE/O1_MF_SYSTEM_4PXZT0RF_.DBF
已删除辅助实例文件 D:/DEMO/AUXI/TSPITR_D/DATAFILE/O1_MF_UNDOTBS1_4PXZT0SR_.DBF
已删除辅助实例文件 D:/DEMO/AUXI/TSPITR_D/DATAFILE/O1_MF_TEMP_4PXZWD2S_.TMP
已删除辅助实例文件 D:/DEMO/AUXI/TSPITR_D/ONLINELOG/O1_MF_1_4PXZW460_.LOG
已删除辅助实例文件 D:/DEMO/AUXI/TSPITR_D/ONLINELOG/O1_MF_2_4PXZW5O1_.LOG
已删除辅助实例文件 D:/DEMO/AUXI/TSPITR_D/ONLINELOG/O1_MF_3_4PXZW7Q9_.LOG
完成 recover 于 15-1月 -09
sql 语句: alter tablespace tbs01 online
启动 backup 于 15-1月 -09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=140 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00005 name=D:/DEMO/TBS01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 15-1月 -09
通道 ORA_DISK_1: 已完成段 1 于 15-1月 -09
段句柄=D:/DEMO/BAK/DEMO_65_1.BAK 标记=TAG20090115T171940 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03
完成 backup 于 15-1月 –09
RMAN> exit
恢复管理器完成。
检查结果:
C:/>sqlplus colin/colin@demo
SQL*Plus: Release 10.2.0.3.0 - Production on 星期四 1月 15 17:25:59 2009
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> select * from tab01;
C
----------
1
2
SQL> select * from tab02;
C
----------
1
2