1.单条命令"backup as copy"进行全数据库镜像拷贝备份:
RMAN> run {
2> backup as copy tag "sjh090323copy" database;
3> }
2> backup as copy tag "sjh090323copy" database;
3> }
启动 backup 于 23-3月 -09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=145 devtype=DISK
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00001 name=E:\ORACLE\ORASJH\SYSTEM01.DBF
输出文件名 = C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\DATA_D-ORASJH_I-2615173674_T
S-SYSTEM_FNO-1_0TKAL2EA 标记 = SJH090323COPY recid = 3 时间戳 = 682265055
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:25
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00002 name=E:\ORACLE\ORASJH\UNDOTBS01.DBF
输出文件名 = C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\DATA_D-ORASJH_I-2615173674_T
S-UNDOTBS1_FNO-2_0UKAL2F3 标记 = SJH090323COPY recid = 4 时间戳 = 682265073
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:15
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00003 name=E:\ORACLE\ORASJH\SYSAUX01.DBF
输出文件名 = C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\DATA_D-ORASJH_I-2615173674_T
S-SYSAUX_FNO-3_0VKAL2FI 标记 = SJH090323COPY recid = 5 时间戳 = 682265089
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:16
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00004 name=E:\ORACLE\ORASJH\USERS01.DBF
输出文件名 = C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\DATA_D-ORASJH_I-2615173674_T
S-USERS_FNO-4_10KAL2G2 标记 = SJH090323COPY recid = 6 时间戳 = 682265091
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:03
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00005 name=E:\ORACLE\ORASJH\SJH.DBF
输出文件名 = C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\DATA_D-ORASJH_I-2615173674_T
S-SJH_FNO-5_11KAL2G5 标记 = SJH090323COPY recid = 7 时间戳 = 682265094
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01
完成 backup 于 23-3月 -09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=145 devtype=DISK
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00001 name=E:\ORACLE\ORASJH\SYSTEM01.DBF
输出文件名 = C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\DATA_D-ORASJH_I-2615173674_T
S-SYSTEM_FNO-1_0TKAL2EA 标记 = SJH090323COPY recid = 3 时间戳 = 682265055
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:25
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00002 name=E:\ORACLE\ORASJH\UNDOTBS01.DBF
输出文件名 = C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\DATA_D-ORASJH_I-2615173674_T
S-UNDOTBS1_FNO-2_0UKAL2F3 标记 = SJH090323COPY recid = 4 时间戳 = 682265073
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:15
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00003 name=E:\ORACLE\ORASJH\SYSAUX01.DBF
输出文件名 = C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\DATA_D-ORASJH_I-2615173674_T
S-SYSAUX_FNO-3_0VKAL2FI 标记 = SJH090323COPY recid = 5 时间戳 = 682265089
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:16
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00004 name=E:\ORACLE\ORASJH\USERS01.DBF
输出文件名 = C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\DATA_D-ORASJH_I-2615173674_T
S-USERS_FNO-4_10KAL2G2 标记 = SJH090323COPY recid = 6 时间戳 = 682265091
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:03
通道 ORA_DISK_1: 启动数据文件副本
输入数据文件 fno=00005 name=E:\ORACLE\ORASJH\SJH.DBF
输出文件名 = C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\DATA_D-ORASJH_I-2615173674_T
S-SJH_FNO-5_11KAL2G5 标记 = SJH090323COPY recid = 7 时间戳 = 682265094
通道 ORA_DISK_1: 数据文件复制完毕, 经过时间: 00:00:01
完成 backup 于 23-3月 -09
启动 Control File and SPFILE Autobackup 于 23-3月 -09
段 handle=C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\C-2615173674-20090323-01 commen
t=NONE
完成 Control File and SPFILE Autobackup 于 23-3月 -09
段 handle=C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\C-2615173674-20090323-01 commen
t=NONE
完成 Control File and SPFILE Autobackup 于 23-3月 -09
--默认备份到database目录下,也可以指定备份路径和格式:
RMAN> run {
2> backup format 'E:\oracle\rman_backup\full%u_%s_%p' as copy tag 'sjh090323' da
tabase;
3> }
当你发出一个RESTORE命令时,缺省的RMAN恢复一个数据文件或者控制文件的镜像拷贝到原来的位置,镜像拷贝优于备份级被使用,因为使用备份级进行恢复会有额外的开销。并且,如果你需要使用镜像拷贝恢复数据文件或者控制文件,你无需把文件COPY到原来位置,RMAN的SWITCH命令可以通知数据库使用当前位置的文件,这类似于ALTER DATABASE RENAME FILE命令的功能。举个例子:
将数据文件5恢复到不同的位置:
首先看一下数据文件的分布:
SQL> select file_id,file_name from dba_data_files;
FILE_ID
----------
FILE_NAME
---------------------------------------------------------------------
----------
FILE_NAME
---------------------------------------------------------------------
1
E:\ORACLE\ORASJH\SYSTEM01.DBF
E:\ORACLE\ORASJH\SYSTEM01.DBF
2
E:\ORACLE\ORASJH\UNDOTBS01.DBF
E:\ORACLE\ORASJH\UNDOTBS01.DBF
3
E:\ORACLE\ORASJH\SYSAUX01.DBF
E:\ORACLE\ORASJH\SYSAUX01.DBF
FILE_ID
----------
FILE_NAME
---------------------------------------------------------------------
4
E:\ORACLE\ORASJH\USERS01.DBF
E:\ORACLE\ORASJH\USERS01.DBF
5
E:\ORACLE\ORASJH\SJH.DBF
E:\ORACLE\ORASJH\SJH.DBF
--shutdown数据库将E:\ORACLE\ORASJH\SJH.DBF改名。
E:\oracle\rman_scripts>rman catalog target
恢复管理器: Release 10.2.0.1.0 - Production on 星期一 3月 23 14:28:19 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到目标数据库 (未启动)
连接到恢复目录数据库
连接到恢复目录数据库
RMAN> startup mount;
Oracle 实例已启动
数据库已装载
数据库已装载
系统全局区域总计 167772160 字节
Fixed Size 1247876 字节
Variable Size 71304572 字节
Database Buffers 88080384 字节
Redo Buffers 7139328 字节
Variable Size 71304572 字节
Database Buffers 88080384 字节
Redo Buffers 7139328 字节
RMAN> run {
2> set newname for datafile 5 to 'E:\oracle\SJH.DBF';
3> restore datafile 5;
4> switch datafile all;
5> recover datafile 5;
6> }
2> set newname for datafile 5 to 'E:\oracle\SJH.DBF';
3> restore datafile 5;
4> switch datafile all;
5> recover datafile 5;
6> }
正在执行命令: SET NEWNAME
启动 restore 于 23-3月 -09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 正在恢复数据文件00005
输入数据文件副本 recid=12 stamp=682265538 文件名=E:\ORACLE\RMAN_BACKUP\FULL17KAL
2U2_39_1
数据文件 00005 的恢复目标: E:\ORACLE\SJH.DBF
通道 ORA_DISK_1: 已复制数据文件 00005 的数据文件副本
输出文件名=E:\ORACLE\SJH.DBF recid=13 stamp=682266651
完成 restore 于 23-3月 -09
输入数据文件副本 recid=12 stamp=682265538 文件名=E:\ORACLE\RMAN_BACKUP\FULL17KAL
2U2_39_1
数据文件 00005 的恢复目标: E:\ORACLE\SJH.DBF
通道 ORA_DISK_1: 已复制数据文件 00005 的数据文件副本
输出文件名=E:\ORACLE\SJH.DBF recid=13 stamp=682266651
完成 restore 于 23-3月 -09
数据文件 5 已转换成数据文件副本
输入数据文件副本 recid=14 stamp=682266653 文件名=E:\ORACLE\SJH.DBF
正在启动全部恢复目录的 resync
完成全部 resync
输入数据文件副本 recid=14 stamp=682266653 文件名=E:\ORACLE\SJH.DBF
正在启动全部恢复目录的 resync
完成全部 resync
启动 recover 于 23-3月 -09
使用通道 ORA_DISK_1
使用通道 ORA_DISK_1
正在开始介质的恢复
介质恢复完成, 用时: 00:00:03
介质恢复完成, 用时: 00:00:03
完成 recover 于 23-3月 -09
RMAN> alter database open;
数据库已打开
2.Oracle10g备份集压缩特征:
在备份命令里显示指定压缩选项:
BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;
--仅对数据文件1压缩备份
BACKUP AS COMPRESSED BACKUPSET DATAFILE 1,5;
BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;
--仅对数据文件1压缩备份
BACKUP AS COMPRESSED BACKUPSET DATAFILE 1,5;
也可以配置RMAN指定压缩选项:
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET;
但是压缩备份会消耗更多的资源以及时间。
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET;
但是压缩备份会消耗更多的资源以及时间。
以下是测试过程:
压缩备份:
RMAN> BACKUP format 'E:\oracle\rman_backup\full%u_%s_%p' AS COMPRESSED BACKUPSET
DATAFILE 1;
RMAN> BACKUP format 'E:\oracle\rman_backup\full%u_%s_%p' AS COMPRESSED BACKUPSET
DATAFILE 1;
启动 backup 于 23-3月 -09
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动压缩的全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:\ORACLE\ORASJH\SYSTEM01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 23-3月 -09
通道 ORA_DISK_1: 已完成段 1 于 23-3月 -09
段句柄=E:\ORACLE\RMAN_BACKUP\FULL19KAL4VL_41_1 标记=TAG20090323T144717 注释=NONE
使用通道 ORA_DISK_1
通道 ORA_DISK_1: 启动压缩的全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:\ORACLE\ORASJH\SYSTEM01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 23-3月 -09
通道 ORA_DISK_1: 已完成段 1 于 23-3月 -09
段句柄=E:\ORACLE\RMAN_BACKUP\FULL19KAL4VL_41_1 标记=TAG20090323T144717 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:16
完成 backup 于 23-3月 -09
完成 backup 于 23-3月 -09
启动 Control File and SPFILE Autobackup 于 23-3月 -09
段 handle=C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\C-2615173674-20090323-03 commen
t=NONE
完成 Control File and SPFILE Autobackup 于 23-3月 -09
段 handle=C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\C-2615173674-20090323-03 commen
t=NONE
完成 Control File and SPFILE Autobackup 于 23-3月 -09
--16s完成备份。
RMAN> BACKUP format 'E:\oracle\rman_backup\full%u_%s_%p' DATAFILE 1;
启动 backup 于 23-3月 -09
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:\ORACLE\ORASJH\SYSTEM01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 23-3月 -09
通道 ORA_DISK_1: 已完成段 1 于 23-3月 -09
段句柄=E:\ORACLE\RMAN_BACKUP\FULL1IKAL5SI_50_1 标记=TAG20090323T150242 注释=NONE
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=156 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=E:\ORACLE\ORASJH\SYSTEM01.DBF
通道 ORA_DISK_1: 正在启动段 1 于 23-3月 -09
通道 ORA_DISK_1: 已完成段 1 于 23-3月 -09
段句柄=E:\ORACLE\RMAN_BACKUP\FULL1IKAL5SI_50_1 标记=TAG20090323T150242 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:25
完成 backup 于 23-3月 -09
完成 backup 于 23-3月 -09
--25s完成备份。
--这个实验比较奇怪,采用压缩备份集的选项反而备份的时间变短。我采用全库的测试结果也是一样的。
不知道有没有朋友遇到过这种现象?
3.Block Change Tracking:
Block chage tracking是Oracle10g的一个新特性,Block change tracking进程记录自从上一次备份以来数据块的变化,并把这些信息记录在跟踪文件中。RMAN使用这个文件判断增量备份中需要备份的变更数据。这极大的促进了备份性能,RMAN可以不再扫描整个文件以查找变更数据。为此Oracle引入了一个新的后台进程,CTWR(Change Tracking Writer),用于记录变化的块并将变化写入相应的日志文件中。
SQL> select filename,status,bytes from v$block_change_tracking;
FILENAME
---------------------------------------------------------------------
---------------------------------------------------------------------
STATUS BYTES
---------- ----------
---------- ----------
DISABLED
--这个选项是关闭的。
SQL> alter database enable block change tracking using file 'e:\oracle\trace.log
';
';
数据库已更改。
--启用。
SQL> select filename,status,bytes from v$block_change_tracking;
FILENAME
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
STATUS BYTES
---------- ----------
E:\ORACLE\TRACE.LOG
ENABLED 11599872
---------- ----------
E:\ORACLE\TRACE.LOG
ENABLED 11599872