使用版本:03134284393-20250324-265835-20151
在此版本之后的版本均可实现不停机搭建备库
A机器 | B机器 | |
---|---|---|
业务IP | 172.10.80.81 | 172.10.80.82 |
心跳IP | 192.168.80.81 | 192.168.80.82 |
实例名 | DMSERVER | DMSERVER1 |
实例端口 | 15236 | 15236 |
MAL端口 | 15336 | 15336 |
MAL守护进程端口 | 15436 | 15436 |
守护进程端口 | 15536 | 15536 |
OGUID | 45331234 | 45331234 |
守护组 | GDW_11 | GDW_11 |
安装目录 | /dmdba/dmdbms_1 | /dmdba/dmdbms_1 |
备份目录 | /dmdba/dmdata1/DAMENG/bak | /dmdba/dmdata1/DAMENG/bak |
归档目录 | /dmdba/dmdata1/DAMENG/arch | /dmdba/dmdata1/DAMENG/arch |
实例目录 | /dmdba/dmdata1 | /dmdba/dmdata1 |
归档上限 | 51200 | 51200 |
--初始化实例
[dmdba@~]# /dmdba/dmdbms_1/bin/dminit PATH=/dmdba/dmdata1/ INSTANCE_NAME=DMSERVER PAGE_SIZE=32 LOG_SIZE=2048 PORT_NUM=15236 SYSDBA_PWD=Sysdba123 SYSAUDITOR_PWD=Sysdba123
--注册服务
[root@~]# /dmdba/dmdbms_1/script/root/dm_service_installer.sh -t dmserver -p DMSERVER -dm_ini /dmdba/dmdata1/DAMENG/dm.ini
[dmdba@~]# /dmdba/dmdbms_1/bin/DmServiceDMSERVER start
[dmdba@~]# /dmdba/dmdbms_1/bin/disql <SYSDBA/Sysdba123@172.10.80.81:15236>
--开启归档,如果已经开启过归档可忽略此步骤
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmdba/dmdata1/DAMENG/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
SQL> ALTER DATABASE OPEN;
--修改dm.ini
SQL> SP_SET_PARA_VALUE (1,'DW_INACTIVE_INTERVAL',60);
SQL> SP_SET_PARA_VALUE (1,'ALTER_MODE_STATUS',0);
SQL> SP_SET_PARA_VALUE (1,'ENABLE_OFFLINE_TS',2);
[dmdba@~]# vi /dmdba/dmdata1/DAMENG/dmmal.ini
MAL_CHECK_INTERVAL = 10 #MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 10 #判定MAL链路断开的时间
MAL_TEMP_PATH = /dmdba/dmdata1/malpath/ #临时文件目录
MAL_BUF_SIZE = 512 #单个MAL缓存大小,单位MB
MAL_SYS_BUF_SIZE = 2048 #MAL总大小限制,单位MB
MAL_COMPRESS_LEVEL = 0 #MAL消息压缩等级,0表示不压缩
[MAL_INST1]
MAL_INST_NAME = DMSERVER #实例名,和 dm.ini的INSTANCE_NAME一致
MAL_HOST = 192.168.80.81 #MAL系统监听TCP连接的IP地址
MAL_PORT = 15336 #MAL系统监听TCP连接的端口
MAL_INST_HOST = 172.10.80.81 #实例的对外服务IP地址
MAL_INST_PORT = 15236 #实例对外服务端口,和dm.ini的PORT_NUM一致
MAL_DW_PORT = 15436 #实例对应的守护进程监听TCP连接的端口
MAL_INST_DW_PORT = 15536 #实例监听守护进程TCP连接的端口
[MAL_INST2]
MAL_INST_NAME = DMSERVER1
MAL_HOST = 192.168.80.82
MAL_PORT = 15336
MAL_INST_HOST = 172.10.80.82
MAL_INST_PORT = 15236
MAL_DW_PORT = 15436
MAL_INST_DW_PORT = 15536
[dmdba@~]# /dmdba/dmdbms_1/bin/disql <SYSDBA/Sysdba123@172.10.80.81:15236>
SQL> SP_SET_PARA_VALUE (1,'MAL_INI',1);
[dmdba@~]# /dmdba/dmdbms_1/bin/disql <SYSDBA/Sysdba123@172.10.80.81:15236>
SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=DMSERVER1,TYPE=REALTIME';
--备份数据
SQL> BACKUP DATABASE BACKUPSET '/dmdba/dmdata1/DAMENG/bak/BACKUP_FILE';
[dmdba@~]# vi /dmdba/dmdata1/DAMENG/dmwatcher.ini
[GDW_11]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #故障手动切换模式
DW_ERROR_TIME = 20 #远程守护进程故障认定时间
INST_ERROR_TIME = 20 #本地实例故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_OGUID = 45331234 #守护系统唯一OGUID值
INST_INI = /dmdba/dmdata1/DAMENG/dm.ini #dm.ini文件路径
INST_AUTO_RESTART = 1 #打开实例的自动启动功能
INST_STARTUP_CMD = /dmdba/dmdbms_1/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
[root@~]# /dmdba/dmdbms_1/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dmdba/dmdata1/DAMENG/dmwatcher.ini
[dmdba@~]# vi /dmdba/dmdbms_1/bin/DmServiceDMSERVER
--将START_MODE改为mount
START_MODE=mount
[dmdba@~]# /dmdba/dmdbms_1/bin/dminit PATH=/dmdba/dmdata1/ INSTANCE_NAME=DMSERVER1 PAGE_SIZE=32 LOG_SIZE=2048 PORT_NUM=15236 SYSDBA_PWD=Sysdba123 SYSAUDITOR_PWD=Sysdba123
[dmdba@~]# /dmdba/dmdbms_1/bin/DmServiceDMSERVER1 start
[dmdba@~]# /dmdba/dmdbms_1/bin/disql SYSDBA/Sysdba123@172.10.80.82:15236
--开启归档
SQL> ALTER DATABASE MOUNT;
SQL> ALTER DATABASE ARCHIVELOG;
SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST=/dmdba/dmdata1/DAMENG/arch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=51200';
SQL> ALTER DATABASE OPEN;
--修改dm.ini
SQL> SP_SET_PARA_VALUE (2,'DW_INACTIVE_INTERVAL',60);
SQL> SP_SET_PARA_VALUE (2,'ALTER_MODE_STATUS',0);
SQL> SP_SET_PARA_VALUE (2,'ENABLE_OFFLINE_TS',2);
SQL> SP_SET_PARA_VALUE (2,'MAL_INI',1);
[dmdba@~]# /dmdba/dmdbms_1/bin/DmServiceDMSERVER1 stop
[dmdba@~]# vi /dmdba/dmdata1/DAMENG/dmarch.ini
ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL #本地归档类型
ARCH_DEST = /dmdba/dmdata1/DAMENG/arch/ #本地归档存放路径
ARCH_FILE_SIZE = 1024 #单个归档大小,单位MB
ARCH_SPACE_LIMIT = 51200 #归档上限,单位MB
ARCH_FLUSH_BUF_SIZE = 2 #归档合并刷盘缓存大小
ARCH_HANG_FLAG = 1 #本地归档写入失败时系统是否挂起
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME #实时归档类型
ARCH_DEST = DMSERVER #实时归档目标实例名
与A机器DMSERVER的dmmal.ini、dmwatcher.ini相同,将A机器的配置文件scp到B机器
--拷贝配置文件
[dmdba@~]# scp -r /dmdba/dmdata1/DAMENG/dmmal.ini dmwatcher.ini <dmdba@192.168.80.82:/dmdba/dmdata1/DAMENG/>
--拷贝备份
[dmdba@~]# scp -r /dmdba/dmdata1/DAMENG/bak/BACKUP_FILE dmdba@192.168.80.82:/dmdba/dmdata1/DAMENG/bak/
[root@~]# /dmdba/dmdbms_1/script/root/dm_service_installer.sh -t dmserver -p DMSERVER1 -dm_ini /dmdba/dmdata1/DAMENG/dm.ini -m mount
[root@~]# /dmdba/dmdbms_1/script/root/dm_service_installer.sh -t dmwatcher -p Watcher -watcher_ini /dmdba/dmdata1/DAMENG/dmwatcher.ini
[dmdba@~]# /dmdba/dmdbms_1/bin/dmrman CTLSTMT="RESTORE DATABASE '/dmdba/dmdata1/DAMENG/dm.ini' FROM BACKUPSET '/dmdba/dmdata1/DAMENG/bak/BACKUP_FILE'"
[dmdba@~]# /dmdba/dmdbms_1/bin/dmrman CTLSTMT="RECOVER DATABASE '/dmdba/dmdata1/DAMENG/dm.ini' FROM BACKUPSET '/dmdba/dmdata1/DAMENG/bak/BACKUP_FILE'"
[dmdba@~]# /dmdba/dmdbms_1/bin/dmrman CTLSTMT="RECOVER DATABASE '/dmdba/dmdata1/DAMENG/dm.ini' UPDATE DB_MAGIC"
[dmdba@~]# vi /dmdba/dmdbms_1/bin/dmmonitor.ini
MON_DW_CONFIRM = 0 #0为非确认,1为确认
MON_LOG_PATH = /dmdba/dmdbms_1/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 512 #单个日志大小,单位MB
MON_LOG_SPACE_LIMIT = 2048 #日志上限,单位MB
[GDW_11]
MON_INST_OGUID = 45331234 #组GDW_11的唯一OGUID 值
MON_DW_IP = 192.168.80.81:15436 #IP对应MAL_HOST,PORT对应MAL_DW_PORT
MON_DW_IP = 192.168.80.82:15436
A/B机器:[dmdba@~]# /dmdba/dmdbms_1/bin/DmWatcherServiceWatcher start
前台启动:[dmdba@~]# /dmdba/dmdbms_1/bin/dmmonitor /dmdba/dmdbms_1/bin/dmmonitor.ini
**启动:**A/B机器守护进程
A/B机器:[dmdba@~]# /dmdba/dmdbms_1/bin/DmWatcherServiceWatcher start
**停止:**A/B机器守护进程→A机器DMSERVER主库→B机器DMSERVER1备库
A/B机器:[dmdba@~]# /dmdba/dmdbms_1/bin/DmWatcherServiceWatcher stop
A机器:[dmdba@~]# /dmdba/dmdbms_1/bin/DmServiceDMSERVER stop
B机器:[dmdba@~]# /dmdba/dmdbms_1/bin/DmServiceDMSERVER1 stop
文章
阅读量
获赞