Oracle Archive and Noarchive

Oracle数据库可以运行在2种模式下:归档模式(archivelog)和非归档模式(noarchivelog)
  
  归档模式可以提高Oracle数据库的可恢复性,生产数据库都应该运行在此模式下,归档模式应该和相应的备份策略相结合,只有归档模式没有相应的备份策略只会带来麻烦。
  
  本文简单介绍如何启用和关闭数据库的归档模式。
  
  1.shutdown normal或shutdown immediate关闭数据库
  
  [oracle@jumper oracle]$ sqlplus "/ as sysdba"
  
  SQL*Plus: Release 9.2.0.4.0 - Production on Sat Oct 15 15:48:36 2005
  
  Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
  
  Connected to:
  Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
  With the Partitioning option
  JServer Release 9.2.0.4.0 - Production
  
  SQL> shutdown immediate;
  Database closed.
  Database dismounted.
  ORACLE instance shut down.
  
  2.启动数据库到mount状态
  
  SQL> startup mount;
  ORACLE instance started.
  
  Total System Global Area 101782828 bytes
  Fixed Size          451884 bytes
  Variable Size       37748736 bytes
  Database Buffers      62914560 bytes
  Redo Buffers         667648 bytes
  Database mounted.
  
  3.启用或停止归档模式
  
  如果要启用归档模式,此处使用
  
  alter database archivelog 命令。
  SQL> alter database archivelog;
  Database altered.
  
  SQL> alter database open;
  
  Database altered.
  
  SQL> archive log list;
  Database log mode       Archive Mode
  Automatic archival       Enabled
  Archive destination      /opt/oracle/oradata/conner/archive
  Oldest online log sequence   148
  Next log sequence to archive  151
  Current log sequence      151
  
  如果需要停止归档模式,此处使用:
  
  alter database noarchivelog 命令。
  SQL> shutdown immediate;
  Database closed.
  Database dismounted.
  ORACLE instance shut down.
  SQL> startup mount;
  ORACLE instance started.
  
  Total System Global Area 101782828 bytes
  Fixed Size          451884 bytes
  Variable Size       37748736 bytes
  Database Buffers      62914560 bytes
  Redo Buffers         667648 bytes
  Database mounted.
  SQL> alter database noarchivelog;
  
  Database altered.
  
  SQL> alter database open;
  
  Database altered.
  
  SQL> archive log list;
  Database log mode       No Archive Mode
  Automatic archival       Enabled
  Archive destination      /opt/oracle/oradata/conner/archive
  Oldest online log sequence   149
  Current log sequence      152
  
  4.修改相应的初始化参数
  
  Oracle10g之前,你还需要修改初始化参数使数据库处于自动归档模式。
  
  在pfile/spfile中设置如下参数:
  
  log_archive_start = true
  
  重启数据库此参数生效,此时数据库处于自动归档模式。
  
  也可以在数据库启动过程中,手工执行:
  
  archive log start
  
  使数据库启用自动归档,但是重启后数据库仍然处于手工归档模式。
  
  从Oracle10g开始,log_archive_start参数已经废除

采用Oracle Archive Log模式和非Archive Log模式对备份恢复的影响

备份的目的在于,当系统或数据库出现问题时,能够快速将数据库进行恢复。对于Oracle数据库,一般有两种备份方式:“物理备份”和“逻辑备份”。“物理备份”指的是以copy数据文件方式进行备份;“逻辑备份”指的是用export等方式将数据从数据库中抽取出来。物理备份又可以分为冷备份和热备份。以下是各种备份的说明及前提条件。
- Cold Backup(冷备份) 主要指在关闭数据库的状态下进行的数据库完全备份,备份内容包括所有数据文件、控制文件、联机日志文件、ini文件。
- Hot Backup(热备份) 指在数据库处于运行状态下,对数据文件和控制文件进行备份,要使用热备份必须将数据库运行在(Archive Log)归档方式下。
- Export(逻辑备份)这是最简单的备份方法,可按数据库中某个表、某个用户或整个数据库来导出,并且支持全部、累计、增量三种方式。使用这种方法,数据库必须处于打开状态,而且如果数据库不是在restrict状态将不能保证导出数据的一致性。

“物理备份”方式以相当于copy数据文件的方式进行备份,恢复时可以快速以相当于copy的方式将备份的数据copy回来,所以备份速度特别是恢复速度非常快。

如果不采用Archive Log模式运行Oracle数据库,只有两种可用的备份方法:冷备份或export逻辑备份。根据关键业务服务器的特点,停下数据库进行冷备份是根本不可能的,因此如果不采用Archive Log,只能进行逻辑备份。

如果仅采用“逻辑备份”方式,恢复时会有以下两个主要问题:
1. 无法恢复到最近时间点的数据。只能恢复到上一次export时的数据状态,当天的数据将丢失。Archive Log模式下的物理备份可以用数据文件备份及Archive Log备份,将数据库恢复到数据库失败前的时间点,不会丢失数据。
2. 完成恢复可能需要很长时间。恢复只能用import方法进行,所以需要的时间包括:
a. create database及所有的tablespace: 以每2分钟初始化一个2G的数据文件来计算,建立一个400G的Oracle数据库需要约6.7个小时。
b. import。时间较难确定,但保守估计应在10个小时以上(如果import过程中出现问题,恢复时间将延长)
3. 恢复时步骤较多,易出现人为故障。

由于 这些原因,一般备份/恢复时都把export/import的方式做为辅助备份/恢复方式,对一些重要的表进行二级保护。这种备份方式也称为“逻辑备份”方式,当某些重要的表被意外删除时可进行逻辑import恢复。

而对于整个数据库的日常备份/恢复,需要采用“物理备份”方式,即以相当于copy数据文件的方式进行备份,恢复时可以快速以相当于copy的方式将备份的数据copy回来。一般物理备份/恢复都采用Oracle RMAN工具来进行。

下面是“逻辑备份”与“物理备份”在数据库故障时的恢复比较:

1. Oracle逻辑错误造成无法启动
逻辑恢复: 重新create database及各tablespace,import。可恢复到上次export的数据
物理恢复: 将所有datafile copy回来,并利用archivelog将数据库recover到故障前的状态

2. 某一个datafile故障或丢失
逻辑恢复: 重新create database及各tablespace,import。可恢复到上次export的数据
物理恢复: 将该datafile copy回来

3. 某一个tablespace故障
逻辑恢复: 重新create database及各tablespace,import。可恢复到上次export的数据
物理恢复: 将该tablespace copy回来

4. 意外drop table
逻辑恢复: Import 该table
物理恢复: 将备份恢复到另一服务器上,export该table,在原数据库中import

5. 意外drop user
逻辑恢复: Import 该user
物理恢复: 将备份恢复到另一服务器上,export该user,在原数据库中import

6. 意外drop tablespace
逻辑恢复: 情况较复杂,恢复易造成数据库表之间的参照完整性被破坏。在此不做分析
物理恢复: 情况较复杂,恢复易造成数据库表之间的参照完整性被破坏。在此不做分析

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值