创建恢复目录
1、创建表空间
- SQL> create tablespace rman datafile '/u01/app/oracle/oradata/orcl/rman1.dbf' size 50m;
- 表空间已创建。
SQL> create tablespace rman datafile '/u01/app/oracle/oradata/orcl/rman1.dbf' size 50m;
表空间已创建。
2、创建用户
- SQL> create user rman identified by rman default tablespace rman temporary tablespace temp quota unlimited on rman;
- 用户已创建。
SQL> create user rman identified by rman default tablespace rman temporary tablespace temp quota unlimited on rman;
用户已创建。
3、授权
- SQL> grant connect,resource,recovery_catalog_owner to rman;
- 授权成功。
SQL> grant connect,resource,recovery_catalog_owner to rman;
授权成功。
4、连接到恢复目录
- [oracle@linux ~]$ rman catalog rman/rman@orcl
- 恢复管理器: Release 10.2.0.4.0 - Production on 星期四 10月 13 12:55:12 2011
- Copyright (c) 1982, 2007, Oracle. All rights reserved.
- 连接到恢复目录数据库
[oracle@linux ~]$ rman catalog rman/rman@orcl
恢复管理器: Release 10.2.0.4.0 - Production on 星期四 10月 13 12:55:12 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
连接到恢复目录数据库
5、创建catalog数据库
- RMAN> create catalog;
- 恢复目录已创建
RMAN> create catalog;
恢复目录已创建
6、连接
- [oracle@linux ~]$ rman target sys/oracle@orcl catalog rman/rman@orcl
- 恢复管理器: Release 10.2.0.4.0 - Production on 星期四 10月 13 12:56:55 2011
- Copyright (c) 1982, 2007, Oracle. All rights reserved.
- 连接到目标数据库: ORCL (DBID=1292118315)
- 连接到恢复目录数据库
[oracle@linux ~]$ rman target sys/oracle@orcl catalog rman/rman@orcl
恢复管理器: Release 10.2.0.4.0 - Production on 星期四 10月 13 12:56:55 2011
Copyright (c) 1982, 2007, Oracle. All rights reserved.
连接到目标数据库: ORCL (DBID=1292118315)
连接到恢复目录数据库
7、注册
- RMAN> register database;
- 注册在恢复目录中的数据库
- 正在启动全部恢复目录的 resync
- 完成全部 resync
RMAN> register database;
注册在恢复目录中的数据库
正在启动全部恢复目录的 resync
完成全部 resync
说明:catalog数据库也需要备份,通常使用exp/imp既可。注意:强烈建议catalog数据库和要备份的数据库不要使用同一个数据库。(这里为了方便catalog数据库和备份数据库使用了同一个。)因为如果备份数据库宕了,你连rman都进不去了,更不要说利用catalog目录里面的信息来恢复数据库。
使用catalog的另外一个好处是可以在数据库中存储备份脚本
创建脚本
- RMAN> create script fullbak{
- 2> backup database; }
- 已创建脚本 fullbak
RMAN> create script fullbak{
2> backup database; }
已创建脚本 fullbak
运行脚本
- RMAN> run {execute script fullbak;}
- 正在执行脚本: fullbak
- 启动 backup 于 13-10月-11
- 分配的通道: ORA_DISK_1
- 通道 ORA_DISK_1: sid=150 devtype=DISK
- 通道 ORA_DISK_1: 启动全部数据文件备份集
- 通道 ORA_DISK_1: 正在指定备份集中的数据文件
- 输入数据文件 fno=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf
- 输入数据文件 fno=00003 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
- 输入数据文件 fno=00006 name=/u01/app/oracle/oradata/orcl/rman1.dbf
- 输入数据文件 fno=00002 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
- 输入数据文件 fno=00005 name=/u01/app/oracle/oradata/orcl/tb1.dbf
- 输入数据文件 fno=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf
- 通道 ORA_DISK_1: 正在启动段 1 于 13-10月-11
- 通道 ORA_DISK_1: 已完成段 1 于 13-10月-11
- 段句柄=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_13/o1_mf_nnndf_TAG20111013T131009_79dwokbc_.bkp 标记=TAG20111013T131009 注释=NONE
- 通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:35
- 完成 backup 于 13-10月-11
- 启动 Control File and SPFILE Autobackup 于 13-10月-11
- 段 handle=/u01/app/oracle/flash_recovery_area/ORCL/autobackup/2011_10_13/o1_mf_s_764428246_79dwpq2f_.bkp comment=NONE
- 完成 Control File and SPFILE Autobackup 于 13-10月-11
- RMAN> delete script fullbak;
RMAN> run {execute script fullbak;}
正在执行脚本: fullbak
启动 backup 于 13-10月-11
分配的通道: ORA_DISK_1
通道 ORA_DISK_1: sid=150 devtype=DISK
通道 ORA_DISK_1: 启动全部数据文件备份集
通道 ORA_DISK_1: 正在指定备份集中的数据文件
输入数据文件 fno=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf
输入数据文件 fno=00003 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf
输入数据文件 fno=00006 name=/u01/app/oracle/oradata/orcl/rman1.dbf
输入数据文件 fno=00002 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf
输入数据文件 fno=00005 name=/u01/app/oracle/oradata/orcl/tb1.dbf
输入数据文件 fno=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf
通道 ORA_DISK_1: 正在启动段 1 于 13-10月-11
通道 ORA_DISK_1: 已完成段 1 于 13-10月-11
段句柄=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_10_13/o1_mf_nnndf_TAG20111013T131009_79dwokbc_.bkp 标记=TAG20111013T131009 注释=NONE
通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:35
完成 backup 于 13-10月-11
启动 Control File and SPFILE Autobackup 于 13-10月-11
段 handle=/u01/app/oracle/flash_recovery_area/ORCL/autobackup/2011_10_13/o1_mf_s_764428246_79dwpq2f_.bkp comment=NONE
完成 Control File and SPFILE Autobackup 于 13-10月-11
RMAN> delete script fullbak;
删除脚本
- RMAN> delete script fullbak;
- 已删除脚本: fullbak
RMAN> delete script fullbak;
已删除脚本: fullbak
显示脚本内容
- RMAN> print script fullbak;
- 正在打印存储的脚本: fullbak
- {backup database; }
RMAN> print script fullbak;
正在打印存储的脚本: fullbak
{backup database; }
列出所有脚本
- RMAN> list script names;
- 恢复目录中存储脚本的列表
- 目标数据库 ORCL 的脚本
- 脚本名
- 说明
- -----------------------------------------------------------------------
- fullbak
RMAN> list script names;
恢复目录中存储脚本的列表
目标数据库 ORCL 的脚本
脚本名
说明
-----------------------------------------------------------------------
fullbak
管理恢复目录
卸载:RMAN> unregister database;
同步:RMAN> resync catalog;
升级(注意升级要运行两次):RMAN> upgrade catalog;删除:RMAN> drop catalog;
查询恢复目录
查询恢复目录中注册的数据库
[sql] view plaincopyprint?
- SQL> conn rman/rman
- 已连接。
- SQL> select * from rc_database;
- DB_KEY DBINC_KEY DBID NAME RESETLOGS_CHANGE# RESETLOGS_TIME
- ---------- ---------- ---------- -------- ----------------- --------------
- 1 2 1292118315 ORCL 474701 12-10月-11
SQL> conn rman/rman
已连接。
SQL> select * from rc_database;
DB_KEY DBINC_KEY DBID NAME RESETLOGS_CHANGE# RESETLOGS_TIME
---------- ---------- ---------- -------- ----------------- --------------
1 2 1292118315 ORCL 474701 12-10月-11
查询恢复目录中所记载的目标数据库的表空间信息
[sql] view plaincopyprint?
- SQL> select * from rc_tablespace;
- DB_KEY DBINC_KEY DB_NAME TS# NAME CREATION_CHANGE# CREATION_TIME DROP_CHANGE# DROP_TIME INC BIG TEM ENC
- ---------- ---------- -------- ---------- ------------------------------ ---------------- -------------- ------------ -------------- --- --- --- ---
- 1 2 ORCL 0 SYSTEM 7 17-2月 -08 YES NO NO
- 1 2 ORCL 1 UNDOTBS1 462458 17-2月 -08 YES NO NO
- 1 2 ORCL 2 SYSAUX 6677 17-2月 -08 YES NO NO
- 1 2 ORCL 3 TEMP 464713 12-10月-11 NO NO YES
- 1 2 ORCL 4 USERS 10753 17-2月 -08 YES NO NO
- 1 2 ORCL 6 TB1 474104 12-10月-11 YES NO NO
- 1 2 ORCL 7 RMAN 478417 13-10月-11 YES NO NO
- 已选择7行。
SQL> select * from rc_tablespace;
DB_KEY DBINC_KEY DB_NAME TS# NAME CREATION_CHANGE# CREATION_TIME DROP_CHANGE# DROP_TIME INC BIG TEM ENC
---------- ---------- -------- ---------- ------------------------------ ---------------- -------------- ------------ -------------- --- --- --- ---
1 2 ORCL 0 SYSTEM 7 17-2月 -08 YES NO NO
1 2 ORCL 1 UNDOTBS1 462458 17-2月 -08 YES NO NO
1 2 ORCL 2 SYSAUX 6677 17-2月 -08 YES NO NO
1 2 ORCL 3 TEMP 464713 12-10月-11 NO NO YES
1 2 ORCL 4 USERS 10753 17-2月 -08 YES NO NO
1 2 ORCL 6 TB1 474104 12-10月-11 YES NO NO
1 2 ORCL 7 RMAN 478417 13-10月-11 YES NO NO
已选择7行。
查询恢复目录中所记载的目标数据库的数据文件信息
[sql] view plaincopyprint?
- SQL> select DB_KEY,DBINC_KEY,DB_NAME,TS#,TABLESPACE_NAME,FILE#,NAME from rc_datafile;
- DB_KEY DBINC_KEY DB_NAME TS# TABLESPACE_NAME FILE# NAME
- ---------- ---------- -------- ---------- ------------------------------ ---------- ------------------------------------------------------------
- 1 2 ORCL 0 SYSTEM 1 /u01/app/oracle/oradata/orcl/system01.dbf
- 1 2 ORCL 1 UNDOTBS1 2 /u01/app/oracle/oradata/orcl/undotbs01.dbf
- 1 2 ORCL 2 SYSAUX 3 /u01/app/oracle/oradata/orcl/sysaux01.dbf
- 1 2 ORCL 4 USERS 4 /u01/app/oracle/oradata/orcl/users01.dbf
- 1 2 ORCL 6 TB1 5 /u01/app/oracle/oradata/orcl/tb1.dbf
- 1 2 ORCL 7 RMAN 6 /u01/app/oracle/oradata/orcl/rman1.dbf
- 已选择6行。
SQL> select DB_KEY,DBINC_KEY,DB_NAME,TS#,TABLESPACE_NAME,FILE#,NAME from rc_datafile;
DB_KEY DBINC_KEY DB_NAME TS# TABLESPACE_NAME FILE# NAME
---------- ---------- -------- ---------- ------------------------------ ---------- ------------------------------------------------------------
1 2 ORCL 0 SYSTEM 1 /u01/app/oracle/oradata/orcl/system01.dbf
1 2 ORCL 1 UNDOTBS1 2 /u01/app/oracle/oradata/orcl/undotbs01.dbf
1 2 ORCL 2 SYSAUX 3 /u01/app/oracle/oradata/orcl/sysaux01.dbf
1 2 ORCL 4 USERS 4 /u01/app/oracle/oradata/orcl/users01.dbf
1 2 ORCL 6 TB1 5 /u01/app/oracle/oradata/orcl/tb1.dbf
1 2 ORCL 7 RMAN 6 /u01/app/oracle/oradata/orcl/rman1.dbf
已选择6行。
查询恢复目录中所记载的存储脚本信息
[sql] view plaincopyprint?
- SQL> select * from rc_stored_script;
- DB_KEY DB_NAME SCRIPT_NAME SCRIPT_COMMENT
- ---------- -------- --------------- --------------------
- 1 ORCL fullbak
SQL> select * from rc_stored_script;
DB_KEY DB_NAME SCRIPT_NAME SCRIPT_COMMENT
---------- -------- --------------- --------------------
1 ORCL fullbak
查询恢复目录中所记载的存储脚本内容
[sql] view plaincopyprint?
- SQL> select * from rc_stored_script_line;
- DB_KEY SCRIPT_NAME LINE TEXT
- ---------- --------------- ---------- ------------------------------
- 1 fullbak 1 {backup database; }