控制文件中记录了oracle数据库的物理结构,也就是记录了数据库数据文件和日志文件的位置,控制文件中还记录了多种SCN,用这些SCN来确定数据文件和日志文件是否是正确的。如果不正确那么数据库就需要恢复
启动数据库有三个状态
nomount 加载参数文件启动实例
mount 加载控制文件
open 根据控制文件加载数据文件和日志文件

一、Oracle控制文件多路复用

查询控制文件路径

SYS@zwcdb:~>SELECT name FROM v$controlfile;

NAME

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/primarydb/control01.ctl

/u01/app/oracle/oradata/primarydb/control02.ctl

/u01/app/oracle/oradata/primarydb/control03.ctl

修改spfile

SYS@zwcdb:~>ALTER system SET control_files=

2  '/u01/app/oracle/oradata/primarydb/control01.ctl',

3  '/u01/app/oracle/oradata/primarydb/control02.ctl',

4  '/u01/app/oracle/oradata/primarydb/control03.ctl',

5  '/u01/app/control04.ctl' scope=spfile;

System altered.

关闭数据库,复制控制文件至/u01/app下

SYS@zwcdb:~>shutdown immediate

DATABASE closed.

DATABASE dismounted.

ORACLE instance shut down.

SYS@zwcdb:~>exit

Disconnected FROM Oracle DATABASE 10g Enterprise Edition Release 10.2.0.1.0 - Production

WITH the Partitioning, OLAP AND DATA Mining options

[oracle@zwc ~]$ cp /u01/app/oracle/oradata/primarydb/control01.ctl /u01/app/control04.ctl

重新启动数据库并验证

[oracle@zwc ~]$ sqlplus / AS sysdba

SQL*Plus: Release 10.2.0.1.0 - Production ON Fri Jan 6 10:35:05 2012

Copyright (c) 1982, 2005, Oracle.  ALL rights reserved.

Connected TO an idle instance.

SYS@zwcdb:~>startup

ORACLE instance started.

Total System Global Area  285212672 bytes

Fixed SIZE                  1218992 bytes

Variable SIZE              92276304 bytes

DATABASE Buffers          188743680 bytes

Redo Buffers                2973696 bytes

DATABASE mounted.

DATABASE opened.

SYS@zwcdb:~>

SYS@zwcdb:~>SELECT name FROM v$controlfile;

NAME

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/primarydb/control01.ctl

/u01/app/oracle/oradata/primarydb/control02.ctl

/u01/app/oracle/oradata/primarydb/control03.ctl

/u01/app/control04.ctl

SYS@zwcdb:~>SELECT VALUE FROM v$spparameter WHERE name='control_files';

VALUE

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/primarydb/control01.ctl

/u01/app/oracle/oradata/primarydb/control02.ctl

/u01/app/oracle/oradata/primarydb/control03.ctl

/u01/app/control04.ctl

二、Oracle备份重建控制文件

建议在数据文件或者日志文件发生变化时对控制文件进行备份,在这之前备份的控制文件会被标记为已过时。 可以使用alter database bacup controlfile命令进行备份,备份方式有两种,一种是备份为二进制文件;另一种是备份为脚本文件

将控制文件备份到二进制文件

SYS@zwcdb:~>alter database backup controlfile to '/u01/app/control.bak.ctl';

Database altered.

SYS@zwcdb:~>!ls -lh /u01/app/control*

-rw-r-----  1 oracle oinstall 6.8M Jan  6 10:52 /u01/app/control04.ctl

-rw-r-----  1 oracle oinstall 6.8M Jan  6 10:51 /u01/app/control.bak.ctl

控制文件转储为脚本

SYS@zwcdb:~>oradebug setmypid

Statement processed.

SYS@zwcdb:~>ALTER DATABASE backup controlfile TO trace;

DATABASE altered.

SYS@zwcdb:~>oradebug tracefile_name

/u01/app/oracle/admin/primarydb/udump/zwcdb_ora_3401.trc

查看zwcdb_ora_3401.trc文件内容会发现以下两段脚本,区别在于第一段是noresetlogs,第二段是resetlogs。这里日志组不需要重建,所以将使用noresetlogs
MAXLOGFILES 16 表示最大日志文件个数为16
MAXLOGMEMBERS 3 表示日志文件组的成员是3个
MAXDATAFILES 100 表示最大的数据文件个数是100
MAXINSTANCES 8 表示最大实例个数是8
MAXLOGHISTORY 292 表示最大的历史日志文件个数是292

CREATE CONTROLFILE REUSE DATABASE "ZWCDB" NORESETLOGS  ARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 292

LOGFILE

GROUP 1 '/u01/app/oracle/oradata/primarydb/redo01.log'  SIZE 50M,

GROUP 2 '/u01/app/oracle/oradata/primarydb/redo02.log'  SIZE 50M,

GROUP 3 '/u01/app/oracle/oradata/primarydb/redo03.log'  SIZE 50M

-- STANDBY LOGFILE

DATAFILE

'/u01/app/oracle/oradata/primarydb/system01.dbf',

'/u01/app/oracle/oradata/primarydb/undotbs01.dbf',

'/u01/app/oracle/oradata/primarydb/sysaux01.dbf',

'/u01/app/oracle/oradata/primarydb/users01.dbf',

'/u01/app/oracle/oradata/primarydb/example01.dbf'

CHARACTER SET ZHS16GBK

;

resetlogs

CREATE CONTROLFILE REUSE DATABASE "ZWCDB" RESETLOGS  ARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 292

LOGFILE

GROUP 1 '/u01/app/oracle/oradata/primarydb/redo01.log'  SIZE 50M,

GROUP 2 '/u01/app/oracle/oradata/primarydb/redo02.log'  SIZE 50M,

GROUP 3 '/u01/app/oracle/oradata/primarydb/redo03.log'  SIZE 50M

-- STANDBY LOGFILE

DATAFILE

'/u01/app/oracle/oradata/primarydb/system01.dbf',

'/u01/app/oracle/oradata/primarydb/undotbs01.dbf',

'/u01/app/oracle/oradata/primarydb/sysaux01.dbf',

'/u01/app/oracle/oradata/primarydb/users01.dbf',

'/u01/app/oracle/oradata/primarydb/example01.dbf'

CHARACTER SET ZHS16GBK

;

模拟控制文件丢失

[oracle@zwc app]$ rm -rf control04.ctl

[oracle@zwc app]$ rm -rf /u01/app/oracle/oradata/primarydb/control0*

[oracle@zwc app]$ sqlplus / AS sysdba

SQL*Plus: Release 10.2.0.1.0 - Production ON Fri Jan 6 11:02:55 2012

Copyright (c) 1982, 2005, Oracle.  ALL rights reserved.

Connected TO:

Oracle DATABASE 10g Enterprise Edition Release 10.2.0.1.0 - Production

WITH the Partitioning, OLAP AND DATA Mining options

SYS@zwcdb:~>shutdown abort

ORACLE instance shut down.

重建控制文件

[oracle@zwc app]$ sqlplus / AS sysdba

SQL*Plus: Release 10.2.0.1.0 - Production ON Fri Jan 6 11:07:00 2012

Copyright (c) 1982, 2005, Oracle.  ALL rights reserved.

Connected TO an idle instance.

SYS@zwcdb:~>startup nomount

ORACLE instance started.

Total System Global Area  285212672 bytes

Fixed SIZE                  1218992 bytes

Variable SIZE              92276304 bytes

DATABASE Buffers          188743680 bytes

Redo Buffers                2973696 bytes

SYS@zwcdb:~>CREATE CONTROLFILE REUSE DATABASE "ZWCDB" NORESETLOGS  ARCHIVELOG

2  MAXLOGFILES 16

3  MAXLOGMEMBERS 3

4  MAXDATAFILES 100

5  MAXINSTANCES 8

6  MAXLOGHISTORY 292

7  LOGFILE

8  GROUP 1 '/u01/app/oracle/oradata/primarydb/redo01.log'  SIZE 50M,

9  GROUP 2 '/u01/app/oracle/oradata/primarydb/redo02.log'  SIZE 50M,

10  GROUP 3 '/u01/app/oracle/oradata/primarydb/redo03.log'  SIZE 50M

11  DATAFILE

12  '/u01/app/oracle/oradata/primarydb/system01.dbf',

13  '/u01/app/oracle/oradata/primarydb/undotbs01.dbf',

14  '/u01/app/oracle/oradata/primarydb/sysaux01.dbf',

15  '/u01/app/oracle/oradata/primarydb/users01.dbf',

16  '/u01/app/oracle/oradata/primarydb/example01.dbf'

17  CHARACTER SET ZHS16GBK

18  ;

Control file created.

SYS@zwcdb:~>RECOVER DATABASE;

Media recovery complete.

SYS@zwcdb:~>ALTER SYSTEM ARCHIVE LOG ALL;

System altered.

SYS@zwcdb:~>ALTER DATABASE OPEN;

DATABASE altered.

SYS@zwcdb:~>ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/primarydb/temp01.dbf'

2  SIZE 20971520  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;

Tablespace altered.

[oracle@zwc ~]$ sqlplus / AS sysdba

SQL*Plus: Release 10.2.0.1.0 - Production ON Fri Jan 6 11:12:42 2012

Copyright (c) 1982, 2005, Oracle.  ALL rights reserved.

Connected TO:

Oracle DATABASE 10g Enterprise Edition Release 10.2.0.1.0 - Production

WITH the Partitioning, OLAP AND DATA Mining options

SYS@zwcdb:~>SELECT open_mode,log_mode FROM v$database;

OPEN_MODE  LOG_MODE

---------- ------------

READ WRITE ARCHIVELOG

SYS@zwcdb:~>SELECT name FROM v$controlfile;

NAME

--------------------------------------------------------------------------------

/u01/app/oracle/oradata/primarydb/control01.ctl

/u01/app/oracle/oradata/primarydb/control02.ctl

/u01/app/oracle/oradata/primarydb/control03.ctl

/u01/app/control04.ctl

SYS@zwcdb:~>!ls /u01/app/control*

/u01/app/control04.ctl  /u01/app/control.bak.ctl

SYS@zwcdb:~>!ls $ORACLE_BASE/oradata/primarydb/con*

/u01/app/oracle/oradata/primarydb/control01.ctl  /u01/app/oracle/oradata/primarydb/control02.ctl  /u01/app/oracle/oradata/primarydb/control03.ctl

SYS@zwcdb:~>conn scott/tiger@zwcdb

Connected.

SCOTT@zwcdb:~>SELECT tname FROM tab;

TNAME

------------------------------

DEPT

EMP

BONUS

SALGRADE

Oracle控制文件多路复用以及Oracle备份重建控制文件的更多相关文章

  1. Python组织文件 实践:将文件的不同版本备份为ZIP文件

    功能:备份文件夹.能将文件的不同版本备份下来,并且每个有不同的名字 #! python3 # backupToZip.py - 备份文件的不同版本到压缩文件中 import zipfile,os #f ...

  2. 【翻译自mos文章】在重建控制文件之前应该考虑的事情

    在重建控制文件之前应该考虑的事情 来源于: Things to Consider Before Recreating the Controlfile (文档 ID 1475632.1) 适用于: Or ...

  3. Oracle 重建控制文件一例

    环境:OEL 5.7 + Oracle 10.2.0.5 背景:在Oracle的运维过程中,时常会遇到一些场景是需要重建控制文件才可以解决的.本文的场景可以通过复制控制文件到新路径,运行一段时间后,再 ...

  4. oracle之 利用 controlfile trace文件重建控制文件

    一. 11g RAC 重建控制文件 1. --"create controlfile"命令生成到追踪文件中:alter database backup controlfile to ...

  5. oracle 控制文件多路复用

    网上有很多关于控制文件的操作,我大概看了下.有很多都是炒来炒去转来转去.下面以自己理解和操作为例来对oracle的控制文件进行下介绍. 首先介绍下控制文件 在oralce数据库中,控制文件是一个很小的 ...

  6. 【Oracle】RAC控制文件多路复用

    1.—关闭数据库,各个节点都要关闭: [oracle@rac1 ~]$ srvctl stop database -d racdb -o immediate 2.—启动任一节点到nomount状态: ...

  7. Oracle数据库控制文件多路复用

    Oracle数据库控制文件多路复用多路复用控制文件,指的是在系统不同的位置上同时存放多个控制文件的副本,此时如果某个路径对应的磁盘发送物理损坏导致该控制文件损坏,就可以通过另一个磁盘上的控制文件进行恢 ...

  8. Oracle 重建控制文件

    前些天在做Oracle数据库恢复测试时,因为一些异常操作导致控制文件出了问题,数据库无法正常使用,这里记录一下重建控制文件的操作 一.使用sysdba用户登入数据库 此时普通用户已无法链接数据库 二. ...

  9. 【Oracle】利用trace文件重建控制文件

    重建步骤: 1.生成trace文件: alter database backup controlfile to trace; 2.找到生成的trace文件: show parameter dump u ...

随机推荐

  1. Pytorch系列之常用基础操作

    各种张量初始化 创建特殊类型的tensor a = torch.FloatTensor(2,3) a = torch.DoubleTensor(2,3) ... 设置pytorch中tensor的默认 ...

  2. 哔哩哔哩批量采集器(支持windows和mac)

    链接:https://pan.baidu.com/s/1jW2ea0Cl1xL5xN9DuB8Fcw  密码:klyw

  3. SpringBoot整合Swagger2详细教程

    1. 简介   随着前后端分离开发模式越来越流行,编写接口文档变成了开发人员非常头疼的事.而Swagger是一个规范且完整的web框架,用于生成.描述.调用可视化的RESTful风格的在线接口文档,并 ...

  4. Java内存模型(MESI、内存屏障、volatile和锁及final内存语义)

    JMM (Java内存模型) Java线程的实现 实现线程主要有三种方式,Java线程从JDK1.3后采用第一种方式实现: 使用内核线程实现(1:1实现) 使用用户线程实现(1:N实现) 使用用户线程 ...

  5. java.net.BindException:Problem binding to [hostname:8088]地址已在使用

    异常提示端口号被占用 查找被占用的端口 netstat -tln netstat -tln | grep 8083 netstat -tln ## 查看端口使用情况,而netstat -tln | g ...

  6. Spring Boot 2.4版本前后的分组配置变化及对多环境配置结构的影响

    前几天在<Spring Boot 2.4 对多环境配置的支持更改>一文中,给大家讲解了Spring Boot 2.4版本对多环境配置的配置变化.除此之外,还有一些其他配置变化,所以今天我们 ...

  7. 给小白整理的一篇Python知识点

    1.基本概念 1.1 四种类型 python中数有四种类型:整数.长整数.浮点数和复数. python中数有四种类型:整数.长整数.浮点数和复数. 整数, 如 1 长整数 是比较大的整数 浮点数 如 ...

  8. matlab随机系数矩阵产生以及矩阵的可视化函数

    clc; clear all; close all; n = 100;%所产生矩阵的大小 A= sprandsym(n,0.015,0.1,1);%产生系数矩阵函数: spy(A)矩阵图形化相当于im ...

  9. webform中ajax.ajaxMethod使用方法

    前言 dll文件 如果还没有ajax.dll文件,就先下载一个来 引用 将ajax.dll添加到项目引用中:在VS的解决方案资源管理器中右键点击项目名称--"添加项目引用"--浏览 ...

  10. RocketMQ(九):主从同步的实现

    分布式系统的三大理论CAP就不说了,但是作为分布式消息系统的rocketmq, 主从功能是最最基础的了.也许该功能现在已经不是很常用了,但是对于我们理解一些分布式系统的常用工作原理还是有些积极意义的. ...