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之后丢失的对象。
准备数据库:
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 命令为辅助实例建立参数文件,然后手工编辑相应的初始化参数。