Oracle Backup(三):数据库归档设置

原创 2016年08月29日 21:45:18

oracle结束一个联机重做日志的写入并开始写入另一个联机重做日志时,会发生日志切换。如果数据库处于ARCHIVELOG模式下,日志切换的结果是生成联机重做日志的副本,这个副本叫做归档日志,数据库在介质恢复的期间,会采用归档日志来执行恢复。

第一章 归档模式切换

1.1. 查看日志是否归档

#方法一:
SQL> archive log list;
Database log mode          Archive Mode
Automatic archival         Enabled
Archive destination        /backup/redo/archive/
Oldest online log sequence     9
Next log sequence to archive   11
Current log sequence           11
#方法二:
SQL> select LOG_MODE from v$database;

LOG_MODE
------------
ARCHIVELOG

说明数据库处于归档模式。

1.2. 归档模式切换

#将归档模式切换了非归档模式
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area  784998400 bytes
Fixed Size          2257352 bytes
Variable Size         515903032 bytes
Database Buffers      264241152 bytes
Redo Buffers            2596864 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         Disabled
Archive destination        /backup/redo/archive/
Oldest online log sequence     9
Current log sequence           11

#将非归档模式转换为归档模式
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area  784998400 bytes
Fixed Size          2257352 bytes
Variable Size         515903032 bytes
Database Buffers      264241152 bytes
Redo Buffers            2596864 bytes
Database mounted.

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        /backup/redo/archive/
Oldest online log sequence     9
Next log sequence to archive   11
Current log sequence           11

第二章 归档设置

2.1. 默认归档路径

如果没有配置归档日志存放的位置,那么归档日志默认会存放到闪回区域。日志文件默认存放在flash_recovery_area里保存,通过recover参数,查看路径和空间大小。

SQL> show parameter recover;

NAME                     TYPE    VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest            string  /u01/app/fast_recovery_area
db_recovery_file_dest_size       big integer 4182M
db_unrecoverable_scn_tracking        boolean     TRUE
recovery_parallelism             integer     0
#还有个参数,也可以查看
SQL> show parameter db_recover;

NAME                     TYPE    VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest            string  /u01/app/fast_recovery_area
db_recovery_file_dest_size       big integer 4182M
#个人理解recover和db_recover参数的区别是,前者是针对实例的,后者是针对数据库的,所以后者没有recovery_parallelism这个和实例有关的参数,个人理解,仅供参考;

如果你将日志模式设置成归档,当时没有修改路径和db_recovery_file_dest_size参数,数据库运行一段时间就会报ORA-00257: archiver error. Connect internal only, until freed.错误,此时查看V$FLASH_RECOVERY_AREA_USAGE视图:

SQL> set linesize 100
SQL> col file_type for a20;
SQL> select * from v$flash_recovery_area_usage;

FILE_TYPE        PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES
-------------------- ------------------ ------------------------- ---------------
CONTROL FILE                  0             0       0
REDO LOG                  0             0       0
ARCHIVED LOG              0             0       0
BACKUP PIECE                  0             0       0
IMAGE COPY                0             0       0
FLASHBACK LOG                 0             0       0
FOREIGN ARCHIVED LOG          0             0       0

7 rows selected.

归档文件将闪回目录占满,此时数据库就hang住了,解决办法就是修改db_recovery_file_dest_size的大小或者是清除一些不用的归档日志。

注:在oracle11.2.0版本以上已经将V$FLASH_RECOVERY_AREA_USAGE废弃掉了,取而代之的是V$RECOVERY_AREA_USAGE这个视图;

这里写图片描述

2.2. 修改归档位置

当执行show parameter LOG_ARCHIVE_DEST命令时,我们可以看到很多参数。

SQL> show parameter log_archive_dest;

NAME                     TYPE    VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest             string
log_archive_dest_1           string  LOCATION=/backup/redo/archive/
log_archive_dest_10          string
log_archive_dest_11          string
log_archive_dest_12          string
log_archive_dest_13          string
log_archive_dest_14          string
log_archive_dest_15          string
log_archive_dest_16          string
log_archive_dest_17          string
log_archive_dest_18          string

NAME                     TYPE    VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_19          string
log_archive_dest_2           string
log_archive_dest_20          string
log_archive_dest_21          string
log_archive_dest_22          string
log_archive_dest_23          string
log_archive_dest_24          string
log_archive_dest_25          string
log_archive_dest_26          string
log_archive_dest_27          string
log_archive_dest_28          string

NAME                     TYPE    VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_29          string
log_archive_dest_3           string
log_archive_dest_30          string
log_archive_dest_31          string
log_archive_dest_4           string
log_archive_dest_5           string
log_archive_dest_6           string
log_archive_dest_7           string
log_archive_dest_8           string
log_archive_dest_9           string
log_archive_dest_state_1         string  enable

NAME                     TYPE    VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_10        string  enable
log_archive_dest_state_11        string  enable
log_archive_dest_state_12        string  enable
log_archive_dest_state_13        string  enable
log_archive_dest_state_14        string  enable
log_archive_dest_state_15        string  enable
log_archive_dest_state_16        string  enable
log_archive_dest_state_17        string  enable
log_archive_dest_state_18        string  enable
log_archive_dest_state_19        string  enable
log_archive_dest_state_2         string  enable

NAME                     TYPE    VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_20        string  enable
log_archive_dest_state_21        string  enable
log_archive_dest_state_22        string  enable
log_archive_dest_state_23        string  enable
log_archive_dest_state_24        string  enable
log_archive_dest_state_25        string  enable
log_archive_dest_state_26        string  enable
log_archive_dest_state_27        string  enable
log_archive_dest_state_28        string  enable
log_archive_dest_state_29        string  enable
log_archive_dest_state_3         string  enable

NAME                     TYPE    VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_state_30        string  enable
log_archive_dest_state_31        string  enable
log_archive_dest_state_4         string  enable
log_archive_dest_state_5         string  enable
log_archive_dest_state_6         string  enable
log_archive_dest_state_7         string  enable
log_archive_dest_state_8         string  enable
log_archive_dest_state_9         string  enable

我们可以看到三类参数,log_archive_dest、log_archive_dest_n、log_archive_dest_state;
log_archive_dest和log_archive_dest_n的区别:
使用log_archive_dest参数最多可设置2个归档路径,通过log_archive_dest设置一个主归档路径,通过LOG_ARCHIVE_DUPLEX_DEST 参数设置一个从归档路径。所有的路径必须是本地的,该参数的设置格式如下:
LOG_ARCHIVE_DEST = ‘/disk1/archive’
LOG_ARCHIVE_DUPLEX_DEST = ‘/disk2/archive’
LOG_ARCHIVE_DEST_n 参数可以设置最多10个不同的归档路径,通过设置关键词location或service,该参数指向的路径可以是本地或远程的。

LOG_ARCHIVE_DEST_1 = ‘LOCATION = /disk1/archive’
LOG_ARCHIVE_DEST_2 = ‘LOCATION = /disk2/archive’
LOG_ARCHIVE_DEST_3 = ‘LOCATION = /disk3/archive’
如果要归档到远程的standby数据库,可以设置service:LOG_ARCHIVE_DEST_4 = ‘SERVICE = standby1’;可见,这两个参数都可以设置归档路径,不同的是后者可以设置远程归档到standby端,而前者只能归档到本地,且最多同时归档到2个路径下。另外log_archive_dest_state_n指定对应的log_archive_dest_n的状态。
如果我的归档位置没有更改过,此时修改log_archive_dest或者log_archive_dest_n会出现什么问题呢。

SQL> alter system set log_archive_dest='location=d:/dest_1';
alter system set log_archive_dest='location=d:/dest_1'
*
第 1 行出现错误:
ORA-02097: 无法修改参数, 因为指定的值无效
ORA-16018: 无法将 LOG_ARCHIVE_DEST 与 LOG_ARCHIVE_DEST_n 或
DB_RECOVERY_FILE_DEST 一起使用
SQL> alter system set log_archive_dest_1='location=d:/dest_1';
系统已更改。

也就是在设置了 db_recovery_file_dest后可以设置log_archive_dest_n不能设置log_archive_dest,反过来设置了 log_archive_dest就不能db_recovery_file_dest和log_archive_dest_n;
log_archive_dest_n最多可以设置10组,还有如下参数
{ null_string |
{ LOCATION=path_name | SERVICE=service_name }
[ MANDATORY ]
[ REOPEN[=seconds] ]
[ DELAY[=minutes] ]
[ NOREGISTER ]
[ TEMPLATE=template ]
[ ALTERNATE=destination ]
[ MAX_FAILURE=count ]
[ SYNC | ASYNC ]
[ AFFIRM | NOAFFIRM ]
[ NET_TIMEOUT=seconds ]
[ VALID_FOR=(redo_log_type,database_role) ]
[ DB_UNIQUE_NAME ]
[ MAX_CONNECTIONS=count ]
[ COMPRESSION={ENABLE|DISABLE} ]
}

AFFIRM和NOAFFIRM设置是否确认将归档信息写入到磁盘中;
ALTERNATE和NOALTERNATE设置是否在归档目录无法写入时,将归档写入到另外的地方;
ARCH和LGWR设置是ARCn进程写归档还是LGWR进程写归档;
DELAY和NODELAY设置STANDBY数据库是否延迟应用归档日志;
DEPENDENCY和NODEPENDENCY参数在归档文件可以直接被其他STANDBY数据库访问时,其他的STANDBY在归档文件可用时是否还需要传输归档;
LOCATION和SERVICE设置本地归档或归档到STANDBY数据库;
MANDATORY和OPTIONAL设置归档路径是强制的还是可选的;
MAX_FAILURE和NOMAX_FAILURE参数设置归档失败后,连接重试的最大次数;
NET_TIMEOUT和NONET_TIMEOUT设置LGWR进程写归档信息时等待的秒数;
QUOTA_SIZE和NOQUOTA_SIZE设置归档目录可以使用的空间大小;
QUOTA_USED和NOQUOTA_USED显示归档目录以及使用的空间大小;
REGISTER和NOREGISTER设置是否在目标站点记录归档日志的位置;
REOPEN和NOREOPEN设置在归档失败后是否进行重试;
SYNC和ASYNC设置LGWR进程写IO操作是否同步进行;
LOG_ARCHIVE_DEST_STATE_n:
这个参数是设置每组的状态
Values:

enable

Specifies that a valid log archive destination can be used for a subsequent archiving operation (automatic or manual). This is the default.

defer

Specifies that valid destination information and attributes are preserved, but the destination is excluded from archiving operations until re-enabled.

alternate

Specifies that a log archive destination is not enabled but will become enabled if communications to another destination fail.

归档文件的命名规则,请参考我的另外一篇blog:
http://blog.csdn.net/dbdoctor/article/details/50942331

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Linux Oracle数据库设置自动归档

  • 2012年11月15日 10:28
  • 32KB
  • 下载

oracle数据库备份、增加可用磁盘、设置归档、增加表空间

年底客服机房进行整理,需停电,趁机对系统数据库进行调整,以下为简要脚本记录: l  为服务器增加硬盘(主要用于正式数据的存储) l  进行数据库完全备份 l  增加归档设置 l  增加表空间   1....

Oracle dbms_backup_restore恢复数据库

Oracle Version:Oracle 10.2.0.5 64bit OS:RHEL5.4 64bit 1.fullbackup [oracle@Kin ~]$ rman targe...

关闭Oracle数据库的归档模式

  • 2012年07月30日 10:42
  • 27KB
  • 下载

ORACLE 10G归档设置

  • 2011年08月22日 10:54
  • 41KB
  • 下载

Oracle Secure Backup管理员指南 第3章 备份配置与介质设置

本章说明如何配置管理域的备份和介质设置。 3.1 配置介质簇 介质簇(media family)是拥有相同属性的带卷的逻辑分类。一个介质簇中的带卷共享相同的命名模式以及备份数据写入与保留策略。 ...
  • horses
  • horses
  • 2014年01月08日 09:52
  • 744

ORACLE归档日志设置

  • 2014年03月26日 23:06
  • 31KB
  • 下载

ORACLE归档模式的设置

  • 2011年08月09日 19:33
  • 39KB
  • 下载

如何解决Oracle数据库归档日志占满磁盘空间

1、数据库不能启动   SQL> startup   ORACLE 例程已经启动。   Total System Global Area 289406976 bytes   Fixed Siz...
  • njslh
  • njslh
  • 2011年09月25日 16:02
  • 542
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Oracle Backup(三):数据库归档设置
举报原因:
原因补充:

(最多只允许输入30个字)