视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
(33) Oracle存储结构管理(2)
2025-10-02 15:06:51 责编:小OO
文档
6.3 管理数据库存储结构(2)

1. 控制文件概述

(1)控制文件的性质

✧控制文件是一个很小的二进制文件。

✧控制文件描述了整个数据库的结构。

✧在加载数据库时,实例必须首先通过初始化参数文件找到数据库的控制文件。

✧在数据库运行期间,控制文件始终在不断更新,以便记录数据文件和重做日志文件的变化

✧每个数据库至少拥有一个控制文件。一个数据库也可以同时拥有多个控制文件。分配在不同的物理硬盘中,以免数据库或硬盘损坏时,能够利用备份的控制文件启动数据库实例,可以提高数据库的可靠性。

(2)控制文件的内容

✧数据库名称和标识;

✧数据库创建的时间;

✧表空间名称;

✧数据文件和重做日志文件的名称和位置;

✧当前重做日志文件序列号;

✧数据库检查点的信息;

✧回退段的开始和结束;

✧重做日志的归档信息;

✧备份信息;

✧数据库恢复所需要的同步信息。

(3)控制文件中的最大化参数包括:

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

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

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

✧MAXDATAFILES:最大数据文件数量;

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

(4)控制文件管理策略

✧Oracle建议最少有两个控制文件,通过多路镜像技术,将多个控制文件分散到不同的磁盘中。

✧在数据库运行过程中,始终读取CONTROL_FILES参数指定的第一个控制文件,并同时写CONTROL_FILES参数指定的所有控制文件。如果其中一个控制文件不可用,则必须关闭数据库并进行恢复。

✧每次对数据库结构进行修改后(添加、修改、删除数据文件、重做日志文件),应该及时备份控制文件。

2. 控制文件的管理

✧创建控制文件

✧实现多路镜像控制文件

✧备份控制文件

✧删除控制文件

(1)创建控制文件的情形

✧控制文件全部丢失或损坏;

✧需要修改数据库名称;

✧在Oracle 10.2.0之前的版本中,需要修改某个最大化参数。

(2)CREATE CONTROLFILE语句

CREATE CONTROLFILE [REUSE]

[SET] DATABASE database

[LOGFILE logfile_clause]

RESETLOGS|NORESETLOGS

[DATAFILE file_specification]

[MAXLOGFILES]

[MAXLOGMEMBERS]

[MAXLOGHISTORY]

[MAXDATAFILES]

[MAXINSTANCES]

[ARCHIVELOG|NOARCHIVELOG]

[FORCE LOGGING]

[CHARACTER SET character_set]

(3)创建控制文件的基本步骤

制作数据库中所有的数据文件和重做日志文件列表

SELECT MEMBER FROM V$LOGFILE;

SELECT NAME FROM V$DATAFILE;

SELECT VALUE FROM V$PARAMETER WHERE NAME ='CONTROL_FILS';

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

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

启动实例到NOMOUNT状态

STARTUP NOMOUNT

利用前面得到的文件列表,执行CREATE CONTROLFILE创建一个新控制文件。

CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS  ARCHIVELOG

    MAXLOGFILES 16

    MAXLOGMEMBERS 3

    MAXDATAFILES 100

    MAXINSTANCES 8

    MAXLOGHISTORY 292

LOGFILE

  GROUP 1 'C:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO01.LOG'  SIZE 50M,

  GROUP 2 'C:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO02.LOG'  SIZE 50M,

  GROUP 3 'C:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\REDO03.LOG'  SIZE 50M

-- STANDBY LOGFILE

DATAFILE

  'C:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\SYSTEM01.DBF',

  'C:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\UNDOTBS01.DBF',

  'C:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\SYSAUX01.DBF',

  'C:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\USERS01.DBF',

  'C:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\USERS02.DBF',

  'C:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\USERS03.DBF'

CHARACTER SET ZHS16GBK
在操作系统级别对新建的控制文件进行备份

如果数据库重命名,则编辑DB_NAME参数来指定新的数据库名称 

如果数据库需要恢复,则进行恢复数据库操作

如果创建控制文件时指定了NORESTLOGS,可以完全恢复数据库。

RECOVER DATABASE ;
如果创建控制文件时指定了RESETLOGS,则必须在恢复时指定

USING BACKUP CONTROLFILE。

RECOVER DATABASE USING BACKUP CONTROLFILE;

打开数据库

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

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

ALTER DATABASE OPEN  RESETLOGS

(4)实现多路镜像控制文件 

编辑初始化参数CONTROL_FILES 

ALTER SYSTEM SET  CONTROL_FILES=… SCOPE=SPFILE;

关闭数据库 

SHUTDOWN IMMEDIATE;
拷贝一个原有的控制文件到新的位置,并重新命名 

重新启动数据库 

STARTUP
示例

编辑初始化参数CONTROL_FILES。

ALTER SYSTEM SET  CONTROL_FILES=                                  

'C:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\CONTROL01.CTL', 

'C:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\CONTROL02.CTL', 

'C:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\ORCL\\CONTROL03.CTL', 

'C:\\ORACLE\\PRODUCT\\10.2.0\\ORADATA\\CONTROL04.CTL' 

SCOPE=SPFILE 
✧注意:前3个控制文件是原有的控制文件,最后一个控制文件是将要添加的。

关闭数据库

SHUTDOWN IMMEDIATE;
拷贝一个原有的控制文件到新的位置,并重新命名。

拷贝D:\\ORACLE\\ORADATA\\CONTROL01.CTL到D:\\ORACLE\\ORADATA目录下,并重命名为CONTROL04.CTL。

重新启动数据库

STARTUP
(5)备份控制文件

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

ALTER DATABASE BACKUP  CONTROLFILE TO …

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

ALTER DATABASE BACKUP CONTROLFILE  TO TRACE
✧将控制文件备份到\\admin\\\目录下的跟踪文件中 

✧将控制文件备份为二进制文件。

ALTER DATABASE BACKUP CONTROLFILE TO 'D:\\ORACLE\\CONTROL.BKP'; 
✧将控制文件备份为文本文件。

ALTER DATABASE BACKUP CONTROLFILE TO TRACE;
(6)删除控制文件

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

(2)关闭数据库;

(3)在操作系统中删除控制文件;

(4)重新启动数据库。

(7)查询控制文件的信息

✧V$DATABASE:从控制文件中获取的数据库信息;

✧V$CONTROLFILE:包含所有控制文件名称与状态信息;

✧V$CONTROLFILE_RECORD_SECTION:包含控制文件中各记录文档段信息;

✧V$PARAMETER:可以获取初始化参数CONTROL_FILES的值。

(8)利用OEM管理控制文件

✧查看控制文件信息

✧备份控制文件

下载本文
显示全文
专题