控制文件、重做日志文件的多路复用及执行恢复

控制文件多路复用
查看控制文件信息: show parameter control_files

 select * from v$controlfile;


 调解默认加载的控制文件/多路复用控制文件:基于spfile的
 首先:alter  system set control_files='/u01/app/oracle/oradata/crab/c 
ontrol01.ctl',

'/u01/app/oracle/  flash_recovery_area/CRAB/control02.ctl'    scope=spfile;


 然后:shutdown immediate;关闭数据库 
 再然后:物理移动文件   cp  
/u01/app/oracle/oradata/crab/c ontrol01.ctl  /u01/app/oracle/  flash_recovery_area/CRAB/control02.ctl
 最后:启动实例 打开数据库  show parameter control_file;


控制文件的执行恢复

控制文件部分丢失:


1.关闭数据库shutdown abort

2.复制存在的给丢失的 :

启动数据库 实例启动阶段 nomount阶段

查看控制文件信息 :select name from v$controlfile; 或 show parameter control_files

查看丢失的文件,复制给丢失的 :ho   cp ·········

alter database mount;

alter database open;


全部丢失


利用RMAN备份恢复。    前提是你之前备份过控制文件:backup current controlfile;

或利用脚本重建控制文件

shutdown abort

startup nomount


目录< ho ls /u01/app/oracle/flash_recovery_area/CRAB/backupset/2014_06_30 

找到控制文件备份,带ncnnf  : o1_mf_ncnnf_TAG20140630T085420_9v1f9xkv_.bkp

进入rman :  rman target/          


RMAN> restore controlfile from '/u01/app/oracle/flash_recovery_area/CRAB/backupset/2014_06_30/o1_mf_ncnnf_TAG20140630T085420_9v1f9xkv_.bkp';

完成之后:

RMAN> alter database mount;

RMAN> recover database;

RMAN> alter database open resetlogs;


 重做日志文件多路复用

1.查看重做日志文件路径:
select member from v$logfile;

2.查看状态及分组情况
select group#,status from v$log; 
3.添加组成员

sys@CRABalter database add logfile member '/u01/app/oracle/flash_recovery_area/CRAB/redo01.log' to group 1

数据库已更改。 

sys@CRAB< alter database add logfile member '/u01/app/oracle/flash_recovery_area/CRAB/redo02.log' to group 2; 

数据库已更改。 

sys@CRAB< alter database add logfile member '/u01/app/oracle/flash_recovery_area/CRAB/redo03.log' to group 3; 

数据库已更改。

 select group#,members from v$log;

GROUP# MEMBERS
------ -------
     1          2
     2          2
     3          2

其他命令:

添加组:

alter database add logfile
('D:/oracle/product/10.1.0/oradata/orcl/redo06a.log',
'e:/oracle/product/10.1.0/oradata/orcl/redo06b.log') size 10m;

 

 

重命名日志文件:

alter database rename file 
'D:/oracle/product/10.1.0/oradata/orcl/redo04b.log'
to
'e:/oracle/product/10.1.0/oradata/orcl/redo04b.log';

 

 

 

删除组成员:

alter database drop logfile member
'e:/oracle/product/10.1.0/oradata/orcl/redo04b.log';

删除组:

alter database drop logfile 
'e:/oracle/product/10.1.0/oradata/orcl/redo01.log';

/

alter database drop logfile group 1;

清空:

alter database clear logfile
'e:/oracle/product/10.1.0/oradata/orcl/redo01.log';

 

切换日志:

alter system switch logfile;

 

重做日志文件的执行恢复

查看组:
SQL> select group#,members from v$log;

    GROUP# MEMBERS
---------- ----------
  1 2
  2 2
  3 2
SQL> select member from v$logfile;
查看路径:
MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/crab/redo03.log
/u01/app/oracle/oradata/crab/redo02.log
/u01/app/oracle/oradata/crab/redo01.log
/u01/app/oracle/flash_recovery_area/CRAB/redo01.log
/u01/app/oracle/flash_recovery_area/CRAB/redo02.log
/u01/app/oracle/flash_recovery_area/CRAB/redo03.log

模拟丢失 02:
SQL> ho rm /u01/app/oracle/oradata/crab/redo02.log   

切换日志:
alter system switch logfile;

查看状态:
SQL> select group#,status from v$log;   --察看Redo日志的状态,一般有unused,current,active,inactive  

    GROUP# STATUS
---------- ----------------
  1 INACTIVE
  2 CURRENT
  3 INACTIVE



看状态,执行下面步骤:
UNUSED INACTIVE--->   alter database clear logfile  group N;


ACTIVE                    ------->alter system checkpoint;
                                            alter database clear logfile group n;

CURRENT      ---->alter system switch logfile;
                              alter system checkpoint;
                     alter database clear logfile group n;



当前日志文件用上述方法不能恢复的话使用:(不完全恢复数据库)
                                              startup mount;     --启动实例,装载数据库,但不打开数据库,可以开始操作控制文件、日志文件、数据文件等
                                      recover database until cancel;    
                                     alter database open resetlogs; 重建日志文件自动生成3个。
                                     archive log list;             查看序号是否为最新生成,从1开始。

      

                  使用alter system switch logfile; 测试是否日志发生了切换。
      


利用重建控制文件脚本迁移控制文件到ASM中的方法 10g11g12c通用

1.查看ASM磁盘组 
select name from v$asm_diskgroup;

2.生成控制文件建立脚本
alter database  backup controlfile to trace as'/tmp/c.sql';

3.设置control_file路径
alter system set control_files='+db','+fra' scope=spfile;


4.一致性关闭数据库
shutdown immidate

5.修改脚本c.sql 
vi打开 找到
 End of tempfile additions. 之后的行都删除

-- End of tempfile additions.
6. 登陆执行脚本 
sqlplus / as sysdba
@ /tmp/c.sql

7.等待完成,查询验证。
select name from v$asm_diskgroup;



此方法10g11g12c通用.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值