上一期我们讲解了DM数据库归档日志的切换,本期我们讲解DM数据库归档日志文件的删除。
本章内容已在如下环境上测试:
①操作系统:中标麒麟7;
②数据库版本:达梦8;
相关关键字:DM数据库、归档日志文件删除
归档日志删除
测试之前,我们可以使用V$ARCH_FILE查看归档日志文件信息,或者直接在操作系统归档目录下查看归档日志文件,如下图:
方式一 设置归档空间大小
DM在配置归档时,需要指定space_limit参数设置归档空间限制,参考如下命令:
SQL>alter database add archivelog 'type=local,dest=/dm8/data/DAMENG/arch,file_size=64,space_limit=1024';
space_limit参数对应dmarch.ini中ARCH_SPACE_LIMIT参数。该参数表示归档文件的磁盘空间限制,如果归档文件总大小超过这个值,则在生成新归档文件前会删除最老的一个归档文件。如果在设置时,该参数设置为0表示不受限制。如下为dmarch.ini的文件内容样例,以本地归档为例。这里配置了空间限制为1024M,如果归档日志超过1024M,则历史的归档日志会逐一删除。
方式二 使用系统函数删除
SF_ARCHIVELOG_DELETE_BEFORE_TIME
可以通过系统函数SF_ARCHIVELOG_DELETE_BEFORE_TIME删除指定时间之前的归档文件,该函数返回删除的归档日志文件个数。如下命令为删除系统当前时间10天前的归档日志文件:
SQL>select sf_archivelog_delete_before_time(sysdate - 10);
如下为执行结果,可以看出删除10个归档日志文件。
SF_ARCHIVELOG_DELETE_BEFORE_LSN
系统函数SF_ARCHIVELOG_DELETE_BEFORE_LSN可以删除指定LSN之前的归档文件,该函数返回删除的归档日志文件个数。归档日志的有效LSN范围可以通过V$ARCH_FILE查看。如下命令为删除LSN号为71206之前的归档日志信息。
SQL>select sf_archivelog_delete_before_lsn(71206);
如下为执行结果,删除文件个数为4。
方式三 备份归档时删除
归档日志支持联机备份(热备)和脱机备份(冷备),两者都提供备份后删除归档的功能,在备份时指定delete input参数即可备份后删除归档,联机归档备份命令参考如下:
SQL>backup archivelog all delete input;
执行完成后,查询V$ARCH_FILE视图无数据,同时操作系统下归档日志文件也被删除。
也可以在DM管理工具窗口左侧对象导航窗口选择“备份”->“归档备份”,右击选择“新建备份”,打开“新建归档备份”窗口,勾选“备份完删除归档”,如下图所示,归档的备份支持指定LSN和指定时间点。该方式是图形化界面操作方式,功能和SQL语句方式相同。
除了上述达梦数据库系统提供的删除归档日志文件的方法外,也可以在操作系统下手工删除归档目录下的归档文件,归档日志文件删除后不影响DM数据库的正常运行,但无论采用哪种办法删除归档日志,都建议在删除前备份归档日志文件或备份数据库,以便数据库故障时能利用备份和归档日志恢复到最新状态。
好,本次分享就到这里
往期干货精选
◆干货分享丨DM8归档日志文件手工切换
◆干货分享丨使用DMRMAN查看和校验备份集
◆干货分享丨DM8备份集删除
◆干货分享|DM表的行计数器(COUNTER)属性