开启归档的方式
- 检查当前归档是否开启
开启归档前首先检查一下当前数据库是否已经开启归档模式。检查的方式可以使用如下sql命令来查看,如下图所示:
执行:select arch_mode from v$database;sql命令即可查看当前数据库是否开启了归档,此处ARCH_MODE为N表示没有开启。接下来我们就介绍开启的方法。如果数据库是非归档模式,则可以使用如下三种方式配置归档模式。其中前两种是联机归档配置,在数据库实例启动情况下,使用 SQL 语句或者客户端操作完成 dmarch.ini 和 ARCH_INI 配置;第三种是手动配置,在数据库实例未启动的情况下,手动编写 dmarch.ini 文件和设置参数 ARCH_INI。
- 方法一图像化开启
2.1首先运行“DM管理工具”,使用SYSDBA的账号和密码登录需要操作的数据库和服务器,在打开的主界面上选择对应数据库右击选择“管理服务器”。选择“系统管理”。如果所示:
2.2在状态切换中选择“配置”,点击【转换】,等待后提示“转换状态成功”,此时数据库切换为mount状态。如果所示:
2.3在管理服务器页面选择“归档配置”,在归档模式中选择“归档”,点击右侧绿色加号,配置归档目录和归档类型,文件大小等,这里以配置本地归档LOCAL方式为例。入托所示:
归档目标:你所需要存放归档日志的具体位置,Linux下需要注意存放的目录是否有对应权限。
归档类型:本地归档
文件大小:单个归档日志文件的大小
空间大小限制:整个归档日志最大上限占用的磁盘空间。如果不限制会无限增大。这里需要根据实际需求调整。达到空间上限后日志会循环覆盖。
2.4配置归档路径完成之后,重新选择“系统管理”,在状态转换中选择“打开”,点击“转换”按钮,等候片刻提示转换状态成功。此时,数据库已正常打开。如图所示:
此时归档就已经开启成功。
- 方法二命令开启
3.1联机开启归档日志方法比较简单主要是执行一下一串sql脚本即可完成。
--1.让数据库切换到配置状态
alter database mount;
--2.配置本地归档TYPE=LOCAL为本地归档模式,DEST为归档路径,目前演示为windows环境,Linux下需要注意归档目录权限是否可用。FILE_SIZE为单个归档日志大小单位为M。
SPACE_LIMIT为归档占用最大空间,单位为M
alter database add archivelog 'TYPE=LOCAL,DEST=D:\dmdbms\dmarch,FILE_SIZE=128,SPACE_LIMIT=1024';
--3.开启归档模式
alter database archivelog;
--4.让数据库转为为open状态。
alter database open;
执行以上四个步骤即可联机在线开启归档。无论是用图形化还是命令开启。系统都会自动配置一个归档配置文件默认放在实例路径下。默认文件名为dmarch.ini。如果所示:
- 方法三配置开启
以上两种方式,不管是命令行方式还是客户端修改配置,最终后台都是操作配置文件。我们也可以直接手工修改dmarch.ini 配置文件和设置参数ARCH_INI(ARCH_INI参数在dm.ini文件中修改)。dm.ini参数文件是数据库启动的重要文件,手工修改需慎重,建议修改前备份,避免误操作导致数据库无法正常启动。
手工配置归档方式参考如下;
1.手动编辑 dmarch.ini 文件,文件内容参考如下,编辑成功后保存至 dm.ini 所在的目录。即实例默认路径下。手工命名为dmarch.ini
ARCH_DEST这里是windows路径。Linux系统按照实际的路径来编写。注意访问权限。
- 相关数据字典
归档开启后可以通过相关数据字典查询当前的归档日志文件信息,如果所示:
执行:SELECT NAME,FIRST_TIME,NEXT_TIME,FIRST_CHANGE#,NEXT_CHANGE# FROM V$ARCHIVED_LOG;
即可查询到归档的文件信息。这里重点理解一下四个参数:
FIRST_TIME:日志文件所记录的起始时间。
NEXT_TIME:日志文件所记录的截止时间。
FIRST_CHANGE#:日志文件所记录的最小LSN值。
NEXT_CHANGE#:日志文件所记录的最大LSN值。
这几个参数在进行归档恢复数据时可以根据信息恢复到指定的节点位置。
可以通过执行:select * from V$DM_ARCH_INI;查询归档配置信息,如果所示:
其它归档相关数据字典:
V$ARCH_FILE,
V$ARCH_QUEUE,
V$ARCH_SEND_INFO,
V$ARCH_STATUS,
V$BACKUPSET_ARCH,
V$BACKUPSET_SEARCH_DIRS