oracle数据库通过控制文件保持数据库的完整性,一旦控制文件被破坏数据库将无法启动,因此建议采用多路控制文件或者备份控制文件的方法。
控制文件是数据库建立的时候自动生成的二进制文件,只能通过实例进行修改,如果手动修改的话会造成控制文件与物理信息不符合,从而导致数据库不能正常工作。
控制文件主要包括下面内容:
1.控制文件所属数据库的名字,一个控制文件只能属一个数据库
2.数据库创建时间
3.数据文件的名称,位置,联机,脱机状态信息
4.所有表空间信息
5.当前日志序列号
6.最近检查点信息
其中,数据库名称,标识和创建时间在数据库创建时写入;数据文件和重做日志名称和位置在增加,重命名或者删除的时候更新;表空间信息在增加或者删除表空间的时候进行更新。
在初始化参数文件中control_files参数主要来描述控制文件的文件名跟物理路径,
如下所示:
control_files=("d:\oracle\oradata\oradb\control01.ctl")
该参数只设置一个,也可以设置多个,如下所示:
control_files=('d:\oracle\oradata\oradb\control01.ctl',
'd:\oracle\oradata\oradb\control02.ctl',
'd:oracle\oradata\oradb\control03.ctl')
这个方法叫做多路控制文件,oracle可以利用这个方法恢复被破坏的控制文件,oracle最多允许设置8个多路控制文件。
必须所有的多路控制文件都完整正确数据库才能正常启动,只要丢失一个或者一个内容不正确数据库就不能顺利启动。
对控制文件的管理原则:
1.明确控制文件的名称和存储路径
参数设置错误将无法打开数据库,数据库打开以后,实例将同时写入所有的控制文件但是只会读取第一个控制文件的内容。
2.为数据库创建多路控制文件
a.多路控制文件内容必须完全一样,oracle实例同时将内容写入到control_files变量所设置的控制文件中。
b.初始化参数control_files中列出的第一个文件是数据库运行期间唯一可读取的控制文件。
c.创建,恢复和备份控制文件必须在数据库关闭的状态下运行,这样才能保证操作过程中控制文件不被修改。
d.数据库运行期间如果一个控制文件变为不可用,那么实例将不再运行,应该终止这个实例,并对破坏的控制文件进行修复。
3.将多路控制文件放在不同的硬盘上
4.采用操作系统镜像方式备份控制文件
5.手工方式备份控制文件
应该及时备份特别是发生了如下的操作的时候:
添加删除重命名数据文件
添加删除表空间,改变表空间读写状态
添加删除重做日志文件
如果手工备份不及时的话,就会产生备份的控制文件与正在使用的控制文件不一致,那么利用备份的控制文件启动数据库时会破坏数据库的一致性完整性,甚至不能启动数据库,因此手工备份控制文件要注意及时备份。
创建多路控制文件
利用spfile文件创建多路控制文件
(spfile以二进制文本形式存在,不能用vi等编辑器对其中参数进行修改。文件格式为spfileSID.ora。如果要对spfile文件进行修改,可以采用SQL语言)
1.利用SYS帐号登陆SQL*PLUS,查询一下控制文件信息视图
SQL>select name from v$controlfile;
结果显示为:
NAME
----------------------------------
d:\oracle\oradata\oradb\control01.ctl
d:\oracle\oradata\oradb\control02.ctl
d:\oracle\oradata\oradb\control03.ctl
这里列出了控制文件的名称以及位置
2.更改spfile中控制文件的信息:(增加了一个新的控制文件)
SQL>alter system set control_files=
'd:\oracle\oradata\oradb\control01.ctl',
'd:\oracle\oradata\oradb\control02.ctl',
'd:\oracle\oradata\oradb\control03.ctl',
'd:\oracle\oradata\oradb\control04.ctl'
scope=spfile
结果显示为:
系统已经更改。
(第二步的操作需要注意的是:进行这些操作,必须是在DB启动的时候,否则会弹出“ORACLE not available”错误。)
3.关闭数据库
4.在操作系统中将已有的控制文件复制,修改名称保存到刚才增加控制文件的指定位置。(这步必须做的,否则数据库无法启动)
5.重新启动控制文件,使控制文件改变生效。
6.还可以使用pfile的方法来修改控制文件,使用create pfile from spfile;来生成pfile,然后使用vi等编辑器编译pfile,先手工拷贝控制文件修改相应的名称,然后把新的控制文件的路径增加到pfile中,使用pfile启动数据库,然后使用pfile创建spfile即可.
管理控制文件
备份控制文件
SQL> alter database backup controlfile to ‘d:\20080326.ctl’
SQL> alter database backup controlfile to trace;(备份创建控制文件的脚本)
数据库已更改。
然后从这个备份的位置直接把文件拷贝回之前的目录覆盖就好了。
删除控制文件(删除某一路的控制文件)
spfile文件
1.利用SYS帐号登陆SQL*PLUS,查询一下控制文件信息视图
SQL>select name from v$controlfile;
结果显示为:
NAME
----------------------------------
d:oracle\oradata\oradb\control01.ctl
d:oracle\oradata\oradb\control02.ctl
d:oracle\oradata\oradb\control03.ctl
d:oracle\oradata\oradb\control04.ctl
这里列出了控制文件的名称以及位置
2.更改spfile中控制文件的信息,删除一个新的控制文件
SQL>alter system set control_files=
'd:oracle\oradata\oradb\control01.ctl',
'd:oracle\oradata\oradb\control02.ctl',
'd:oracle\oradata\oradb\control03.ctl',
scope=spfile
结果显示为:
系统已经更改。
3.关闭数据库
4.在操作系统中删除控制文件
5.重新启动数据库,使控制文件生效
备注:http://oracle.chinaitlab.com/exploiture/821870.html原文地址
分享到:
相关推荐
Oracle 11g控制文件全部丢失从零开始重建控制文件,如果丢失了所有的控制文件并且没有任何的备份,我们可以通过重建控制文件来打开数据库。其中,重建控制文件至少需要以下信息: 1.数据库名 2.字符集 3.数据文件...
本文将详细介绍Oracle控制文件的建立、修改、删除以及移动等操作。 #### 一、控制文件概述 控制文件是Oracle数据库的一个二进制文件,它包含了数据库的物理结构信息,如数据文件的名字和位置、重做日志文件的位置...
Oracle控制文件是数据库的核心组件,它是Oracle数据库系统中不可或缺的一部分,负责存储数据库的元数据,如数据库名、创建时间、数据文件和重做日志的位置、表空间信息、日志历史记录、RMAN备份信息、当前日志序列号...
根据提供的文档信息,本文将重点围绕“Oracle控制文件的备份和恢复”这一核心主题展开,深入探讨控制文件的重要性、备份方法及其恢复过程。 ### Oracle控制文件的重要性和作用 Oracle数据库控制文件是数据库的一个...
本文将深入探讨Oracle控制文件的备份与恢复,以确保数据库的安全性和可恢复性。 首先,我们需要理解控制文件的重要性。控制文件是Oracle数据库启动和恢复过程的关键组件,它包含了数据库的所有物理组件的位置信息,...
### Oracle控制文件丢失恢复策略 #### 一、Oracle控制文件的重要性及作用 在Oracle数据库系统中,控制文件(Control File)是极其重要的组成部分之一。它主要负责记录数据库的物理结构信息,包括数据文件(Data Files...
Oracle 案例:损坏控制文件的恢复方法 Oracle 数据库的控制文件是数据库的核心组件之一,对数据库的正常运行起着至关重要的作用。然而,控制文件的损坏可能会导致数据库无法启动或出错。因此,了解如何恢复损坏的...
Oracle 控制文件恢復 Oracle 控制文件是 Oracle 数据库的关键组件之一,它记录着数据库的结构和状态信息。当控制文件丢失时,数据库将无法启动和运行。在这种情况下,我们需要恢复控制文件,以便恢复数据库的正常...
### 更改控制文件的路径(Oracle 9i) 在Oracle 9i中,更改控制文件的路径是一项重要的数据库管理任务,这有助于优化数据库性能、提高数据安全性以及方便维护工作。以下将详细介绍整个过程中的关键步骤及其背后的...
在Oracle数据库系统中,控制文件是至关重要的组件之一,它记录了数据库的元数据信息,如数据文件的位置、表空间信息、Redo日志文件等。这篇博客文章和附带的SQL脚本主要关注如何在Oracle环境中管理和操作控制文件,...
### Oracle 断电导致控制文件不一致报错 ORA-00214 处理方法 #### 问题概述 在Oracle数据库管理过程中,遇到控制文件版本不一致的问题时,通常会收到ORA-00214错误提示。此错误表示数据库中的一个或多个控制文件与...
控制文件对于Oralce数据库的作用,就好像...如果数据库控制文件发生孙华的话,则Oracle将无法正常启动。通常情况下,在创建数据库时会自动创建控制文件;并且当数据库的结构发生变化时,也会自动修改自动文件的内容。
### Oracle实验报告:管理控制文件 #### 实验背景与目的 在Oracle数据库系统中,控制文件扮演着极其重要的角色。它记录了数据库的物理结构,包括数据文件、重做日志文件的位置信息以及数据库实例的状态等关键信息...
- **作用**:初始化参数文件,用于控制数据库实例的启动参数。 - **内容**:包含了如内存大小限制、进程数量等关键参数。 - **位置**:可以放在任意位置,但通常存储于Oracle主目录下。 ### Oracle配置文件示例...
"控制文件多路复用管理在Oracle中的实现" 控制文件在 Oracle 数据库中扮演着非常重要的角色,它是数据库的核心组件之一。如果控制文件出现了损坏,可能会导致数据库无法正常启动。因此,作为 Oracle 数据库管理员,...
本篇文章将详细介绍如何安全有效地将Oracle数据库的数据文件、控制文件以及重做日志文件等关键组件移动到新的存储路径上。通过这种方式,不仅可以解决存储空间不足的问题,还能实现系统扩容后的数据存储路径调整,...