苏州网站建设推广案例,2021国外免费服务器,网站开发是否交印花税,微商城手机网站控制文件是一个很小的二进制文件(10MB左右)#xff0c;含有数据库结构信息#xff0c;包括数据文件和日志文件信息。控制文件在数据库创建时被自动创建#xff0c;并在数据库发生物理变数时更新。控制文件被不断更新#xff0c;在任何时候都要保证控制文件可用#xff0c;… 控制文件是一个很小的二进制文件(10MB左右)含有数据库结构信息包括数据文件和日志文件信息。控制文件在数据库创建时被自动创建并在数据库发生物理变数时更新。控制文件被不断更新在任何时候都要保证控制文件可用否则数据库将无法启动或者使用。 1 控制文件包含的主要信息如下 数据库名称和SID标识 数据文件和日志文件列表 数据库创建的时间戳 表空间信息 当前重做日志文件序列号 归档日志信息 检查点信息 回滚段的起始与结束 备份数据文件信息 控制文件包含了如此多的重要信息需要保护并及时备份控制文件以便它被损坏或者磁盘介质损货时能够及时恢复。目前保护控制文件的主要策略为多路复用控制文件与备份控制文件。 2 查看目前系统的控制文件信息主要是查看相关的字典视图 v$controlfile 包含所有控制文件的名称和状态信息 v$controlfile_record_section 包含控制文件中各个记录文档段的信息 v$parameter 包含了系统所有初始化参数可以查询到control_files的信息 3 控制文件的多路复用 为了提高数据库的安全性至少要为数据库建立两个控制文件而且这两个文件最好分别放在不同的磁盘中这样可以避免产生由于某个磁盘故障而无法启动数据库的危险该管理策略称为多路复用控制文件。当多路复用控制文件某个磁盘发生故障导致其包含的控制文件损坏数据库将被关闭或者发生异常此时可以用另一磁盘中保存的控制文件来恢复被损坏的控制位文件然后再重启数据库达到保护控制文件的目的。 数据库建立时一般会默认创建两个控制文件我们可以手动的再创建多个控制文件且不要与默认的放在同一个磁盘中首先我们可以修改control_files参数来增加控制文件。 3.1 更改CONTROL_FILES alter system set control_files /usr/oracle/app/oradata/orcl/control01.ctl,/usr/oracle/app/flash_recovery_area/orcl/control02.ctl,/home/oracle/ControlFiles/control03.ctl,/home/oracle/ControlFiles/control04.ctlscopespfile; 上面的代码中前3个控制文件已经创建好第4个文件是用户将要手动添加的但是目前还没有创建该文件创建该文件前需要关闭数据库然后将第1个复制过去即可 3.2 复制控制文件 其实添加控制文件就是将之前可用的控制文件复制过去重命名即可首先我们需要关闭数据库然后将/usr/oracle/app/oradata/orcl/control01.ctl 复制为/home/oracle/ControlFiles/control04.ctl即可 复制完之后再重启数据库重启之后查询v$control_files; 到此我们控制文件多路复用的操作完成过程中需要注意的就是必须先关闭数据库才能把可用的控制文件复制过去如果没有关闭就复制过去在重启的时候会报错原控制文件与新增的不一致的错误 ORA-00214: control file /usr/oracle/app/oradata/orcl/control01.ctl version7136 inconsistent with file /home/oracle/ControlFiles/control04.ctl version7133 4 创建控制文件 当数据库所有的控制文件都丢失或者损坏唯一补救方法就是手动创建一个新的控制文件。创建的语法如下 create controlfile reuse database db_name logfile group 1 redofiles_list1 group 2 redofiles_list2 group 3 redofiles_list3 ... datafile datafile1 datafile2 datafile3 ... maxlogfiles max_value1 maxlogmembers max_value2 maxinstances max_value3 maxdatafiles max_value4 noresetlogs|resetlogs archivelog|noarchivelog; db_name: 数据名称通常是orcl redofiles_list: 重做日志组中的重做日志文件列表 datafile1: 数据文件路径 max_value1: 最大的重做日志文件数这是一个永久性参数一旦设置就不能修改如果想要修改只有重建控制文件 4.1 创建过程 创建之前要先对数据文件与重做日志文件备份因为创建过程中可能会引起某些异常导致数据文件与日志文件损坏。 查看日志文件v$logfile 查看数据文件 根据上面的查询可以得到文件所在的路劲然后备份日志文件与数据文件备份之前一定先关闭数据库不然会卡死或者出现异常情况。进入到数据文件与日志文件所在目录测试系统正好这两个文件都在一个文件夹下直接使用 cp 命令把它们备份到其他磁盘的文件夹下即可 备份完之后将数据启动到nomount状态即启动但不加载数据库因为加载数据库时实例将会打开控制文件无法达到创建新控制文件的效果。 数据库启动到nomount状态之后执行create controlfile 命令 create controlfilereuse database orcllogfile group 1 /usr/oracle/app/oradata/orcl/redo01.log,group 2 /usr/oracle/app/oradata/orcl/redo02.log,group 3 /usr/oracle/app/oradata/orcl/redo03.logdatafile/usr/oracle/app/oradata/orcl/system01.dbf,/usr/oracle/app/oradata/orcl/sysaux01.dbf,/usr/oracle/app/oradata/orcl/undotbs01.dbf,/usr/oracle/app/oradata/orcl/users01.dbf,/usr/oracle/app/oradata/orcl/CTRR_DATA.dbf maxlogfiles 50maxlogmembers 4maxinstances 6maxdatafiles 200noresetlogsnoarchivelog; 执行创建命令之后新的控制文件还是被存放在原来的文件下可以尝试备份然后将之前的控制文件删掉会发现原来的文件下名字一样的控制文件又出现了编辑SPFILE 文件中的初始化参数 CONTROL_FILES使其指向新建的控制文件 alter system set control_files /usr/oracle/app/oradata/orcl/control01.ctl,/usr/oracle/app/flash_recovery_area/orcl/control02.ctlscopespfile; 5 备份恢复控制文件 5.1 备份控制文件 直接将当前可用的任意一个多路复用下的控制文件复制到你想要备份的路劲即可 我们可以将控制文件备份成一个可读的数据文件然后就可以查看里面的具体内容 alter database backup controlfile to trace; --备份成可读的文本文件此方法备份之后可以查看控制文件的具体内容首先使用语句 select tracefile from v$process where addr in (select paddr from v$session where sid in (select sid from v$mystat)); 可以获取到备份之后的文件路劲与名称 得到路径之后我们可以在linux去查看备份文件的具体内容 将其拷贝出来主要内容就是创建控制文件的语法 5.2 恢复控制文件 当控制文件所在磁盘损坏只需要在初始化文件中重新设置control_files参数的值使它指向备份的控制文件就可以重启数据库但是要保证control_files下对应的路劲下所有的控制文件版本一致才行不然会报错误 如果是控制文件本身损坏我们可以将备份文件复制到对应的目录下然后重启数据库即可。 转载于:https://www.cnblogs.com/Latiny/p/6703141.html