归档重做日志文件

本文详细介绍了Oracle数据库在归档和非归档模式下的管理,包括如何设置数据库归档模式,切换归档状态,选择归档方式,设置归档路径和命名规则,以及查询归档信息。重点讲解了归档日志文件的命名格式和归档目标的配置,强调了在归档模式下数据库运行的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

归档重做日志文件概述

在实际的生产中,数据库要运行在archivelog模式下

数据库建立时,缺省是在noarchivelog状态下的

Noarchivelog模式下,重做日志文件写满发生日志切换时,会覆盖掉联机日志文件

Archivelog模式下,重做日志文件写满后进行归档

服务后台进程:ARCn

数据库归档模式管理

笔记:

说明:切换归档需要数据库是干净关闭的状态下,使用shutdown abort或者startup force等操作都不能实现切换效果

如果是非干净关闭数据库的情况下,我们先将数据库启动到open状态,然后再做shutdown immediate操作,然后在startup mount

Archive log list

Show parameter dest_1

Alter system set log_archive_dest_1=’location=/opt/oracle/archive’; //设置归档路径

Shutdown immediate //正常关闭

Startup mount  //启动到mount状态

alter database noarchivelog  //切换到非归档状态

alter database open;    //打开数据库

SQL> alter system switch logfile;  //切换日志的时候进行归档

Sql>alter system set log_archive_format='arch_%t_%s_%r.arc' scope=spfile;

信息获取:v$instance视图中的archiver

查看/opt/oracle/archvie目录下查看出现了一个数据文件

切换到非归档:

alter database noarchivelog;

归档和非归档的切换需要在mount下进行

***数据库一定要在归档模式下进行

1.设置数据库归档/非归档模式

步骤:

关闭数据库

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

启动数据库到mount状态

SQL> startup mount
ORACLE instance started.

Total System Global Area  167772160 bytes
Fixed Size                  1272600 bytes
Variable Size             104858856 bytes
Database Buffers           58720256 bytes
Redo Buffers                2920448 bytes
Database mounted.

切换

SQL> alter database archivelog;          //切换到归档模式

Database altered.

SQL> alter database noarchivelog;           //切换到非归档模式

Database altered.

启动到open状态

SQL> alter database open;

Database altered.

2.归档模式下归档方式的选择
开启关闭归档进程

通过以下方式开启关闭归档进程

SQL> alter system archive log start;

System altered.

SQL> alter system archive log stop;

System altered.

手动归档

对处于inactive状态的已经写满的重做日志文件进行手动归档

(1)对所有已经写满的日志文件进行归档

SQL> alter system archive log all;
alter system archive log all
*
ERROR at line 1:
ORA-00271: there are no logs that need archiving

如果没有写满的日志则出现如上错误

(2)对当前的重做日志文件进行归档

SQL> select group#,status from v$log;

    GROUP# STATUS
---------- ----------------
         2 CURRENT
         3 INACTIVE
         4 UNUSED

SQL> alter system archive log current;

System altered.

SQL> select group#,status from v$log;

    GROUP# STATUS
---------- ----------------
         2 ACTIVE
         3 INACTIVE
         4 CURRENT

3.规定路径设置

(1)使用参数log_archive_dest和log_archive_duplex_dest设置归档路径  ---- 此方法最多只能设置两个归档路径,且只能进行本地归档

SQL> alter system set log_archive_dest='/opt/oracle/archive1'scope=spfile;

System altered.

SQL> alter system set log_archive_duplex_dest='/opt/oracle/archive2'scope=spfile;

System altered.

(2)使用初始化参数log_archive_dest_n设置归档路径   ----此方法最多可指定10个归档路径,归档目录可以说本地系统的目录,也可以是远程的数据库系统

SQL> alter system set log_archive_dest_1='location=/opt/oracle/archive'
  2  ;

System altered.

使用location子句,则归档路径为本地系统目录

SQL> alter system set log_archive_dest_2='server=standby1';

使用server子句,则归档路径为网络服务名所对应的远程备用数据库

 

特别注意:这两种方法只能使用一组设置归档路径,而不能两组同时使用;否则不能启动数据库,出现如下错误

SQL> startup
ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST

不能启动,只能通过pfile启动,并且修改pfile中的上面的参数

查看归档路径信息

SQL> show parameter log_archive_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest                     string
log_archive_dest_1                   string      location=/opt/oracle/archive
log_archive_dest_10                  string
log_archive_dest_2                   string
log_archive_dest_3                   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
log_archive_dest_state_10            string      enable
log_archive_dest_state_2             string      enable
log_archive_dest_state_3             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

SQL> show parameter log_archive_duplex_dest

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_duplex_dest              string

 (3)设置归档文件的命名方式

SQL> show parameter log_archive_format

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_format                   string      %t_%s_%r.dbf

SQL> alter system set log_archive_format='arch_%t_%s_%r.dbf' scope=spfile;

System altered.

生效需重启数据库,所以最好在修改归档模式的时候 就设置好

SQL> show parameter log_archive_format

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_format                   string      arch_%t_%s_%r.dbf

说明:

参数中

%s  代表日志文件序列号(Log Sequences Number)

%S  代表日志文件序列号,不足3位的以0补齐
%t   代表线程号(Thread Number)
%T  代表线程号,不足3位的以0补齐
%r   代表重做日志的ID(Resetlogs ID)
%R 代表重做日志的ID,不足3位的以0补齐

特别注意:

SQL> show parameter log_archive_format


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_format                   string      %t_%s_%r.dbf

修该归档文件的命名方式必须包含%t,%s,%r,否则数据库会无法启动!

4.设置可选或强制归档目标

(1)设置最小成功归档目标数

SQL> show parameter log_archive_min_

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_min_succeed_dest         integer     1

SQL> alter system set log_archive_min_succeed_dest=3 scope=spfile;

System altered.

(2)设置启动最大归档进程数

SQL> show parameter log_archive_max_

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_max_processes            integer     2

SQL> alter system set log_archive_max_processes=3;

System altered.

SQL> show parameter log_archive_max_

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_max_processes            integer     3
SQL>

默认为2

通常不需要修改参数的默认值,因为在系统运行过程中LGWR进程会根据需要自动启动归档进程数

设置完后查看归档进程数

[oracle@localhost ~]$ ps -ef | grep ora_arc
oracle   25933     1  0 15:03 ?        00:00:00 ora_arc0_orcl
oracle   25935     1  0 15:03 ?        00:00:00 ora_arc1_orcl
oracle   26196     1  0 15:20 ?        00:00:00 ora_arc2_orcl

由上可见为3个

(3)设置强制归档目标和可选归档目标

在设置归档路径时,可以通过使用optionalmandatory关键字指定可选或强制归档目标

SQL> alter system set log_archive_dest_1='location=/opt/oracle/archive mandatory';

System altered.

SQL> alter system set log_archive_dest_1='location=/opt/oracle/archive optional';

System altered.

注意:两个关键字需放在‘’中

说明:

如果强制归档目标不可用,则导致数据库停止运行;如果可选归档不可用,则不会影响数据库的运行

5.归档信息查询

(1)archive log list  命令获取当前数据库的归档信息

 (2)v$database:查询数据库是否处于归档模式

v$archived_log : 控制文件中获取的所有已经归档日志的信息

v$archive_dest: 归档目标信息,如位置,状态

v$archive_processes: 已启动的arch进程的信息

v$backup_redolog: 已备份的归档日志信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值