头图

一、控制文件(Control File)

在Oracle数据库中,一个数据库至少要有一个控制文件,控制文件中存放了Oracle数据库的物理结构信息。这些物理结构信息就包括:

  1. 数据库的名字。
  2. 数据文件和联机日志文件的名字及位置。
  3. 创建数据库时的时间戳。
  4. RMAN备份的元信息。

视频讲解如下:

https://www.bilibili.com/video/BV1uS411P7zD/?aid=1906032490&c...

Oracle数据库在启动过程中,会根据控制文件中记录的数据文件和联机重做日志文件的位置信息来打开数据库。由于控制文件非常重要,为了更好的保护数据库,通常在执行数据库备份时是需要备份控制文件的。

可以通过下面的语句查看当前存在的控制文件。

SQL> select name from v$controlfile;

# 输出的信息如下:
NAME
------------------------------------------------------
/u01/app/oracle/oradata/ORCL/control01.ctl
/u01/app/oracle/fast_recovery_area/ORCL/control02.ctl
注意:可以看到在默认情况下,Oracle数据库有两个控制文件,这两个控制文件的内容是一样的。这样的方式称之为控制文件的多路复用。即使其中的一个控制文件出现了问题,Oracle数据库也可以使用另一个控制文件。这样也不会因为数据库的损坏从而造成数据的丢失。

二、归档日志文件

在Oracle数据库中,归档日志文件是联机重做日志文件的副本,它也记录了对数据库改变的历史。视频讲解如下:
https://www.bilibili.com/video/BV1Db421E7Nj/?aid=1806242973&c...

下面的语句将查看当前数据库的日志模式。

SQL> archive log list;

# 输出的信息如下:
Database log mode            No Archive Mode
Automatic archival                   Disabled
Archive destination                   USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence          1
Current log sequence            3
注意:Oracle数据库默认是非归档模式。在非归档模式下,Oracle数据库只能执行数据库的离线备份,或者叫做数据库的冷备份。

通过执行下面的语句可以将Oracle数据库的日志模式切换为归档模式。

SQL> shutdown immediate
SQL> startup mount
SQL> alter database archivelog;
SQL> alter database open;

赵渝强老师
30 声望10 粉丝

20年以上的IT行业从业经历,清华大学计算机软件工程专业毕业,京东大学大数据学院院长,Oracle中国有限公司高级技术顾问;曾在BEA、甲骨文、摩托罗拉等世界500强公司担任高级软件架构师或咨询顾问等要职,精通大...