Rman学习笔记一一、恢复目录概念
Rman备份时产生的历史备份信息可以存储在恢复目录中,它与放在数据库控制文件中的信息不同,恢复目录中的信息不会被定期清除
如果使用rman备份时,打开CONFIGURE CONTROLFILE AUTOBACKUP ON;则使用恢复目录毫无意义!但是,使用恢复目录是data guard备份环境和分割镜像备份split mirror的基本组成部分!
1、恢复目录数据库:恢复目录数据库是指专门用于存放护肤目录方案的oracle数据库,注意,如果使用恢复目录存放rman元数据,那么一定要将恢复目录存放到堵路的恢复目录数据库中,而不应该存放到目标数据库。
2、恢复目录所有者:是指在恢复目录数据库中用于管理恢复目录数据库对象的数据库用户,注意:恢复目录所有者必须具有recovery_catalog_owenr角色,并且恢复目录所有者不能是sys用户。
3、恢复目录方案:是指恢复目录数据库对象的集合,其名称世界就是恢复目录所有者的名称,为了建立恢复目录方案,必须在rman中以恢复目录所有者身份登录,然后执行createcatalog命令。
4、。规划恢复目录空间,在建立恢复目录之前,必须规划恢复目录所占用的空间,多数情况下,每个目标数据库的rman元数据每年大约占用15M的恢复目录空间,因此,如果恢复目录方案只存放一个目标数据库的rman元数据,那么每年大于需要15M空间,若果存放两个目标数据库的rman元数据,那么每年大约需要30M空间。
5、恢复目录的内容
存放数据文件、控制文件、归档日志、和spfile的备份集和备份片信息。
存放数据文件、控制文件、归档日志映像副本的信息。
存放目标数据库的物理结构信息。
存放数据库副本信息。
存放存储脚本信息。
6、恢复目录的优点:
存放多个目标数据库的rman元数据,目标数据库控制文件只能存放其自身数据库的rman元数据。而不能存放其他目标数据库的rman元数据。
存放同一个目标数据库不同副本的元数据。在执行了不完全恢复。用resetlogs选项打开目标数据库之后,会生成一个新的数据库副本。
存放目标数据库的历史元数据,如果使用目标数据库控制文件存放rman元数据,当时间达到初始化参数control_file_record_time的值时,rman元数据会被覆盖,如果使用恢复目录存放rman元数据,那么恢复目录可以永久保留rman元数据。
存放存储脚本,当使用目标数据库控制文件存放rman元数据时,不能建立存储脚本,如果使用恢复目录存放rman元数据,则可以建立存储脚本。
二、创建恢复目录
1、创建恢复目录表空间
createtablespace catalogdat datafile'D:\ORACLE\PRODUCT\10.2.0\ORADATA\catalogdat01.dbf'size10M autoextendonmaxsize1G;
2、创建恢复目录用户并授权
createuser rcat_user identifiedby rcat_user defaulttablespace catalogdat quotaunlimitedon catalogdat;
grantconnect ,resource,recovery_catalog_owner to rcat_user;
3、使用恢复目录用户连接到rman,创建恢复目录
rman catalog=rcat_user/rcat_user
恢复管理器: Release 10.2.0.1.0 - Production on 星期四 3月 13 21:17:102014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到恢复目录数据库
RMAN> create catalog tablespacecatalogdat;
恢复目录已创建
4、新连接数据库,使用sys与恢复目录用户同时连接到数据库来注册数据库
rman target=sys/yehavercatalog=rcat_user/rcat_user
恢复管理器: Release 10.2.0.1.0 - Production on 星期四 3月 13 21:23:562014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: WEIMING (DBID=1351497109)
连接到恢复目录数据库
RMAN> register database;
注册在恢复目录中的数据库
正在启动全部恢复目录的 resync
完成全部 resync
5、验证数据库是否注册成功
RMAN> report schema;
正在启动全部恢复目录的 resync
完成全部 resync
数据库方案报表
永久数据文件列表
===========================
文件大小 (MB) 表空间 回退段数据文件名称
---- -------- -------------------- -------------------------------
1 510 SYSTEM YES D:\ORACLE\PRODUCT\10.2.0\ORADATA\SYSTEM01.DBF
2 335 UNDOTBS1 YES D:\ORACLE\PRODUCT\10.2.0\ORADATA\UNDOTBS01.DBF
3 270 SYSAUX NO D:\ORACLE\PRODUCT\10.2.0\ORADATA\SYSAUX01.DBF
4 216 USERS NO D:\ORACLE\PRODUCT\10.2.0\ORADATA\USERS01.DBF
5 10 PERSON_LOB NO D:\ORACLE\PRODUCT\10.2.0\ORADATA\LOB01.DBF
6 10 PERSON_LOB NO D:\ORACLE\PRODUCT\10.2.0\ORADATA\LOB02.DBF
7 10 TBS_B NO D:\ORACLE\PRODUCT\10.2.0\ORADATA\TBS.DBF
8 10 CATALOGDAT NO D:\ORACLE\PRODUCT\10.2.0\ORADATA\CATALOGDAT01.DBF
临时文件列表
=======================
文件大小 (MB) 表空间 最大大小 (MB) 临时文件名称
---- -------- ------------------------------- --------------------
2 500 WM_TEST_TEMP_TBS 1000 D:\ORACLE\PRODUCT\10.2.0\ORADATA\UNDOTBS02.DBF
三、删除恢复目录与取消数据库注册
1、恢复目录的删除
RMAN> drop catalog;
恢复目录所有者是RCAT_USER
再输入一次 DROP CATALOG 命令来确认目录删除
RMAN> drop catalog;
恢复目录已删除
2、取消数据库的注册
RMAN> unregister database;
数据库名为 "orcl" 且 DBID 为 1351497109
是否确实要注销数据库 (输入 YES 或 NO)? yes
已从恢复目录中注销数据库
四、虚拟私有目录概念
所有用户需要使用相同rman用户才能访问所有注册到该该目录中的数据库信息;首先有目录安全问题,另外会导致目录无限扩张。而私用vpc(virtural private catalog)可以实现所有用户使用同一个恢复目录,以及对权限的控制。此只有11g才有!
五、创建vpc过程
1、创建用户并授权
createuser farouka identifiedby farouka defaulttablespace catalogdat quotaunlimitedon catalogdat;
grant recovery_catalog_ownerto farouka;
rman catalog=rcat_user/rcat_user
RMAN> grant catalog for database orcl tofarouka;
RMAN> grant register database tofarouka;
RMAN> exit
rman catalog=farouka/farouka
RMAN> create virtual catalog;
RMAN> exit
sqlplus / as sysdba
SQL> executercat_user.dbms_rcvcat.create_virtual_catalog;
六、恢复目录的升级
rman catalog=rcat_user/rcat_user
RMAN> upgrade catalog
恢复目录所有者是RCAT_USER
再输入一次 UPGRADE CATALOG 命令来确认目录升级
RMAN> upgrade catalog
恢复目录已升级到版本10.02.00.00
DBMS_RCVMAN 程序包升级为 10.02.00.00 版
DBMS_RCVCAT 程序包升级为 10.02.00.00 版
七、清除恢复目录中的记录
恢复目录会因为备份越多而增加,影响备份操作,需要定期删除,需要执行$ORACLE_HOME/rdbms/admin/prgrmanc.sql 来执行恢复目录的大小,一般一个数据库一年为15M
八、使用存储脚本
存储脚本用于存放频繁的备份、转储、和恢复操作。通过使用预先建立好的存储脚本,不仅可以避免操作人员执行交互操作时可能发生的错误,而且可以使系统自动执行备份操作。注意:存储脚本只能存放在恢复目录中。
1、建立存储脚本:用createscript命令来完成的,注意,当建立存储脚本时,必须同时连接到目标数据库和恢复目录。下面以建立用于备份数据库所有数据文件、控制文件和归档日志的存储脚本bak_database为例,说明。
C:\>rman catalog rman/rman@catdb target sys/liu123@mynewdb
RMAN> create script bak_database{
backupformat = 'd:\backup|%d_%s.bak'
databaseinclude current controlfile
plusarchivelog;
sql'alter system archive log current';
}
2、运行存储脚本
运行存储脚本有两种方法:第一种方法是在rman提示符下运行存储脚本,第二种方法是在命令行直接影响存储脚本,通过运行存储脚本,可以执行备份、转储、和恢复等操作。
1、在rman提示符下运行存储脚本。是使用executescript命令来完成的。注意,因为executescript命令时作业命令,所以必须在run块内指定该命令。RMAN >run{ execute script bak_database; }
2、在命令行运行存储脚本。是通过指定script选项来完成的,示例:
c:\>rman catalog rman/rman@catbd target sys/oracle@mynewdb scriptbak_dtyabase;
3、显示存储脚本内容,是使用printscript命令来完成的。示例:
RMAN>printscript bak_database;
4、替换存储脚本:使用replacescript命令来完成的。如果存储脚本内同不适合,那么使用replacescript可以替换其原来的内容。
RMAN>replacescript bak_database {
backupdatabase format = 'd:\backup\%d_%s.bak';
}
5、删除存储脚本:
使用deletescript命令来完成的,如果存储脚本不在需要,可以使用此命令删除:
RMAN> delete script bak_database;
6、列出所有存储脚本
是使用listscript names命令完成的:
RMAN > list scropt names;