控制文件测试

  百度百科:控制文件(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. 第4章 最基础的分类算法-k近邻算法

    思想极度简单 应用数学知识少 效果好(缺点?) 可以解释机器学习算法使用过程中的很多细节问题 更完整的刻画机器学习应用的流程 distances = [] for x_train in X_train ...

  2. 配置单机Kafka

    配置单机kafka 关闭selinux,开启防火墙9092端口 1.关闭selinux vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXT ...

  3. 获取Class实例的方式与类加载器

    1. java.lang.Class:   是反射的源头 2.如何获取Class的实例(3种) 3.关于类的加载器 TestReflection2 package com.aff.reflection ...

  4. JBoss 5.x/6.x 反序列化漏洞(CVE-2017-12149)复现

    0x00 漏洞介绍 该漏洞为 Java反序列化错误类型,存在于 Jboss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中.该过滤器在没有进行任何安全检查的情 ...

  5. 【docker系列2】docker 的前世今生

    Docker 入门,共 3 篇,将带大家进入 Docker 的世界.首先了解 Docker 的发展历程, 然后快速掌握 Docker 的基本使用: Docker 版本及内核兼容性选择是这部分的重点内容 ...

  6. Windows平台搭建Git服务教程详解

    引言 软件企业的核心就是代码,如何确保代码的安全?如何在团队开发中协同工作?为解决这些问题,我们需要采用相应的管理工具来满足管理的需求.探长从最初的VSS.SVN.TFS到现在的Git存储一路走来,感 ...

  7. Spring boot Sample 004之spring-boot-configuration-yaml

    一.环境 1.1.Idea 2020.1 1.2.JDK 1.8 二.目的 通过yaml文件配置spring boot 属性文件 三.步骤 3.1.点击File -> New Project - ...

  8. Rocket - decode - SimplifyDC

    https://mp.weixin.qq.com/s/4uWqBRrMVG6FlnBKmw8U-w   介绍SimplifyDC如何简化解码逻辑.     1. 使用   ​​   简化从mint和m ...

  9. meta个人学习纪录

    < meta > 元素 元素可提供相关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词. 标签位于文档的头部,不包含任何内容. 标签的属性定义了与 ...

  10. Java IO实现文件(及文件夹)的复制 原创代码【精】

    单个文件复制 FileInputStream input=new FileInputStream("C://360//fay.jpg"); FileOutputStream out ...