购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 数据初始化装载

2.2.1 直接数据传输初始化装载

所有 DMHS 源端支持的数据库类型,均可使用数据装载方式进行执行端数据的初始化。数据装载是通过同步某个时刻数据的方式实现的,在查询表数据之前,需要对表加上S锁。

数据初始化装载操作需在 dmhs_console 工具中输入运行,数据初始化装载命令格式为

装载选项:包括CREATE、TRUNCATE、DROP、INSERT等掩码。

数据初始化装载命令完成之后,会将所有满足过滤条件的表数据都发送到执行端,执行端将数据入库。当某个表数据入库完成时,会在表 DMHS_TABLE_SEQID 中插入一行同步表的数据,DMHS_TABLE_SEQID表中的数据影响装载选项CONTINUE的操作结果。

当装载过程中有操作失败时,会将执行出错的表信息写入 DMHS_ERROR_TABLE,在装载完成后,可根据DMHS_ERROR_TABLE中的数据确认表数据装载是否成功。

装载成功的表,可保证目的数据库表的数据与源数据库对应表的数据在某个时刻完全一致,当进行增量同步时,源数据库在该时刻之前的操作都不会同步到目的数据库。

2.2.2 使用备份文件进行初始化装载

使用备份文件装载是一种特殊的数据装载方式。在这种数据装载方式下,执行端数据库需要使用源端备份文件还原数据库,在装载过程中,部分操作需人为进行。

1.备份装载命令

数据装载操作需在dmhs_console工具中输入运行,数据装载命令格式为

其他装载选项包括FILE、NEXT、DICT。

备份装载是将源数据库备份文件发送到执行端,执行端利用 SQL 语句和备份文件还原目的数据库。还原之后,执行端通过备份文件中的信息,决定哪些事务需要入库。

2.备份装载使用限制

使用备份文件装载方式有以下限制条件。

(1)DM6数据库备份策略必须为异步备份,即设置dm.ini中的BAK_POLICY=1。

(2)执行端需同步的数据库处于脱机状态。

(3)执行端设置同步用户的默认数据库不能为需要同步的数据库。由于执行端需同步的数据库为脱机状态,执行端设置的用户无法对该库进行数据访问。

(4)执行端数据库还原之后,需要人为将数据库装载修改为联机状态;如果还原后的数据库中存在DMHS系统表及触发器,则需要人为删除。

(5)备份文件备份时间点之后的归档文件,必须都存在。

3.起始LSN及提交LSN

在进行数据库异步备份时,应用程序可对数据库数据进行操作。为保证备份文件装载后同步的正常进行,DMHS使用了起始 LSN及提交 LSN,用于判别哪些操作需要在执行端进行执行,哪些操作需要丢弃。

DMHS 捕获模块根据起始 LSN 判别日志捕获的起始位置。所有小于起始 LSN 的操作,都会被丢弃。

DMHS 执行模块根据提交 LSN 判断事务是否需要入库。所有事务提交 LSN 小于DMHS提交LSN的事务,都会被丢弃;而事务提交LSN大于DMHS提交LSN的,则需要入库。

(1)捕获模块起始LSN的设置。

在备份文件装载方式下,在备份文件发送之前,DMHS 会将源端起始 LSN 保存到dmhs.conf中,方式为

DBNAME 为源端备份库的数据库名称。根据装载掩码的不同,value 值获取的方式也不同。

当装载备份文件为 DMHS执行 SQL语句产生的时,DMHS在执行备份 SQL之前,查询数据库的LSN,并将该LSN设置为value。

当装载掩码使用了 NEXT时,DMHS立即查询数据库的 LSN,并将该 LSN设置为value。

当装载掩码中使用FILE掩码指定备份文件时,value被设置为0。

当捕获模块开始数据捕获时,会首先从执行端获取起始LSN,然后从dmhs.conf中获取起始LSN,这两个LSN中较大的LSN将作为捕获模块的起始LSN。

(2)执行模块提交LSN的设置。

执行端在使用备份文件还原数据库之后,会从备份文件中获取备份文件的提交LSN,将该LSN设置为执行模块的提交LSN。备份文件的提交LSN可通过restore工具获取,命令为

输出信息backup log end lsn即备份文件的提交LSN。 m9m4a95GN7+UIr0zMGI5lKGCtXLKvkqmByNzRHOWkE/KHSRVx+qTuUh+e0z0n79V

点击中间区域
呼出菜单
上一章
目录
下一章
×