注:配置数据守护之前,必须先同步实例数据,确保两者保持完全一致;主库可以是新初始化的数据,也可以是正在生产、使用中的数据。DM 提供了两种方式初始化同步实例数据,数据文件拷贝以及备份还原方式。
建议三种方式优先级 数据拷贝>脱机备份、脱机还原>联机备份、脱机还原
注:主备库数据库软件已安装,只初始化主库实例
$ cd /opt/dmdbms/bin
$ ./dminit PATH=/opt/dmdbms/data CHARSET=1
注:根据需要选择参数进行初始化,对于新初始化的库,首次启动不允许使用 mount 方式需要先正常启动并正常退出,然后才允许 mount 方式启动。
$ ./dmserver /opt/dmdbms/data/DAMENG/dm.ini
注:此处为测试环境,数据文件都存放在data文件夹下,所以将data文件夹传输至备库即可
$ cd ../
$ scp -r data/ dmdba@192.168.189.92:/opt/dmdbms/
注:本次为dmdba用户传送至dmdba用户,所以备机data文件夹所属用户组不用重新授权,如果用root用户传送,需要重新授权
# cd /opt/dmdbms
# chown -R dmdba:dinstall data/
注:必须已mount方式启动主备库实例
主库:
$ /opt/dmdbms/bin
$ ./dmserver /opt/dmdbms/data/DAMENG/dm.ini mount
# /opt/dmdbms/bin
# ./disql
$ /opt/dmdbms/bin
$ ./dmserver /opt/dmdbms/data/DAMENG/dm.ini mount
另开窗口
# /opt/dmdbms/bin
# ./disql
分别在主备库disql中输入一下sql
SQL> select file_LSN, cur_LSN from v$rlog;
注:主库和备库的 FILE_LSN和 CUR_LSN 值相同,可以确保数据完全一致
主库:
备库:
分别在主备库disql中输入一下sql
SQL> select permanent_magic;
注:检查实例的永久魔数是否一致
主库:
备库:
主备库的FILE_LSN和 CUR_LSN 值相同且永久魔数一致情况下可进行主备库的配置工作
注:此种情况适用于生产环境正在使用的数据库且不能停止实例服务,确保主库本地归档开启且为连续归档
主库实例初始化完成且有数据,备库需要初始化实例,参数与主库参数保持一致
进入主库disql
# cd /opt/dmdbms/bin
# ./disql
SQL> BACKUP DATABASE BACKUPSET '/opt/dmdbms/data/BACKUP_FILE_01';
$ cd /opt/dmdbms/data/
$ scp -r BACKUP_FILE_01 dmdba@192.168.189.92:/opt/dmdbms/data/
$ cd /opt/dmdbms/bin
$ ./dmrman CTLSTMT="RESTORE DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdbms/data/BACKUP_FILE_01'"
$ ./dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdbms/data/BACKUP_FILE_01'"
$ ./dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
正常关闭数据库
$ service DmServiceDAMENG stop
查看DmAPService服务是否运行
$ service DmAPService status
$ ./dmrman CTLSTMT="BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/opt/dmdbms/data/BACKUP_FILE_01'"
$ cd /opt/dmdbms/data/
$ scp -r BACKUP_FILE_01/ dmdba@192.168.189.92:/opt/dmdbms/data/
确保备库数据库处于关闭状态
$ cd /opt/dmdbms/bin
$ ./dmrman CTLSTMT="RESTORE DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdbms/data/BACKUP_FILE_01'"
$ ./dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdbms/data/BACKUP_FILE_01'"
$ ./dmrman CTLSTMT="RECOVER DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
注:必须已mount方式启动主备库实例
主库:
$ /opt/dmdbms/bin
$ ./dmserver /opt/dmdbms/data/DAMENG/dm.ini mount
# /opt/dmdbms/bin
# ./disql
SQL> select file_LSN, cur_LSN from v$rlog;
SQL> select permanent_magic;