准备四块共享盘,DCR VOTE DMDATA DMLOG
两节点配置udev并重启
vi /etc/udev/rules.d/99-raw.rules
ACTION=="add", KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N", OWNER="dmdba", GROUP="dinstall", MODE="660"
ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N", OWNER="dmdba", GROUP="dinstall", MODE="660"
ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N", OWNER="dmdba", GROUP="dinstall", MODE="660"
ACTION=="add", KERNEL=="sdb4", RUN+="/bin/raw /dev/raw/raw4 %N", OWNER="dmdba", GROUP="dinstall", MODE="660"
ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"
[root@localhost ~]# udevadm control --reload-rules
[root@localhost ~]# udevadm trigger --type=devices --action=change
DCR_N_GRP = 3 #磁盘内多少个组
DCR_VTD_PATH = /dev/raw/raw2 #表决磁盘路径
DCR_OGUID = 123456789 #DCR盘的oguid,和数据库的oguid不是一个
[GRP] #组1 CSS
DCR_GRP_TYPE = CSS #组类型
DCR_GRP_NAME = GRP_CSS #组名
DCR_GRP_N_EP = 2 #组内节点个数N, 最大值16
DCR_GRP_DSKCHK_CNT = 60 #磁盘心跳时间默认60s
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 1.1.1.1 #节点ip
DCR_EP_PORT = 9001 #节点监听端口号
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 1.1.1.2 #节点ip
DCR_EP_PORT = 9001 #节点监听端口号
[GRP] #组2 ASM
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_ASM]
DCR_EP_NAME = ASM0
DCR_EP_SHM_KEY = 93360 #共享内存标识
DCR_EP_SHM_SIZE = 10 #共享内存大小,单位m 10-1024
DCR_EP_HOST = 1.1.1.1
DCR_EP_PORT = 9002
DCR_EP_ASM_LOAD_PATH = /dev/raw #ASM扫扫描磁盘路径
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 1.1.1.2
DCR_EP_PORT = 9002
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP] #组3 DB
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_DSC]
DCR_EP_NAME = DSC01 #实例名
DCR_EP_SEQNO = 0
DCR_CHECK_PORT = 9237
DCR_EP_PORT = 9236 #实例端口
[GRP_DSC]
DCR_EP_NAME = DSC02
DCR_EP_SEQNO = 1
DCR_CHECK_PORT = 9237
DCR_EP_PORT = 9236
ASM>create dcrdisk '/dev/raw/raw1' 'dcr'
ASM>create votedisk '/dev/raw/raw2' 'vote'
ASM>create asmdisk '/dev/raw/raw3' 'data0'
ASM>create asmdisk '/dev/raw/raw4' 'log0'
ASM>init dcrdisk '/dev/raw/raw1' from '/dm8/dsc/dmdcr_cfg.ini' identified by '1'
ASM>init votedisk '/dev/raw/raw2' from '/dm8/dsc/dmdcr_cfg.ini'
dmasvrmal.ini
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 1.1.1.1
MAL_PORT = 9003
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 1.1.1.2
MAL_PORT = 9003
一节点
dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/dsc/dmasvrmal.ini
#dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/dmdbms/bin/dmasmsvr dcr_ini=/dm8/dsc/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/dmdbms/bin/dmserver path=/dm8/dsc/dsc0_conf/dm.ini dcr_ini=/dm8/dsc/dmdcr.ini
二节点
dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/dsc/dmasvrmal.ini
#dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 1
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/dmdbms/bin/dmasmsvr dcr_ini=/dm8/dsc/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/dmdbms/bin/dmserver path=/dm8/dsc/dsc1_conf/dm.ini dcr_ini=/dm8/dsc/dmdcr.ini
./dmcss dcr_ini=/dm8/dsc/dmdcr.ini
./dmasmsvr dcr_ini=/dm8/dsc/dmdcr.ini
dmasmtool DCR_INI=/dm8/dsc/dmdcr.ini
ASM>create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
ASM>create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
一节点配置dminit.ini
db_name = dsc
system_path = +DMDATA/data
system = +DMDATA/data/dsc/system.dbf
system_size = 128
roll = +DMDATA/data/dsc/roll.dbf
roll_size = 128
main = +DMDATA/data/dsc/main.dbf
main_size = 128
ctl_path = +DMDATA/data/dsc/dm.ctl
ctl_size = 8
log_size = 256
dcr_path = /dev/raw/raw1
dcr_seqno = 0
auto_overwrite = 2
page_size = 16
[DSC01]
config_path = /dm8/dsc/dsc0_config
port_num = 9236
mal_host = 1.1.1.1
mal_port = 9238
log_path = +DMLOG/log/dsc0_log01.log
log_path = +DMLOG/log/dsc0_log02.log
[DSC02]
config_path = /dm8/dsc/dsc1_config
port_num = 9236
mal_host = 1.1.1.2
mal_port = 9238
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log
生成dminit.ctl,并将生成的/dm8/dsc/dsc1_config传到二节点
./dminit control=/dm8/dsc/dminit.ini
scp -r /dm8/dsc/dsc1_config/* dmdba@1.1.1.2:/dm8/dsc/dsc1_config
./dmserver dcr_ini=/dm8/dsc/dmdcr.ini /dm8/dsc/dsc0_config/dm.ini
./dmserver dcr_ini=/dm8/dsc/dmdcr.ini /dm8/dsc/dsc1_config/dm.ini
主库正常启动后,停止dmserver服务,保留dmasm和dmcss
dmarch.ini
ARCH_LOCAL_SHARE = 1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/arch/dsc0
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REMOTE]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC02
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
ARCH_INCOMING_PATH = +DMDATA/arch/dsc1
两节点dm.ini修改参数 ARCH_INI = 1
重启两节点,正常后再退出,然后进行冷备,将备份文件传到单点备库
./dmrman use_ap=2 dcr_ini=/dm8/dsc01/dmdcr.ini
RMAN>BACKUP DATABASE '/dm8/dsc/dsc0_config/dm.ini' FULL BACKUPSET'/dm8/dsc/backup/db_dsc_fullback_0809';
./dminit path=/dm8/dsc/dscbak
./dmrman use_ap=2
RMAN>RESTORE DATABASE '/dm8/dsc/dscbak/DAMENG/dm.ini' FROM BACKUPSET '/dm8/dsc/backup/db_dsc_fullback_0809';
RMAN>RECOVER DATABASE '/dm8/dsc/dscbak/DAMENG/dm.ini' FROM BACKUPSET '/dm8/dsc/backup/db_dsc_fullback_0809';
RMAN>RECOVER DATABASE '/dm8/dsc/dscbak/DAMENG/dm.ini' UPDATE DB_MAGIC;
PORT_NUM = 9236 #主备库保持一致
ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
MAL_INI = 1 #打开 MAL 系统
ARCH_INI = 1 #打开归档配置
RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息
MAL_CHECK_INTERVAL = 30 #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL = 10 #判定 MAL 链路断开的时间
[MAL_INST0]
MAL_INST_NAME = DSC01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 1.1.1.1 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 9238 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 1.1.1.1 #实例的对外服务 IP 地址
MAL_INST_PORT = 9236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 9338 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 9339 #实例监听守护进程 TCP 连接的端口
[MAL_INST1]
MAL_INST_NAME = DSC02 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 1.1.1.2 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 9238 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 1.1.1.2 #实例的对外服务 IP 地址
MAL_INST_PORT = 9236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 9338 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 9339 #实例监听守护进程 TCP 连接的端口
[MAL_INST2]
MAL_INST_NAME = DSCBAK #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
MAL_HOST = 1.1.1.3 #MAL 系统监听 TCP 连接的 IP 地址
MAL_PORT = 9238 #MAL 系统监听 TCP 连接的端口
MAL_INST_HOST = 1.1.1.3 #实例的对外服务 IP 地址
MAL_INST_PORT = 9236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致
MAL_DW_PORT = 9338 #实例本地的守护进程监听 TCP 连接的端口
MAL_INST_DW_PORT = 9339 #实例监听守护进程 TCP 连接的端口
主库两节点增加实时归档
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = DSCBAK
备库
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/dsc/arch
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DSC01/DSC02
主库一节点
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #手动切换模式
DW_ERROR_TIME = 60 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 35 #本地实例故障认定时间
INST_INI = /dm8/dsc/dsc0_config/dm.ini#dm.ini 配置文件路径
DCR_INI = /dm8/dsc/dmdcr.ini #dmdcr.ini 配置文件路径
INST_OGUID = 10000 #守护系统唯一 OGUID 值
INST_STARTUP_CMD = /dm8/dmdbms/bin/dmserver #命令行方式启动
INST_AUTO_RESTART = 0 #关闭实例的自动启动功能
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
主库二节点
[GRP1]
DW_TYPE = GLOBAL #全局守护类型
DW_MODE = MANUAL #手动切换模式
DW_ERROR_TIME = 60 #远程守护进程故障认定时间
INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME = 35 #本地实例故障认定时间
INST_INI = /dm8/dsc/dsc1_config/dm.ini#dm.ini 配置文件路径
DCR_INI = /dm8/dsc/dmdcr.ini #dmdcr.ini 配置文件路径
INST_OGUID = 10000 #守护系统唯一 OGUID 值
INST_STARTUP_CMD = /dm8/dmdbms/bin/dmserver #命令行方式启动
INST_AUTO_RESTART = 0 #关闭实例的自动启动功能
RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阈值,默认关闭
RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阈值,默认关闭
备库
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 60
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 35
INST_INI = /dm8/dsc/dscbak/DAMENG/dm.ini
INST_OGUID = 10000
INST_STARTUP_CMD = /dm8/dmdbms/bin
INST_AUTO_RESTART = 0 #对单节点,如果需要打开自动拉起功能,将此配置修改为 1 即可
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
MON_LOG_PATH = /dm8/monlog
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 64
MON_LOG_SPACE_LIMIT = 0
MON_DW_CONFIRM = 0
[GRP1]
MON_INST_OGUID = 1000
MON_DW_IP = 1.1.1.1:9338/1.1.1.2:9338
MON_DW_IP = 1.1.1.3:9338
./dmserver dcr_ini=/dm8/dsc/dmdcr.ini /dm8/dsc/dsc0_config/dm.ini mount
./dmserver dcr_ini=/dm8/dsc/dmdcr.ini /dm8/dsc/dsc1_config/dm.ini mount
./dmserver /dm8/dsc/dscbak/DAMENG/dm.ini mount
主库任一节点
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>SP_SET_OGUID(10000);
SQL>ALTER DATABASE PRIMARY;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
备库
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
SQL>SP_SET_OGUID(10000);
SQL>ALTER DATABASE STANDBY;
SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
./dmwatcher /dm8/dsc/dsc0_config/dmwatcher.ini
./dmwatcher /dm8/dsc/dsc1_config/dmwatcher.ini
./dmwatcher /dm8/dsc/dscbak/DAMENG/dmwatcher.ini
./dmmonitor path=/dm8/dsc/dmmonitor.ini
主库两节点dmcss和dmasm
./dm_service_installer.sh -t dmcss -dcr_ini /dm8/dsc/dmdcr.ini -p CSS
./dm_service_installer.sh -t dmasmsvr -dcr_ini /dm8/dsc/dmdcr.ini -y DmCSSServiceCSS -p ASM
./dm_service_installer.sh -t dmcss -dcr_ini /dm8/dsc/dmdcr.ini -p CSS
./dm_service_installer.sh -t dmasmsvr -dcr_ini /dm8/dsc/dmdcr.ini -y DmCSSServiceCSS -p ASM
主备库dmserver
./dm_service_installer.sh -t dmserver -dm_ini /dm8/dsc/dsc0_config/dm.ini -dcr_ini /dm8/dsc/dmdcr.ini -y DmASMSvrServiceASM -p DSC01 -m mount
./dm_service_installer.sh -t dmserver -dm_ini /dm8/dsc/dsc0_config/dm.ini -dcr_ini /dm8/dsc/dmdcr.ini -y DmASMSvrServiceASM -p DSC02 -m mount
./dm_service_installer.sh -t dmserver -dm_ini /dm8/dsc/dscbak/DAMENG/dm.ini -p DSCBAK -m mount
主备库dmwatcher
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/dsc/dsc0_config/dmwatcher.ini -p dscwat
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/dsc/dsc1_config/dmwatcher.ini -p dscwat
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/dsc/dscbak/DAMENG/dmwatcher.ini -p dscwat
文章
阅读量
获赞