dm数据守护

tech2022-09-18  115

dm数据守护

1.先做备份

开归档
[dmdba@dmp1 dmdbms]$ mkdir dmarch [dmdba@dmp1 dmdbms]$ vi DAMENG/dm.ini [dmdba@dmp1 dmdbms]$ cat DAMENG/dm.ini |grep ARCH_INI ARCH_INI = 1 #dmarch.ini [dmdba@dmp1 DAMENG]$ cat dmarch.ini [ARCHIVE_LOCAL1] ARCH_TYPE=LOCAL ARCH_DEST=/home/dmdba/dmdbms/dmarch ARCH_FILE_SIZE=1024 ARCH_SPACE_LIMIT=10240
1.1脱机备份

确定启动dmap

[dmdba@dmp1 bin]$ ./DmServicedm stop Stopping DmServicedm: [ OK ] [dmdba@dmp1 bin]$ ./dmrman dmrman V8 RMAN> RMAN> backup databases '/home/dmdba/dmdbms/DAMENG/dm.ini' backupset '/home/dmdba/dmdbms/backup_file_01';

拷贝备份文件到所在机器dm.ini dm.ctl

[dmdba@dmp1 dmdbms]$ scp -r backup_file_01 dmdba@192.168.6.78:/home/dmdba/dmdbms
1.2脱机恢复
[dmdba@dms2 bin]$ ./DmServicedm stop Stopping DmServicedm: [ OK ] [dmdba@dms2 bin]$ ./dmrman dmrman V8 RMAN> restore database '/home/dmdba/dmdbms/DAMENG/dm.ini' from backupset '/home/dmdba/dmdbms/backup_file_01'; restore database '/home/dmdba/dmdbms/DAMENG/dm.ini' from backupset '/home/dmdba/dmdbms/backup_file_01'; file dm.key not found, use default license! RESTORE DATABASE CHECK...... RESTORE DATABASE,data collect...... RESTORE DATABASE,database refresh ...... RESTORE BACKUPSET [/home/dmdba/dmdbms/backup_file_01] START...... total 7 packages processed... total 8 packages processed... RESTORE DATABASE,UPDATE ctl file...... RESTORE DATABASE,REBUILD key file...... RESTORE DATABASE,CHECK db info...... RESTORE DATABASE,UPDATE db info...... total 8 packages processed... total 8 packages processed! CMD END.CODE:[0] restore successfully. time used: 00:00:01.098 RMAN> recover database '/home/dmdba/dmdbms/DAMENG/dm.ini' from backupset '/home/dmdba/dmdbms/backup_file_01'; recover database '/home/dmdba/dmdbms/DAMENG/dm.ini' from backupset '/home/dmdba/dmdbms/backup_file_01'; Database mode = 0, oguid = 0 EP[0]'s cur_lsn[49291] RESTORE RLOG CHECK...... RESTORE RLOG, gen tmp file...... RESTORE RLOG FROM BACKUPSET [/home/dmdba/dmdbms/backup_file_01] START...... total 2 packages processed... total 2 packages processed... total 2 packages processed! CMD END.CODE:[0] EP:0 total 1 pkgs applied, percent: 50% EP:0 total 2 pkgs applied, percent: 100% Recover from archive log finished, time used:0.010s. recover successfully! time used: 305.045(ms) RMAN> recover database '/home/dmdba/dmdbms/DAMENG/dm.ini' update db_magic; recover database '/home/dmdba/dmdbms/DAMENG/dm.ini' update db_magic; Database mode = 0, oguid = 0 EP[0]'s cur_lsn[49296] EP[0]'s apply_lsn[49296] >= end_lsn[49296] recover successfully! time used: 00:00:01.019 RMAN>
1.3联机备份
SQL> backup database backupset '/home/dmdba/dmdbms/backup_file_01'; 操作已执行 已用时间: 00:00:01.170. 执行号:5.

拷贝备份文件到所在机器dm.ini dm.ctl scp /home/dmdba/dmdbms/data/dmdb/dm.ini dmdba@192.168.6.67/home/dmdba/dmdbms/data/dmdb/dm.ini

1.4联机恢复

同上面的脱机恢复

2.环境规划

两个机器事先安装DM和实例 安装路径为/home/dmdba/dmdbms/ 数据库名字为/home/dmdba/dmdbms/dmdb 数据路径data/ 归档路径 /home/dmdba/dmdbms/data/dmdb/arch 数据库实例名字dmdbserver1 主库192.168.6.68 备库192.168.6.69

实例名PORT_NUMMAL_INST_DW_PORTMAL_HOSTMAL_PORTMAL_DW_PORTGRP1_PT_01523633141192.168.6.686114152141GRP1_RT_02523633142182.168.6.696114252142

3.配置主库

3.1.配置dm.ini
INSTANCE_NAME = GRP1_RT_01 PORT_NUM = 5236 #数据库实例监听端口 ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID-默认1 ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间-默认1 MAL_INI = 1 #打开 MAL 系统-默认0 ARCH_INI = 1 #打开归档配置 DW_INACTIVE_INTERVAL = 60 #接护进程消息超时时间-默认60 RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息-默认64
3.2配置 dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔 MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间 [MAL_INST1] MAL_INST_NAME = GRP1_RT_01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致 MAL_HOST =192.168.6.68 #MAL 系统监听 TCP 连接的 IP 地址 MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口 MAL_INST_HOST = 192.168.6.68 #实例的对外服务 IP 地址 MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致 MAL_DW_PORT = 52141 #实例本地的守护进程监听 TCP 连接的端口 MAL_INST_DW_PORT = 33141 #实例监听守护进程 TCP 连接的端口 [MAL_INST2] MAL_INST_NAME = GRP1_RT_02 MAL_HOST = 192.168.6.78 MAL_PORT = 61142 MAL_INST_HOST = 192.168.6.78 MAL_INST_PORT = 5237 MAL_DW_PORT = 52142 MAL_INST_DW_PORT = 33142
3.3配置dmarch.ini
[ARCHIVE_REALTIME] ARCH_TYPE = REALTIME #实时归档类型 ARCH_DEST = GRP1_RT_02 #实时归档目标实例名 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL #本地归档类型 ARCH_DEST = /home/dmdba/dmdbms/dmarch #本地归档文件存放路径 ARCH_FILE_SIZE = 1024 #单位 Mb,本地单个归档文件最大值 ARCH_SPACE_LIMIT = 10240 #单位 Mb,0 表示无限制,范围 1024~4294967294M #确认实际情况设置arch_space_limit=2048 ```sql ##### 3.4配置dmwatcher.ini ```sql [GRP1] DW_TYPE = GLOBAL #全局守护类型 DW_MODE = AUTO #自动切换模式 DW_ERROR_TIME = 10 #远程守护进程故障认定时间 INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间 INST_ERROR_TIME = 10 #本地实例故障认定时间 INST_OGUID = 453331 #守护系统唯一 OGUID 值 INST_INI = /home/dmdba/dmdbms/DAMENG/dm.ini #dm.ini 配置文件路径 INST_AUTO_RESTART = 1 #打开实例的自动启动功能 INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动 RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭 RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
3.5启动主库
./dmserver /home/dmdba/dmdbms/DAMENG/dm.ini mount file dm.key not found, use default license! version info: develop Use normal os_malloc instead of HugeTLB Use normal os_malloc instead of HugeTLB DM Database Server x64 V8 1-1-76-20.04.21-120616-ENT startup... Database mode = 0, oguid = 0 License will expire on 2021-04-21 file lsn: 54026 ndct db load finished ndct fill fast pool finished nsvr_startup end. aud sys init success. aud rt sys init success. systables desc init success. ndct_db_load_info success. SYSTEM IS READY.
3.6设置oguid
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); sp_set_oguid(453331); SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
3.7修改数据库模式
[dmdba@dmp1 bin]$ ./disql disql V8 用户名: 密码: 服务器[LOCALHOST:5236]:处于普通配置状态 登录使用时间: 3.218(毫秒) SQL> alter database primary; 操作已执行 已用时间: 23.740(毫秒). 执行号:0. SQL>

4.配置备库

4.1.配置dm.ini
#实例名,建议使用“组名_守护环境_序号”的命名方式,总长度不能超过 16 INSTANCE_NAME = GRP1_RT_02 PORT_NUM = 5237 #数据库实例监听端口 ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间 MAL_INI = 1 #打开 MAL 系统 ARCH_INI = 1 #打开归档配置 DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间 RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志重演信息
4.2配置 dmmal.ini
MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔 MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间 [MAL_INST1] MAL_INST_NAME = GRP1_RT_01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致 MAL_HOST = 192.168.6.68 #MAL 系统监听 TCP 连接的 IP 地址 MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口 MAL_INST_HOST = 192.168.6.68 #实例的对外服务 IP 地址 MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致 MAL_DW_PORT = 52141 #实例对应的守护进程监听 TCP 连接的端口 MAL_INST_DW_PORT = 33141 #实例监听守护进程 TCP 连接的端口 [MAL_INST2] MAL_INST_NAME = GRP1_RT_02 MAL_HOST = 192.168.6.78 MAL_PORT = 61142 MAL_INST_HOST = 192.168.6.78 MAL_INST_PORT = 5237 MAL_DW_PORT = 52142 MAL_INST_DW_PORT = 33142 ~
4.3配置dmarch.ini
[ARCHIVE_REALTIME] ARCH_TYPE = REALTIME #实时归档类型 ARCH_DEST = GRP1_RT_01 #实时归档目标实例名 [ARCHIVE_LOCAL1] ARCH_TYPE=LOCAL ARCH_DEST=/home/dmdba/dmdbms/dmarch ARCH_FILE_SIZE=1024 ARCH_SPACE_LIMIT=10240
4.4配置dmwatcher.ini
[GRP1] DW_TYPE = GLOBAL #全局守护类型 DW_MODE = AUTO #自动切换模式 DW_ERROR_TIME = 10 #远程守护进程故障认定时间 INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间 INST_ERROR_TIME = 10 #本地实例故障认定时间 INST_OGUID = 453331 #守护系统唯一 OGUID 值 INST_INI = /home/dmdba/dmdbms/DAMENG/dm.ini #dm.ini 配置文件路径 INST_AUTO_RESTART = 1 #打开实例的自动启动功能 INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动 RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭
4.5启动备库
./dmserver /home/dmdba/dmdbms/DAMENG/dm.ini mount file dm.key not found, use default license! version info: develop Use normal os_malloc instead of HugeTLB Use normal os_malloc instead of HugeTLB DM Database Server x64 V8 1-1-76-20.04.21-120616-ENT startup... Database mode = 0, oguid = 0 License will expire on 2021-04-21 file lsn: 54025 ndct db load finished ndct fill fast pool finished nsvr_startup end. aud sys init success. aud rt sys init success. systables desc init success. ndct_db_load_info success. SYSTEM IS READY. #注意数据库端口号是5237
4.6设置oguid
./disql SYSDBA/SYSDBA:5237 SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); SQL>sp_set_oguid(453331); SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
4.7修改数据库模式
./disql SYSDBA/SYSDBA:5237 SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); SQL>alter database standby; SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

5.配置监视器dmmonitor.ini–确认网络。防火墙

vi dmmonitor.ini MON_DW_CONFIRM = 1 #确认监视器模式 MON_LOG_PATH = /home/dmdba/dmdbms/log #监视器日志文件存放路径 MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件 MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间 [GRP1] MON_INST_OGUID = 453331 #组 GRP1 的唯一 OGUID 值 #以下配置为监视器到组 GRP1 的守护进程的连接信息,以“IP:PORT”的形式配置 #IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT MON_DW_IP = 192.168.6.68:52141 MON_DW_IP = 192.168.6.78:52142

6.启动守护进程

启动主库实例 ./dmserver /home/dmdba/dmdbms/DAMENG/dm.ini 启动备库实例 ./dmserver /home/dmdba/dmdbms/DAMENG/dm.ini 启动主库dmwatcher ./dmwatcher /home/dmdba/dmdbms/DAMENG/dmwatcher.ini 启动备库dmwatcher ./dmwatcher /home/dmdba/dmdbms/DAMENG/dmwatcher.ini

7.启动监视器

./dmmonitor /home/dmdba/dmdbms/data/dmdb/dmmonitor.ini

8.注册

root: ./dm_service_installer.sh -dm_ini /home/dmdba/dmdbms/DAMENG/dm.ini -t dmserver -p dm1 ./dm_service_installer.sh -watcher_ini /home/dmdba/dmdbms/DAEMNG/dmwatcher.ini -t dmwatcher -p dmwatcher1 dmdba: ./DmServicedm1 start ./DmWatcherServicedmwatcher1 start

./dmmonitor /home/dmdba/dmdbms/data/dmdb/dmmonitor.ini

最新回复(0)