Oracle 和 DM 数据库本地归档的异同

氢气球 2021/06/18 2812 20 0
摘要 Oracle 和 DM 数据库本地归档的异同

一、归档参数的查看

Oracle 数据库

在 sqlplus 命令行上键入下面的命令,可以查看归档相关信息,该命令无法在 disql 中使用。

SQL> archive log list;

复制

6.1.png

达梦数据库

通过 v$dm_arch_ini 视图查询,或者直接查看 dmarch.ini 文件。

select arch_name, arch_type, arch_dest from v$dm_arch_ini;

复制

6.2.png

select arch_mode from v$database;

复制

6.3.png

二、添加或删除归档写入目标

Oracle 数据库

Oracle 数据库在线更改归档日志的路径。

修改动态参数后立刻生效,并且可以配置多路归档。12c 中最多可指定 31 个归档目标,1-10 路可用于本地或者远程,11-31 路只能配置远程归档目标。

在线添加一个归档路径:

SQL> alter system set log_archive_dest_2='location=/oracle/app/oraarch_2' scope=both;

复制

切换日志后,在两个路径下同时生成归档日志文件:

SQL> col name format a60; SQL> col dest_id format 999999 SQL> set linesize 999 SQL> select NAME,DEST_ID,THREAD#,SEQUENCE# from v$archived_log;

复制

6.4.png

删除一路归档日志如下, sequence 号为 9 的归档日志文件只在 1 号归档目标中存在。

SQL> alter system set log_archive_dest_2='' scope=both;

复制

6.5.png

达梦数据库

达梦数据库中添加一路归档日志,必须在数据库处于 mount 状态下才能完成。系统处于 open 状态,无法添加或者删除归档路径。

6.6.png

DM8 中每种类型的归档都可以设置 8 路。

在 DM 中配置了多路归档路径后,如果想要删除某几路归档路径,必须使数据库处于 mount 状态并同时设置数据库为非归档模式。

alter database mount; alter database noarchivelog; alter database delete archivelog 'dest=/dm/arch/TE' local; alter database archivelogl; alter database open;

复制

达梦数据库中的归档文件大小有最小值限制,最小值为 64M。

6.7.png

三、达梦数据库归档日志的删除时机

归档日志主要用于数据库恢复和基于日志同步、分析的各类应用对数据库的操作,但日志文件受空间限制,所以根据不同的场景考虑对应的删除策略,以下是达梦数据库自带的删除方法:

  1. 设置归档目标时给定 space_limit 参数。当归档的日志量超过这个空间上限阀值时,系统会自动删除最早生成的归档日志文件。

  2. 通过脚本控制,当指定的条件满足时,使用 SF_ARCHIVELOG_DELETE_BEFORE_TIME 或者 SF_ARCHIVELOG_DELETE_BEFORE_LSN 函数删除日志。

  3. 定时备份归档后,即可将已备份的归档删除。

四、调整归档进程数

Oracle 默认启动 4 个归档进程,可以通过 log_archive_max_processes 参数动态调整归档进程数量,修改后可以马上生效。

达梦数据库日志归档线程默认为 3 个,不能手动修改异步归档线程的数量。

五、归档切换的概念异同

两者在执行归档切换的命令时,除第一条在Oracle中无法识别外,其余都可键入。

alter database archivelog current; alter system switch logfile; alter system archive log current;

复制

Oracle数据库只有在日志切换时,才会形成归档日志文件。

而达梦数据库是在将 redo 日志写入联机日志文件后,再由专用的归档线程异步地将其写入归档文件。也就是说达梦数据库并不是等到联机日志切换发生时才形成归档日志,程序在运行过程中可以强行删除正在使用的归档日志文件,一旦删除,除非 mount 再 open 数据库,否则将没有归档日志输出。

达梦数据库归档模式下,按照预设的大小(例如64M)生成一个归档日志文件,当执行归档切换命令的时候,该归档文件的大小会变成实际日志占用的大小。并且后续如果没有 redo 需要再次写入,将无法查看到手动切换生成的新的归档日志文件。最初按指定值大小创建文件是为了获取连续的磁盘空间,提高写入性能。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服