|
IP Addr |
DB Version |
OS Version |
节点1 |
192.168.1.38(业务网) |
DM V8 DSC Veriosn: V2.0 |
|
节点2 |
192.168.1.18(业务网) |
DM V8 DSC Veriosn: V2.0 |
|
监视器 |
192.168.1.xx(业务网) |
DM V8 |
|
|
|
|
|
|
路径 |
DM_HOME |
/dm8/dmdbms |
配置文件路径 |
/dm8/data/dmdsc |
实例初始化后配置文件路径 |
节点1:/dm8/data/dsc0_config |
ASM磁盘名 |
大小 |
用途 |
DCR |
1G |
存放DCR配置信息 |
VOTE |
1G |
存放表决文件 |
LOG01 |
1G |
存放在线日志文件 |
DATA01 |
10G |
存放数据文件 |
|
|
|
1、关闭防火墙(或者将相关端口加入到防火墙)
service iptables stop
chkconfig --level 2345 iptables off
2、关闭SELINUX
#vi /etc/selinux/config
改成:SELINUX= disabled
#setenforce 0
3、调整资源限制
vi /etc/security/limits.conf —添加
* soft nofile 65536
* hard nofile 65536
或者在/etc/profile中添加如下内容:
vi /etc/profile —添加:
ulimit -SHn 65536
保存退出。
source /etc/profile
存储层面配置共享存储;
绑定为raw设备(所有节点)
Linux 6上的操作如下:
[root@lixora ~]# vi /etc/udev/rules.d/60-raw.rules ---添加如下内容
ACTION=="add", KERNEL=="sdb", RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdc", RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdd", RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sde", RUN+="/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"
保存退出。
[root@lixora ~]# start_udev
查看raw设备大小:
[root@lixora ~]# blockdev --getsize64 /dev/raw/raw1
536870912
[root@lixora ~]# blockdev --getsize64 /dev/raw/raw2
536870912
[root@lixora ~]# blockdev --getsize64 /dev/raw/raw3
1073741824
[root@lixora ~]# blockdev --getsize64 /dev/raw/raw4
10737418240
Linux 7上的操作如下:
[root@localhost ~]# cat /etc/udev/rules.d/60-raw.rules
ACTION=="add", KERNEL=="sdb", RUN+="/usr/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdc", RUN+="/usr/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdd", RUN+="/usr/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sde", RUN+="/usr/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"
ACTION=="add", KERNEL=="sdb2", RUN+="/usr/bin/raw /dev/raw/raw1 %N"
ACTION=="add", KERNEL=="sdc", RUN+="/usr/bin/raw /dev/raw/raw2 %N"
ACTION=="add", KERNEL=="sdb1", RUN+="/usr/bin/raw /dev/raw/raw3 %N"
ACTION=="add", KERNEL=="sdb3", RUN+="/usr/bin/raw /dev/raw/raw4 %N"
ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"
~
udev rules生效
# udevadm trigger --action=add
查看raw device
[root@localhost ~]# raw -qa
/dev/raw/raw1: bound to major 8, minor 16
/dev/raw/raw2: bound to major 8, minor 32
/dev/raw/raw3: bound to major 8, minor 48
/dev/raw/raw4: bound to major 8, minor 64
[root@localhost ~]# ll /dev/raw/raw*
crw-rw---- 1 dmdba dinstall 162, 1 Jun 14 10:30 /dev/raw/raw1
crw-rw---- 1 dmdba dinstall 162, 2 Jun 14 10:30 /dev/raw/raw2
crw-rw---- 1 dmdba dinstall 162, 3 Jun 14 10:30 /dev/raw/raw3
crw-rw---- 1 dmdba dinstall 162, 4 Jun 14 10:30 /dev/raw/raw4
6、注意事项
当DMDSC集群服务注册到系统服务开机启动时,可能会因为存储udev规则未生效,导致启动失败。可以考虑将udev规则内容写到rc.local里面。
DM8数据库软件安装略。
可参考:DM单机数据库安装
配置dmdcr_cfg.ini 配置文件
dmdcr_cfg.ini 是格式化 DCR 和 Voting Disk 的配置文件。 配置信息包括三类:集群环境全局信息、集群组信息、以及组内节点信息。
使用 dmasmcmd 工具初始化共享磁盘时,可以根据 dmdcr_cfg.ini 配置文件,格式化 DCR 和 Voting Disk。
创建dmdcr_cfg.ini文件,文件路径:/dm8/data/dmdsc/dmdcr_cfg.ini,内容如下:
DCR_N_GRP = 3 #与实际配置的组数相同,
DCR_VTD_PATH = /dev/raw/raw3
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 = CSS0
DCR_EP_HOST = 192.168.25.11
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.25.12
DCR_EP_PORT = 9343
[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 = ASM0 #与DMASM使用的DMASVRMAL.INI mal_inst_name相同
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.1.38
DCR_EP_PORT = 9349
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM1 #与DMASM使用的DMASVRMAL.INI mal_inst_name相同
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 192.168.1.18
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP] #新建组
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_DSC]
DCR_EP_NAME = RAC0 #与数据库实例使用 dmmal.ini 配置文件里的MAL_INST_NAME、以及 dm.ini 配置文件里的 INSTANCE_NAME 保持一致
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
[GRP_DSC]
DCR_EP_NAME = RAC1 #与数据库实例使用 dmmal.ini 配置文件里的MAL_INST_NAME、以及 dm.ini 配置文件里的 INSTANCE_NAME 保持一致
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9742
DMDCR_CFG.INI配置项说明:
配置项 说明
集群环境全局信息
DCR_VTD_PATH Voting Disk 路径
DCR_N_GRP 集群环境包括多少个 group,取值范围 1~16
DCR_OGUID 消息标识, dmcssm 登录 dmcss 消息校验用
集群组信息
DCR_GRP_TYPE 组类型(CSS\ASM\DB
DCR_GRP_NAME 组名, 16 字节,配置文件内不可重复
DCR_GRP_N_EP 组内节点个数 N,最大 16
DCR_GRP_EP_ARR 组内包含的节点序列号, {0,1,2,…N-1}用户不能指定,仅用于从 DCR 磁盘 export 出来可见
DCR_GRP_N_ERR_EP 组内故障节点个数用户不能指定,仅用于从 DCR 磁盘 export 出来可见
DCR_GRP_ERR_EP_ARR 组内故障节点序列号用户不能指定,仅用于从 DCR 磁盘 export 出来可见
DCR_GRP_DSKCHK_CNT 磁盘心跳机制,容错时间,单位秒,缺省 60S,取值范围 5~600
节点信息 某些属性可能只针对某一类型节点,比如 SHM_KEY 只针对 ASM 节点有效
DCR_EP_NAME 节点名, 16 字节,配置文件内不可重复。
DB 的节点名必须和 dm.ini 里的INSTANCE_NAME 保持一致;
ASM 的节点名必须和 dmmal.ini 里的 MAL_INST_NAME 一致;
同一类型节点的 EP_NAME 不能重复
DCR_EP_SEQNO 组内序号, CSS/ASM 不能配置, 自动分配;
DB 可以配置, 0 ~ n_ep -1, 组内不能重复,如不配置则自动分配
DCR_EP_HOST 节点 IP(CSS/ASM 有效,表示登录 CSS/ASM 的 IP 地址)
对 DB 来说,是绑定 VIP 的网卡对应的物理 IP 地址
CSS 中设置表示 DMCSSM 通过该 IP 连接 CSS;
ASM 中设置表示 DB 通过该 IP 连接 ASM
DCR_EP_PORT 节点 TCP 监听端口(CSS/ASM/DB 有效,对应登录 CSS/ASM/DB 的端口号),取值范围 1024~65534。 特别对 DB 来说, DB 的 DCR_EP_PORT与 dm.ini 中的 PORT_NUM 不一致时, DB 端口以 DCR_EP_PORT 为准。若要使用 VIP 功能, 则不同服务器上配置的 DCR_EP_PORT 要相同
DCR_EP_SHM_KEY 共享内存标识,数值类型(ASM 有效,初始化共享内存的标识符),应为大于 0 的 4 字节整数
DCR_VIP 节点 VIP(DB 有效,表示配置的虚拟 IP),需要和 DCR_EP_HOST 在同一网段。 若需要取消 VIP 配置,仅需要将 DB 组的 DCR_VIP 和DCR_EP_HOST 删除即可
DCR_CHECK_PORT DCR 检查端口号。 检查实例是否活动的时候用,各实例不能冲突
DCR_EP_SHM_SIZE 共享内存大小,单位 M, (ASM 有效,初始化共享内存大小),取值范围10~1024
DCR_EP_ASM_LOAD_PATH ASM 磁盘扫描路径, Linux 下一般为/dev/raw,文件模拟情况,必须是全路径,不能是相对路径
使用说明:
(1)在用 dmasmcmd 工具执行 init votedisk disk_path from dcr_cfg_path时,指定的 disk_path 必须和 dcr_cfg_path 里面配置的 DCR_VTD_PATH 相同。
(2)如果配置 dmcssm, dmcssm 的 OGUID 必须和 DCR_OGUID 保持一致。
(3)DCR_N_GRP 必须和实际配置的组数目保持一致。
(4)CSS 和 ASM 组的 DCR_GRP_N_EP 要相等, DB 的 DCR_GRP_N_EP 要小于等于CSS/ASM 的 DCR_GRP_N_EP。
(5)ASM 节点的 DCR_EP_NAME 必须和 DMASM 系统使用的 dmmal.ini 配置文件里的MAL_INST_NAME 保持一致。
(6)DB 节点的 DCR_EP_NAME 必须和数据库实例使用 dmmal.ini 配置文件里的MAL_INST_NAME、以及 dm.ini 配置文件里的 INSTANCE_NAME 保持一致。
(7)所有 DB 节点的 DCR_EP_NAME 都不能重复,DB 组内的 DCR_EP_SEQNO 不能重复。
配置dmdcr.ini
dmdcr.ini 是 dmcss、dmasmsvr、dmasmtool 工具的输入参数。记录了当前节点序列号以及 DCR 磁盘路径。
使用DMASM 的两个节点分别配置dmdcr.ini,dmdcr_seqo分别为 0 和 1。文件路径:/dm8/data/dmdsc/dmdcr.ini
节点1:
DMDCR_PATH = /dev/raw/raw3
DMDCR_MAL_PATH =/dm8/data/dmdsc/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/dmdbms/bin/dmasmsvr dcr_ini=/dm8/data/dmdsc/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/dmdbms/bin/dmserver path=/dm8/data/dsc0_config/dm.ini dcr_ini=/dm8/data/dmdsc/dmdcr.ini
节点2:
DMDCR_PATH = /dev/raw/raw3
DMDCR_MAL_PATH =/dm8/data/dmdsc/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 1
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /dm8/dmdbms/bin/dmasmsvr dcr_ini=/dm8/data/dmdsc/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm8/dmdbms/bin/dmserver path=/dm8/data/dsc1_config/dm.ini dcr_ini=/dm8/data/dmdsc/dmdcr.ini
dmdcr.ini配置项说明:
配置项 说明
DMDCR_PATH |
记录 DCR 磁盘路径 |
DMDCR_SEQNO |
记录当前节点序号(用来获取 ASM 登录信息) |
DMDCR_MAL_PATH |
保存 dmmal.ini 配置文件的路径,仅对 dmasmsvr 有效 |
DMDCR_ASM_RESTART_INTERVAL |
DMCSS 认定 DMASM 节点故障重启的时间间隔(取值 0~86400s), DMCSS 只负责和 DMDCR_SEQNO 节点号相等的DMASM 节点的故障重启,超过设置的时间后,如果 DMASM 节点的 active 标记仍然为 FALSE,则 DMCSS 会执行自动拉起。如果配置为 0,则不会执行自动拉起操作,默认为60s |
DMDCR_ASM_STARTUP_CMD |
DMCSS 认定 DMASM 节点故障后,执行自动拉起的命令串,可以配置为服务方式或命令行方式启动。 |
DMDCR_DB_RESTART_INTERVAL |
DMCSS 认定 DMDSC 节点故障重启的时间间隔(取值 0~86400s), DMCSS 只负责和 DMDCR_SEQNO 节点号相等的DMDSC 节点的故障重启,超过设置的时间后,如果 DMDSC 节点的 active 标记仍然为 FALSE,则 DMCSS 会执行自动拉起。如果配置为 0,则不会执行自动拉起操作,默认为 60s。 |
DMDCR_DB_STARTUP_CMD |
DMCSS 认定 DMDSC 节点故障后,执行自动拉起的命令串,可以配置为服务方式或命令行方式启动。 |
DMDCR_AUTO_OPEN_CHECK |
指定时间内如果节点实例未启动, DMCSS 会自动将节点踢出集群环境,单位为秒,取值范围应大于等于 30s。 |
使用DMASMCMD工具初始化共享磁盘:
(只需在配置好dmdcr_cfg.ini的1个节点上执行即可)
#手动创建:
[dmdba@lixora bin]$ ./dmasmcmd
DMASMCMD V8
ASM>create votedisk '/dev/raw/raw1' 'VOTE'
ASM>create asmdisk '/dev/raw/raw2' 'DATA01'
ASM>create dcrdisk '/dev/raw/raw3' 'DCR'
ASM>create asmdisk '/dev/raw/raw4' 'LOG01'
ASM> init dcrdisk '/dev/raw/raw3' from '/dm8/data/dmdsc/dmdcr_cfg.ini' identified by 'abcd'
ASM> init votedisk '/dev/raw/raw1' from '/dm8/data/dmdsc/dmdcr_cfg.ini'
##批量创建:
asmdisk.txt 脚本内容如下:
[dmdba@lixora dmdsc]$ cat asmdisk.txt
#asm script file
create votedisk '/dev/raw/raw1' 'VOTE'
create asmdisk '/dev/raw/raw2' 'DATA01'
create dcrdisk '/dev/raw/raw3' 'DCR'
create asmdisk '/dev/raw/raw4' 'LOG01'
init dcrdisk '/dev/raw/raw3' from '/dm8/data/dmdsc/dmdcr_cfg.ini' identified by 'abcd'
init votedisk '/dev/raw/raw1' from '/dm8/data/dmdsc/dmdcr_cfg.ini'
可以启动 dmasmcmd 工具,依次输入以上命令,或者将命令写入 asmcmd.txt 文件,执行 dmasmcmd script_file=asmcmd.txt,以行为单位读取文件内容,并依次执行。只需在一台机器执行即可。
需要注意:
脚本文件必须以“#asm script file”开头,否则认为是无效脚本文件;
脚本中其它行以“#”表示注释;脚本文件大小不超过 1M。
配置dmasvrmal.ini(所有节点)
dmasvrmal.ini文件为DMASM的MAL配置文件,使用DMASM的所有节点都要配置,内容完全一样。文件路径:/dm8/data/dmdsc/dmasvrmal.ini
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.25.11 #私网
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.25.12 #私网
MAL_PORT = 7237
节点1和节点2先后分别启动 dmcss程序。
节点1:
[dmdba@lixora bin]$ ./dmcss DCR_INI=/dm8/data/dmdsc/dmdcr.ini
节点2:
[dmdba@lixora2 bin]$ ./dmcss DCR_INI=/dm8/data/dmdsc/dmdcr.ini
主节点(此处节点1为主节点)dmcss启动后打印信息如下:
[dmdba@lixora bin]$ ./dmcss DCR_INI=/dm8/data/dmdsc/dmdcr.ini
DMCSS V8
DMCSS IS READY
[CSS]: 设置EP CSS0[0]为控制节点 --------
下面的日志需要在节点2执行完/dmasmsvr 后才出现
[ASM]: 设置EP ASM0[0]为控制节点
[ASM]: 设置命令[START NOTIFY], 目标站点 ASM0[0], 命令序号[2]
[ASM]: 设置命令[EP START], 目标站点 ASM0[0], 命令序号[3]
[ASM]: 设置命令[NONE], 目标站点 ASM0[0], 命令序号[0]
[ASM]: 设置命令[EP START], 目标站点 ASM1[1], 命令序号[5]
[ASM]: 设置命令[NONE], 目标站点 ASM1[1], 命令序号[0]
[ASM]: 设置命令[EP OPEN], 目标站点 ASM0[0], 命令序号[8]
[ASM]: 设置命令[EP OPEN], 目标站点 ASM1[1], 命令序号[9]
[ASM]: 设置命令[NONE], 目标站点 ASM0[0], 命令序号[0]
[ASM]: 设置命令[NONE], 目标站点 ASM1[1], 命令序号[0]
#如果后台dmasmsvr 没有自动起来,使用以下命令手动启动dmasmsver
[dmdba@lixora bin]$ ./dmasmsvr DCR_INI=/dm8/data/dmdsc/dmdcr.ini
[dmdba@lixora2 bin]$ ./dmasmsvr DCR_INI=/dm8/data/dmdsc/dmdcr.ini
ASM SELF EPNO:0
DMASMSVR V8
dmasmsvr task worker thread startup
the ASM server is Ready.
check css cmd: START NOTIFY, cmd_seq: 2
check css cmd: EP START, cmd_seq: 3
ASM Control Node EPNO:0
check css cmd: EP OPEN, cmd_seq: 8
./dmasmsvr DCR_INI=/dm8/data/dmdsc/dmdcr.ini 命令窗口日志输出:
ASM Control Node EPNO:0
check css cmd: EP OPEN, cmd_seq: 8
[Trace]atsk_process_connect success, client_is_local=1
[Trace]asm_disk_add: /dev/raw/raw4
[Trace]Create diskgroup DMLOG, with asmdisk /dev/raw/raw4
[Trace]aptx op_type 1, log_len 1170, start seq 0
[Trace]generate one rpag seq 0.
[Trace]generate one rpag seq 1.
[Trace]generate one rpag seq 2.
[Trace]aptx flush op_type 1, log_len 1170, start seq 3
[Trace]The disk metadata addr(0, 0) flush.
[Trace]aptx op_type 1, log_len 15, start seq 3
[Trace]generate one rpag seq 3.
[Trace]aptx flush op_type 1, log_len 15, start seq 4
[Trace]asm_disk_add: /dev/raw/raw2
[Trace]Create diskgroup DMDATA, with asmdisk /dev/raw/raw2
[Trace]aptx op_type 1, log_len 1171, start seq 0
[Trace]generate one rpag seq 0.
[Trace]generate one rpag seq 1.
[Trace]generate one rpag seq 2.
[Trace]aptx flush op_type 1, log_len 1171, start seq 3
[Trace]The disk metadata addr(1, 0) flush.
[Trace]atsk_process_sess_free org_site:(0), org_sess:(0xb0000910).
[Trace]asvr2_sess_free sess:(0xb0000910), tsk:(0xbc4090).
[root@lixora2 bin]# ./dmasmsvr DCR_INI=/dm8/data/dmdsc/dmdcr.ini
ASM SELF EPNO:1
DMASMSVR V8
dmasmsvr task worker thread startup
the ASM server is Ready.
check css cmd: EP START, cmd_seq: 5
ASM Control Node EPNO:0
check css cmd: EP OPEN, cmd_seq: 9
[Trace]asm_disk_add: /dev/raw/raw4
[Trace]asm_disk_add: /dev/raw/raw2
选择1个节点,启动dmasmtool工具,并创建共享磁盘组。
[dmdba@lixora bin]$ ./dmasmtool DCR_INI=/dm8/data/dmdsc/dmdcr.ini
ASM>create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
Used time: 176.881(ms).
ASM>create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
Used time: 168.380(ms).
ASM>
###注意创建磁盘组的语句不需要以分号结尾,末尾加上分号会报错
ASM>create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3';
syntax error
[code : -2007] 语法分析出错
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw4’
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw2'
'
3.5.1 配置dminit.ini
准备 dminit.ini 配置文件,保存到/dm8/data/dmdsc目录。
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 = 128 #注意磁盘空间大小128*4
dcr_path = /dev/raw/raw3 #dcr磁盘路径,目前不支持 asm,只能是裸设备
dcr_seqno = 0
auto_overwrite = 1
[RAC0] #inst_name跟 dmdcr_cfg.ini 中DB类型group中DCR_EP_NAME对应
config_path = /dm8/data/dsc0_config
port_num = 5236 #最好与dmdcr_cfg.ini 中DB类型group中DCR_EP_PORT一致,不一致以DCR_EP_PORT为准
mal_host = 192.168.25.11
mal_port = 9340
log_path = +DMLOG/log/rac0_log01.log
log_path = +DMLOG/log/rac0_log02.log
[RAC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /dm8/data/dsc1_config
port_num = 5236 #最好与dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_PORT一致,不一致以DCR_EP_PORT为准
mal_host = 192.168.25.12
mal_port = 9341
log_path = +DMLOG/log/rac1_log01.log
log_path = +DMLOG/log/rac1_log02.log
3.52 使用dminit初始化实例
选择配置好dminit.ini配置文件的节点(可以选择任意1个集群节点),启动dminit工具初始化数据库。dminit 执行完成后,会在config_path目录(/dm8/data/dsc0_config和/dm8/data/dsc1_config)下生成配置文件dm.ini和dmmal.ini。
./dminit control=/dm8/data/dmdsc/dminit.ini
#日志输出:
[root@lixora bin]# ./dminit control=/dm8/data/dmdsc/dminit.ini
initdb V8
db version: 0x7000a
License will expire on 2020-10-25
log file path: +DMLOG/log/rac0_log01.log
log file path: +DMLOG/log/rac0_log02.log
log file path: +DMLOG/log/rac1_log01.log
log file path: +DMLOG/log/rac1_log02.log
write to dir [+DMDATA/data/dsc].
create dm database success. 2020-07-22 03:59:41
[root@lixora bin]#
#拷贝/dm8/data/dsc1_config 到节点2上/dm8/data
[dmdba@lixora data]$ scp -r dsc1_config 192.168.1.18:/dm8/data/
[email protected]'s password:
dmmal.ini 100% 206 0.2KB/s 00:00
dm.ini 100% 47KB 47.0KB/s 00:00
sqllog.ini 100% 479 0.5KB/s 00:00
3.5.3 启动数据库服务
手动启动:
[dmdba@lixora bin]$ ./dmserver path=/dm8/data/dsc0_config/dm.ini dcr_ini=/dm8/data/dmdsc/dmdcr.ini
[dmdba@lixora2 bin]$ ./dmserver path=/dm8/data/dsc1_config/dm.ini dcr_ini=/dm8/data/dmdsc/dmdcr.ini
测试时发现,在前台启动时,当关闭其中1个实例之后,另外一个实例也会关闭。
3.6.1 配置ASM和数据库实例随dmcss启动
所有节点修改dmdcr.ini中DMDCR_ASM_RESTART_INTERVAL 和DMDCR_DB_RESTART_INTERVAL 配置项,都设置为60(默认60s)。
[dmdba@lixora bin]$ cat /dm8/data/dmdsc/dmdcr.ini
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/dm8/data/dmdsc/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 60
DMDCR_ASM_STARTUP_CMD = /dm8/dmdbms/bin/dmasmsvr dcr_ini=/dm8/data/dmdsc/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 60
DMDCR_DB_STARTUP_CMD = /dm8/dmdbms/bin/dmserver path=/dm8/data/dsc0_config/dm.ini dcr_ini=/dm8/data/dmdsc/dmdcr.ini
3.6.2 配置dmcss系统服务
可以通过dm_service_installer.sh脚本来配置,脚本用法如下:
[root@lixora root]# ./dm_service_installer.sh -h
Usage: dm_service_installer.sh -t service_type [-p service_name_postfix] [-dm_ini dm_ini_file]
[-watch_ini watch_ini_file ] [-wmon_ini wmon_ini_file] [-rww_ini rww_ini_file]
[-watcher_ini watcher_ini_file ] [-monitor_ini monitor_ini_file] [-cssm_ini cssm_ini_file]
[-dfs_ini dfs_ini_file] [-dcr_ini dcr_ini_file]
[-dss_ini dss_ini_file] [-drs_ini drs_ini_file] [-dras_ini dras_ini_file] [-dcs_ini dcs_ini_file] [-server server_info]
[-m open|mount] [-y dependent_service] [-auto true|false]
or dm_service_installer.sh [-s service_file_path]
or dm_service_installer.sh -h
-t 服务类型,包括
dmimon,dmap,dmserver,dmwatcher,dmmonitor,dmcss,dmcssm,dmasmsvr,dmdcs,dmdrs,dmdras,dmdss
-p 服务名后缀,对于dmimon,dmap服务类型无效
-dm_ini dm.ini文件路径
-watch_ini dmwatch.ini文件路径.
-wmon_ini dmwmon.ini文件路径.
-rww_ini dmrww.ini文件路径.
-watcher_ini dmwatcher.ini文件路径.
-monitor_ini dmmonitor.ini文件路径.
-dcr_ini dmdcr.ini文件路径.
-cssm_ini dmcssm.ini文件路径.
-dss_ini dss.ini文件路径.
-drs_ini drs.ini文件路径.
-dras_ini dras.ini文件路径.
-dcs_ini dcs.ini文件路径.
-dfs_ini dfs.ini文件路径.
-server 服务器信息(IP:PORT)
-auto 设置服务是否自动启动,值为true或false,默认true.
-m 设置服务器启动模式open或mount,只针对dmserver服务类型生效,可选
-y 设置依赖服务,此选项只针对systemd服务环境下的dmserver和dmasmsvr服务生效
-s 服务脚本路径,设置则忽略除-y外的其他参数选项
-h 帮助
配置dmcss系统服务(root用户):
/dm8/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm8/data/dmdsc/dmdcr.ini -p RAC0
/dm8/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm8/data/dmdsc/dmdcr.ini -p RAC1
[root@lixora ~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm8/data/dmdsc/dmdcr.ini -p RAC0
移动服务脚本文件(/dm8/dmdbms/bin/DmCSSServiceRAC0 到 /etc/rc.d/init.d/DmCSSServiceRAC0)
创建服务(DmCSSServiceRAC0)完成
[root@lixora ~]#
[root@lixora ~]# /etc/init.d/DmCSSServiceRAC0 start
Starting DmCSSServiceRAC0: [ OK ]
[root@lixora ~]#
------------------------------------------------------------------------------------------
[root@lixora2 ~]# /dm8/dmdbms/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm8/data/dmdsc/dmdcr.ini -p RAC1
移动服务脚本文件(/dm8/dmdbms/bin/DmCSSServiceRAC1 到 /etc/rc.d/init.d/DmCSSServiceRAC1)
创建服务(DmCSSServiceRAC1)完成
[root@lixora2 ~]#
[root@lixora2 ~]# /etc/init.d/DmCSSServiceRAC1 start
Starting DmCSSServiceRAC1: [ OK ]
[root@lixora2 ~]#
在监视器服务器上,安装达梦数据库软件,然后配置dmcssm.ini,配置文件路径:/dm8/monitor
文件内容如下:
[dmdba@DaMengDB bin]$ cat /dm8/monitor/dmcssm.ini
#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致
CSSM_OGUID = 63635
#配置所有 CSS 的连接信息,
#和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 192.168.25.11:9341
CSSM_CSS_IP = 192.168.25.12:9343
CSSM_LOG_PATH =/dm8/monitor/log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
表 14.1 dmcssm.ini 配置项
配置项 |
配置含义 |
CSSM_OGUID |
用 于 和 DMCSS 通 信 校验 使 用, 和 dmdcr_cfg.ini 中 的DCR_OGUID 值保持一致。 |
CSSM_CSS_IP |
集群中所有 DMCSS 所在机器的 IP 地址,以及 DMCSS 的监听端口,配置格式为“IP:PORT”的形式,其中 IP 和 PORT 分别对应dmdcr_cfg.ini 中 DMCSS 节 点 的 DCR_EP_HOST 和DCR_EP_PORT。 |
CSSM_LOG_PATH |
日志文件路径,日志文件命名方式为 “dmcssm_年月日时分秒.log”,例如“dmcssm_20160614131123.log”。 志文件路径,如果没有配置,则将 dmcssm.ini 配置文件所在的路径作为日志文件路径 |
CSSM_LOG_FILE_SIZE |
单个日志文件大小,范围 16~2048,单位为 M,默认值为 64M,达到最大值后,会自动生成并切换到新的日志文件中。 |
CSSM_LOG_SPACE_LIMIT |
日志总空间大小,取值 0 或者 256~4096,单位为 M,默认值为0,表示没有空间限制,如果达到设定的总空间限制,会自动删除创建时间最早的日志文件。 |
启动dmcssm监视器:
./dmcssm ini_path=/dm8/monitor/dmcssm.ini
show ----show命令查看所有组的信息
monitor current time:2020-06-12 21:46:19, n_group:3
=================== group[name = GRP_CSS, seq = 0, type = CSS, Control Node = 0] ========================================
[CSS0] global info:
[ASM0] auto restart = TRUE
[RAC0] auto restart = TRUE
[CSS1] global info:
[ASM1] auto restart = TRUE
[RAC1] auto restart = TRUE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid ts
2020-06-12 21:46:08 CSS0 0 9341 Control Node OPEN WORKING OK TRUE 633332346 633340573
2020-06-12 21:46:08 CSS1 1 9343 Normal Node OPEN WORKING OK TRUE 633329821 633338642
=================== group[name = GRP_ASM, seq = 1, type = ASM, Control Node = 0] ========================================
n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)
sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL
crash process over flag is TRUE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid ts
2020-06-12 21:46:08 ASM0 0 9349 Control Node OPEN WORKING OK TRUE 633337312 633346688
2020-06-12 21:46:08 ASM1 1 9351 Normal Node OPEN WORKING OK TRUE 633333868 633343275
=================== group[name = GRP_DSC, seq = 2, type = DB, Control Node = 0] ========================================
n_ok_ep = 2
ok_ep_arr(index, seqno):
(0, 0)
(1, 1)
sta = OPEN, sub_sta = STARTUP
break ep = NULL
recover ep = NULL
crash process over flag is TRUE
ep: css_time inst_name seqno port mode inst_status vtd_status is_ok active guid ts
2020-06-12 21:46:08 RAC0 0 5236 Control Node OPEN WORKING OK TRUE 2312282503 2312291731
2020-06-12 21:46:08 RAC1 1 5236 Normal Node OPEN WORKING OK TRUE 2312250192 2312259463
==================================================================================================================
DMCSSM监视器命令:
help 显示帮助信息
show [group_name] 显示指定的组信息,如果没有指定 group_name,则显示所有组信息
show config 显示 dmdcr_cfg.ini 的配置信息
show monitor 显示当前连接到主 CSS 的所有监视器信息
set group_name auto restart on 打开指定组的自动拉起功能(只修改 dmcss 内存值)
set group_name auto restart off 关闭指定组的自动拉起功能(只修改 dmcss 内存值)
open force group_name 强制 open 指定的 ASM 或 DB 组
ep startup group_name 启动指定的 ASM 或 DB 组
ep stop group_name 退出指定的 ASM 或 DB 组
ep halt group_name.ep_name 强制退出指定组中的指定节点
extend node 联机扩展节点
ep crash group_name.ep_name 手动指定节点故障
check crash over group_name 检查指定组故障处理是否真正结束
exit 退出监视器
3.7.1 DMCSSM监视器服务配置
节点1:
[root@lixora root]# cd /dm8/dmdbms/script/root
[root@lixora root]# sh dm_service_installer.sh -t dmcssm -p dmcssmRAC0 -cssm_ini /dm8/monitor/dmcssm.ini
ln -s '/usr/lib/systemd/system/DmCSSMonitorServicedmcssmRAC0.service' '/etc/systemd/system/multi-user.target.wants/DmCSSMonitorServicedmcssmRAC0.service'
Finished to create the service (DmCSSMonitorServicedmcssmRAC0)
配置服务自启动
[root@lixora root]# systemctl enable DmCSSMonitorServicedmcssmRAC0.service
[root@lixora root]# systemctl start DmCSSMonitorServicedmcssmRAC0.service
节点2:
[root@lixora root]# cd /dm8/dmdbms/script/root
[root@lixora2 root]# sh dm_service_installer.sh -t dmcssm -p dmcssmRAC1 -cssm_ini /dm8/monitor/dmcssm.ini
ln -s '/usr/lib/systemd/system/DmCSSMonitorServicedmcssmRAC1.service' '/etc/systemd/system/multi-user.target.wants/DmCSSMonitorServicedmcssmRAC1.service'
Finished to create the service (DmCSSMonitorServicedmcssmRAC1)
[root@lixora2 root]# pwd
/dm8/dmdbms/script/root
配置服务自启动
[root@lixora2 root]# systemctl enable DmCSSMonitorServicedmcssmRAC1.service
[root@lixora2 root]# systemctl start DmCSSMonitorServicedmcssmRAC1.service
3.7.2 DMCSS 使用维护操作命令
在DM8中,新增加了监视器的功能,使用起来非常方便,功能也很人性化。但是需要注意的是,DSC中的监视器与DM实时主备或读写分离集群中的监视器不同,没有确认监视器与非确认监视器的说法,同一个DMDSC集群中,允许最多同时启动10个监视器,建议监视器放在独立的第三方机器上,避免由于节点间网络不稳定等原因导致监视器误判节点故障。
DMCSSM监视器的功能说明
1. 监控集群状态
DMCSS每秒会发送集群中所有节点的状态信息、当前连接到DMCSS的监视器信息以及DCR的配置信息到活动的监视器上,监视器提供对应的show命令用于查看各类信息。
2. 打开/关闭指定组的自动拉起
DMCSSM提供SET AUTO RESTART ON/SET AUTO RESTART OFF命令,通知DMCSS打开或关闭对指定组的自动拉起功能,此功能和DMCSS的监控打开或关闭没有关系。
3. 强制OPEN指定组
DMCSSM提供OPEN FORCE命令,在启动ASM或DB组时,如果组中某个节点发生硬件故障等原因导致一直无法启动,可执行此命令通知DMCSS将ASM组或DB组强制OPEN,不再等待故障节点启动成功。
4. 启动/退出集群
DMCSSM提供EP STARTUP/EP STOP命令,可以通知DMCSS启动/退出指定的ASM或DB组。
5. 集群故障处理
DMCSSM提供EP BREAK/EP RECOVER命令,在主CSS的监控功能被关闭的情况下,可以通过执行这些命令手动进行故障处理和故障恢复。另外在某些特殊场景下还可通过EP HALT命令强制退出指定节点
DMDSC启动、关闭流程
启动:
DMDSC是基于共享存储的数据库集群系统,包含多个数据库实例,因此,与单节点的达梦数据库不同,DMDSC集群需要在节点间进行同步、协调,才能正常地启动、关闭。启动DMDSC集群之前,必须先启动集群同步服务DMCSS,如果使用了DMASM文件系统,则DMASMSVR服务也必须先启动。
启动流程简单总结一下就是先启动DMCSS,然后启动DMASMSVR(如果有的话),最后启动DMSERVER
如果DMCSS配置了DMASMSVR/dmserver自动拉起命令,此时可以先仅启动DMCSS,然后启动监视器DMCSSM,在DMCSSM控制台执行命令"ep startup asm"启动DMASMSVR集群,执行"ep startup dsc"启动dmserver集群(其中asm/dsc为dmasmsvr/dmserver集群的组名)。
停止:
如果DMCSS配置了DMASMSVR/dmserver自动拉起命令,那么手动停止DMSERVER和DMASMSVR时会被拉起来,因此可能导致停止服务执行成功,但是集群并未停止的情况。此时就显示出监视器的好处。
此时可以在监视器中执行“ep stop 集群组名”命令的方式停止ASMSVR服务或者dmserver服务,在使用监视器停止服务时,监视器会关闭相关的自动拉起命令,因此,可以确保集群的正确停止,在停止DMASMSVR/dmserver服务后,再手动停止DMCSS服务即可。需要注意的是,如果不停止DMCSS服务,再次启动集群的话,自动拉起是不会生效的,当然,也可以通过在监视器中执行“set group_name auto restart on/off ”打开/关闭指定组的自动拉起功能,此命令只修改dmcss内存值。
监视器命令
命令名称 |
含义 |
help |
显示帮助信息 |
show [group_name] |
显示指定的组信息,如果没有指定 group_name,则显示所有组信息 |
show config |
显示 dmdcr_cfg.ini 的配置信息 |
show monitor |
显示当前连接到主 CSS 的所有监视器信息 |
set group_name auto restart on |
打开指定组的自动拉起功能(只修改 dmcss 内存值) |
set group_name auto restart off |
关闭指定组的自动拉起功能(只修改 dmcss 内存值) |
open force group_name |
强制 open 指定的 ASM 或 DB 组 |
ep startup group_name |
启动指定的 ASM 或 DB 组 |
ep stop group_name |
退出指定的 ASM 或 DB 组 |
ep halt group_name.ep_name |
强制退出指定组中的指定节点 |
extend node |
联机扩展节点 |
ep crash group_name.ep_name |
手动指定节点故障 |
check crash over group_name |
检查指定组故障处理是否真正结束 |
exit |
退出监视器 |
4.0.1 配置dm_svc.conf文件:
[dmdba@lixora bin]$ vi /etc/dm_svc.conf
TIME_ZONE=(480)
LANGUAGE=(cn)
rac=(192.168.1.38:5236,192.168.1.18:5236)
SWITCH_TIME=(10000)
SWITCH_INTERVAL=(1000)
TIME_ZONE=(480)
LANGUAGE=(en)
rac=(192.168.1.38:5236,192.168.1.18:5236)
SWITCH_TIME=(10000)
SWITCH_INTERVAL=(1000)
4.0.2 连接测试:
[dmdba@lixora bin]$ ./disql sysdba/SYSDBA@rac
服务器[192.168.1.18:5236]:处于普通打开状态
登录使用时间: 221.175(毫秒)
disql V8
SQL> select * from v$instance;
dmcss启动命令举例如下:
./dmcss DCR_INI=/home/data/dmdcr.ini
DMASMSVR 实例启动命令举例如下:
1. linux 命令行方式启动(不能出现带有空格的路径):
DMDCR_ASM_STARTUP_CMD = /opt/dmdbms/bin/dmasmsvr dcr_ini=/home/data/dmdcr.ini
2. linux 服务方式启动:
DMDCR_ASM_STARTUP_CMD = service dmasmserverd restart
3. Windows 命令行启动:
DMDCR_ASM_STARTUP_CMD = c:\dm\bin\dmasmsvr.exe dcr_ini=d:\asmtest\dmdcr.ini
4. Windows 服务方式启动:
DMDCR_ASM_STARTUP_CMD = net start 注册服务名
dmserver 实例启动命令如下:
1. linux 命令行方式启动(不能出现带有空格的路径):
DMDCR_DB_STARTUP_CMD = /opt/dmdbms/bin/dmserver
path=/home/data/dsc0_config/dm.inidcr_ini=/home/data/dmdcr.ini
2. linux 服务方式启动:
DMDCR_DB_STARTUP_CMD = service DmServiceDSC01 restart
3. Windows 命令行启动:
DMDCR_DB_STARTUP_CMD = c:\dm\bin\dmserver.exe
path=d:\asmtest\dsc0_config\dm.inidcr_ini=d:\asmtest\dmdcr.ini
4. Windows 服务方式启动:
DMDCR_DB_STARTUP_CMD = net start 注册服务名
配置文件配置方式:配置dmarch.ini 参数文件
#节点1:
vi dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /u01/dmdbms/data/arch_rac0
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = RAC1
ARCH_INCOMING_PATH = /u01/dmdbms/data/arch_rac1
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
alter database add archivelog 'DEST=RAC1,TYPE=REMOTE,INCOMING_PATH=/u01/dmdbms/data/arch_rac1,FILE_SIZE=128,space_limit=0';
#节点2:
vi dmarch.ini
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /u01/dmdbms/data/arch_rac1
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = RAC0
ARCH_INCOMING_PATH = /u01/dmdbms/data/arch_rac0
ARCH_FILE_SIZE = 128
ARCH_SPACE_LIMIT = 0
##重启生效:
SQL> alter database mount;
SQL> alter database archivelog;
SQL> alter database open;
SQL> select ARCH_MODE from v$database;
LINEID ARCH_MODE
---------- ---------
1 Y
命令行配置方式:
#节点1执行:
SQL> alter database mount;
SQL> alter database add archivelog 'DEST=/u01/dmdbms/data/arch_rac0,TYPE=local,FILE_SIZE=128,space_limit=0';
SQL> alter database add archivelog 'DEST=RAC1,TYPE=REMOTE,INCOMING_PATH=/u01/dmdbms/data/arch_rac1,FILE_SIZE=128,space_limit=0';
SQL> alter database open;
SQL> select arch_name,arch_type,arch_dest,arch_file_size from v$dm_arch_ini;
LINEID ARCH_NAME ARCH_TYPE ARCH_DEST ARCH_FILE_SIZE
---------- -------------- --------- -------------------------- --------------
1 ARCHIVE_LOCAL1 LOCAL /u01/dmdbms/data/arch_rac0 128
2 ARCH_REMOTE1 REMOTE RAC1 128
#节点2执行:
[root@dm8serv2 ~]# su - dmdba
[dmdba@dm8serv2 ~]$ disql sysdba/SYSDBA@localhost
Server[localhost:5236]:mode is normal, state is open
login used time: 39.200(ms)
disql V8
SQL> alter database mount;
executed successfully
used time: 00:00:01.842. Execute id is 0.
SQL> alter database add archivelog 'DEST=/u01/dmdbms/data/arch_rac1,TYPE=local,FILE_SIZE=128,space_limit=0';
executed successfully
used time: 6.106(ms). Execute id is 0.
SQL> alter database add archivelog 'DEST=RAC0,TYPE=REMOTE,INCOMING_PATH=/u01/dmdbms/data/arch_rac0,FILE_SIZE=128,space_limit=0';
executed successfully
used time: 15.383(ms). Execute id is 0.
SQL> alter database open;
executed successfully
used time: 00:00:01.881. Execute id is 0.
配置检查:
SQL> select arch_name,arch_type,arch_dest,arch_file_size from v$dm_arch_ini;
LINEID ARCH_NAME ARCH_TYPE ARCH_DEST ARCH_FILE_SIZE
---------- -------------- --------- -------------------------- --------------
1 ARCHIVE_LOCAL1 LOCAL /u01/dmdbms/data/arch_rac1 128
2 ARCH_REMOTE1 REMOTE RAC0 128
SQL> select * from V$ARCH_STATUS;
LINEID ARCH_TYPE ARCH_DEST ARCH_STATUS ARCH_SRC
---------- --------- -------------------------- ----------- --------
1 LOCAL /u01/dmdbms/data/arch_rac0 VALID RAC0
2 REMOTE /u01/dmdbms/data/arch_rac1 VALID RAC1
used time: 6.526(ms). Execute id is 2.
SQL>
在线备份测试
SQL> BACKUP DATABASE BACKUPSET '/u01/dmdbms/data/bak';
executed successfully
used time: 00:02:05.715. Execute id is 3.
SQL> SQL>
./dmrman dcr_ini=/u01/dmdbms/data/dmdcr.ini
RMAN>RESTORE DATABASE '/u01/dmdbms/data/dsc1_config/dm.ini' FROM BACKUPSET '/u01/dmdbms/data/bak';
RMAN>RECOVER DATABASE '/u01/dmdbms/data/dsc1_config/dm.ini' WITH ARCHIVEDIR'/u01/dmdbms/data/arch_rac0','/u01/dmdbms/data/arch_rac1';
RMAN>RECOVER DATABASE '/u01/dmdbms/data/dsc1_config/dm.ini' UPDATE DB_MAGIC