| 
                         管理控制文件: 在mount状态第一次被加载,open之后时刻在变 如果丢失,需要还原和恢复 生产库推荐控制文件至少2个 记录数据库的物理信息,属性,行为的二进制文件 数据库正常工作至少需要一个控制文件,最多可以同时指定8个控制文件 控制文件的位置和数量由初始化参数决定(control_files) 所有的控制文件都是镜像关系
  查看控制文件: nomount: show parameter control_files mount: select name from v$controlfile;
  控制文件种所包含的记录片段有哪些? select TYPE,RECORD_SIZE,RECORDS_TOTAL,RECORDS_USED from v$controlfile_record_section;
  ORA-00205: error in identifying control file,check alert log for more info
  show parameter background_dump_dest
  控制文件多路复用(多元化): mount时使用多个控制文件 alter system set control_files= '/u01/app/oracle/oradata/madrid/control01.ctl', '/u01/app/oracle/oradata/madrid/control02.ctl' scope=spfile;
  shut immediate cp /u01/app/oracle/oradata/madrid/control02.ctl /u01/app/oracle/oradata/madrid/control01.ctl startup
  移动控制文件: alter system set control_files= '/u01/app/oracle/oradata/madrid/control01.ctl', '/u02/app/oracle/oradata/madrid/control02.ctl' scope=spfile;
  shut immediate mv /u01/app/oracle/oradata/madrid/control02.ctl /u02/app/oracle/oradata/madrid/control02.ctl startup
  控制文件改名: alter system set control_files= '/u01/app/oracle/oradata/madrid/ctl01', '/u02/app/oracle/oradata/madrid/ctl02' scope=spfile;
  shut immediate mv /u01/app/oracle/oradata/madrid/control01.ctl /u01/app/oracle/oradata/madrid/ctl01 mv /u01/app/oracle/oradata/madrid/control02.ctl /u01/app/oracle/oradata/madrid/ctl02 startup
  减少控制文件: alter system set control_files= '/u01/app/oracle/oradata/madrid/ctl01' scope=spfile; shut immediate startup
  重建控制文件: [root@oracle0 ~]# lsof | grep /u01/app/oracle/oradata/madrid/control01.ctl
  cd /proc/5132/fd/
  256 -> /u01/app/oracle/oradata/madrid/control01.ctl (deleted) cp 256 /home/oracle/control01.ctl cp /home/oracle/control01.ctl /u01/app/oracle/oradata/madrid/control01.ctl cp /home/oracle/control01.ctl /u01/app/oracle/oradata/madrid/control02.ctl chown oracle.oinstall /u01/app/oracle/oradata/madrid/*.ctl
  为什么控制文件可以被重建? 因为控制文件种最核心的信息就是所有数据文件头的信息!只要数据文件存在,就可以被重建控制文件!
  重建控制文件的时候datafile的指针不能少(少就丢数据) create controlfile reuse database madrid noresetlogs noarchivelog datafile '/u01/app/oracle/oradata/madrid/system01.dbf', '/u01/app/oracle/oradata/madrid/sysaux01.dbf', '/u01/app/oracle/oradata/madrid/undo01.dbf' logfile '/u01/app/oracle/oradata/madrid/redo01.log', '/u01/app/oracle/oradata/madrid/redo02.log', '/u01/app/oracle/oradata/madrid/redo03.log';
  SQL> recover database; SQL> alter database open; SQL> alter tablespace temp add tempfile '/u01/app/oracle/oradata/madrid/temp01.dbf' reuse;  
   
另外实践:  
(5)重建控制文件(联机日志没有丢)##############注意先后顺序#############select name from v$controlfile;路径trace #### shutdown abort ###########shutdowm immediate;rm rf /u01/app/oracle/oradata/db01/control01.ctl;rm -rf /home/oracle/control02.ctlstartup(可能报错 执行shutdown abort)select status from v$instance;重建控制文件的时候datafile的指针不能少(少就丢数据)create controlfile reuse database db01 noresetlogs noarchivelogdatafile'/u01/app/oracle/oradata/db01/system01.dbf','/u01/app/oracle/oradata/db01/sysaux01.dbf','/u01/app/oracle/oradata/db01/undo01.dbf'logfile'/u01/app/oracle/oradata/db01/redo01.log','/u01/app/oracle/oradata/db01/redo02.log','/u01/app/oracle/oradata/db01/redo03.log';select status from v$instance;alter database open;select status from v$instance;alter tablespace temp add tempfile '/u01/app/oracle/oradata/db01/temp01.dbf' reuse;(6)控制文件和联机日志都丢失情况下##############注意先后顺序#############模拟实验:select name from v$controlfile;shutdown immediate; (先关机在删除控制文件和日志文件)rm -rf /u01/app/oracle/oradata/db01/control01.ctlrm -rf /home/oracle/control02.ctlrm -rf /u01/app/oracle/oradata/db01/redo01.logrm -rf /u01/app/oracle/oradata/db01/redo02.logrm -rf /u01/app/oracle/oradata/db01/redo03.logselect name from v$controlfile;select status from v$instance;shutdown immediate;create controlfile reuse database db01 resetlogs noarchivelogdatafile'/u01/app/oracle/oradata/db01/system01.dbf','/u01/app/oracle/oradata/db01/undo01.dbf'logfilegroup 1 '/u01/app/oracle/oradata/db01/redo01.log' size 50m,group 2 '/u01/app/oracle/oradata/db01/redo02.log' size 50m,group 3 '/u01/app/oracle/oradata/db01/redo03.log' size 50m;alter database open resetlogs;select status from v$instance;alter tablespace temp add tempfile '/u01/app/oracle/oradata/db01/temp01.dbf' size 50m;                         (编辑:莱芜站长网) 
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! 
                     |