OARCLE数据库归档模式的设置

在oracle数据库的开发环境和测试环境中,数据库的日志模式和自动归档模式一般都

是不设置的,这样有利于系统应用的调整,也免的生成大量的归档日志文件将磁盘空间大量

的消耗。但在系统上线,成为生产环境时,将其设置为日志模式并自动归档就相当重要了,

因为,这是保证系统的安全性,有效预防灾难的重要措施。这样,通过定时备份数据库和在

两次备份间隔之间的日志文件,可以有效的恢复这段时间的任何时间点的数据,可以在很多

时候挽回或最大可能的减少数据丢失。虽然ORACLE数据库的日志模式和自动归档设置并不复

杂,但其中的一些概念和操作过程还是容易混淆的,现在根据本人的经验,分析介绍如下,

所用环境为UNIX(HPUX,SOLARIES,AIX,TRU64UNIX)和ORACLE8.


一 要使OARCLE数据库进行日志的自动归档,需要做两方面的事情,一是数据库日志模式

的设置(database log mode,可为Archive Mode和No Archive Mode),另外就是自动

归档模式设置(Automatic archival,可为Enabled和Disabled)。

  二 如何查看数据库的现行日志和自动归档模式的设置:

    可用archive log list命令来查看。

    例如:

    运行在日志自动归档模式下的数据库系统查看结果如下(一般是生产环境)

      SVRMGR> archive log list

      Database log mode              Archive Mode

      Automatic archival             Enabled

      Archive destination            /backup/archivelog

      Oldest online log sequence     2131

      Next log sequence to archive   2133

      Current log sequence           2133

    没有启动数据库日志模式和自动归档的数据库系统查看结果如下(一般是测试环境)

      SVRMGR> archive log list

      Database log mode              No Archive Mode

      Automatic archival             Disabled

      Archive destination            /u01/app/oracle/product/8.0.5/dbs/arch

      Oldest online log sequence     194

      Current log sequence           196

  三 数据库日志模式的设置

    在创建数据库时,可以在CREATE DATABASE 语句中指定数据库的日志

模式。假如没有指明,则缺省为NOARCHIVELOG模式。由于如果在创建数据库时指明是

Archive Mode的话,会增加约20%的创建时间,而在以后启动INSTANCE时再设置的话,

一般只用去几秒的时间,所以一般在创建数据库时是不设置为ARCHIVE MODE的。

  如要确定一系统数据库的日志模式设置,除了(二)中的方法外也可以执行如下操作查看:

  SVRMGR> Select * from V$DATABASE 

 

   NAME  CREATED            LOG_MODE      CHECKPOINT  ARCHIVE_CH

   ----  -----------------  ------------  ----------  ----------

   ORCL  05/21/97 17:55:06  NOARCHIVELOG  172185      170808

 

   将数据库的日志模式设置切换(Archive Mode 和No Archive Mode之间的切换)的

步骤和操作如下:

 1. 关闭运行的数据库实例

   SVRMGRL>  shutdown

   在进行日志模式切换之前,必须将运行的数据库正常关闭。

  

 2. 备份数据库

 

   该备份跟以后产生的日志一起用于将来的灾难恢复(很重要,如要改为归档日志模式,没有这个数据库备份,仅有日志文件是无法从该时间点恢复的)。

 

 3. 启动数据库实例到mount状态,但不要打开。

 

   SVRMGRL> startup mount

 

   注意:如果是使用OPS的话,请只打开一个数据库实例进行模式切换操作。

 

 4. 切换数据库日志模式。

 

   SVRMGRL> alter database archivelog;(设置数据库为归档日志模式)

   或

   SVRMGRL> alter database noarchivelog;(设置数据库为归档日志模式)

 

 5. 打开数据库

 

   SVRMGRL> alter database open;

 

 6. 确认数据库现在处于归档日志模式。

 

   SVRMGRL> archive log list;

       Database log mode               Archive Mode 

       Automatic archival              Enabled

       Archive destination             for example: $ORACLE_HOME/dbs/arch 

       Oldest on-line log sequence     275 

       Next log sequence               277 

       Current log sequence            278 

 

 7. 将这个时间点的redo logs归档

 

   SVRMGRL> archive log all;

 8. 确认新产生的日志文件已在相应的归档目录下面。

 

  四 自动归档模式设置(Automatic archival,可为Enabled和Disabled),在该模式下,

数据库启动一个arch进程,专门负责将redo logs写到系统归档设备的相应目录下。

 在数据库的参数文件中设置参数(一般是在$ORACLE_HOME/dbs/init*.ora文件中):

  

    LOG_ARCHIVE_START=

    LOG_ARCHIVE_DEST=

    LOG_ARCHIVE_FORMAT=

LOG_ARCHIVE_START:

如要求自动归档的话,则设为TRUE,如要求为非自动归档的话,则设为FALSE

LOG_ARCHIVE_DEST: 

该参数设定了archive logs 归档存放的路径.

LOG_ARCHIVE_FORMAT:

该参数设定了archive logs的命名格式. 例如,如将格式设为:  arch%s.arc

log 文件将为:  arch1.arc, arch2.arc, arch3.arc

   这几个参数设置只有在数据库实例启动前设置才能生效,如果在数据库运行中进行

设置,要使其生效,必须重起数据库。

  

   如果数据库正在运行中,不能即刻重起,要设置其为自动归档模式,则做

如下操作:

   SVRMGRL> ALTER SYSTEM ARCHIVE LOG START;

如要设置其为非自动归档模式(取消自动归档),则:

   SVRMGRL> ALTER SYSTEM ARCHIVE LOG STOP;

   但如果数据库重起后,给语句修改的结果就失效了,自动归档的设置还是按照系统

参数文件中的LOG_ARCHIVE_START的值来设置。

 

 五 几种设置情况:

 (1)  Database log mode              Archive Mode

      Automatic archival             Enabled

  这是在大部分生产环境中的ORACLE数据库日志及归档模式设置,这种情况下,做好

数据库的定期备份(有热备和冷备)和归档日志备份,可有效的将数据库恢复到有归档

日志的全部时间点。

 (2)  Database log mode              Archive Mode

      Automatic archival             Disabled

  这种情况下,数据库不能自动归档,需要进行手工归档。如果所有在线日志都写满了,

又没有的及时进行手工归档的话,由于LGWR没有可用的在线日志可写,数据库将会挂在

这儿,只有进行手工归档后,有可用的在线日志后才能继续。在生产环境中应该避免

这种情况。

  手工归档操作如下:

  SVRMGRL> ALTER SYSTEM ARCHIVE LOG ALL;

  数据库将会把在线日志进行归档处理

 (3)  Database log mode              NO Archive Mode

      Automatic archival             Enabled

  有些相对欠缺经验的管理员在进行设置时,只在数据库参数文件中设置了

LOG_ARCHIVE_START=TRUE,然后在数据库起来后查看到ARCH归档进程已经起来了,可是

尽管ORACLE已经作了几次日志切换,但还是没有归档日志,这时的设置就是这种情况,

如果数据库不是处在ARVHIVELOG模式,redolog 还是不会被归档。

 (4)  Database log mode              NO Archive Mode

      Automatic archival             Disabled

  这种设置是刚安装的oracle数据库的缺省设置,开发环境也大部分如此。即没有进行归档。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值