注册
03 达梦数据库体系结构-归档管理
专栏/技术分享/ 文章详情 /

03 达梦数据库体系结构-归档管理

让世界为你转身 2022/11/17 3194 4 0
摘要

3.归档日志

3.1 开启归档

归档配置有 三 种方式:

  1. SQL 语句完成 dmarch.ini 和 ARCH_INI 配置;

  2. 手动编写 dmarch.ini 文件和设置参数 ARCH_INI;

  3. 利用 manager 图形化工具配置。

3.1.1 通过sql命令开归档

-- 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:备库

3.1.2 修改dm.ini 与dmarch.ini开归档

# 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表示无空间限制

3.1.3 使用manager工具开归档

使用manager图像化工具来开启归档。

3.2 关闭归档

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;

3.3 归档切换

数据库自动完成归档的切换,DM 支持手工切换归档。

--三条语句功能一样,选择一条执行即可,产生新的归档日志,redo日志并不会切换 alter database archivelog current; alter system archive log current; alter system switch logfile; --oracle中是切换联机日志的,达梦中是切换归档的

3.4 归档日志清理

--归档删除相关的系统函数 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 天之前的归档文件。

3.5 归档日志检测

可以通过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

3.6 相关数据字典

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 显示当前会话已添加的备份目录,即备份集搜索目录。若用户没有添加备份目录,那么仅显示默认的备份目录。
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服