ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 控制文件维护(三)

控制文件维护(三)

原创 Linux操作系统 作者:pingley 时间:2012-03-04 15:56:53 0 删除 编辑
控制文件维护(三)
备份控制文件:
正所谓浓缩是精华,控制文件对于数据库来说非常的重要。所以应该在每一次改变数据库的物理结构前备份控制文件。这些数据库物理结构的改变包括:
1、增加,删除,重命名数据文件。
2、增加,删除,一个表空间,或者改变表空间的读写状态。
3、增加,删除重做日志文件或者重做日志组。
备份控制文件方法:
1、把控制文件备份成二进制文件,也就是现存控制文件的副本。
SQL> alter database backup controlfile to '/home/oracle/backup/control.bk';
Database altered.
2、生成以后可以用来重建空间文件的SQL脚本。
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
当然也可以采用操作系统文件级别的备份。对应备份的副本最好妥善保存在其他磁盘中。
在不同的磁盘上维护多份控制文件的意义:
每一个数据库应该至少有两份控制文件,并且存放在不同的磁盘上。以便使用没有损坏的控制文件副本来恢复损坏丢失的控制文件。当发现其中的一个控制文件所在的磁盘出现故障的时候或者其中的一份控制文件不可用应该马上shutdown abort实例。
我先把我的数据库中的一个控制文件mv到其他位置。再执行下面的命令。
SQL> shutdown immediate
Database closed.
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/opt/oracle11g/oradata/oracl/control01.ctl'
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3
SQL> shutdown abort
ORACLE instance shut down.
SQL> shutdown abort
ORACLE instance shut down.
关闭实例后尝试打开数据库失败。
SQL> startup
ORACLE instance started.
Total System Global Area  418484224 bytes
Fixed Size                  1336932 bytes
Variable Size             222300572 bytes
Database Buffers          188743680 bytes
Redo Buffers                6103040 bytes
ORA-00205: error in identifying control file, check alert log for more info
出现上面的错误的原因是实例根据control_files初始化参数找不到与初始化参数规定的一致的控制文件。此时数据库将不能够被open。我在把缺失的控制文件mv回去。使用下面的命令打开数据库。
SQL> alter database mount;
Database altered.
SQL> alter database open;
Database altered.
oracle对多个控制文件的维护:
1、oracle将会把数据文件信息,重做日志信息等写入control_files指定的所有的控制文件中。保证多份控制文件的一致性。
2、在数据库运行期间只会读control_files指定的数据文件中的第一个。因为多份控制文件都是一致的。
3、如果任何一个数据文件不可用,实例将不能操作应该shutdown abort。
维护控制文件的多个副本的意义就在于,如果其中一个损坏或者丢失,可以通过其他的副本来还原回来。并且这些副本应该分布在不同的磁盘上,提高可用性。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26110315/viewspace-717647/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2012-02-06

  • 博文量
    169
  • 访问量
    721357