ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

达梦DSC共享远程归档+备份还原

2021-08-02 21:02:14  阅读:266  来源: 互联网

标签:dmdba DCR dmdbms ini 归档 home config DSC 达梦


说明:在DMDSC集群中,各个节点在配置本地归档之外,还需要再配置一个远程归档,比如节点1,除了要存储自己的本地归档外,其他机器还会发送redo日志到节点1生成远程归档。

之前写过一篇把归档信息存储在节点上的博客。

博客地址:https://www.cnblogs.com/wuran222/p/15076429.html

今天试一下共享本地归档的远程归档,就是不再发送redo日志到其他机器上生成远程归档日志文件,而是存储在共享盘上。

比如有两台服务器A和B,以前的做法是A服务器上存储自己的归档,还需要把B服务器的归档存储到A服务器上,同样B服务器也需要存储自己的归档和A服务器的归档,因为备份还原需要用。现在可以做到,A节点和B节点的归档信息都存储在共享盘上。

一、环境准备

CentOS3(192.168.202.130)

CentOS4(192.168.202.131)

注意:环境准备这块,因为之前在另一篇博客上也写了,所以现在省略了很多,需要的可以参考下面这篇博客:

博客地址:https://www.cnblogs.com/wuran222/p/15076429.html

1、新建两台虚拟机

2、在CentOS3创建新硬盘

3、在CentOS4添加之前创建的硬盘

4、修改vmx文件

打开CentOS4的vmx配置文件,加入如下信息:

disk.locking="FALSE"

scsi0:1.SharedBus="Virtual"

5、查看硬盘有没有加入

二、安装达梦数据库管理系统

1、创建用户组、用户和安装目录

[root@dameng home]# groupadd dinstall

[root@dameng home]# useradd -g dinstall dmdba

[root@dameng home]# passwd dmdba

PWD : dameng123

创建达梦数据库管理系统安装目录

mkdir dmdbms

chown -R dmdba:dinstall dmdbms

chmod -R 755 dmdbms

注意:dmdbms目录如果不是空的会报错。

2、安装

注意:最好不要用root安装。

上传iso文件或者DMInstall.bin,我是直接上传的DMInstall.bin,放在/home下

chown -R dmdba:dinstall /home/DMInstall.bin

chmod -R 755 /home/DMInstall.bin

切换dmdba登录

[dmdba@dameng home]#  ./DMInstall.bin -i

请选择安装语言(C/c:中文 E/e:英文) [C/c]:c

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n

是否设置时区? (Y/y:是 N/n:否) [Y/y]:y

请选择设置时区 [21]:21

请选择安装类型的数字序号 [1 典型安装]:1

请选择安装目录 [/opt/dmdbms]:/home/dmdba/dmdbms

3、在共享磁盘上划分裸设备

1)开始划分

两个节点都执行以下语句完成裸设备绑定

partprobe /dev/sdb  重读分区表

systemctl restart systemd-udev-trigger.service

说明:n是“new”新建分区的意思,p回车新建主分区,此时选择分区号(1-4间)。

Firstcylinder(1-20805,default1):这里是设置分区起始的柱面。

Lastcylinderor+sizeor+sizeMor+sizeK(1-20805,default20805):此处是设置分区结束柱面,+3G表示从起始柱面开始向后3G结束,也是是设置分区大小为3G。

2)编辑/etc/udev/rules.d/60-raw.rules 文件,增加以下语句:

2台服务器均需增加以下语句

ACTION=="add" , KERNEL=="sdb1", RUN+="/bin/raw /dev/raw/raw1 %N"

ACTION=="add", KERNEL=="sdb2", RUN+="/bin/raw /dev/raw/raw2 %N"

ACTION=="add", KERNEL=="sdb3", RUN+="/bin/raw /dev/raw/raw3 %N"

ACTION=="add", KERNEL=="sdb4", RUN+="/bin/raw /dev/raw/raw4 %N"

ACTION=="add", KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"

说明:Linux平台通过udev的方式将块设备转换为字符设备,并固定设备的权限和所有者。

KERNEL 设备名称。RUN+="raw /dev/raw/rawX %M %m"  X是系统使用的raw设备号码。

4、准备dmdcr_cfg.ini配置文件

放在 /home/dmdba/dmdbms/config 目录下,两个节点均需要, 后续 DMASMCMD工具执行 init 语句会使用到(初始化 DCR 磁盘)。

#集群环境包括3个group,分别是css组、asm组、dsc组

DCR_N_GRP = 3

# Voting Disk路径。

DCR_VTD_PATH = /dev/raw/raw2

#消息标识,dmcssm登录dmcss消息校验用。和dmcssm.ini 中的 CSSM_OGUID 保持一致。

DCR_OGUID = 63635

#[GRP]表示新建一个 Group

[GRP]

DCR_GRP_TYPE = CSS

DCR_GRP_NAME = GRP_CSS

DCR_GRP_N_EP = 2

#故障检测时间

DCR_GRP_DSKCHK_CNT = 60

#[]里的是组名,与 DCR_GRP_NAME 对应

[GRP_CSS]

DCR_EP_NAME = CSS0

#节点 IP(实例所在机器的 IP 地址)

DCR_EP_HOST = 192.168.202.130

DCR_EP_PORT = 9341

#[]里的是组名,与 DCR_GRP_NAME 对应

[GRP_CSS]

DCR_EP_NAME = CSS1

DCR_EP_HOST = 192.168.202.131

DCR_EP_PORT = 9343

#[GRP]表示新建一个 Group

[GRP]

DCR_GRP_TYPE = ASM

DCR_GRP_NAME = GRP_ASM

DCR_GRP_N_EP = 2

DCR_GRP_DSKCHK_CNT = 60

#[]里的是组名,与 DCR_GRP_NAME 对应

[GRP_ASM]

DCR_EP_NAME = ASM0

DCR_EP_SHM_KEY = 93360

DCR_EP_SHM_SIZE = 10

DCR_EP_HOST = 192.168.202.130

DCR_EP_PORT = 9349

DCR_EP_ASM_LOAD_PATH = /dev/raw

#[]里的是组名,与 DCR_GRP_NAME 对应

[GRP_ASM]

DCR_EP_NAME = ASM1

DCR_EP_SHM_KEY = 93361

DCR_EP_SHM_SIZE = 10

DCR_EP_HOST = 192.168.202.131

DCR_EP_PORT = 9351

# ASM 磁盘扫描路径

DCR_EP_ASM_LOAD_PATH = /dev/raw

#[GRP]表示新建一个 Group

[GRP]

DCR_GRP_TYPE = DB

DCR_GRP_NAME = GRP_DSC

DCR_GRP_N_EP = 2

DCR_GRP_DSKCHK_CNT = 60

#[]里的是组名,与 DCR_GRP_NAME 对应

[GRP_DSC]

#节点名,DB 的节点名必须和 dm.ini 里的 INSTANCE_NAME 保持一致

DCR_EP_NAME = DSC0

#组内序列号

DCR_EP_SEQNO  = 0

DCR_EP_PORT = 5236

DCR_CHECK_PORT = 9741

#[]里的是组名,与 DCR_GRP_NAME 对应

[GRP_DSC]

DCR_EP_NAME = DSC1

DCR_EP_SEQNO  = 1

DCR_EP_PORT = 5236

DCR_CHECK_PORT = 9742

注意:DCR_EP_HOST为内网ip,我虚拟机没有设置内外网,所以都是一样的。

5、使用 DMASMCMD 工具初始化磁盘组

1)在其中一个节点上启动dmasmcmd工具

cd /home/dmdba/dmdbms/bin

./dmasmcmd

2)依次输入以下命令(只需在一台机器执行即可)

ASM>create dcrdisk '/dev/raw/raw1' 'dcr'

ASM>create votedisk '/dev/raw/raw2' 'vote'

ASM>create asmdisk '/dev/raw/raw3' 'LOG0'

ASM>create asmdisk '/dev/raw/raw4' 'DATA0'

ASM>init dcrdisk '/dev/raw/raw1' from '/home/dmdba/dmdbms/config/dmdcr_cfg.ini' identified by 'abcd'

ASM>init votedisk '/dev/raw/raw2' from '/home/dmdba/dmdbms/config/dmdcr_cfg.ini'

注意:如果报如下错误

 

用root执行如下语句即可

partprobe /dev/sdb  重读分区表

systemctl restart systemd-udev-trigger.service

6、配置dmasvrmal.ini文件(两个节点都一样)

存放目录 home/dmdba/dmdbms/config

[MAL_INST1]

MAL_INST_NAME = ASM0

MAL_HOST = 192.168.202.130

MAL_PORT = 7236

[MAL_INST2]

MAL_INST_NAME = ASM1

MAL_HOST = 192.168.202.131

MAL_PORT = 7237

注意:MAL_HOST是内网ip。

7、准备 dmdcr.ini 配置文件

8、启动DMCSS、DMASM服务

在两台虚拟机分别前台启动,方便查看启动信息。

cd /home/dmdba/dmdbms/bin

./dmcss DCR_INI=/home/dmdba/dmdbms/config/dmdcr.ini

./dmasmsvr DCR_INI=/home/dmdba/dmdbms/config/dmdcr.ini

注意:在第二个节点上启动的时候报如下错误

 

用root执行如下语句即可

partprobe /dev/sdb  重读分区表

systemctl restart systemd-udev-trigger.service

9、使用 dmasmtool 工具创建 DMASM 磁盘组

选择一个节点,启动 dmasmtool 工具。

cd /home/dmdba/dmdbms/bin

./dmasmtool DCR_INI=/home/dmdba/dmdbms/config/dmdcr.ini

输入下列语句创建 DMASM 磁盘组:

#创建日志磁盘组

create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'

#创建数据磁盘组

create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'

10、准备 dminit.ini 配置文件(一个节点即可)

存放目录 home/dmdba/dmdbms/config

我是放在130这个节点上。

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 磁盘路径,目前不支持 asm,只能是裸设备

dcr_seqno = 0

auto_overwrite = 1

[DSC0]

#inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应

config_path = /home/dmdba/dmdbms/config/dsc0_config

port_num = 5236

mal_host = 192.168.202.130

mal_port = 9340

log_path = +DMLOG/log/dsc0_log01.log

log_path = +DMLOG/log/dsc0_log02.log

[DSC1]

#inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应

config_path = /home/dmdba/dmdbms/config/dsc1_config

port_num = 5237

mal_host = 192.168.202.131

mal_port = 9341

log_path = +DMLOG/log/dsc1_log01.log

log_path = +DMLOG/log/dsc1_log02.log

11、使用 dminit 初始化 DB 环境

在130上启动dminit工具初始化数据库。

./dminit control=/home/dmdba/dmdbms/config/dminit.ini

dminit执行完成后,会在config_path目录(/home/dmdba/dmdbms/config/rac0_config和rac1_config)下生成配置文件dm.ini和dmmal.ini。

注:初始化数据库完成之后,将130节点上生成的rac1_config文件拷贝到131的/home/dmdba/dmdbms/config目录下,然后将130上/home/dmdba/dmdbms/config目录下的rac1_config文件夹删掉。

[dmdba@dameng3 config]$ scp  -r dsc1_config  dmdba@192.168.202.131:/home/dmdba/dmdbms/config/

12、配置远程归档

先将两个节点上的dm.ini中的ARCH_INI设置为1,然后配置dmarch.ini文件

1)节点130:

存放目录 /home/dmdba/dmdbms/config/dsc0_config

ARCH_LOCAL_SHARE  = 1

[ARCHIVE_LOCAL1]

ARCH_TYPE  = LOCAL

ARCH_DEST  =+DMDATA/DSC0/arch

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT  = 0

[ARCH_REMOTE1]

ARCH_TYPE  = REMOTE

ARCH_DEST  = DSC1

ARCH_INCOMING_PATH =+DMDATA/DSC1/arch

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT  = 0

2)节点131:

存放目录 /home/dmdba/dmdbms/config/dsc1_config

ARCH_LOCAL_SHARE  = 1

[ARCHIVE_LOCAL1]

ARCH_TYPE  = LOCAL

ARCH_DEST  =+DMDATA/DSC1/arch

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT  = 0

[ARCH_REMOTE1]

ARCH_TYPE  = REMOTE

ARCH_DEST  = DSC0

ARCH_INCOMING_PATH =+DMDATA/DSC0/arch

ARCH_FILE_SIZE = 128

ARCH_SPACE_LIMIT  = 0

13、启动数据库服务

1)启动130节点的

./dmserver /home/dmdba/dmdbms/config/dsc0_config/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini

2)启动131节点的

./dmserver /home/dmdba/dmdbms/config/dsc1_config/dm.ini dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini

14、注册服务

1)注册命令

root用户

cd /home/dmdba/dmdbms/script/root

节点1:

./dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p CSS1

./dm_service_installer.sh -t dmasmsvr    -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p ASM1 -y DmCSSServiceCSS1

./dm_service_installer.sh -t dmserver -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -dm_ini /home/dmdba/dmdbms/config/dsc0_config/dm.ini -p DB1 -y DmASMSvrServiceASM1

节点2:

./dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p CSS2

./dm_service_installer.sh -t dmasmsvr    -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -p ASM2 -y DmCSSServiceCSS2

./dm_service_installer.sh -t dmserver -dcr_ini /home/dmdba/dmdbms/config/dmdcr.ini -dm_ini /home/dmdba/dmdbms/config/dsc1_config/dm.ini -p DB2 -y DmASMSvrServiceASM2

2)启动命令

节点1:

systemctl start DmCSSServiceCSS1

systemctl start DmASMSvrServiceASM1

systemctl start DmServiceDB1

节点2:

systemctl start DmCSSServiceCSS2

systemctl start DmASMSvrServiceASM2

systemctl start DmServiceDB2

注意:启动的时候,先启动节点1的CSS,再启动节点2的CSS。启动好后再启动节点1的ASM,再启动节点2的ASM。最后启动节点1的DB和节点2的DB。

关闭的时候,先关闭节点1的DB,再关闭节点2的DB。关闭后再关闭节点1的ASM和节点2的ASM,最后关闭节点1的CSS和节点2的CSS。

如果启动的时候是用./DmServiceDB1 start 那么关闭的时候需要用./DmServiceDB1 stop 不然可能会关不掉。

15、配置监视器

监视器放在第三方机器上,为 windows 操作系统,dmcssm.ini 配置文件路径为 D:\DCA\cssm。

1)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.202.130:9341

CSSM_CSS_IP = 192.168.202.131:9343

CSSM_LOG_PATH = E:\DCA\cssm\log

#监视器日志文件存放路径

CSSM_LOG_FILE_SIZE = 32

#每个日志文件最大 32M

CSSM_LOG_SPACE_LIMIT = 0 

#不限定日志文件总占用空间

2)启动监视器

进入E:\dmdbms\bin目录

dmcssm.exe INI_PATH=E:\DCA\cssm\dmcssm.ini

启动好后 ,输入show,查看CSS、ASM和DB的状态

 

注意:如果想通过监视器关闭DMDSC集群的话,只能关闭ASM和DB的,不能关闭CSS的。

16、故障自动重连

配置 DMDSC 集群,一般要求配置连接服务名,以实现故障自动重连。

vi /etc/dm_svc.conf

添加如下信息:

 

disql SYSDBA/SYSDBA@dmdsc_svc  用服务名方式连接。

注意:服务名是配置在客户端,我是在130上测试连接的,所以修改的是130上的dm_svc.conf。

三、备份还原

前提:已经开了归档。

注意:备份还原尽量用dmdba操作,我一开始用root用户还原,报下图的错误,切换成dmdba操作就好了。

 

1、备份

在130上备份:

BACKUP DATABASE BACKUPSET '/home/dmdba/dmdbms/BAK/db_full_bak_for_dsc';

注意:备份其中任意一个节点即可备份整个DMDSC环境。

2、还原

./dmrman dcr_ini=/home/dmdba/dmdbms/config/dmdcr.ini

restore DATABASE '/home/dmdba/dmdbms/config/dsc0_config/dm.ini' FROM BACKUPSET '/home/dmdba/dmdbms/BAK/db_full_bak_for_dsc';

recover DATABASE '/home/dmdba/dmdbms/config/dsc0_config/dm.ini' FROM BACKUPSET '/home/dmdba/dmdbms/BAK/db_full_bak_for_dsc';

recover DATABASE '/home/dmdba/dmdbms/config/dsc0_config/dm.ini'  update db_magic;

注意:在recover的时候报了个错,如下图

 

解决方式如下图

 

 

 

 

更多资讯请上达梦技术社区了解: https://eco.dameng.com

标签:dmdba,DCR,dmdbms,ini,归档,home,config,DSC,达梦
来源: https://www.cnblogs.com/wuran222/p/15091637.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有