REDO日志
在恢复操作中最重要的结构是联机REDO日志。REDO日志存放在日志表空间文件中,这些文件存储数据库所做的所有物理更改信息。每个数据库实例中都有一个相关联的联机重做日志,通过重做日志可以保证数据库的完整性和一致性。
达梦服务器的REDO日志用于存储被修改数据的新值,包括事务对数据文件和回滚段的修改。REDO日志每次被修改以后,都会自动生成一个新的日志序列值LSN。LSN的取值范围是0~正无穷大,新建的库LSN为0,以后日志每被写入一次,LSN的值增加1。
REDO日志里有一种特殊的记录,叫PWR日志。每个数据页刷盘时,都会生成一条对应的PWR日志。PWR日志的LSN和上一个日志的LSN相同。
1.DSC故障恢复时,利用PWR日志减少加载磁盘数据页的次数;
2.故障恢复时,利用PWR日志提升REDO速度;
3.增量备份时,利用PWR日志提升备份速度
达梦数据库系统中采用了单独的日志文件来存储REDO日志,即联机日志文件。每个
实例至少有两个日志文件,日志文件是循环利用的。日志文件是由日志表空间管理的。
增加日志文件
SQL> alter database add logfile ‘dameng_003.log’ size 80;
修改日志文件大小
SQL> alter database resize logfile ‘dameng_003.log’ to 100;
在数据库为mount状态下,对日志文件重命名
SQL> alter database rename logfile ‘dameng_003.log’ to ‘dameng_004.log’;
重做日志归档
DM服务器运行在归档和非归档模式下,在归档模式下,会产生归档日志文件,应预留出足够的磁盘空间以便存储归档日志文件。
本地归档
将redo日志写到本地归档文件中,在redo日志写入日志文件后触发,由归档线程完成本地归档动作,最多可以设置8个本地归档。当磁盘空间不足时,所有本地归档一旦生效,系统会被强制挂起,直到磁盘空间释放,本地归档成功后,再继续执行。
实时归档
在将REDO日志写入到日志文件之前,可以通过MAL系统发送REDO日志到远程服务器,远程服务器收到REDO日志后,返回确认消息。收到确认消息后,执行后续操作,发送REDO日志失败,或从备库返回的数据库模式不是STANDBY,将数据库切换为SUSPEND状态,阻塞所有REDO日志的写入操作。只能配置一个实时归档。
即时归档
在主库将REDO日志写入联机REDO日志文件后,再通过MAL系统将REDO日志发送到备库。即时归档是读写分离集群的实现基础,与实时归档的主要区别是发送REDO日志的时机不同。一个主库可以配置1~8个即时备库。
异步归档
在设定的时间点或者每隔设定时间,启动归档REDO日志发送。设置定时归档,必须有一个本地归档。系统调度线程根据设定,触发归档REDO日志发送事件。通过MAL系统,获取远程服务器的当前LSN,生成发送归档REDO日志任务,加入任务队列。归档任务线程获取任务,通过MAL系统,发送到远程服务器。最多可设置8个异步归档。
远程归档
远程归档就是将写入本地归档的REDO日志信息,发送到远程节点,并写入远程节点的指定归档目录中。远程归档与本地归档的区别是REDO日志写入的位置不同,本地归档将REDO日志写入数据库实例所在的节点的磁盘,而远程归档则将REDO日志写入到其他数据库实例所在的节点的指定的归档目录。远程归档日志文件以归档名+归档文件的创建时间进行组合命令。最多可以配置8个远程归档。
达梦数据库的几种归档方式介绍
最新推荐文章于 2023-10-14 10:17:24 发布