归档配置有 三 种方式:
SQL 语句完成 dmarch.ini 和 ARCH_INI 配置;
手动编写 dmarch.ini 文件和设置参数 ARCH_INI;
利用 manager 图形化工具配置。
-- 1.查看当前的归档模式
select arch_mode from v$database;
-- 2.启动到mount状态,状态3为mount
alter database mount;
select status$ from v$database;
-- 3.添加存放归档的目录,dm没有默认归档路径,file_sie达到多大切换另一个归档,space_limit设置归档空间限制
alter database add archivelog 'dest= /dm8/dmdbms/arch,type=local,file_size=64,space_limit=10240';
-- 4.开归档
SQL> alter database archivelog;
-- 5.启动到open状态,状态4为open
alter database open;
select status$ from v$database;
-- 6.查看归档配置
select arch_mode from v$database;
select arch_name,arch_type,arch_dest,arch_file_size,arch_space_limit from v$dm_arch_ini;
-- 7.检查归档线程
select DISTINCT name, thread_desc from v$threads;
说明:
1. V$database 中的 status$用数字来表示状态的,这里一共有 6 种状态,如下:
1:启动;2:启动,redo 完成;3 :MOUNT ;4 :打开;5:挂起;6:关闭
2. Roles$:角色,也是用数字表示。
0:普通;1:主库;2:备库
# 1.使用配置文件开关归档
[dmdba@dmserver DAMENG]$ cd /opt/dm8/data/DAMENG
# 2.开启dmarch.ini配置文件
[dmdba@dmserver DAMENG]$ cat dm.ini | grep -i arch_ini
ARCH_INI = 1 #启用dmarch.ini
# 3.手动编辑dmarch.ini 文件,之后保存 。dmarch.ini文件中添加内容如下:
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/arch
ARCH_FILE_SIZE = 64
ARCH_SPACE_LIMIT = 0
[ARCHIVE_LOCAL2]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/arch1
ARCH_FILE_SIZE = 64
ARCH_SPACE_LIMIT = 0
# 4.重启数据库服务生效
[dmdba@dmserver DAMENG]$ DmServiceDMSERVER stop
Stopping DmServiceDMSERVER: [ OK ]
[dmdba@dmserver DAMENG]$ DmServiceDMSERVER start
Starting DmServiceDMSERVER: [ OK ]
# 5.检查验证
SQL> select arch_mode from v$database;
SQL> select arch_name,arch_type,arch_dest,arch_file_size,arch_space_limit from v$dm_arch_ini;
参数说明:
ARCH_TYPE:归档类型,有以下几种: 本地归档 LOCAL(一台主库最多配 8 个)、 远程实时归档REALTIME(一台主库最多配 8 个)、远程异步归档 ASYNC(一台主库最多配 8 个)、即时归档 TIMELY(一个主库最多配 8 个)、远程归档 REMOTE(一个主库最多配 8 个) ARCH_DEST: 归档路径 ARCH_FILE_SIZE:单个归档文件大小,单位 MB,取值范围(64~2048),默认为 1024MB,即 1G ARCH_SPACE_LIMIT:归档文件空间限制,单位 MB,取值范围(1024~4294967294),0表示无空间限制
使用manager图像化工具来开启归档。
alter database mount;
alter database noarchivelog;
-- 删除归档路径配置,可以不做
ALTER DATABASE DELETE ARCHIVELOG 'dest=/home/dmdba/arc';
ALTER DATABASE DELETE ARCHIVELOG 'dest=/home/dmdba/arc1';
alter database open;
select arch_mode from v$database;
数据库自动完成归档的切换,DM 支持手工切换归档。
--三条语句功能一样,选择一条执行即可,产生新的归档日志,redo日志并不会切换
alter database archivelog current;
alter system archive log current;
alter system switch logfile; --oracle中是切换联机日志的,达梦中是切换归档的
--归档删除相关的系统函数
SQL> select name from v$ifun t where name like 'SF_ARCHIVELOG_%';
行号 NAME
---------- --------------------------------
1 SF_ARCHIVELOG_DELETE_BEFORE_LSN
2 SF_ARCHIVELOG_DELETE_BEFORE_TIME
--删除10天前的归档日志。
Select SF_ARCHIVELOG_DELETE_BEFORE_TIME(sysdate-10);
--删除某个lsn之前的归档
select SF_ARCHIVELOG_DELETE_BEFORE_LSN(803946)
归档自动删除:
#dmarch.ini,可以设置保留期,到期自动清理
arch_reserver_time #归档日志保留时间,单位分钟
针对业务繁忙期间,出现磁盘 IO 不定时繁忙的情况,因为配置了归档的空间上限(归档达到此上限),生成新的归档日志前删除旧的归档日志文件造成了 IO 的不定时繁忙。
解决方案:配置 JOB 作业,在业务空间期定时清理 N 天之前的归档文件。
可以通过dmrachk检查归档日志连续性.
dmrachk帮助信息:
[dmdba@dmserver ~]$ dmrachk rachk V8 version: 03134283904-20220630-163817-20005 格式: dmrachk keyword=value 例程: dmrachk arch_fil=/opt/a.log 强制参数: 必须指定arch_fil或者arch_path 关键字 说明(默认值) -------------------------------------------------------------------------------- ARCH_FIL 指定一个归档文件 CMP_FIL 指定一个用于比较的归档文件 ARCH_PATH 指定一个归档目录 CMP_PATH 指定一个用于比较的归档目录 RECV_PATH 指定一个待修复的归档目录 TRUNC_FIL 指定新的文件,用于存储从错误归档中,抽取的有效数据。 EXTRACT_FIL 指定新的文件,用于存储从指定的seq范围的归档文件中抽取数据 ARCH_BAK_PATH 指定备份文件路径,用于存储归档修复过程中的重复文件 CHECK 校验级别(0, 1, 2, 3, 4) 0: 文件校验, 1: 包校验(seq & magic),2:ptx校验,3:rrec校验, 4:清理无效的归档文件, 5:修复归档文件到free之后的最后一个有效日志包。默认(0) BEGIN_LSN 指定归档目录时,指定排除小于该LSN的文件 END_LSN 指定归档目录时,指定排除大于该LSN的文件 BEGIN_SEQ 指定归档目录时,抽取大于该SEQ的文件 END_SEQ 指定归档目录时,抽取小于该SEQ的文件 BEFORE_LSN CHECK=4,指定归档目录,删除该LSN之前的文件。默认为0,所有LSN范围内日志均删除 BEFORE_SEQ CHECK=4,指定归档目录,删除该SEQ之前的文件。默认为0,所有SEQ范围内日志均删除 BEFORE_TIME CHECK=4,指定归档目录,删除该时间点之前的文件。默认删除所有时间点的归档 EXCLUDE_DB_MAGIC CHECK=4,指定归档目录,删除指定的DB_MAGIC之外的文件。 OUTPUT_FIL LOG可以指定输出到文件 DCR_INI 指定dmdcr.ini路径,若未指定,则不使用 DM_INI 目标库dm.ini的路径,用于获取日志加密信息 AFTER_FREE 指定TRUNC_FIL时,是否校验并抽取FREE之后的内容。0 不抽取;1 抽取。默认0 CYT_UPDATE 是否更新归档密钥,需要与ARCH_PATH同时使用。0 不更新;1 更新。默认0。 CYT_UPDATED_PATH 归档密钥更新目标文件所在目录。未指定时,直接在原文件上更新;若指定,则更新到新的路径,原文件保持不变 HELP 显示帮助信息
dmrachk检测归档日志:
dmrachk arch_path=/dm8/dmdbms/arch
V$ARCHIVED_LOG:显示当前实例的所有归档日志文件信息。
V$DM_ARCH_INI :用来存放归档路径等相关归档参数信息。
V$ARCH_FILE :查询本地归档日志信息。对DMDSC集群,除了显示本地归档外,也显示远程归档信息。
V$ARCH_QUEUE :显示当前归档任务队列信息。
V$ARCH_SEND_INFO:用于在主库上查询各备库的日志发送统计信息。
V$ARCH_STATUS :查询归档状态信息,归档状态是由主库记录和维护的,此视图只在主库上查询有效,备库上的查询结果没有实际意义。
V$BACKUPSET_ARCH: 显示备份集的归档信息。
V$BACKUPSET_SEARCH_DIRS: 查询 V$BACKUPSET_SEARCH_DIRS 显示当前会话已添加的备份目录,即备份集搜索目录。若用户没有添加备份目录,那么仅显示默认的备份目录。
文章
阅读量
获赞