控制文件测试

  百度百科:控制文件(Control File)是Oracle的物理文件之一,它记录了数据库的名字、数据文件的位置等信息。控制文件的重要性在于,一旦控制文件损坏,数据库将会宕机。如果没有数据库的备份和归档日志文件,数据库将无法恢复。因此,我们应该多路镜像控制文件(Multiplex Control Files),并把每个镜像的控制文件分布在不同的物理磁盘。根据经验,控制文件多路镜像以后,几个控制文件同时坏掉的可能性几乎为零。控制文件管理的重心是重在预防,而不是亡羊补牢

多路复用控制文件:
1.查看此时数据库的控制文件情况
SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/control01.ctl
/u01/app/oracle/fast_recovery_area/orcl/control02.ctl

2.模拟控制文件损坏,mv掉控制文件01
[root@orcl orcl]# mv control01.ctl control01

3.重启数据库
SQL> shutdown immediate
SQL> startup
ORACLE instance started.

Total System Global Area 763363328 bytes
Fixed Size 8797440 bytes
Variable Size 570426112 bytes
Database Buffers 176160768 bytes
Redo Buffers 7979008 bytes
ORA-00205: error in identifying control file, check alert log for more info

4.重新覆盖控制文件
SQL> show parameter control_files

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /u01/app/oracle/oradata/orcl/c
ontrol01.ctl, /u01/app/oracle/
fast_recovery_area/orcl/contro
l02.ctl
复制另一个控制文件到control01.ctl
[oracle@ orcl]# cp control02.ctl /u01/app/oracle/oradata/orcl/control01.ctl

5.启动数据库
SQL> startup
ORACLE instance started.

Total System Global Area 763363328 bytes
Fixed Size 8797440 bytes
Variable Size 570426112 bytes
Database Buffers 176160768 bytes
Redo Buffers 7979008 bytes
ORA-00214: control file '/u01/app/oracle/fast_recovery_area/orcl/control02.ctl'
version 3251 inconsistent with file
'/u01/app/oracle/oradata/orcl/control01.ctl' version 3225

此时控制文件02的version3251要新与01的version3225,中间做了操作,导致控制文件02版本是更新的,所以重新复制02到01控制文件

6.再次覆盖控制文件
[oracle@orcl ~]$ ! cp /u01/app/oracle/fast_recovery_area/orcl/control02.ctl /u01/app/oracle/oradata/orcl/control01.ctl

7.重启数据库
SQL> shutdown immediate

SQL> startup
ORACLE instance started.

Total System Global Area 763363328 bytes
Fixed Size 8797440 bytes
Variable Size 570426112 bytes
Database Buffers 176160768 bytes
Redo Buffers 7979008 bytes
Database mounted.
Database opened.

******************************************************************************************************************************************

查看数据库有几个控制文件,将所有的控制文件都模拟损坏
1.移走所有的控制文件
SQL> show parameter control_files

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_files string /u01/app/oracle/oradata/orcl/c
ontrol01.ctl, /u01/app/oracle/
fast_recovery_area/orcl/contro
l02.ctl
[root@orcl orcl]# mv control01.ctl /tmp
[root@orcl orcl]# mv control02.ctl /tmp

2.重启数据库测试
SQL> shutdown immediate
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/u01/app/oracle/oradata/orcl/control01.ctl'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3

SQL> shutdown abort
ORACLE instance shut down.

SQL> startup
ORACLE instance started.

Total System Global Area 763363328 bytes
Fixed Size 8797440 bytes
Variable Size 570426112 bytes
Database Buffers 176160768 bytes
Redo Buffers 7979008 bytes
ORA-00205: error in identifying control file, check alert log for more info

3.现在所有的控制文件都已经被损坏,首先查看rman是否开启自动备份,然后通过自动备份恢复
RMAN> show all;
CONFIGURE CONTROLFILE AUTOBACKUP ON; # default

4.启动到nomount
RMAN> shutdown immediate

RMAN> startup nomount

5.还原自动备份的控制文件
RMAN> restore controlfile from autobackup;

RMAN> alter database mount;

RMAN> recover database;

RMAN> alter database open resetlogs;

controlfile的情景恢复的更多相关文章

  1. controlfile与备份恢复

    controlfile与备份恢复     数据库正常关闭,trace controlfile信息.   ************************************************ ...

  2. rman全库恢复到不同主机,不同实例名,不同目录下

    一.配置目标主机的ip.hostname及与源端主机的连通性 1.配置目标主机IP 使用图形界面配置IP: administration----network---修改IP(指定静态IP) deact ...

  3. Oracle RMAN 学习:恢复

    Oracle RMAN 学习:恢复 6 rman恢复 Rman中的恢复对应restore,recover Restore,数据修复,利用备份集的数据文件来替换已损坏的数据文件或将其恢复到另外一个位置, ...

  4. Oracle 无备份情况下的恢复--临时文件/在线重做日志/ORA-00205

    13.5 恢复临时文件 临时文件没有也不应该备份.通过V$TEMPFILE可以找到所有的临时文件. 此类文件的损坏会造成需要使用临时表空间的命令执行失败,不至于造成实例崩溃或session中断.由于临 ...

  5. oracle问题之数据库恢复(三)

    可能很多人在做数据库恢复时,都遇到过如下错误: SQL> recover database; ORA: recovery session canceled due to errors ORA: ...

  6. ORA 各种oraclesql错误

    ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最大会话许可数 ORA-00020: 超出 ...

  7. oracle 错误代码大全

    oracle错误代码大全(超详细)   ORA-00001: 违反唯一约束条件 (.) ORA-00017: 请求会话以设置跟踪事件 ORA-00018: 超出最大会话数 ORA-00019: 超出最 ...

  8. (转载)数据库出现ORA-00283/ORA-01610的问题

    在这里需要感谢棉花糖给予无私帮助,真的谢谢他!http://blog.itpub.net/67668/viewspace-353270/处理过程可以参照http://www.itpub.net/vie ...

  9. SQL错误码

    ///////////////////////////////////////////////////////////////ORA-00001: 违反唯一约束条件 (.)ORA-00017: 请求会 ...

随机推荐

  1. POJ1733

    题目链接:https://vjudge.net/problem/POJ-1733 解题思路:并查集+离散化 AC代码: #include <iostream> #include <c ...

  2. 【MySQL】剖析MySQL读写分离技术

    主从技术的一个基本流程图: 如何实现主从复制的呢: MySQL  Master(主节点) 1>当一个请求来时,首先由[mysqld]写入到我们的主[data]中 2>然后[mysqld]将 ...

  3. docker 日志查看与清洗

    Linux下查看磁盘与目录的容量——df.du df:列出文件系统的整体磁盘使用量: du:评估文件系统的磁盘使用量(常用于评估目录所占容量) df参数: -a:列出所有的文件系统,包括系统特有的/p ...

  4. [Python基础]002.语法(1)

    语法(1) 变量 基本数据类型 空值 布尔值 数字 字符串 列表 元组 字典 结构嵌套 变量 定义变量 i = 10 这样就定义了一个名为 i 的变量,它的值是 10 . 变量名必须是大小写英文.数字 ...

  5. GDI泄漏排查经验零散总结

    1.GDI对象以及释放方法: GDI对象 产生方法 销毁方法 位图(HBITMAP) CreateBitmap,CreateBitmapIndirect, CreateCompatibleBitmap ...

  6. Java IO(五)字节流 FileInputStream 和 FileOutputStream

    Java IO(五)字节流 FileInputStream 和 FileOutputStream 一.介绍 字节流 InputStream 和 OutputStream 是字节输入流和字节输出流的超类 ...

  7. 点击label时text输入框被选中

    当点击label标签时,能够选中与其对应的输入框,有2种方式,采用第一种时会产生太多的id,推荐第二种. <form action="03.php"> <labe ...

  8. 8.0 以上版本 mySQL数据库导致的命令行可连接,NaviCat不可连接的问题

    错误代码: client does not support authentication 原因: 没有开启Mysql的远程连接配置 解决办法: 1 使用命令行进入数据库 C:\Users\wushao ...

  9. Java实现 蓝桥杯 算法提高 快乐司机

    算法提高 快乐司机 时间限制:1.0s 内存限制:256.0MB 问题描述 "嘟嘟嘟嘟嘟嘟 喇叭响 我是汽车小司机 我是小司机 我为祖国运输忙 运输忙" 这是儿歌"快乐的 ...

  10. Java实现 LeetCode 200 岛屿数量

    200. 岛屿数量 给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量.一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的.你可以假设网格的四个边均被水包围. ...