达梦数据库DSC小记

 一、迁移VOTE、DCR磁盘

登录检查DSC集群状态:

SQL> select EP_NAME,EP_SEQNO,EP_GUID,EP_MODE,EP_STATUS from v$dsc_ep_info;

行号 EP_NAME EP_SEQNO EP_GUID EP_MODE EP_STATUS

---------- ------- ----------- -------------------- ------------ ---------

1 DSC0 0 3807463 Control Node OK

2 DSC1 1 18966963 Normal Node OK

已用时间: 34.838(毫秒). 执行号:5806.

检查此时的DCR、VOTE盘路径:

SQL> select * from v$dcr_info;

行号 VERSION N_GROUP VTD_PATH UDP_FLAG UDP_OGUID DCR_PATH

---------- ----------- ----------- ------------- ----------- -------------------- -------------

1 259 3 /dev/raw/raw2 0 45331 /dev/raw/raw1

已用时间: 30.117(毫秒). 执行号:5808.

通过dmasmcmd查看磁盘:

[dmdba@dsc01 ~]$ dmasmcmd

DMASMCMD V8

ASM>listdisks '/dev/raw/'

[/dev/raw//raw11]: Unused ASM disk, name:[DMASMDATA003], size:[1023M]

[/dev/raw//raw10]: Used ASM disk, name:[DMASMRRR], size:[1023M], group_id:[3], disk_id:[1]

[/dev/raw//raw9]: Used ASM disk, name:[DMASMSSS], size:[1023M], group_id:[3], disk_id:[0]

[/dev/raw//raw8]: Unused ASM disk, name:[DMASMDATA2], size:[1023M]

[/dev/raw//raw7]: Unused ASM disk, name:[DMASMDATA002], size:[1023M]

[/dev/raw//raw6]: Unused ASM disk, name:[DMASMDATA001], size:[1023M]

[/dev/raw//raw5]: Unused ASM disk, name:[DMASMDATA1], size:[1023M]

[/dev/raw//raw1]: Used ASM disk, name:[DMASMdcr], size:[1024M], group_id:[126], disk_id:[0]

[/dev/raw//raw4]: Used ASM disk, name:[DMASMDATA0], size:[20479M], group_id:[1], disk_id:[0]

[/dev/raw//raw2]: Used ASM disk, name:[DMASMvote], size:[1024M], group_id:[125], disk_id:[0]

[/dev/raw//raw3]: Used ASM disk, name:[DMASMLOG0], size:[5119M], group_id:[0], disk_id:[0]

Used time: 5.259(ms).

此时的DCR和VOTE盘:

dcr disk: /dev/raw/raw1

vote disk:/dev/raw/raw2

我们更改为:

dcr disk: /dev/raw/raw6

vote disk:/dev/raw/raw7

停止DSC: 1、2节点

[root@dsc01 ~]# /etc/init.d/DmServiceDSC stop

Stopping DmServiceDSC: [ OK ]

[root@dsc01 ~]# /etc/init.d/DmASMSvrServiceASM stop

Stopping DmASMSvrServiceASM: [ OK ]

[root@dsc01 ~]# /etc/init.d/DmCSSServiceCSS stop

Stopping DmCSSServiceCSS: [ OK ]

更改两个节点的dmdcr.ini和dmdcr_cfg.ini文件:

[dmdba@dsc01 config]$ head -5 dmdcr.ini

DMDCR_PATH                 = /dev/raw/raw6

DMDCR_MAL_PATH             = /opt/dsc/config/dmasvrmal.ini

DMDCR_SEQNO                = 1

DMDCR_AUTO_OPEN_CHECK      = 90

[dmdba@dsc01 config]$ head -5 dmdcr_cfg.ini

DCR_N_GRP                  = 3

DCR_VTD_PATH               = /dev/raw/raw7

DCR_OGUID                  = 45331

[GRP]

DCR_GRP_TYPE             = CSS

初始化DCR、VOTE盘:

[dmdba@dsc01 config]$ dmasmcmd

DMASMCMD V8

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

[Trace]The ASM initialize dcrdisk /dev/raw/raw6 to name DMASMdcr

Used time: 61.242(ms).

ASM>init dcrdisk '/dev/raw/raw6' from '/opt/dsc/config/dmdcr_cfg.ini' identified by 'admin#10'

[Trace]DG 126 alloc one extent for inodes, addr(disk_id, disk_auno, extent_no):(0,0,1).

[Trace]DG 126 allocate 4 extents for file 0xfe000002.

[Trace]DG 126 alloc 4 extents for 0xfe000002, addr(disk_id, disk_auno, extent_no):(0, 0, 2)->(0, 0, 5), need_init = 1.

Used time: 95.879(ms).

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

[Trace]The ASM initialize votedisk /dev/raw/raw7 to name DMASMvote

Used time: 39.083(ms).

ASM>init votedisk '/dev/raw/raw7' from '/opt/dsc/config/dmdcr_cfg.ini'

[Trace]DG 125 alloc one extent for inodes, addr(disk_id, disk_auno, extent_no):(0,0,1).

[Trace]DG 125 allocate 4 extents for file 0xfd000002.

[Trace]DG 125 alloc 4 extents for 0xfd000002, addr(disk_id, disk_auno, extent_no):(0, 0, 2)->(0, 0, 5), need_init = 1.

Used time: 58.086(ms).

启动环境验证:

启动两个节点的DMCSS

[root@dsc01 ~]# /etc/init.d/DmCSSServiceCSS start

Starting DmCSSServiceCSS: [ OK ]

查看数据库状态:

SQL> select EP_NAME,EP_SEQNO,EP_GUID,EP_MODE,EP_STATUS from v$dsc_ep_info;

行号 EP_NAME EP_SEQNO EP_GUID EP_MODE EP_STATUS

---------- ------- ----------- -------------------- ------------ ---------

1 DSC0 0 20943649 Control Node OK

2 DSC1 1 21035609 Normal Node OK

已用时间: 55.580(毫秒). 执行号:500.

查看dcr、vote盘符:

SQL> select * from v$dcr_info;

行号 VERSION N_GROUP VTD_PATH UDP_FLAG UDP_OGUID DCR_PATH

---------- ----------- ----------- ------------- ----------- -------------------- -------------

1 259 3 /dev/raw/raw7 0 45331 /dev/raw/raw6

已用时间: 2.136(毫秒). 执行号:501

通过dmasmcmd查看:

[dmdba@dsc01 ~]$ dmasmcmd

DMASMCMD V8

ASM>listdisks '/dev/raw/'

[/dev/raw//raw11]: Unused ASM disk, name:[DMASMDATA003], size:[1023M]

[/dev/raw//raw10]: Used ASM disk, name:[DMASMRRR], size:[1023M], group_id:[3], disk_id:[1]

[/dev/raw//raw9]: Used ASM disk, name:[DMASMSSS], size:[1023M], group_id:[3], disk_id:[0]

[/dev/raw//raw8]: Unused ASM disk, name:[DMASMDATA2], size:[1023M]

[/dev/raw//raw7]: Used ASM disk, name:[DMASMvote], size:[1024M], group_id:[125], disk_id:[0]

[/dev/raw//raw6]: Used ASM disk, name:[DMASMdcr], size:[1024M], group_id:[126], disk_id:[0]

[/dev/raw//raw5]: Unused ASM disk, name:[DMASMDATA1], size:[1023M]

[/dev/raw//raw1]: Used ASM disk, name:[DMASMdcr], size:[1024M], group_id:[126], disk_id:[0]

[/dev/raw//raw4]: Used ASM disk, name:[DMASMDATA0], size:[20479M], group_id:[1], disk_id:[0]

[/dev/raw//raw2]: Used ASM disk, name:[DMASMvote], size:[1024M], group_id:[125], disk_id:[0]

[/dev/raw//raw3]: Used ASM disk, name:[DMASMLOG0], size:[5119M], group_id:[0], disk_id:[0]

Used time: 7.130(ms).

查看魔术号:

SQL> select permanent_magic;

行号 PERMANENT_MAGIC

---------- ---------------

1 827549872

已用时间: 29.519(毫秒). 执行号:502.

SQL> select db_magic from v$rlog;

号 DB_MAGIC

---------- --------------------

1 1520296080

已用时间: 1.765(毫秒). 执行号:503.

二、单库环境恢复至DSC环境:

我们打开一个单库,做一个脱机备份:

创建表空间:

SQL> create tablespace test01 datafile '/home/dmdba/dmdbms/DAMENG/TEST01.DBF' size 64;

操作已执行

已用时间: 201.611(毫秒). 执行号:7302.

SQL> create tablespace test02 datafile '/home/dmdba/dmdbms/DAMENG/TEST02.DBF' size 64;

操作已执行

已用时间: 22.942(毫秒). 执行号:7303.

SQL> create tablespace test03 datafile '/home/dmdba/dmdbms/DAMENG/TEST03.DBF' size 64;

操作已执行

已用时间: 51.649(毫秒). 执行号:7304.

SQL> select tablespace_name from dba_tablespaces;

行号 TABLESPACE_NAME

---------- ---------------

1 SYSTEM

2 ROLL

3 TEMP

4 MAIN

5 BOOKSHOP

6 TEST

7 SYSAUX

8 HTBS

9 DMHR

10 TEST01

11 TEST02

12 TEST03

13 MAIN

13 rows got

已用时间: 0.951(毫秒). 执行号:7305.

创建一个表:

SQL> create table test as select * from dba_objects;

操作已执行

已用时间: 584.687(毫秒). 执行号:7306.

SQL> select count(*) from test;

行号 COUNT(*)

---------- --------------------

1 21161

已用时间: 1.140(毫秒). 执行号:7307.

关库备份:

SQL> shutdown immediate;

操作已执行

已用时间: 0.646(毫秒). 执行号:0.

SQL> exit

[dmdba@localhost ~]$ dmrman

dmrman V8

RMAN> backup database '/home/dmdba/dmdbms/DAMENG/dm.ini';

backup database '/home/dmdba/dmdbms/DAMENG/dm.ini';

file dm.key not found, use default license!

Database mode = 0, oguid = 0

Normal of FAST

Normal of DEFAULT

Normal of RECYCLE

Normal of KEEP

Normal of ROLL

begin redo pwr log collect, last ckpt lsn: 10348543 ...

redo pwr log collect finished

EP[0]'s cur_lsn[10348543], file_lsn[10348543]

Processing backupset /home/dmdba/dmdbms/DAMENG/bak/DB_SHIRX_FULL_20221027_094937_596106

[Percent:100.00%][Speed:0.00M/s][Cost:00:00:03][Remaining:00:00:00]

backup successfully!

time used: 00:00:04.303

查看DSC侧:

SQL> select * from v$dsc_ep_info;

行号 EP_NAME EP_SEQNO EP_GUID EP_TIMESTAMP EP_MODE EP_STATUS

---------- ------- ----------- -------------------- -------------------- ------------ ---------

1 DSC0 0 682449 682578 Control Node OK

2 DSC1 1 689796 689909 Normal Node OK

已用时间: 62.905(毫秒). 执行号:500.

SQL> select * from v$dcr_info;

行号 VERSION N_GROUP VTD_PATH UDP_FLAG UDP_OGUID DCR_PATH

---------- ----------- ----------- ------------- ----------- -------------------- -------------

1 259 3 /dev/raw/raw7 0 45331 /dev/raw/raw6

已用时间: 51.741(毫秒). 执行号:501.

SQL> select tablespace_name from dba_tablespaces;

行号 TABLESPACE_NAME

---------- ---------------

1 SYSTEM

2 ROLL

3 TEMP

4 MAIN

5 BOOKSHOP

6 SYSAUX

7 HTBS

8 DMHR

9 MAIN

9 rows got

已用时间: 0.944(毫秒). 执行号:504

登录MONITOR关闭自动拉起,关闭数据库:

set GRP_DSC auto restart off

[monitor] 2022-10-26 21:35:29: 通知CSS(seqno:0)关闭节点(DSC0)的自动拉起功能

[monitor] 2022-10-26 21:35:29: 通知CSS(seqno:0)关闭节点(DSC0)的自动拉起功能成功

[monitor] 2022-10-26 21:35:29: 通知CSS(seqno:1)关闭节点(DSC1)的自动拉起功能

[monitor] 2022-10-26 21:35:29: 通知CSS(seqno:1)关闭节点(DSC1)的自动拉起功能成功

[monitor] 2022-10-26 21:35:29: 通知当前活动的CSS执行清理操作

[monitor] 2022-10-26 21:35:30: 清理CSS(0)请求成功

[monitor] 2022-10-26 21:35:30: 清理CSS(1)请求成功

[monitor] 2022-10-26 21:35:30: 关闭CSS自动拉起功能成功

ep stop GRP_DSC

[monitor] 2022-10-26 21:35:58: 组(GRP_DSC)中节点对应的CSS自动拉起标记已经处于关闭状态

[monitor] 2022-10-26 21:35:58: 通知CSS(seqno:0)执行EP STOP(GRP_DSC)

[monitor] 2022-10-26 21:36:05: 通知当前活动的CSS执行清理操作

[monitor] 2022-10-26 21:36:05: 清理CSS(0)请求成功

[monitor] 2022-10-26 21:36:06: 清理CSS(1)请求成功

[monitor] 2022-10-26 21:36:06: 命令EP STOP GRP_DSC执行成功

将单库的备份集SCP到DSC环境1节点目录下:

[dmdba@localhost bak]$ scp -r DB_SHIRX_FULL_20221027_094937_596106/ 192.168.191.31:/opt/dsc/bak

[email protected]'s password:

DB_SHIRX_FULL_20221027_094937_596106.bak 100% 117MB 128.1MB/s 00:00

DB_SHIRX_FULL_20221027_094937_596106.meta 100% 117KB 14.1MB/s 00:00

DSC环境1节点开始恢复:

[dmdba@dsc01 raw]$ dmrman dcr_ini=/opt/dsc/config/dmdcr.ini

dmrman V8

RMAN> restore database '/opt/dsc/config/dsc1_config/dm.ini' from backupset '/opt/dsc/bak/DB_SHIRX_FULL_20221027_094937_596106';

restore database '/opt/dsc/config/dsc1_config/dm.ini' from backupset '/opt/dsc/bak/DB_SHIRX_FULL_20221027_094937_596106';

file dm.key not found, use default license!

Normal of FAST

Normal of DEFAULT

Normal of RECYCLE

Normal of KEEP

Normal of ROLL

[Percent:100.00%][Speed:0.00M/s][Cost:00:00:46][Remaining:00:00:00]

restore successfully.

time used: 00:00:52.279

RMAN> recover database '/opt/dsc/config/dsc1_config/dm.ini' update db_magic;

recover database '/opt/dsc/config/dsc1_config/dm.ini' update db_magic;

Database mode = 0, oguid = 0

Normal of FAST

Normal of DEFAULT

Normal of RECYCLE

Normal of KEEP

Normal of ROLL

EP[1]'s cur_lsn[10348543], file_lsn[10348543]

EP[0]'s cur_lsn[10348543]

EP[1] adjust cur_lsn from [10348543] to [10348543]

recover successfully!

time used: 00:00:06.869

开启自动拉起,启动数据库:

set GRP_DSC auto restart on

[monitor] 2022-10-26 21:45:45: 通知CSS(seqno:0)打开节点(DSC0)的自动拉起功能

[monitor] 2022-10-26 21:45:45: 通知CSS(seqno:0)打开节点(DSC0)的自动拉起功能成功

[monitor] 2022-10-26 21:45:45: 通知CSS(seqno:1)打开节点(DSC1)的自动拉起功能

[monitor] 2022-10-26 21:45:45: 通知CSS(seqno:1)打开节点(DSC1)的自动拉起功能成功

[monitor] 2022-10-26 21:45:45: 通知当前活动的CSS执行清理操作

[monitor] 2022-10-26 21:45:46: 清理CSS(0)请求成功

[monitor] 2022-10-26 21:45:47: 清理CSS(1)请求成功

[monitor] 2022-10-26 21:45:47: 打开CSS自动拉起功能成功

ep startup GRP_DSC

[monitor] 2022-10-26 21:45:58: 组(GRP_DSC)中节点(DSC0)对应的CSS(CSS0)配置有自动拉起,且监控处于打开状态,请等待CSS自动拉起EP(DSC0)

[monitor] 2022-10-26 21:45:58: 组(GRP_DSC)中节点(DSC1)对应的CSS(CSS1)配置有自动拉起,且监控处于打开状态,请等待CSS自动拉起EP(DSC1)

[monitor] 2022-10-26 21:45:58: 组[GRP_DSC]中的EP已处于ACTIVE状态(只收集活动CSS对应的EP),或者CSS配置有自动重启,请等待CSS自动检测重启

[CSS1] [2022-10-26 21:46:45:776] [CSS]: 重启本地DB实例,命令:[/opt/dsc/dmdbms/bin/dmserver path=/opt/dsc/config/dsc1_config/dm.ini dcr_ini=/opt/dsc/config/dmdcr.ini]

[CSS0] [2022-10-26 21:43:34:270] [CSS]: 重启本地DB实例,命令:[/opt/dsc/dmdbms/bin/dmserver path=/opt/dsc/config/dsc0_config/dm.ini dcr_ini=/opt/dsc/config/dmdcr.ini]

[CSS0] [2022-10-26 21:43:42:282] [DB]: 设置EP DSC0[0]为控制节点

[CSS0] [2022-10-26 21:43:42:283] [DB]: 设置命令[START NOTIFY], 目标站点 DSC0[0], 命令序号[28]

[CSS0] [2022-10-26 21:43:43:295] [DB]: 设置命令[DCR_LOAD], 目标站点 DSC0[0], 命令序号[29]

[CSS0] [2022-10-26 21:43:43:295] [DB]: 设置命令[DCR_LOAD], 目标站点 DSC1[1], 命令序号[30]

[CSS0] [2022-10-26 21:43:43:409] [DB]: 设置命令[NONE], 目标站点 DSC1[1], 命令序号[0]

[CSS0] [2022-10-26 21:43:45:444] [DB]: 设置命令[EP START], 目标站点 DSC0[0], 命令序号[32]

[CSS0] [2022-10-26 21:43:45:657] [DB]: 设置命令[NONE], 目标站点 DSC0[0], 命令序号[0]

[CSS0] [2022-10-26 21:43:45:759] [DB]: 设置命令[EP START], 目标站点 DSC1[1], 命令序号[34]

[CSS0] [2022-10-26 21:43:45:961] [DB]: 设置命令[NONE], 目标站点 DSC1[1], 命令序号[0]

[CSS0] [2022-10-26 21:43:45:962] [DB]: 设置命令[EP START2], 目标站点 DSC0[0], 命令序号[37]

[CSS0] [2022-10-26 21:43:48:500] [DB]: 设置命令[NONE], 目标站点 DSC0[0], 命令序号[0]

[CSS0] [2022-10-26 21:43:48:602] [DB]: 设置命令[EP START2], 目标站点 DSC1[1], 命令序号[39]

[CSS0] [2022-10-26 21:43:50:414] [DB]: 设置命令[NONE], 目标站点 DSC1[1], 命令序号[0]

[CSS0] [2022-10-26 21:43:50:515] [DB]: 设置命令[EP OPEN], 目标站点 DSC1[1], 命令序号[43]

[CSS0] [2022-10-26 21:43:52:635] [DB]: 设置命令[NONE], 目标站点 DSC1[1], 命令序号[0]

[CSS0] [2022-10-26 21:43:55:672] [DB]: 设置命令[EP REAL OPEN], 目标站点 DSC1[1], 命令序号[46]

[CSS0] [2022-10-26 21:43:56:791] [DB]: 设置命令[NONE], 目标站点 DSC0[0], 命令序号[0]

[CSS0] [2022-10-26 21:43:57:700] [DB]: 设置命令[NONE], 目标站点 DSC1[1], 命令序号[0]

进入数据库查看:

[dmdba@dsc01 raw]$ disql SYSDBA/[email protected]:15236

服务器[192.168.191.31:15236]:处于普通打开状态

登录使用时间 : 3.229(ms)

disql V8

SQL> select tablespace_name from dba_tablespaces;

行号 TABLESPACE_NAME

---------- ---------------

1 SYSTEM

2 ROLL

3 TEMP

4 MAIN

5 BOOKSHOP

6 TEST

7 SYSAUX

8 HTBS

9 DMHR

10 TEST01

11 TEST02

12 TEST03

13 MAIN

13 rows got

已用时间: 20.192(毫秒). 执行号:500.

SQL> select count(*) from test;

行号 COUNT(*)

---------- --------------------

1 21161

已用时间: 1.571(毫秒). 执行号:501.

和单库里相同。

SQL> select * from v$dsc_ep_info;

行号 EP_NAME EP_SEQNO EP_GUID EP_TIMESTAMP EP_MODE EP_STATUS

---------- ------- ----------- -------------------- -------------------- ------------ ---------

1 DSC0 0 1981482 1981640 Control Node OK

2 DSC1 1 1980120 1980278 Normal Node OK

已用时间: 2.000(毫秒). 执行号:502.

查看魔术号:

SQL> select permanent_magic;

行号 PERMANENT_MAGIC

---------- ---------------

1 827549872

已用时间: 22.942(毫秒). 执行号:503.

SQL> select db_magic from v$rlog;

行号 DB_MAGIC

---------- --------------------

1 934848266

已用时间: 0.534(毫秒). 执行号:504.

SQL> select * from v$dcr_info;

行号 VERSION N_GROUP VTD_PATH UDP_FLAG UDP_OGUID DCR_PATH

---------- ----------- ----------- ------------- ----------- -------------------- -------------

1 259 3 /dev/raw/raw7 0 45331 /dev/raw/raw6

已用时间: 1.425(毫秒). 执行号:505

三、处理DCR、VOTE盘魔术号不同故障

我们关闭数据库后再重启启动,这时查看日志会有如下报错:

tail -200f dmasm01_202209.log

2022-10-26 22:42:28.193 DMASM >>>[Warning]Loaded two diskgroup with same group id [125] with different magic.[/dev/raw/raw7 magic:1664243484] [/dev/raw/raw2 magic:1664208993]

2022-10-26 22:42:28.193 DMASM >>>[Warning]Loaded two diskgroup with same group id [126] with different magic.[/dev/raw/raw6 magic:1664243436] [/dev/raw/raw1 magic:1664208948]

(经反复测试,DCR、VOTE魔术号有冲突时,并不是每次都会导致数据库启动失败,但日志中都会有上述报错,这和前面做迁移VOTE、DCR盘以及后面的备份恢复有关)

解决办法有两种:

第一种:再次更新db_magic

RMAN> recover database '/opt/dsc/config/dsc0_config/dm.ini' update db_magic;

recover database '/opt/dsc/config/dsc0_config/dm.ini' update db_magic;

file dm.key not found, use default license!

[-12000]:实例已经启动

第二种:去掉重复的盘

[root@dsc01 config]# dd if=/dev/zero of=/dev/raw/raw1 bs=8k count=10240

记录了10240+0 的读入

记录了10240+0 的写出

83886080字节(84 MB)已复制,0.684761 秒,123 MB/秒

[root@dsc01 config]# dd if=/dev/zero of=/dev/raw/raw2 bs=8k count=10240

记录了10240+0 的读入

记录了10240+0 的写出

83886080字节(84 MB)已复制,0.666416 秒,126 MB/秒

查看磁盘:

[/dev/raw/raw2]: Normal disk

[/dev/raw/raw1]: Normal disk

这时我们可以看到磁盘raw1,raw2的描述为Normal disk了,只需重新格式化、初始化DCR、VOTE磁盘(raw6,raw7)后,数据库即可恢复正常,这里不再叙述过程。

总结:

1、达梦数据库物理备份、还原在单库环境恢复至DSC环境时相对简单,并不像ORACLE需要去更改控制文件、日志文件、数据文件的路径,初始化参数已经指定了相关文件的存放路径。

2、DMDSC集群在启动的时候并不是按照ini配置文件里面去读固定的裸设备,而是会读取路径下所有的裸设备。这也是为什么报错中还是会找旧的DCR、VOTE盘。

3、数据库在做完一次恢复后最后会更新magic号,并且会与上次不同。

4、在DMASMCMD里面我们并不能清理已经格式化、初始化后的裸设备,通过dd可以恢复如初。

社区地址:https://eco.dameng.com

猜你喜欢

转载自blog.csdn.net/duanpian_dba/article/details/127550594
今日推荐