一、安装计划
两节点DSC:
192.168.50.100 dbserver1
10.1.1.1
192.168.50.200 dbserver2
10.1.1.2
备库
192.168.50.99 STD
10.1.1.3
DSC两节点操作系统添加4块磁盘
/dev/sdb 2G
/dev/sdc 2G
/dev/sdd 10G
/dev/sde 10G
二、操作系统准备
1、VM虚拟机准备
--两个虚拟机添加共享磁盘,并在.vmx文件中添加以下配置参数
disk.locking="FALSE"
disk.EnableUUID = "TRUE"
diskLib.dataCacheMaxSize="0"
diskLib.dataCacheMaxReadAheadSize="0"
diskLib.DataCacheMinReadAheadSize="0"
diskLib.dataCachePageSize="4096"
diskLib.maxUnsyncedWrites="0"
scsi1:0.SharedBus="Virtual"
scsi1:1.SharedBus="Virtual"
scsi1:2.SharedBus="Virtual"
scsi1:3.SharedBus="Virtual"
scsi1:4.SharedBus="Virtual"
2、在共享磁盘上裸设备划分
vi /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N" ACTION=="add", KERNEL=="sdc1", RUN+="/bin/raw /dev/raw/raw2 %N" ACTION=="add", KERNEL=="sdd1", RUN+="/bin/raw /dev/raw/raw3 %N" ACTION=="add", KERNEL=="sde1", RUN+="/bin/raw /dev/raw/raw4 %N" ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660" |
udevadm trigger --type=devices --action=change
ll /dev/raw/raw*
3、登录dmdba用户安装
DMInstall.bin –i
步骤略
三、配置部署DMDSC集群
1、登录dmdba用户设置ASM磁盘组(单节点执行)
su - dmdba dmasmcmd listdisks /dev/raw create dcrdisk '/dev/raw/raw1' 'dcr' create votedisk '/dev/raw/raw2' 'vote' create asmdisk '/dev/raw/raw3' 'LOG0' create asmdisk '/dev/raw/raw4' 'DATA0' |
##准备dmdcr_cfg.ini配置文件
【dmdcr_cfg.ini】 DCR_N_GRP = 3 DCR_VTD_PATH = /dev/raw/raw2 DCR_OGUID = 63635 [GRP] DCR_GRP_TYPE = CSS DCR_GRP_NAME = GRP_CSS DCR_GRP_N_EP = 2 DCR_GRP_DSKCHK_CNT = 60 [GRP_CSS] DCR_EP_NAME = CSS1 DCR_EP_HOST = 10.1.1.1 DCR_EP_PORT = 9341 [GRP_CSS] DCR_EP_NAME = CSS2 DCR_EP_HOST = 10.1.1.2 DCR_EP_PORT = 9341 [GRP] DCR_GRP_TYPE = ASM DCR_GRP_NAME = GRP_ASM DCR_GRP_N_EP = 2 DCR_GRP_DSKCHK_CNT = 60 [GRP_ASM] DCR_EP_NAME = ASM1 DCR_EP_SHM_KEY = 93360 DCR_EP_SHM_SIZE = 20 DCR_EP_HOST = 10.1.1.1 DCR_EP_PORT = 9351 DCR_EP_ASM_LOAD_PATH = /dev/raw [GRP_ASM] DCR_EP_NAME = ASM2 DCR_EP_SHM_KEY = 93361 DCR_EP_SHM_SIZE = 20 DCR_EP_HOST = 10.1.1.2 DCR_EP_PORT = 9351 DCR_EP_ASM_LOAD_PATH = /dev/raw [GRP] DCR_GRP_TYPE = DB DCR_GRP_NAME = GRP_CRM DCR_GRP_N_EP = 2 DCR_GRP_DSKCHK_CNT = 60 [GRP_CRM] DCR_EP_NAME = CRM1 DCR_EP_SEQNO = 0 DCR_EP_PORT = 5236 DCR_CHECK_PORT = 9741 [GRP_CRM] DCR_EP_NAME = CRM2 DCR_EP_SEQNO = 1 DCR_EP_PORT = 5236 DCR_CHECK_PORT = 9741 |
使用编辑好的 dmdcr_cfg.ini 配置文件初始化 dcrdisk 和 votedisk,并在 ASM 提示符执行以下命令:
dmasmcmd init dcrdisk '/dev/raw/raw1' from '/dm8/dmdbms/dmdcr_cfg.ini' identified by '123456' init votedisk '/dev/raw/raw2' from '/dm8/dmdbms/dmdcr_cfg.ini' |
2、启动 DMCSS 服务(两节点)
【dmasvrmal.ini】 [MAL_INST1] MAL_INST_NAME = ASM1 MAL_HOST = 10.1.1.1 MAL_PORT = 7236 [MAL_INST2] MAL_INST_NAME = ASM2 MAL_HOST = 10.1.1.2 MAL_PORT = 7236 【dmdcr1.ini】 DMDCR_PATH = /dev/raw/raw1 DMDCR_MAL_PATH = /dm8/dmdbms/dmasvrmal.ini DMDCR_SEQNO = 0 DMDCR_ASM_RESTART_INTERVAL =10 DMDCR_ASM_STARTUP_CMD = /dm8/bin/dmasmsvr dcr_ini=/dm8/dmdbms/dmdcr1.ini DMDCR_DB_RESTART_INTERVAL = 60 DMDCR_DB_STARTUP_CMD = /dm8/bin/dmserver path=/dm8/dmdbms/crm1/dm.ini dcr_ini=/dm8/dmdbms/dmdcr1.ini 【dmdcr2.ini】 DMDCR_PATH = /dev/raw/raw1 DMDCR_MAL_PATH = /dm8/dmdbms/dmasvrmal.ini DMDCR_SEQNO = 1 DMDCR_ASM_RESTART_INTERVAL =10 DMDCR_ASM_STARTUP_CMD = /dm8/bin/dmasmsvr dcr_ini=/dm8/dmdbms/dmdcr2.ini DMDCR_DB_RESTART_INTERVAL = 60 DMDCR_DB_STARTUP_CMD = /dm8/bin/dmserver path=/dm8/dmdbms/crm2/dm.ini dcr_ini=/dm8/dmdbms/dmdcr2.ini |
--两个节点启动dmcss服务,dmdba用户到数据库安装目录bin下执行以下命令:
dmcss dcr_ini=/dm8/dmdbms/dmdcr1.ini
dmcss dcr_ini=/dm8/dmdbms/dmdcr2.ini
3、创建 ASM 磁盘组(单节点)
dmasmtool dcr_ini=/dm8/dmdbms/dmdcr1.ini create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3' create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4' |
4、初始化共享存储集群数据库实例(单节点执行)
【dminit.ini】 db_name = CRM system_path = +DMDATA/data system = +DMDATA/data/CRM/system.dbf system_size = 128 roll = +DMDATA/data/CRM/roll.dbf roll_size = 128 main = +DMDATA/data/CRM/main.dbf main_size = 128 ctl_path = +DMDATA/data/CRM/dm.ctl ctl_size = 8 log_size = 1024 dcr_path = /dev/raw/raw1 dcr_seqno = 0 auto_overwrite = 1 [CRM1] config_path = /dm8/dmdbms/crm1 port_num = 5236 mal_host = 10.1.1.1 mal_port = 9236 log_path = +DMLOG/log/CRM1_log01.log log_path = +DMLOG/log/CRM1_log02.log [CRM2] config_path = /dm8/dmdbms/crm2 port_num = 5236 mal_host = 10.1.1.2 mal_port = 9236 log_path = +DMLOG/log/CRM2_log01.log log_path = +DMLOG/log/CRM2_log02.log |
--使用配置好的dminit控制文件执行命令:
cd /dm8/bin
./dminit control=/dm8/dmdbms/dminit.ini
5、注册服务(两节点)
#节点1
./dm_service_installer.sh -t dmcss -p css1 -dcr_ini /dm8/dmdbms/dmdcr1.ini ./dm_service_installer.sh -t dmserver -p CRM1 -dm_ini /dm8/dmdbms/crm1/dm.ini |
#节点2
./dm_service_installer.sh -t dmcss -p css2 -dcr_ini /dm8/dmdbms/dmdcr2.ini ./dm_service_installer.sh -t dmserver -p CRM2 -dm_ini /dm8/dmdbms/crm2/dm.ini |
6、开启归档
#节点1
alter database mount; alter database archivelog; alter database add archivelog 'type=local,dest=/dm8/dmdbms/crm1/arch_log,file_size=128,space_limit=10240'; alter database add archivelog 'type=remote,dest=crm2,type=remote,file_size=128,space_limit=10240,incoming_path=/dm8/dmdbms/crm2/arch_log'; alter database open; |
#节点2
alter database mount; alter database archivelog; alter database add archivelog 'type=local,dest=/dm8/dmdbms/crm2/arch_log,file_size=128,space_limit=10240'; alter database add archivelog 'type=remote,dest=crm1,type=remote,file_size=128,space_limit=10240,incoming_path=/dm8/dmdbms/crm1/arch_log'; alter database open; |
四、配置主备守护集群
1、DSC集群配置修改
(1)修改归档配置
#节点1
/dm8/dmdbms/crm1/dmarch.ini
#节点2
/dm8/dmdbms/crm2/dmarch.ini
--添加REALTIME归档
[ARCHIVE_REALTIME] ARCH_TYPE = REALTIME ARCH_DEST = STD |
(2)修改dmmal.ini(三节点相同)
【dmmal.ini】 MAL_CHECK_INTERVAL = 5 MAL_CONN_FAIL_INTERVAL = 5 [mal_inst0] mal_inst_name = CRM1 mal_host = 10.1.1.1 mal_port = 9236 mal_inst_host = 192.168.50.100 mal_inst_port = 5236 mal_dw_port = 52141 mal_inst_dw_port = 33141 [mal_inst1] mal_inst_name = CRM2 mal_host = 10.1.1.2 mal_port = 9236 mal_inst_host = 192.168.50.200 mal_inst_port = 5236 mal_dw_port = 52141 mal_inst_dw_port = 33141 [mal_inst2] mal_inst_name = STD mal_host = 10.1.1.3 mal_port = 9236 mal_inst_host = 192.168.50.99 mal_inst_port = 5236 mal_dw_port = 52141 mal_inst_dw_port = 33141 |
(3)修改dmwatcher.ini
#节点1
【dmwatcher.ini】 [GRP_RW] DW_TYPE = GLOBAL DW_MODE = MANUAL DW_ERROR_TIME = 30 INST_RECOVER_TIME = 60 INST_ERROR_TIME = 30 INST_OGUID = 453331 INST_INI = /dm8/dmdbms/crm1/dm.ini DCR_INI = /dm8/dmdbms/dmdcr1.ini INST_AUTO_RESTART = 0 |
#节点2
【dmwatcher.ini】 [GRP_RW] DW_TYPE = GLOBAL DW_MODE = MANUAL DW_ERROR_TIME = 30 INST_RECOVER_TIME = 60 INST_ERROR_TIME = 30 INST_OGUID = 453331 INST_INI = /dm8/dmdbms/crm2/dm.ini DCR_INI = /dm8/dmdbms/dmdcr2.ini INST_AUTO_RESTART = 0 |
(4)注册守护服务
#节点1
cd /dm8/script/root ./dm_service_installer.sh -t dmwatcher -p CRM1 -watcher_ini /dm8/dmdbms/dmwatcher.ini |
#节点2
cd /dm8/script/root ./dm_service_installer.sh -t dmwatcher -p CRM2 -watcher_ini /dm8/dmdbms/dmwatcher.ini |
(5)修改主备参数
--DSC两节点修改
disql SYSDBA/SYSDBA alter database mount; sp_set_oguid(453331); alter database primary; alter database open force; |
(6)全量备份数据库
--关闭DSC两节点服务
su - dmdba
/dm8/bin/DmCSSServicecss1 stop
/dm8/bin/DmCSSServicecss2 stop
--修改DBserver启动参数
#节点1 vi /dm8/dmdbms/dmdcr1.ini DMDCR_DB_RESTART_INTERVAL = 0 #节点2 vi /dm8/dmdbms/dmdcr2.ini DMDCR_DB_RESTART_INTERVAL = 0 |
--使用脚本启动dmcss和asm服务
/dm8/bin/DmCSSServicecss1 start
/dm8/bin/DmCSSServicecss2 start
--在节点1上备份数据库
./dmrman use_ap=2 dcr_ini=/dm8/dmdbms/dmdcr1.ini backup database '/dm8/dmdbms/crm1/dm.ini' full backupset '/dm8/backup'; |
(7)修改其他参数
#节点1
find /dm8/dmdbms/crm1/ -type f -name "dm.ini" | xargs sed -i 's/ALTER_MODE_STATUS = 1/ALTER_MODE_STATUS = 0/g' find /dm8/dmdbms/crm1/ -type f -name "dm.ini" | xargs sed -i 's/ENABLE_OFFLINE_TS = 1/ENABLE_OFFLINE_TS = 2/g' vi /dm8/dmdbms/dmdcr1.ini DMDCR_DB_RESTART_INTERVAL = 30 |
#节点2
find /dm8/dmdbms/crm2/ -type f -name "dm.ini" | xargs sed -i 's/ALTER_MODE_STATUS = 1/ALTER_MODE_STATUS = 0/g' find /dm8/dmdbms/crm2/ -type f -name "dm.ini" | xargs sed -i 's/ENABLE_OFFLINE_TS = 1/ENABLE_OFFLINE_TS = 2/g' vi /dm8/dmdbms/dmdcr2.ini DMDCR_DB_RESTART_INTERVAL = 30 |
--重启服务
/dm8/bin/DmCSSServicecss1 restart
/dm8/bin/DmCSSServicecss2 restart
2、备库STD配置修改
(1)初始化数据库
cd /dm8/bin
./dminit CONTROL=/dm8/dmdbms/dm_init.ini
(2)添加dmarch.ini和dmmal.ini参数文件
【dmarch.ini】 [ARCHIVE_REALTIME] ARCH_TYPE = REALTIME ARCH_DEST = CRM1/CRM2 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /dm8/archlog/STD ARCH_FILE_SIZE = 128 ARCH_SPACE_LIMIT = 10240 |
#dmmal.ini文件同DSC节点
(3)添加dmwatcher.ini参数文件
【dmwatcher.ini】 [GRP_RW] DW_TYPE = GLOBAL DW_MODE = MANUAL DW_ERROR_TIME = 30 INST_RECOVER_TIME = 60 INST_ERROR_TIME = 30 INST_OGUID = 453331 INST_INI = /dm8/data/STD/dm.ini INST_AUTO_RESTART = 0 |
(4)注册服务
cd /dm8/script/root ./dm_service_installer.sh -t dmwatcher -p STD -watcher_ini /dm8/data/STD/dmwatcher.ini ./dm_service_installer.sh -t dmserver -p STD -dm_ini /dm8/data/STD/dm.ini |
(5)还原数据库
su - dmdba /dm8/bin/dmrman CTLSTMT="restore database '/dm8/data/STD/dm.ini' from backupset '/dm8/backup/';" /dm8/bin/dmrman CTLSTMT="recover database '/dm8/data/STD/dm.ini' update DB_MAGIC;" |
(6)修改其他参数
/dm8/bin/DmServiceSTD start disql SYSDBA/SYSDBA alter database mount; sp_set_oguid(453331); alter database standby; alter database open; find /dm8/data/STD/ -type f -name "dm.ini" | xargs sed -i 's/MAL_INI = 0/MAL_INI = 1/g' find /dm8/data/STD/ -type f -name "dm.ini" | xargs sed -i 's/ALTER_MODE_STATUS = 1/ALTER_MODE_STATUS = 0/g' find /dm8/data/STD/ -type f -name "dm.ini" | xargs sed -i 's/ENABLE_OFFLINE_TS = 1/ENABLE_OFFLINE_TS = 2/g' |
3、监视器
【dmmonitor.ini】 MON_DW_CONFIRM = 1 MON_LOG_PATH = /home/dmdba/dmdbms/log MON_LOG_INTERVAL = 60 MON_LOG_FILE_SIZE = 32 MON_LOG_SPACE_LIMIT = 0 [GRP_RW] MON_INST_OGUID = 453331 MON_DW_IP = 10.1.1.1:52141/10.1.1.2:52141 MON_DW_IP = 10.1.1.3:52141 【dmcssm.ini】 CSSM_OGUID = 63635 CSSM_CSS_IP = 10.1.1.1:9341 CSSM_CSS_IP = 10.1.1.2:9341 CSSM_LOG_PATH =/home/dmdba/dmdbms/log CSSM_LOG_FILE_SIZE = 1024 CSSM_LOG_SPACE_LIMIT = 1024 |
./dmcssm ini_path=/dm8/config/dmcssm.ini
./dmmonitor /dm8/config/dmmonitor.ini
更多技术内容请访问社区:https://eco.dameng.com