前序:
要保证数据库的最大可恢复性,,必须多路复用 控制文件、联机重做日志文件、 归档日志文件(以归档日志模式运行数据库)
1 保护控制文件:
①控制文件多路复用,每个副本要放在不同的磁盘上,如果是在一台小型的pc机上面,那也要保证副本放在了不同的目录上。(最少应该保证两个副本,最多是8个副本),
② 在系统添加控制文件副本:
1 关闭数据库
shutdown immediate (normal / transactional );
2 复制控制文件副本
host copy control_dir_old control_dir_old
3 启动实例到未加载的状态
startup nomount;
4 修改control_files 参数
alter system set control_files= "control_dir_old,control_dir_new" scope=spfle;
5 重启数据库实例
shutdown immediate;
startup;
或者直接 startup force ; 相当于 shutdow
2 保护联机重做日志文件
① 数据库运行时至少需要两个联机日志文件组,每个日志文件组至少需要两个成员。
② 不能够丢失当前联机日志文件组的所有备份,因为实例崩溃后 smon进程 会使用当前联机日志文件组中的内容进行前滚恢复,如果一个成员不可用了,,那么就无法恢复实例。
③ 查看一下的当前数据库实例的日志文件状态。
日志文件组状态在v$log 视图中,, 日志文件成员状态存储在v$logfile 视图中,
select group#, sequence#, members,status from v$log;
select group# ,status, member from v$logfile;
第一个查询表明,有三个日志文件组,,文件组1 是当前用于归档的日志文件组,, sequence 列最大指13 说明进行了13次日志切换, 第二个查询是显示每个具体的日志文件组, 可以看到每个组只有一个日志文件成员,这是不对的,,应该马上予以修正, 每个日志文件组至少应该有两个成员(可以通过database control 添加)
正常情况下日志状态应为空, 为 stale 说明日志文件没有被用到,为 invalid 说明日志文件有问题。