注册
单机升级主备学习心得
专栏/培训园地/ 文章详情 /

单机升级主备学习心得

小虾米 2024/07/01 723 0 0
摘要

前言

  • 背景:一套达梦单机环境,要升级成主备集群
  • 目的:尽可能减少服务不可用时间

环境参数(以下值可根据实际情况批量替换)

参数 参数值
ip1 192.168.0.1
ip2 192.168.0.2
用户组id 12349
安装目录 /home/dmdba/dmdbms
数据目录 /opt/dmdata/data
初始数据库名 DAMENG
归档目录 /opt/dmdata/arch
服务名 DmServicedw

ip1为原单机环境的ip,改造成新部署的主备集群的主库,ip2为新增的服务器,要改造成新部署的主备集群的备库

ps:以上目录建议主备库统一,如果不同的话后文需自行修改;集群的心跳ip可与业务id一致,若不一致,需要单独调整

一、主机前期准备工作(在主机操作)

1.1 连接数据库,确保本地归档开启

检查方法:

SQL> select * from v$dm_arch_ini where ARCH_IS_VALID='Y';

若归档没有开启,需要进行配置
配置方法:

SQL> ALTER DATABASE MOUNT; SQL> ALTER DATABASE ARCHIVELOG; SQL> ALTER DATABASE ADD ARCHIVELOG 'DEST = /home/dm_arch/arch, TYPE = local,FILE_SIZE = 1024, SPACE_LIMIT = 204800'; SQL> ALTER DATABASE OPEN;

1.2 对主库进行备份(在业务低峰操作)

SQL> BACKUP DATABASE FULL BACKUPSET '/opt/dmdata/bak/备份文件名';

1.3 主库配置文件修改

在数据目录下操作

1.3.1 配置 dm.ini

拷贝dm.ini文件,在bak文件进行更改,停服后可直接切换,同时对原dm.ini文件进行存档,方便出问题时进行回滚操作

cp dm.ini dm_bak.ini
vi dm_bak.ini

INSTANCE_NAME = DW1 MAL_INI = 1 ARCH_INI = 1 ALTER_MODE_STATUS = 0 ENABLE_OFFLINE_TS = 2

1.3.2 配置 dmarch.ini

添加如下内容
vi dmarch.ini

[ARCHIVE_REALTIME1] ARCH_TYPE = REALTIME ARCH_DEST = DW2

1.3.3 配置 dmmal.ini

新建配置文件
vi dmmal.ini

MAL_CHECK_INTERVAL = 10 MAL_CONN_FAIL_INTERVAL = 10 MAL_TEMP_PATH = /opt/dmdata/data/malpath/ MAL_BUF_SIZE = 512 MAL_SYS_BUF_SIZE = 2048 MAL_COMPRESS_LEVEL = 0 [MAL_INST1] MAL_INST_NAME = DW1 MAL_HOST = 192.168.0.1 #心跳IP MAL_PORT = 5336 MAL_INST_HOST = 192.168.0.1 #业务IP MAL_INST_PORT = 5236 MAL_DW_PORT = 5436 MAL_INST_DW_PORT = 5536 [MAL_INST2] MAL_INST_NAME = DW2 MAL_HOST = 192.168.0.2 MAL_PORT = 5336 MAL_INST_HOST = 192.168.0.2 MAL_INST_PORT = 5236 MAL_DW_PORT = 5436 MAL_INST_DW_PORT = 5536

1.3.4 配置 dmwatcher.ini

新建配置文件
vi dmwatcher.ini

[GRP_DW] DW_TYPE = GLOBAL #全局守护类型 DW_MODE = AUTO #自动切换模式 DW_ERROR_TIME = 20 #远程守护进程故障认定时间 INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间 INST_ERROR_TIME = 20 #本地实例故障认定时间 INST_OGUID = 453331 #守护系统唯一 OGUID 值 INST_INI = /opt/dmdata/data/DAMENG/dm.ini #dm.ini 配置文件路径 INST_AUTO_RESTART = 1 #打开实例的自动启动功能 INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/DmServicedw start #修改服务名方式启动

二、备机前期准备工作(在备机操作)

2.1 服务器环境参数调整

关闭numa、透明大页、selinux等参数,调整内核参数,具体步骤此处省略

2.2 安装数据库软件

挂载 iso 镜像文件
./DMInstall -i 通过交互式命令进行安装,具体步骤此处省略

2.3 初始化数据库

在数据库安装目录下的bin目录执行,不用指定额外参数,下面会替换掉ini文件

./dminit path=/opt/dmdata/data

2.4 准备备库数据

将刚才主库的备份文件拷贝过来,提前 RESTORE

scp -r root@192.168.0.1:/opt/dmdata/bak/备份文件名 /opt/dmdata/bak ./dmrman RMAN> RESTORE DATABASE '/opt/dmdata/data/DAMENG/dm.ini' FROM BACKUPSET '/opt/dmdata/bak/备份文件名';

2.5 备库配置文件修改

所有涉及scp文件拷贝的操作结束后记得关注拷贝过来的文件的所有者权限

2.5.1 拷贝主库dm.ini并修改

直接用主库dm.ini文件对备库进行替换

scp root@192.168.0.1:/opt/dmdata/data/DAMENG/dm.ini /opt/dmdata/data/DAMENG/

修改dm.ini文件中实例名
vi dm.ini

INSTANCE_NAME = DW2

2.5.2 拷贝主库dmarch.ini并修改

直接拷贝主库dmarch.ini文件到备库

scp root@192.168.0.1:/opt/dmdata/data/DAMENG/dmarch.ini /opt/dmdata/data/DAMENG/

修改 dmarch.ini 中ARCH_DEST的值
vi dmarch.ini

ARCH_DEST     = DW1   

2.5.3 拷贝主库的dmmal.ini

不用做更改

scp -r root@192.168.0.1:/opt/dmdata/data/DAMENG/dmmal.ini /opt/dmdata/data/DAMENG/

2.5.4 拷贝主库的dmwatcher.ini

不用做更改

scp root@192.168.0.1:/opt/dmdata/data/DAMENG/dmwatcher.ini /opt/dmdata/data/DAMENG/

三、配置监视器

可以在主库或者备库或者第三台服务器配置监视器

  • 非确认监视器
    vi dmmonitor_manual.ini
MON_DW_Confirm = 0 #非确认监视器模式 MON_LOG_PATH = /home/dmdba/dmdbms/log #监视器日志文件存放路径 MON_LOG_INTERVAL = 60 #每隔 60 s 定时记录系统信息到日志文件 MON_LOG_FILE_SIZE = 200 #每个日志文件最大 32 MB MON_LOG_SPACE_LIMIT = 1024 #不限定日志文件总占用空间 [GRP_DW] MON_INST_OGUID = 453331 #组 GRP_DW 的唯一 OGUID 值 #以下配置为监视器到组 GRP_DW 的守护进程的连接信息,以“IP:PORT”的形式配置 #IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT MON_DW_IP = 192.168.0.1:5436 MON_DW_IP = 192.168.0.2:5436
  • 确认监视器
    vi dmmonitor.ini
MON_DW_Confirm = 1 #确认监视器模式 MON_LOG_PATH = /home/dmdba/dmdbms/log #监视器日志文件存放路径 MON_LOG_INTERVAL = 60 #每隔 60 s 定时记录系统信息到日志文件 MON_LOG_FILE_SIZE = 200 #每个日志文件最大 32 MB MON_LOG_SPACE_LIMIT = 1024 #不限定日志文件总占用空间 [GRP_DW] MON_INST_OGUID = 453331 #组 GRP_DW 的唯一 OGUID 值 #以下配置为监视器到组 GRP_DW 的守护进程的连接信息,以“IP:PORT”的形式配置 #IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT MON_DW_IP = 192.168.0.1:5436 MON_DW_IP = 192.168.0.2:5436

四、升级

4.1 主库停机+切换配置文件(主库)

./DmServicedw stop mv dm.ini dm2.ini mv dm_bak.ini dm.ini

4.2 拷贝主库上的归档,指定还原时间点,不指定默认还原到最新时间(备库)

scp root@192.168.0.1:/opt/dmdata/arch /opt/dmdata/arch ./dmrman RMAN>RECOVER DATABASE '/opt/dmdata/data/DAMENG/dm.ini' WITH ARCHIVEDIR '/opt/dmdata/arch' RMAN>RECOVER DATABASE '/opt/dmdata/data/DAMENG/dm.ini' UPDATE DB_MAGIC

4.3 注册修改服务(此步骤需要在对应的服务器下通过root执行)

cd /home/dmdba/dmdbms/script/root

  • 注册主库守护dmwatcher服务
./dm_service_installer.sh -t dmwatcher -p dw -watcher_ini /opt/dmdata/data/DAMENG/dmwatcher.ini
  • 修改主库实例dmserver服务START_MODE=mount
  • 注册备库守护dmwatcher服务
./dm_service_installer.sh -t dmwatcher -p dw -watcher_ini /opt/dmdata/data/DAMENG/dmwatcher.ini
  • 注册备库实例dmserver服务
./dm_service_installer.sh -t dmserver -p dw -dm_ini /opt/dmdata/data/DAMENG/dm.ini -m mount
  • 注册监视器服务
./dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /opt/dmdata/data/DAMENG/dmmonitor.ini

五、重启生效搭建主备集群

主库(实例服务启动为mount状态)

./DmServicedw start disql >SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); >sp_set_oguid(453331); >alter database primary; >SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

备库(实例服务启动为mount状态)

./DmServicedw start disql >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);

主备库分别启动守护进程服务

./DmWatcherServicedw start

启动监视器

./DmMonitorServiceMonitor start

六、检验集群状态

登陆非确认监视器,查看集群状态

./dmmonitor dmmonitor_manual.ini show global info
评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服