开启归档
归档的格式:
ARCH_NAME_DB_MAGIC[SEQNO]_日期时间.log
ARCH_NAME 是在 dmarch.ini中配置的 LOCAL/REMOTE 归档名称
DB_MAGIC 是生成日志的数据库魔数
SEQNO 代表DSC 节点号,日期时间是归档日志文件的创建时间。
eg:ARCHIVE_LOCAL1_0x567891[0]_2018-05-30_10-35-34.log
法1:命令行(mount)
以SYSDBA用户登录达梦数据库,进行如下操作:
#修改到mount状态(不用像oracle那样shutdown关库)
alter database mount;#开启归档
alter database archivelog;#设置归档参数
alter database add archivelog 'type=local,dest=/dm8/arch,file_size=1024,space_limit=4096';#修改到open状态
alter database open;#查看归档模式
select name,arch_mode from v$database;#查看归档文件
select * from sys.v$arch_file;#查看归档配置
select * from v$dm_arch_ini;
法2:手工修改配置文件(需重启库)
#修改dm.ini文件
vi dm.ini
ARCH_INI=1 #1开启归档#dmarch.ini 增加如下内容
vi dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #归档类型
ARCH_DEST = d:\dmdbms\arch #归档路径
ARCH_FILE_SIZE = 1024 #单个归档文件大小,单位MB,取值范围(64~2048),默认为1024MB,即1G
ARCH_SPACE_LIMIT = 4096 #归档文件空间限制,#单位M,0 :无限制,范围 1024~4294967294M#重启数据库
/dm/bin/DmServiceDAMENG restart #查看归档模式
select name,arch_mode from v$database;
关于ARCH_SPACE_LIMIT参数最好还是给一个限定的值,如果设置为0,则归档在磁盘空间上的使用将没有限制,则这样磁盘空间满了的时候数据库会挂起。
这里归档日志的文件路径一定要存在,并且该赋予的权限一定要有,否侧无法拉起数据库服务。
法3:使用客户端管理工具配置
1、首先运行“DM管理工具”,使用SYSDBA的账号和密码登录需要操作的数据库和服务器,在打开的主界面上选择对应数据库右击选择“管理服务器”,选择“系统管理”,在状态切换中选择“配置”,点击【转换】,等待后提示“转换状态成功”,此时数据库切换为mount状态。
2、在管理服务器页面选择“归档配置”,在归档模式中选择“归档”,点击右侧绿色加号,配置归档目录和归档类型,文件大小等,这里以配置本地归档LOCAL方式为例。
3、配置归档路径完成之后,重新选择“系统管理”,在状态转换中选择“打开”,点击“转换”按钮,等候片刻提示转换状态成功。此时,数据库已正常打开。
手动切换归档
切换归档的三种命令行:
alter database archivelog current;
alter system archive log current;
alter system switch logfile;
关闭归档
#修改到mount状态(不用像oracle那样shutdown关库)
alter database mount;
#关闭归档
alter database noarchivelog;
#open数据库
alter database open;
#删除归档文件 谨慎操作
select sf_archivelog_delete_before_time(sysdate-1); #确认无误后再操作会删除操作系统上的归档文件
清理归档文件
法1:设置归档空间大小
在配置数据库归档的时候,可以设置ARCH_SPACE_LIMIT 参数。 该参数表示归档文件的磁盘空间限制,如果归档文件总大小超过这个值,则在生成新归档文件前会删除最老的一个归档文件。
一般在设置时,是将该参数设置为0。 表示不受限制。 因为在数据库高可用方案中,会依赖归档文件,如果归档文件丢失,可能会对数据库同步产生影响。
法2:备份归档时删除
在脱机备份和联机备份中,备份归档时可以删除备份的归档文件,比如:
RMAN> backup archivelog lsn between 62835 and 63186 delete input database ‘/dm/dmdbms/data/cndba/dm.ini’ backupset ‘/dm/dmbak/arch_increment_01’;
法3:使用系统函数删除(建议)
通过SF_ARCHIVELOG_DELETE_BEFORE_TIME 和SF_ARCHIVELOG_DELETE_BEFORE_LSN 函数来直接删除指定时间或者LSN之前的归档文件。归档日志的有效 LSN 范围可以通过 V$ARCH_FILE 查看。
删除三天之前的归档日志:
确认无误后再操作会删除操作系统上的归档文件
select sf_archivelog_delete_before_time(sysdate-3)
删除 LSN 值小于 95560 之前的归档日志文件:
确认无误后再操作会删除操作系统上的归档文件
select sf_archivelog_delete_before_lsn(95560);
法4: 直接在操作系统上删除
如果归档确认不在需要,也可以直接在操作系统上rm 删除。 当然,生产环境建议是对归档文件备份之后在删除,以防在数据库恢复时需要这些归档文件。