一、前期准备:
①准备 3 台服务器,一台主库服务器,一台备库服务器,一台监视器服务器
三台机器都需要创建用户和组。(测试环境监视服务器可在主库上或备库上)。
DW_P、DW_S1、DW_M,DW_P 和 DW_S1 用来部署主备库,DW_M 用来部
署确认监视器。其中 DW_P 和 DW_S1 配置两块网卡,一块接入内部网络交换模块,一块接入到外部交换机,DW_M 接入内部网络。
②安装并初始化实例。且主库备库都要配置两块网卡。
端口规划为:
实例名 | PORT_NUM | MAL_INST_DW_PORT | MAL_HOST | MAL_PORT | MAL_DW_PORT |
GRP1_RT_01 | 32141 | 33141 | 192.168.0.141 | 61141 | 52141 |
GRP1_RT_02 | 32142 | 33142 | 192.168.0.142 | 61142 | 52142 |
二、备份还原
配置实时主备之前,必须先通过备份还原方式同步各数据库的数据,确保各数据的数据保持完全一致。主库可以是新初始化的数据库,也可以是正在生产、使用中的数据库。
不能使用分别初始化库或者直接拷贝数据文件的方法,原因如下:
1. 每个库都有一个永久魔数(permenant_magic),一经生成,永远不会改变,主
库传送日志时会判断这个值是否一样,确保是来自同一个数据守护环境中的库,否则传送不
了日志。
2. 由于 dminit 初始化数据库时,会生成随机密钥用于加密,每次生成的密钥都不
相同,备库无法解析采用主库密钥加密的数据。
3. 每个库都有一个数据库魔数(DB_MAGIC),每经过一次还原、恢复操作,DB_MAGIC
就会产生变化,需要通过这种方式来区分同一个数据守护环境中各个不同的库。
注意:在同步数据库数据之后不可以使用open的方式启动数据库,必须以mount的方式启动。
具体步骤:
1. 正常关闭数据库
2. 进行脱机备份
3. 拷贝备份文件到备库所在机器
./dmrman CTLSTMT="BACKUP DATABASE '/dm/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1
BACKUPSET '/dm/data/BACKUP_FILE_01'"
4. 执行脱机数据库还原与恢复
数据库还原:
./dmrman CTLSTMT="RESTORE DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET
'/dm/data/BACKUP_FILE_01'"
因为脱机备份没有产生任何 REDO 日志,所以此处省略恢复数据库的操作步骤。
数据库更新:
./dmrman CTLSTMT="RECOVER DATABASE '/dm/data/DAMENG/dm.ini' UPDATE DB_MAGIC"
三、配置主备库
1、配置dm.ini
在 DW_P 机器上配置主库的实例名为 GRP1_RT_01,dm.ini 参数修改如下:
#实例名,建议使用―组名_守护环境_序号‖的命名方式,总长度不能超过 16
INSTANCE_NAME = GRP1_RT_01
PORT_NUM = 32141 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
在 DW_S1 机器上配置备库的实例名为 GRP1_RT_02,dm.ini 参数修改如下:
NSTANCE_NAME = GRP1_RT_02
PORT_NUM = 32142 #数据库实例监听端口
DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
2、配置dmmal.ini
配置 MAL 系统,各主备库的 dmmal.ini 配置必须完全一致,MAL_HOST 使用内部网
络 IP,MAL_PORT 与 dm.ini 中 PORT_NUM 使用不同的端口值,MAL_DW_PORT 是各实例
对应的守护进程之间,以及守护进程和监视器之间的通信端口,主库配置如下:
备库配置如下
3、配置dmarch.ini
修改 dmarch.ini,配置本地归档和实时归档。
除了本地归档外,其他归档配置项中的 ARCH_DEST 表示实例是 Primary 模式时,需
要同步归档数据的目标实例名。
主库配置为:
备库配置为:
4、配置dmwatcher.ini
修改 dmwatcher.ini 配置守护进程,配置为全局守护类型,使用自动切换模式。
主库配置为:
备库配置为:
四、以mount方式启动主库
./dmserver /dm/data/DAMENG/dm.ini mount
进入数据库,设置OGUID:
SQL>sp_set_oguid(453331);
修改数据库模式:
SQL>alter database primary;
五、以mount方式启动备库
./dmserver /dm/data/DAMENG/dm.ini mount
进入数据库,设置OGUID:
SQL>sp_set_oguid(453331);
修改数据库模式:
SQL>alter database standby;
六、配置单实例监视器
在第三台服务器中,修改 dmmonitor.ini 配置确认监视器,其中 MON_DW_IP 中的 IP 和 PORT 和dmmal.ini 中的 MAL_HOST 和 MAL_DW_PORT 配置项保持一致。
配置为:
七、启动守护进程
启动顺序为:主库server-备库server-主库watcher-备库watcher-监视器
关闭顺序为:监视器-备库watcher-主库watcher-主库server-备库server
监视器启动:
实时主备搭建完成。