数据库备份恢复--catalog目录
恢复目录
1.控制文件存储备份元数据的缺陷
2.控制文件容量有限,不能永久的保存 例如只保存7天的备份元数据
rman恢复的时候,针对损坏,可以计算出来恢复的最佳路径
1、找到最新的备份
2、找到足够的归档
3、进行数据库的还原和恢复
RMAN在恢复的过程很智能,自动判断使用那些备份进行恢复,这些备份在什么位置
rman智能的前提
1、控制文件中备份元数据
2、控制文件中有redo log信息
3、控制文件中有归档信息
假设控制文件损坏损坏,使用旧的控制文件,但是控制文件无法知道备份之后的元数据
在恢复以前,我们需要让控制文件变得智能,就需要将所有的备份元数据catalog到控制文件中,这个需要我们手工去找
#长期存储备份元数据
#控制文件损坏,备份元数据依然存在
catalog数据库
1.普通pcserver,安装linux,dbca建立一个普通数据库
2.将所有的生产数据库的控制文件中备份元数据同步到上面的数据库中
3.catlog数据库性能很低,不影响生产
4.控制文件中的元数据不是实时同步到catalog数据库,需要手工同步
5.即使有了catalog数据库,备份元数据在控制文件中还是存在,只不过实在catlog中多了一个副本
前提:建立一个普通的数据库
1.这个需要在catlog数据库上执行,需要创建一个表空间users
SQL> create user rman identified by rman default tablespace users quota unlimited on users;
SQL> grant recovery_catalog_owner to rman;
2.在生产数据库上面,配置tnsnames catalog,指向catalog数据库
CATALOG =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.112)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = catalog)
)
)
3.连接生产和catalog数据库
[oracle@Perfmonitor2 admin]$ rman target / catalog rman/rman@catalog
4.这个在所有的生产数据库上,只需要在一台生产数据库上执行一次即可,//这个会在catalog数据库中建立一些用来存储备份元数据的一些表
RMAN> create catalog tablespace users;
recovery catalog created
5.将生产数据库注册到catalog数据库中,这个需要在每一个生产数据库上都执行一次
RMAN> register database;
database registered in recovery catalog
starting full resync of recovery catalog
full resync complete
6.手工触发将控制文件元数据同步到catalog数据库中
RMAN> RESYNC CATALOG;
starting full resync of recovery catalog
full resync complete
7.每次连接,都会触发将控制文件中的元数据同步到catlog数据库中
RMAN> rman target / catalog rman/rman@catalog