控制文件的概述

1.控制文件是oracle数据库非常重要的物理文件,描述了整个数据库的物理结构信息,包括数据库名称、数据文件与重做日志文件的名称与位置,日志序列号等信息。数据库实例根据初始化参数CONTROL_FILES定位控制文件,

然后加载数据文件和重做日志文件,最后打开数据库。

在数据库运行和维护阶段,数据文件与重做日志文件的结构变化信息都记录在控制文件中。

2.控制文件的内容:

数据库的名称:该名称读取子DB_name或create database 语句中所使用的数据库名称

数据库的标识:是在创建数据库时oracle自动生成的。

数据库创建时间戳:该时间戳在创建数据库时生成的。

数据文件盒重做日志文件的名称与位置:

当前重做日志文件序列号:该序列号是在做重做日志切换时生成的。

数据库检查点信息:该信息是在数据库检查点事件发生时生成的。

重做日志历史信息:记录历史的重做日志文件信息。

归档日志文件的位置与状态:记录重做日志文件归档位置及归档状态

数据库备份的位置与状态:记录数据库备份信息,由恢复管理器(RMAN)记录的。

表空间信息:增加或删除表空间时,oracle会记录相应的修改信息。

3.控制文件的大小

控制文件的大小主要由可重用部分和不可重用部分组成。

(1)可重用部分主要由参数CONTROL_FILE_RECORD_KEEP_TIME来控制,该参数的默认值为7天,即可重用的部分内容保留7天,7天后这部分的内容就可能被覆盖。

(2)不可重用部分是有create database 或者是create controlfile语时设置的数据库最大化参数决定的。

控制文件的中的最大化参数主要有:

MAXLOGFILES:最大的重做日志文件组数量

MAXLOGMEMBERS:重做日志文件组中最大成员数量。

MAXLOGHISTORY:最大历史重做日志文件数量。

MAXDATAFILES:控制文件中最大数据文件记录数量。

MAXINSTANCES:可同时访问的数据库最大实例个数。

4.控制文件的管理策略:Oracle建议一个数据至少有两个控制文件,通过多路复用的技术,将多个控制文件分散到不同的磁盘中。这样可以避免由于一个控制文件的损坏而导致数据库的崩溃。

创建控制文件

首先可以通过查询control_files参数了解当前数据库所有控制文件的名称与位置:

  1. SQL> select value from v$parameter where name='control_files';
  2.  
  3. VALUE
  4. --------------------------------------------------------------------------------
  5.  
  6. E:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL,
    E:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL

  1.创建新的控制文件

数据创建完成后,如发生下面任何一种情况,都需要创建新的控制文件。

所有的控制文件都损坏了或者没有了备份文件

需要修改数据库名称

新建控制文件的步骤:

(1)制作一个包含所有数据文件和重做日志文件的列表清单:

  1. SQL> select member from v$logfile;
  2.  
  3. MEMBER
  4. --------------------------------------------------------------------------------
  5.  
  6. E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG
  7. E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG
  8. E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG

SQL> select name from v$datafile;

NAME
-----------------------------------------------------------------------------

E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF
E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF
E:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF
E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF
E:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF
E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS02.DBF
E:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\USERS03.DBF

  (2)如果数据库仍然处于运行状态,则关闭数据库

  1. SQL> shutdown normal
  2. 数据库已经关闭。
  3. 已经卸载数据库。
  4. ORACLE 例程已经关闭。

  (3)在操作系统级别备份所有的数据文件与重做日志文件

(4)启动数据库到加载状态

(5)创建一个新的控制文件

  1. SQL> create controlfile reuse
  2. 2 database "orcl"
  3. 3 resetlogs
  4. 4 archivelog
  5. 5 maxlogfiles 16
  6. 6 maxlogmembers 3
  7. 7 maxdatafiles 100
  8. 8 maxinstances 8
  9. 9 maxloghistory 292
  10. 10 logfile
  11. 11 group 1 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG' size 50M,
  12. 12 group 2 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG' size 50M,
  13. 13 group 3 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG' size 50M
  14. 14 datafile
  15. 15 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF',
  16. 16 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF',
  17. 17 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF',
  18. 18 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF',
  19. 19 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF',
  20. 20 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS02.DBF',
  21. 21 'E:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\USERS03.DBF'
  22. 22 character set zhs16gbk;
  23.  
  24. 控制文件已创建。

  (6)对新建的控制文件进行备份,并存放到一个脱机的存储设备上。

报错如下,我也不知道如何解决,解决了再来修改

  1. SQL> alter database backup controlfile to 'd:\control.bkp';
  2. alter database backup controlfile to 'd:\control.bkp'
  3. *
  4. 1 行出现错误:
  5. ORA-10469: error creating control file backup, no checkpoint
  6. ORA-01110: 数据文件 0: 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL'

  (7)如果数据库重命名,编辑初始化参数DD_NAME,指定新的数据库名称。

(8)如果数据库需要恢复,则进行数据库恢复操作,否则直接进入步骤9.

  1. SQL> recover database using backup controlfile;

  (9)选择打开数据库

如果数据库不需要恢复或者已经对数据库进行了完全恢复,可以使用正常方式打开数据库

alter database open

如果在创建控制文件时使用了RESETLOGS参数,则必须指定以RESETLOGS方式打开数据库

alter database open resetlogs;

多路复用控制文件

为了保证数据库控制文件的可用性,Oracle数据库可以添加多个多路复用的控制文件,方法是将当前控制文件的拷贝复制到一个新的位置并重新命名,然后将新的控制文件的名称加入到control_files参数中。

为数据库添加一个多路复用的控制文件或修改控制文件的名称与位置的步骤为:

(1)关闭数据库

(2)复制控制文件到新的位置并且重命名

(3)编辑初始化参数文件中的control_files参数,将新添加的控制文件的名称添加到控制文件列表中,或修改控制文件列表中原有控制文件的名称与位置。

(4)重新启动数据库

创建新的控制文件

1.关闭数据库

SQL> shutdown immediate

2.在操作系统级别备份所有的数据文件和重做日志文件

3.启动数据库到nomount状态,不加载和打开数据库

4.执行create controlfile

5.对新建的控制文件备份

6.如果对数据库重命名,编辑初始化参数DB_NAME,指定新的数据库名称

7.如果数据库需要恢复,这进行数据库恢复操作。

8.打开数据库

备份控制文件

1.将控制文件备份为二进制文件

alter database backup controlfile to 'D:\control.bkp';

2.将控制文件备份为文本文件

alter database backup contrilfile to trace;

删除控制文件

1.编辑CONTROL_FILES初始化参数,使其不包含要删除的控制文件

2.关闭数据库

3.在操作系统中删除控制文件

4.重新启动数据库

Oracle数据库体系结构(4)oracle控制文件的更多相关文章

  1. oracle 11g 数据库恢复技术 ---02 控制文件

    oracle 11g 数据库恢复技术 ---02 控制文件 SYS@ orcl >show parameter control_file NAME TYPE VALUE ------------ ...

  2. Oracle数据库体系结构、启动过程、关闭过程

    一.Oracle数据库体系结构体系结构由下面组件组成:1.Oracle服务器(Server):由数据库实例和数据库文件组成,另外在用户建立与服务器的连接时启动服务器进程并分配PGA(程序全局区) (1 ...

  3. Oracle学习笔记--第2章 oracle 数据库体系结构

    第2章 oracle 数据库体系结构 目录: ————————————— 2.1物理存储结构 2.1.1数据文件 2.2.2控制文件 2.1.3重做日志文件 2.1.4其他文件 2.2逻辑存储结构 2 ...

  4. Oracle数据库体系结构(2)数据库实例

    Oracle实例的概念: 实例(Instance):就是数据库管理系统,处于用户与物理数据库之间的一个中间层软件,由一系列内存结构和后台进程组成. 用户操作数据库的过程实质上与数据库实例建立连接,然后 ...

  5. oracle数据库体系结构

    一.oracle数据库体系结构 基本组成: Oracle server:一般情况下是一个instance和一个database组成 一般:1个instance只能对应一个数据库. 特殊:1个数据库可以 ...

  6. Oracle数据库表空间与数据文件的关系描述正确的是( )

    Oracle数据库表空间与数据文件的关系描述正确的是( ) A.一个表空间只能对应一个数据文件 B.一个表空间可以对应多个数据文件 C.一个数据文件可以对应多个表空间 D.表空间与数据文件没任何对应关 ...

  7. c#用log4Net将日志写入到Oracle数据库,并写入到文件中

    原文:c#用log4Net将日志写入到Oracle数据库,并写入到文件中 版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https:/ ...

  8. .net远程连接oracle数据库不用安装oracle客户端

    asp.net远程连接oracle数据库不用安装oracle客户端的方法下面是asp.net连接远程Oracle数据库服务器步骤: 1.asp.net连接oracle服务器需要添加Sytem.Data ...

  9. .net远程连接oracle数据库不用安装oracle客户端的方法

    .net远程连接oracle数据库不用安装oracle客户端的方法步骤: 1.添加Sytem.Data.OracleClient命名空间. 2.连接时需要ConnectionString字符串,出现在 ...

随机推荐

  1. JDBC技术总结(二)

    上一节主要讲了JDBC的基本操作,这一节主要总结一下JDBC如何处理大文本.如何处理图片以及进行批处理. 1.JDBC处理大文本 在MySQL中,大文本是text类型,使用Java操作数据库中的大文本 ...

  2. POJ1122_FDNY to the Rescue!(逆向建图+最短路树)

    FDNY to the Rescue! Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 2368   Accepted: 72 ...

  3. 网络相关系列之四:数据解析之SAX方式解析XML数据

    一.XML和Json数据的引入: 通常情况下.每一个须要訪问网络的应用程序都会有一个自己的server.我们能够向server提交数据,也能够从server获取数据.只是这个时候就有一个问题,这些数据 ...

  4. Swift迎来了1.0 GM 版(2014.09.09)

    2014年6月2日,swift开发团队将swift语言公之于众.而2014年9月9日迎来了swift的第二个里程碑,swift1.0版本号(GM),这意味着无论你的应用有一部分功能是用swift写的, ...

  5. mapreduce 查找共同好友

    A:B,C,D,F,E,O B:A,C,E,K C:F,A,D,I D:A,E,F,L E:B,C,D,M,L F:A,B,C,D,E,O,M G:A,C,D,E,F H:A,C,D,E,O I:A, ...

  6. centos 防火墙开放80端口

    辛辛苦苦编译安装完Ngnix,mysql ,PHP,后发现不能访问,后来发现是防火墙把80端口给禁用了.开启之:(以下参考自:http://llhdf.javaeye.com/blog/526176) ...

  7. Robot Motion - poj 1573

      Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11269   Accepted: 5486 Description A ...

  8. Linux中openmpi配置

    到 http://www.open-mpi.org/ 下载openmpi并解压,事先安装gcc或g++. 我是openmpi-1.6.5,进入解压文件夹,执行 ./configure 这一步执行时间会 ...

  9. EasyAR SDK在unity中的简单配置及构建一个简单场景。

    首先打开EasyAR的官方网站http://www.easyar.cn/index.html,注册登陆之后,打开首页的开发页面. 下载sdk和Unity Samples. 创建一个unity3d工程N ...

  10. Keepalived 集群在Linux下的搭建

    [概述]:Keepalived 是一个免费开源的,用C编写.主要提供loadbalancing(负载均衡)和 high-availability(高可用)功能,负载均衡实现需要依赖Linux的虚拟服务 ...