`
wsql
  • 浏览: 11778295 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

12.2号------11G模拟在归档模式下冷备和恢复

 
阅读更多

1.冷备在数据库关闭的状态下把所有数据库文件给复制到别的目录下。

在这里可以对数据库执行一些操作(比如建一个表,向里面插入相应的值,主要是为了,恢复之后可以看到效果)

2.模拟数据库文件被删除。把dbf文件删除。

3.进入数据库的mount状态下。

查看数据库文件头的scn号。

select file#,name,checkpoint_change#from v$datafile_header;

可以看到什么都没有。

4.查看控制文件中的数据文件的检查点

select file# ,name,checkpoint_change# from v$datafile;

可以看到有相应的文件信息

因为v$datafile和v$datafile_header两个视图的信息来源不一样。
v$datafile的信息是直接从控制文件中得到的。v$datafile_header的信息是直接从数据文件头中取到的。数据文件都被删除了当然找不到相应的值了。

6.现在打开数据库。

alterdatabase open;会报错

从这个图中可以看到,需要system01.dbf数据文件。我们就把刚才备份的文件拷到这个目录下。

7.拷好之后执行两个命令

select file#,name,checkpoint_change# from v$datafile_header;

select checkpoint_change# from v$database;

从这个图中可以看到。scn号不相同,因为这个数据文件是刚才备份的那个,所以现在scn当然不相同了。现在的主要工作就是通过归档文件把数据库文件的scn恢复到当前的scn就可以了。

现在就可以恢复了

8.通过v$recover_file视图查看需要恢复哪些数据库

select file#,error,change#,onine_status from v$recover_file;

下面这个sql语句可以看到归档日志的详细信息。

select name,first_change#,next_change#,status from v$archive_log;

可以从scn号看出从哪个归档日志进行恢复

9.现在执行恢复命令

recover datafile 1;

10.现在可以查看数据文件头的scn号

可以看到现在的scn号已经和当前scn差不多,(可能会一点不一样,那是因为最新的数据还没有更新到这里,只在内存中改变了)

11.在把其它的数据文件拷过来。

recover database;

12.现在启动数据库,就大功告成了

alter database open;

13.现在就可以查询到在备份之后修改的内容了。

14.现在的所有的scn号也一致了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics