| 名称 | 拟定配置 | 备注 |
|---|---|---|
| 数据库安装目录 | /dm/dmdbms | 数据库安装路径,存放数据库运行日志等信息 |
| 数据库备份目录 | /dm/dmbak | 用于存放数据库备份文件 |
| 数据库 SQL 日志目录 | /dm/dmsqllog | 用于存放数据库 dmsql 日志 |
| 集群配置文件目录 | /dm/dsc_config | 用于存放数据库集群配置文件 |
| 系统 core 目录 | /dm/core | 用于存放系统的 core 文件 |
| 数据目录 | /dmdata | 根据库数据量大小,申请磁盘 |
| 数据库归档目录 | /dmarch | 用于存放归档日志 |
| 监控文件 nmon 目录 | /dm/nmon_output | 用于存放服务器性能监控 nmon 日志文件 |
| 数据库相关配置 | 信息 |
|---|---|
| 数据库服务器名称 | db2 |
| 业务IP | 192.168.4.22 |
| 实例名 | DW01 |
| PORT_NUM | 5236 |
| MAL_PORT | 6536 |
| MAL_DW_PORT | 52141 |
| MAL_INST_DW_PORT | 5276 |
参考DM8数据共享集群手册或dm8DSC双节点集群搭建完成搭建并检验。搭建完成后,正常退出DMDSC集群的两个dmserver节点实例,不需要退出dmcss和dmasmsvr
在DMDSC集群生成有归档日志的情况下进行脱机备份,以便后续校验日志连续性时使用。
备注:dmrman的use_ap参数可以参考DM8备份与还原手册,当值位2时,采用无辅助进程方式,由DMRMAN进程自身完成备份还原,不依赖DMAP服务;配置成2的情况下,不能执行第三方备份(即指定DEVICE TYPE为TAPE)
节点1:(db0)
# 启动dmrman
./dmrman use_ap=2 dcr_ini=/home/dmdba/dsc_config/dmdcr.ini
# 脱机备份DMDSC集群
RMAN>BACKUP DATABASE '/home/dmdba/dsc_config/DSC01_conf/dm.ini' FULL BACKUPSET '/home/dmdba/dmbak/DSC/DSC01/bak/db_full_bak_for_DSC';
# 检查备份文件有效性
RMAN> check backupset '/home/dmdba/dmbak/DSC/DSC01/bak/db_full_bak_for_DSC';
# 将备份文件发送到db2机器
[dmdba@~]# scp -r /home/dmdba/dmbak/DSC/DSC01/bak/db_full_bak_for_DSC dmdba@192.168.4.22:/home/dmdba/dmbak/
db2 机器将数据库安装在/home/dmdba/dmdbms目录下,并初始化实例到/dmdata目录,且初始化实例参数应与DSC集群初始化参数保持一致
./dminit path=/home/dmdba/data/EP01/ SYSDBA_PWD=Dmglydmm@2025 SYSAUDITOR_PWD=Dmglydmm@2025
##登录备机使用 rman 进行还原(注意:备机初始化参数要与主库一致)
./dmrman
RMAN> check backupset '/home/dmdba/dmbak/db_full_bak_for_DSC';
RMAN>RESTORE DATABASE '/home/dmdba/data/EP01/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/dmbak/db_full_bak_for_DSC';
RMAN>RECOVER DATABASE '/home/dmdba/data/EP01/DAMENG/dm.ini' FROM BACKUPSET '/home/dmdba/dmbak/db_full_bak_for_DSC';
RMAN>RECOVER DATABASE '/home/dmdba/data/EP01/DAMENG/dm.ini' UPDATE DB_MAGIC;
db0和db1
cd /home/dmdba/dsc_config/DSC01_conf/
vi dm.ini
# 修改部分
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 次的日志发送信息
db2
cd /home/dmdba/data/EP01/DAMENG
vi dm.ini
# 修改部分
INSTANCE_NAME = DW01
PORT_NUM = 5238 #数据库实例监听端口
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 次的日志发送信息
db0、db1 和 db2 机器配置 dmmal.ini(dmmal.ini 和 dm.ini 放在同一路径下),三台机器的 dmmal.ini 文件内容必须一致。
MAL_CHECK_INTERVAL=30
MAL_CONN_FAIL_INTERVAL=10
MAL_SYS_BUF_SIZE=6000
MAL_BUF_SIZE=3000
MAL_VPOOL_SIZE=5000
MAL_COMPRESS_LEVEL=0
[MAL_INST0]
MAL_INST_NAME = DSC01
MAL_HOST = 192.168.4.20
MAL_PORT = 6536
MAL_INST_HOST = 192.168.4.20
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 5276
MAL_LINK_MAGIC =1 #值一样,dmwatcher之间和dmserver之间的通信使用的是MAL_HOST,值不一致则用的是MAL_INST_HOST。
[MAL_INST1]
MAL_INST_NAME = DSC02
MAL_HOST = 192.168.4.21
MAL_PORT = 6537
MAL_INST_HOST = 192.168.4.21
MAL_INST_PORT = 5237
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 5276
MAL_LINK_MAGIC =1
[MAL_INST2]
MAL_INST_NAME = DW01
MAL_HOST = 192.168.4.22
MAL_PORT = 6538
MAL_INST_HOST = 192.168.4.22
MAL_INST_PORT = 5238
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 5276
MAL_LINK_MAGIC =2
db0配置
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/DSC/DSC01/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC02
ARCH_INCOMING_PATH = +DMDATA/DSC/DSC02/arch
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DW01
db1配置
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/DSC/DSC02/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC01
ARCH_INCOMING_PATH = +DMDATA/DSC/DSC01/arch
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DW01
db2配置
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /home/dmdba/dmarch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DSC01/DSC02
db0
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 120
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 120
INST_OGUID = 453331
INST_INI = /home/dmdba/dmdbms/dsc_config/DSC01_conf/dm.ini
DCR_INI= /home/dmdba/dmdbms/dsc_config/dmdcr.ini
INST_STARTUP_CMD = /home/dmdaba/dmdbms/bin/dmserver
INST_AUTO_RESTART = 0
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
db1
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 120
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 120
INST_OGUID = 453331
INST_INI = /home/dmdba/dsc_config/DSC02_conf/dm.ini
DCR_INI= /home/dmdba/dsc_config/dmdcr.ini
INST_STARTUP_CMD = /home/dmdaba/dmdbms/bin/dmserver
INST_AUTO_RESTART = 0
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
db2
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL#手动切换模式
DW_ERROR_TIME = 120 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 120 #本地实例故障认定时间
INST_OGUID = 453331 #守护系统唯一 OGUID 值
INST_INI = /home/dmdba/data/EP01/DAMENG/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART = 0 #设置实例不自动拉起
INST_STARTUP_CMD = /dm/dmdbms/bin/dmserver #命令行方式启动
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
在db0编辑dmmonitor.ini
MON_DW_CONFIRM = 0
MON_LOG_PATH = /home/dmdba/dmdbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 64
MON_LOG_SPACE_LIMIT = 0
[GRP1]
MON_INST_OGUID = 453331
MON_DW_IP = 192.168.4.20:52141/192.168.4.21:52141
MON_DW_IP = 192.168.4.22:52141
注意需要以mount方式启动
./dmserver dcr_ini=/home/dmdba/dsc_config/dmdcr.ini /home/dmdba/dsc_config/DSC01_conf/dm.ini mount
./dmserver dcr_ini=/home/dmdba/dsc_config/dmdcr.ini /home/dmdba/dsc_config/DSC02_conf/dm.ini mount
./dmserver /home/dmdba/data/EP01/DAMENG/dm.ini mount
启动disql链接DMDSC集群中的任意一个节点,设置DMDSC主库的OGUID值
./disql SYSDBA/'"Dmglydmm@2025"'@127.0.0.1:5236
SQL> sp_set_para_value(1,'ALTER_MODE_STATUS',1);
SQL> sp_set_oguid(453331);
SQL> alter database primary;
SQL> sp_set_para_value(1,'ALTER_MODE_STATUS',0);
disql连接单节点备库,设置备库OGUID
./disql SYSDBA/'"Dmglydmm@2025"'@127.0.0.1:5238
SQL> sp_set_para_value(1,'ALTER_MODE_STATUS',1);
SQL> sp_set_oguid(453331);
SQL> alter database standby;
SQL> sp_set_para_value(1,'ALTER_MODE_STATUS',0);
vi /home/dmdba/dmdbms/bin/dmcssm.ini
CSSM_OGUID = 63635
CSSM_CSS_IP = 192.168.4.20:9836
CSSM_CSS_IP = 192.168.4.21:9837
CSSM_LOG_PATH = /home/dmdba/dm/cssmlog
CSSM_LOG_FILE_SIZE = 32
CSSM_LOG_SPACE_LIMIT = 0
在启动DSC+实时主备集群之前,需要先启动DSC集群
# 双节点执行
./dmcss DCR_INI=/home/dmdba/dsc_config/dmdcr.ini
# 双节点执行
./dmasmsvr DCR_INI=/home/dmdba/dsc_config/dmdcr.ini
# 节点1和节点2分别启动数据库实例
./dmserver dcr_ini=/home/dmdba/dsc_config/dmdcr.ini /home/dmdba/dsc_config/DSC01_conf/dm.ini mount
./dmserver dcr_ini=/home/dmdba/dsc_config/dmdcr.ini /home/dmdba/dsc_config/DSC02_conf/dm.ini mount
# 节点3启动数据库实例
./dmserver /home/dmdba/data/EP01/DAMENG/dm.ini mount
三个节点分别启动守护进程
./dmwatcher /home/dmdba/dsc_config/DSC01_conf/dmwatcher.ini
./dmwatcher /home/dmdba/dsc_config/DSC02_conf/dmwatcher.ini
./dmwatcher /home/dmdba/data/EP01/DAMENG/dmwatcher.ini
# db0启动监视器
./dmmonitor path=/home/dmdba/dsc_config/DSC01_conf/dmmonitor.ini
文章
阅读量
获赞
