Oracle中如何备份控制文件?备份控制文件的方式有哪几种?

0    76    2

👉 本文共约2212个字,系统预计阅读时间或需9分钟。

如何备份控制文件?备份控制文件的方式有哪几种?

答案:备份控制文件的方式有多种。

① 备份控制文件可以在线进行:

本人提供Oracle、MySQL、PG等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!

② RMAN手动备份控制文件:

③ 设置RMAN自动备份控制文件:

然后再通过rman做任何备份操作的同时,都会自动对控制文件做备份。

当数据库处于归档模式且设置了“CONFIGURE CONTROLFILE AUTOBACKUP ON;”时,若数据库的结构发生了变化(例如添加或删除表空间),则也会自动对控制文件进行备份。需要注意的是,从Oracle 11g开始,rman对控制文件自动备份做了延迟处理。在Oracle 10g中,引入了控制文件的自动备份特性。如果数据库的结构发生了变化,那么Oracle会自动将控制文件备份到指定目录中,并且在告警日志中记录相关的信息。前提是数据库处于归档模式,并且CONTROLFILE AUTOBACKUP设置为ON。但是,从Oracle 11gR2开始,引入了控制文件自动备份延迟创建的特性。即使设置了控制文件的自动备份,在数据库结构发现变化的时候也不会立即看到控制文件的备份,而是在300秒(由隐含参数“_controlfile_autobackup_delay”来控制,默认是300秒)后才会看到控制文件被自动做了备份(经过实验测试,发现实际上是10分钟之后)。而且,在告警日志中也只能看到数据库结构发生变化的信息,而看不到控制文件自动备份的信息了,这是Oracle为了改变性能而引入的,防止用户在一个脚本中多次对数据库结构的变化而创建多个控制文件备份。例如CREATE TABLEPACE、DROP LOGFILE、ADD LOGEILE等,那么Oracle 11g只会备份一个控制文件,而不是多个;对于Oracle 10g只要数据库结构改变,就会自动备份一个。MOS文档[ID 1068182.1]对这个问题做了说明。在Oracle 11g中,备份控制文件的后台进程为MMON的奴隶进程,默认会生成一个trace文件,名称为SID__m000_<OS_PID>.trc,该trace文件中记录了控制文件自动备份的位置和时间:

④ 只要是对编号为1的数据文件,即SYSTEM表空间的数据文件做备份时,RMAN也会自动对控制文件做备份。

⑤ 快照控制文件。快照控制文件是由RMAN在系统指定位置生成的当前控制文件的一个副本。当RMAN开始备份时,Oracle会检查系统控制文件与快照控制文件是否一致(如果不存在,那么会从控制文件提取信息创建),若不一致则刷新快照控制文件。RMAN在以下情况中需要快照控制文件:1.同步恢复目录时2.对当前控制文件进行备份时。在RAC环境下,仅仅在实施RMAN备份的节点上需要快照控制文件。

查看快照控制文件的位置:

Linux/Unix平台为:$ORACLE_HOME/dbs/snapcf_$ORACLE_SID.f

Windows平台为:%ORACLE_HOME%\database\snapcf_%$ORACLE_SID%.f

如果要查看备份的控制文件,那么可以通过:

生成standby controlfile 备库控制文件

控制文件其它SQL

11G新特性-控制文件延迟自动备份

在10G中,ORACLE引入了控制文件的自动备份,如果数据库的结构发生了变化,那么ORACLE会自动将控制文件备份到指定目录中。

前提是数据库处于归档模式,并且CONTROLFILE AUTOBACKUP设置为ON。

首先看一下10G的情况:

这是一个10.2.0.5的数据库,数据库处于归档模式,并且controlfile autobackup设置为ON。

日志文件中将会看到控制文件的自动备份情况。

ls -ltr 也可以看出文件的创建时间可以看出备份文件被立马创建。

从ORACLE DATABASE 11GR2开始,引入了控制文件自动备份延迟创建的特性。

即使你设置了控制文件的自动备份,在数据库结构发现变化的时候不会立即看到控制文件的备份,而是过一段时间才会看到。这是ORACLE为了改变性能而引入的,防止你在一个脚本中多次对数据库结构的变化而创建多个控制文件备份。譬如CREATE TABLEPACE,DROP LOGFILE,ADD LOGEILE等,11G只会备份一个控制文件,而不是多个。

对于10G只要对数据库结构改变,就会自动备份一个。

上面的例子我创建了一个表空间,删除了一个日志文件组,后台自动生成了2个控制文件备份。

下面看一下11G的情况:

日志文件中仅仅显示了表空间创建成功的信息,并没有控制文件的自动备份信息。

而且备份目录下也没有发现任何的控制文件备份文件。

MOS [ID 1068182.1]对这个问题进行了如下阐述:

In this release, the controlfile autobackups are created by MMON slaves after few minutes of the structural changes, which increases performance.So, It's the expected behaviour to get the controlfile autobackup several minutes after the structural change on the database and it's also expected that no message about controlfile autobackup creation will appear in the alert.log.

There will be generated one MMON slave trace file with the controlfile creation information, that will be a file named: SID_m000.trc

在经过6分钟后,终于看到备份文件了:

oracle后台进程m000的TRACE文件中记录此次备份信息,ALERT文件中不再记录了。

ORACLE通过隐含参数 _controlfile_autobackup_delay来控制这种行为,默认是300秒。

标签:

头像

小麦苗

学习或考证,均可联系麦老师,请加微信db_bao或QQ646634621

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

12 − 7 =

 

嘿,我是小麦,需要帮助随时找我哦
  • 18509239930
  • 个人微信

  • 麦老师QQ聊天
  • 个人邮箱
  • 点击加入QQ群
  • 个人微店

  • 回到顶部
返回顶部