Oracle体系结构初探:归档模式

在前几天的《Oracle体系结构初探:聊聊REDO》这篇文章中,有提到了Oracle数据库的归档模式和非归档模式。现在这篇文章详细和大家分享下Oracle归档模式的相关内容。

目录

归档VS非归档

切换归档模式说明

1、查看归档状态

2、设置归档路径

3、设置日志文件名格式 

4、设置最小归档成功数

5、设置归档进程的数量

6、开启数据库归档

7、关闭数据库归档

切换为归档模式实验 


归档VS非归档

在建库时,默认的日志管理模式是非归档模式。

  • 非归档模式

非归档模式不适用于生产数据库,有以下几点原因。

Ⅰ:online redo log是循环覆盖写,介质恢复仅仅支持到最近的完整备份。

Ⅱ:不支持热备(在线备份),只能在关机后进行备份操作,但生产环境下是不能随便关机的。

Ⅲ:也不支持在线备份表空间。

  • 归档模式

Ⅰ:归档模式可以对online redo log进行归档,也可以将归档日志理解为online redo log的备份。

Ⅱ:归档日志的Log sequence number信息会记录到控制文件之中。

Ⅲ:切换日志组时,下一个即将被写入日志组必须完成归档之后,该日志组才可以使用。

Ⅳ:要保证操作系统磁盘空间足够

切换归档模式说明

1、查看归档状态

在切换归档之前,肯定是要先看看当前Oracle数据库是什么模式。项目现场有些人可能会告诉你没有开,但其实已经开了;还是要自己看下才放心。

archive log list
archive log list

上图的 Database log mode 参数显示 No Archive Mode,就代表是未开归档。

2、设置归档路径

设置LOG_ARCHIVE_DEST_n参数,其中n为1-31的整数,必需从低到高设置。

有下面几种设置归档路径的实际例子 

① 

alter system set log_archive_dest_1='LOCATION=/u01/archive MANDATORY REOPEN'

alter system set log_archive_dest_2='SERVICE=orcl MANDATORY REOPEN=600'

③ 

 alter system set log_archive_dest_3='LOCATION=/u02/archive OPTIONAL'

alter system set log_archive_dest_4='LOCATION=/u03/archive'

以下是关键字说明 

  • LOCATION

LOCATION关键字说明是本机的一个目录 

  • SERVICE

SERVICE关键字说明是已经在TNSNAMES.ORA中配置了orcl主机相关信息,则归档会在orcl2主机的默认位置上生成。

  • MANDATORY

MANDATORY关键字说明联机日志文件必须要成功归档到这个目录后才能被覆写(联机日志文件是重复使用的文件)。缺省为“可选” (OPTIONAL),即即使归档不成功也可以覆写。

  • REOPEN

REOPEN关键字说明如果归档不成功时系统要重新尝试归档,缺省每300秒尝试一次直到成功。可以通过=n来指定尝试的时间间隔,如log_archive_dest_2中的时间间隔为600秒,而log_archive_dest_1中的时间间隔为300秒。

在实际工作中开启归档模式时,没有那么复杂,一般直接使用第 ④ 个例子

3、设置日志文件名格式 

查看当前 log_archive_format 参数设置

show parameter log_archive_format
log_archive_format

可以手动去调整日志文件格式名,命令如下

alter system set log_archive_format='$ORACLE_SID_arch_%t_%s_%r.arc'

日志文件格式中各个参数含义如下 

%s:日志序列号:

%S:日志序列号(带有前导)

%t:重做线程编号.  

%T:重做线程编号(带有前导)  

%a:活动ID号  

%d:数据库ID号  

%r:RESETLOGS的ID值.

4、设置最小归档成功数

查看当前 log_archive_min_succeed_dest 参数设置

show parameter log_archive_min_succeed_dest
log_archive_min_succeed_dest

此参数说明至少有value(如上图是至少有1)个归档路径归档成功后才能覆写联机日志文件。

此参数和归档路径参数联用。意思是如果log_archive_dest_n中的MANDATORY关键字个数大于log_archive_min_succeed_dest,则 log_archive_min_succeed_dest的设置不起作用。进一步说就是MANDATORY关键字的优先级大于 log_archive_min_succeed_dest 参数。

可以手动去调整最小归档成功数,命令如下

alter system set log_archive_min_succeed_dest=3

5、设置归档进程的数量

查看当前 log_archive_max_processes 参数设置

show parameter log_archive_max_processes
log_archive_max_processes

 可以手动去调整归档进程的数量,命令如下

alter system set log_archive_max_processes=10

 log_archive_max_processes 表示运行几个归档进程来完成归档工作,取值范围为1-10

Oracle10g之前需要在log_archive_start=true时,log_archive_max_processes才会生效。

但是,10g后废弃了log_archive_start参数,都是自动归档。

6、开启数据库归档

Ⅰ:一致性关闭数据库 

shutdown immediate

Ⅱ:开启数据库到mount状态 

startup mount

Ⅲ:开启归档模式

alter database archivelog;

Ⅳ:打开数据库

alter database open;

Ⅵ:检查数据库是否为归档状态

archive log list;

7、关闭数据库归档

Ⅰ:一致性关闭数据库

shutdown immediate

Ⅱ:启动到mount状态

startup mount

Ⅲ:关闭归档

alter database noarchivelog;

Ⅳ:打开数据库

alter database open;

Ⅴ:检查归档模式

archive log list;

切换为归档模式实验 

这里的实验是开启本地归档。

Ⅰ:查看归档状态

现在数据库的归档模式是非归档模式

归档状态

Ⅱ:创建归档目录

在数据库所在操作系统上创建归档目录

操作系统上创建归档目录

设置Oracle的归档路径参数 log_archive_dest_n

因为是从低到高开始设置,所以先要设置log_archive_dest_1

log_archive_dest_n参数设置

Ⅲ:一致性关闭数据库

一致性关闭数据库

 Ⅳ:启动数据库至mount状态

启动到mount状态

Ⅴ:开启归档模式

开启归档模式

Ⅵ:打开数据库

打开数据库

Ⅶ:查看归档状态

归档已开启

至此已为Oracle数据库开启归档模式。

下面需要手动切换一下归档日志

alter system archive log current;
切换归档日志

 此时进入操作系统归档目录,可以发现已经产生归档日志了。

关闭归档实验,就不在这里展开了,和开启归档步骤类似。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

姜豆豆耶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值