备份恢复11——表空间时间点恢复

  1. 云栖社区>
  2. 博客>
  3. 正文

备份恢复11——表空间时间点恢复

长烟慢慢 2012-05-18 21:15:52 浏览430
展开阅读全文

1、用户管理的表空间时间点恢复

介绍几个概念:

恢复集(recovery set ):恢复集是指在主数据库上需要执行tspitr的表空间集合。注意,当在恢复集的表空间上执行tspitr时,要求这些表空间必须是自包含的。

辅助数据库(auxiliary database): 辅助数据库是主数据库的一个副本数据库。当执行tspitr时,辅助数据库用于将恢复集表空间恢复到过去的时间点。注意,辅助数据库的所有物理文件都是从主数据库备份中取得得,并且辅助数据库必须包含system表空间、undo表空间以及恢复集表空间的备份文件。

辅助集(auxiliary set )辅助集是指辅助数据库所需要的、除了恢复集表空间文件之外的其他文件集合。当执行tspitr时,辅助数据库除了需要恢复集表空间的备份文件之外,还需要备份控制文件,system表空间的备份文件,undo表空间的备份文件。

步骤:

1、检查恢复集表空间是否是自包含的。

                       具体方法参照以前的博客

2、检查是否存在恢复集表空间的数据文件备份。

通过查询主数据库的数据字典视图DBA_DATA_FILES,可以确定恢复集表空间所包含的数据文件。示例:

SQL> select file_name from dba_data_files  where tablespace_name= 'user01';

在确定了恢复集表空间所包含的数据文件之后,读者应该确定该数据文件是否存在备份数据文件。注意,其备份文件必须是tspitr时间点之前的备份的数据文件。

3、检查是否存在辅助集的数据文件和控制文件备份。

通过查询主数据库的数据字典视图DBA_DATA_FILES 可以确定辅助集所包含的数据文件,通过查询动态性能视图v$controlfile 可以确定辅助集所包含的控制文件。示例如下:

SQL> select file_name from dba_data_files where tablespace_name in ('system'  ,' undotbs1')

 union

select max(name ) from  v$controlfile;


如上所示,辅助集应该包含两个数据文件system01.dbf 和 undotbs01.dbf。 另外还应该包含一个或多个控制文件,在确定了辅助集所包含的数据文件和控制文件之后,应该确定是否存在一个相应的数据文件备份和控制文件备份。注意,他们的备份文件必须是在tspitr时间点之前的备份文件。

4、检查tspitr之后丢失的对象。

对于恢复集表空间的对象而言,当执行了tspitr之后,在恢复时间之后被建立的对象将会丢失,通过产销主数据库的数据字典视图TS_PITR_OBJECTS_TO_BE_DROPPED,可以确定在执行了tspitr之后被丢失的对象。示例如下:
SQL> select owner,name from ts_pitr_objects_to_be_dropped where tablespace_name = 'user01' and creation_time>to_date('2004-9-27 11:25:21 ' , 'yyyy-mm-dd hh24:mi:ss' );

如上所示,当执行了tspitr之后,会丢失scott.employee。如果改变必须被保留,则应该在执行tspitr之前,使用exp或expdp导出改变的数据结构和数据。执行完tspitr之后再用imp或impdp导入该表。

准备数据库:

1、准备user01表空间,user02表空间及示例表。

具体操作不写了。

2、备份主数据库的所有数据文件和控制文件。

当执行tspitr时,需要使用主数据库的备份文件建立辅助数据库。因此,在继续后面的准备工作以前。首先需要备份所有数据文件和控制文件。如果使用用户管理的表空间时间点恢复,则必须存在用户管理的数据库备份。

如果要使用rman管理的表空间时间点恢复,则必须使用rman备份所有数据文件和控制文件。示例:

RMAN >run {

 backup  database format= 'd:\backup\%d_%s.bak';

sql 'alter system archive log current ';

}

3、 在主数据库上执行dml,为示例表customers和sales增加数据。并多次手工切换日志。


接着显示现在时间,之后对sales表插入数据并提交。

3、实现用户管理的tspitr:

在10g中,通过结合辅助数据库、exp和imp。dba可以实现tspitr。具体步骤如下:

1、建立辅助实例的参数文件。当启动实例时,必须听欧冠呢相应的参数文件。同样,当启动辅助实例时,也必须提供辅助实例的参数文件,现在主数据库上使用cretate pfile 命令为辅助实例建立参数文件,然后手工编辑相应的初始化参数。

































网友评论

登录后评论
0/500
评论
长烟慢慢
+ 关注