注册
达梦数据库主备集群增加一个备库
技术分享/ 文章详情 /

达梦数据库主备集群增加一个备库

潘栋民 2022/04/21 3454 11 1

第三个节点数据库准备

初始化

SELECT '页大小',cast(PAGE()/1024 as varchar) union all   
SELECT '簇大小',cast(SF_GET_EXTENT_SIZE() as varchar) union all
SELECT '字符集',CASE SF_GET_UNICODE_FLAG() WHEN '0' THEN 'GBK18030' WHEN '1' then 'UTF-8' when '2' then 'EUC-KR' end union all
SELECT '大小写敏感',cast(SF_GET_CASE_SENSITIVE_FLAG() as varchar) union all
select 'VARCHAR类型长度是否以字符为单位',para_value from v$dm_ini where para_name='LENGTH_IN_CHAR' union all
select '实例名称' 数据库选项,INSTANCE_NAME 数据库集群相关参数值 FROM v$instance union all
select '数据库名',name from v$database union all
select '端口号',para_value from v$dm_ini where para_name='PORT_NUM' union all
select '数据库产品ID', id_code from dual union all
select '数据库版本',substr(svr_version,instr(svr_version,'(')) FROM v$instance union all 
select '数据库模式',MODE$ from v$instance union all 
SELECT '字符数据类型' NAME, CASE VALUE WHEN 0 THEN 'BYTE' WHEN 1 THEN 'CHAR' end FROM v$parameter WHERE name like '%LENGTH_IN_CHAR%' union all
select '唯一魔数',cast(permanent_magic as varchar) union all
select 'LSN',cast(cur_lsn as varchar) from v$rlog union all
select 'KEY文件属性',  cluster_type from v$license ;
$ pwd
/home/dmdba/dmdbms/bin
$ ./dminit path=/dmdata page_size=32 extent_size=32 charset=1 case_sensitive=1 length_in_char=0 log_size=2048 db_name=dmdb instance_name=dw03
# cd /home/dmdba/dmdbms/script/root
# ./dm_service_installer.sh -t dmserver -p dw -dm_ini /dmdata/dmdb/dm.ini

参数修改

执行参数修改脚本

数据同步

主备备份&传送备份文件

SQL> backup database backupset '/dmbak/bakfull';
$ scp -r /dmbak/bakfull/ 192.168.31.6:/dmbak/

新节点停库恢复

$ dmrman use_ap=2
RMAN> restore database '/dmdata/dmdb/dm.ini' from backupset '/dmbak/bakfull';
RMAN> recover database '/dmdata/dmdb/dm.ini' from backupset '/dmbak/bakfull';
RMAN> recover database '/dmdata/dmdb/dm.ini'  update db_magic;

修改四个配置文件

dm.ini

  • 新节点修改配置文件
$ vi /dmdata/dmdb/dm.ini
INSTANCE_NAME = DW03
MAL_INI = 1
ARCH_INI = 1
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2

dmmal.ini&dmwatcher.ini

  • 所有节点内容相同的文件(注意如果配置文件路径不同也是要修改的)
[dmdba@dmdb01 dmdb]$ cat dmwatcher.ini 
[GRP_DW] 
DW_TYPE    = GLOBAL
DW_MODE    = MANUAL
DW_ERROR_TIME     = 30
INST_RECOVER_TIME  = 60
INST_ERROR_TIME   = 20
INST_OGUID         = 453331
INST_INI           = /dmdata/dmdb/dm.ini
INST_AUTO_RESTART  = 1
INST_STARTUP_CMD   = /home/dmdba/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
[dmdba@dmdb01 dmdb]$ cat dmmal.ini 
MAL_CHECK_INTERVAL   = 5
MAL_CONN_FAIL_INTERVAL  = 15
[MAL_INST1]
  MAL_INST_NAME = dw01
  MAL_HOST     = 10.10.10.4
  MAL_PORT     = 7336
  MAL_INST_HOST   = 192.168.31.4
  MAL_INST_PORT   = 5236
  MAL_DW_PORT   = 7436
  MAL_INST_DW_PORT = 7536
[MAL_INST2]
  MAL_INST_NAME = dw02 
  MAL_HOST      = 10.10.10.5
  MAL_PORT          = 7336
  MAL_INST_HOST         = 192.168.31.5 
  MAL_INST_PORT         = 5236 
  MAL_DW_PORT  = 7436
  MAL_INST_DW_PORT = 7536
[MAL_INST3]
  MAL_INST_NAME = dw03
  MAL_HOST      = 10.10.10.6
  MAL_PORT          = 7336
  MAL_INST_HOST         = 192.168.31.6
  MAL_INST_PORT         = 5236
  MAL_DW_PORT  = 7436
  MAL_INST_DW_PORT = 7536
  • 复制到其他节点
[dmdba@dmdb01 dmdb]$ scp -r /dmdata/dmdb/dmmal.ini 192.168.31.6:/dmdata/dmdb/dmmal.ini
[dmdba@dmdb01 dmdb]$ scp -r /dmdata/dmdb/dmwatcher.ini 192.168.31.6:/dmdata/dmdb/dmwatcher.ini
--有守护文件了可以创建自动启动服务
[root@dmdb03 ~]# cd /home/dmdba/dmdbms/script/root
[root@dmdb03 root]# ./dm_service_installer.sh -t dmwatcher -p dw -watcher_ini /dmdata/dmdb/dmwatcher.ini
[dmdba@dmdb01 dmdb]$ scp -r /dmdata/dmdb/dmmal.ini 192.168.31.5:/dmdata/dmdb/dmmal.ini
[dmdba@dmdb01 dmdb]$ scp -r /dmdata/dmdb/dmmonitor.ini 192.168.31.6:/dmdata/dmdb/dmmonitor.ini

dmarch.ini

  • 各节点修改为相互指向(以节点1为例)
[dmdba@dmdb01 dmdb]$ cat /dmdata/dmdb/dmarch.ini 
ARCH_WAIT_APPLY = 1
[ARCHIVE_REALTIME1]  
ARCH_TYPE     = REALTIME 
ARCH_DEST     = dw02
[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL
ARCH_DEST     = /dmarch  
ARCH_FILE_SIZE    = 2048
ARCH_SPACE_LIMIT  = 102400   
[ARCHIVE_REALTIME2]
ARCH_TYPE     = REALTIME
ARCH_DEST     = dw03

dmmonitor.ini

  • 监视器文件也可以添加新的节点进行监控

设置新节点数据库属性

  • 查看主库的OGUID是多少,有多种方法查看
[dmdba@dmdb01 dmdb]$ cat dmwatcher.ini | grep INST_OGUID
INST_OGUID         = 453331
  • 启动为mount状态(如果启动窗口有限,可以修改启动脚本的启动状态为mount)
[dmdba@dmdb03 dmdb]$ cd /home/dmdba/dmdbms/bin
[dmdba@dmdb03 bin]$ ./dmserver /dmdata/dmdb/dm.ini mount
  • 需要修改的参数(联机恢复过来的备份,需要打开配置才可以修改)
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
sp_set_oguid(453331);
alter database standby;
SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

整个集群重启即可测试是否成功

启动新节点观察

[dmdba@dmdb03 bin]$ DmServicedw start
Starting DmServicedw:                                      [ OK ]
[dmdba@dmdb03 bin]$ DmWatcherServicedw start
Starting DmWatcherServicedw:                               [ OK ]
  1. 此时监视器显示新节点归档无效
  2. 状态也有可能是mount,无法open
  3. 查看归档还会有可能是报错mal无法打开
show arch send info grp_dw.dw03
[monitor]         2022-04-09 22:19:38: 实例(DW03)的归档信息在实例(DW01)中没有找到

关闭与启动顺序

关闭:DmWatcherServicedw DmServicedw
启动:DmServicedw DmWatcherServicedw

关闭防火墙

[dmdba@dmdb03 bin]$ systemctl stop firewalld.service
[dmdba@dmdb03 bin]$ systemctl disable firewalld.service
[dmdba@dmdb03 bin]$ systemctl status firewalld.service
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服