达梦数据库数据守护和主备搭建详细步骤(从干净系统开始)

it2024-11-19  4

数据守护和主备

环境准备

Centos7 64位 3台 DM8安装包iso

环境检查

1、 最小可用内存需要1067m,虚拟机配置最少需要2G内存,然后查看free -m 可用内存大于1067便可

[root@DM-1 dmdba]# free -m total used free shared buff/cache available Mem: 1985 142 1688 8 154 1688 Swap: 2047 0 2047

2、 检查limit配置,配置文件为/etc/security/limit.conf

[root@DM-1 dmdba]# ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 0 file size (blocks, -f) unlimited pending signals (-i) 7861 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 #需要修改为>65536的参数 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 7861 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited

需要在后面添加下面参数来修改

dmdba soft nofile 65536 dmdba hard nofile 65536 dmdba soft nproc 10240 dmdba hard nproc 10240

安装准备

1、创建用户和组

Groupadd dinstall Useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba Passwd dmdba #此步骤后提示输出dmdba密码和确认dmdba密码

2、上传安装包 通用机安装包上传时会有两种情况: (1) 有光盘,需要将光盘直接挂在到主机中

Mount -o,loop /dev/sr0 /mnt

(2) 有iso镜像,需要将iso镜像复制到目标主机中进行挂在

Mount -o,loop DM8*.iso /mnt

安装操作

!!!安装数据库一定要使用dmdba用户操作 1、使用dmdba用户执行

[dmdba@DM-2 mnt]$ ./DMInstall.bin -i

2、安装完成之后会提示使用root用户执行

/home/dmdba/dmdbms/script/root/root_installer.sh

如果没有这个提示,那得看看是否是以dmdba用户安装的,如果不是,需要重新安装 3、安装好后需要执行数据库初始化操作(需要切换到dmdba用户) 注:初始化后有些参数将不能更改,需要提前核对清楚用户需求,不能修改且重要的参数有: 簇大小 页大小 字符集 大小写敏感 4、初始化完成后需要对数据库进行一次启停

./dmserver /dm8/data/DAMENG/dm.ini 当提示system is ready后 输入exit停止

数据同步

方法一 主库使用rman工具备份主库

./dmrman CTLSTMT="BACKUP DATABASE '/dm/data/DAMENG/dm.ini' FULL TO BACKUP_FILE1 BACKUPSET '/dm/data/BACKUP_FILE_01'"

拷贝备份文件到备库。。。。。。

备库使用rman工具还原与恢复

./dmrman CTLSTMT="RESTORE DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET '/dm/data/BACKUP_FILE_01'" ./dmrman CTLSTMT="RECOVER DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET '/dm/data/BACKUP_FILE_01'" ./dmrman CTLSTMT="RECOVER DATABASE '/dm/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

方法二 进入disql对主库进行联机备份操作

SQL> BACKUP DATABASE BACKUPSET '/dm/data/BACKUP_FILE_01';

拷贝备份文件到备库。。。。。。

执行脱机数据库还原与恢复

./dmrman CTLSTMT="RESTORE DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET '/dm/data/BACKUP_FILE_01'" ./dmrman CTLSTMT="RECOVER DATABASE '/dm/data/DAMENG/dm.ini' FROM BACKUPSET '/dm/data/BACKUP_FILE_01'" ./dmrman CTLSTMT="RECOVER DATABASE '/dm/data/DAMENG/dm.ini' UPDATE DB_MAGIC"

参数配置

主、备库配置项(dmmal.ini/dmarch.ini/dmwatcher.ini需要新建)

dm.ini

INSTANCE_NAME = GRP1_RT_01 #实例名,需要和备机区分开,一般使用组名_守护环境_序号 标识 PORT_NUM = 5236 #数据库实例监听端口 DW_INACTIVE_INTERVAL = 60 #接收守护进程消息超时时间 ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态/OGUID ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间 MAL_INI = 1 #打开 MAL 系统 ARCH_INI = 1 #打开归档配置 RLOG_SEND_APPLY_MON = 64 #统计最近 64 次的日志发送信息

dmmal.ini

MAL_CHECK_INTERVAL = 5 #MAL 链路检测时间间隔 MAL_CONN_FAIL_INTERVAL = 5 #判定 MAL 链路断开的时间 [MAL_INST1] MAL_INST_NAME = GRP1_RT_01 #实例名,和 dm.ini 中的 INSTANCE_NAME 一致 MAL_HOST = 192.168.0.141 #MAL 系统监听 TCP 连接的 IP 地址 MAL_PORT = 61141 #MAL 系统监听 TCP 连接的端口 MAL_INST_HOST = 192.168.1.131 #实例的对外服务 IP 地址 MAL_INST_PORT = 5236 #实例的对外服务端口,和 dm.ini 中的 PORT_NUM 一致 MAL_DW_PORT = 52141 #实例本地的守护进程监听 TCP 连接的端口 MAL_INST_DW_PORT = 33141 #实例监听守护进程 TCP 连接的端口 [MAL_INST2] MAL_INST_NAME = GRP1_RT_02 MAL_HOST = 192.168.0.142 MAL_PORT = 61142 MAL_INST_HOST = 192.168.1.132 MAL_INST_PORT = 32142 MAL_DW_PORT = 52142 MAL_INST_DW_PORT = 33142

dmarch.ini

[ARCHIVE_REALTIME] ARCH_TYPE = REALTIME #实时归档类型 ARCH_DEST = GRP1_RT_02 #实时归档目标实例名(主库所在服务器写备机的,备机所在写主机的) [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL #本地归档类型 ARCH_DEST = /dm/data/DAMENG/arch #本地归档文件存放路径 ARCH_FILE_SIZE = 128 #单位 Mb,本地单个归档文件最大值 ARCH_SPACE_LIMIT = 0 #单位 Mb,0 表示无限制,范围 1024~4294967294M dmwatcher.ini [GRP1] DW_TYPE = GLOBAL #全局守护类型 DW_MODE = AUTO #自动切换模式,MANUAL为手动 DW_ERROR_TIME = 10 #远程守护进程故障认定时间 INST_RECOVER_TIME = 60 #主库守护进程启动恢复的间隔时间 INST_ERROR_TIME = 10 #本地实例故障认定时间 INST_OGUID = 453331 #守护系统唯一 OGUID 值 INST_INI = /dm8/data/DAMENG/dm.ini #dm.ini 配置文件路径 INST_AUTO_RESTART = 1 #打开实例的自动启动功能 INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver #命令行方式启动 RLOG_SEND_THRESHOLD = 0 #指定主库发送日志到备库的时间阀值,默认关闭 RLOG_APPLY_THRESHOLD = 0 #指定备库重演日志的时间阀值,默认关闭 确认监视器配置项(dmmonitor.ini需要新建) dmmonitor.ini MON_DW_CONFIRM = 1 #确认监视器模式 MON_LOG_PATH = /dm8/data/log #监视器日志文件存放路径 MON_LOG_INTERVAL = 60 #每隔 60s 定时记录系统信息到日志文件 MON_LOG_FILE_SIZE = 32 #每个日志文件最大 32M MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间 [GRP1] MON_INST_OGUID = 453331 #组 GRP1 的唯一 OGUID 值 #以下配置为监视器到组 GRP1 的守护进程的连接信息,以―IP:PORT‖的形式配置 #IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT MON_DW_IP = 192.168.0.141:52141 #心跳线端口IP和端口号 MON_DW_IP = 192.168.0.142:52142 #心跳线端口IP和端口号

数据库模式设置

mount模式启动主备数据库(此时前台处于占用状态,另开窗口操作下一步) disql进入数据库执行分别执行

主库:

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); SQL>sp_set_oguid(453331); SQL>alter database primary; SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

备库:

SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1); SQL>sp_set_oguid(453331); SQL>alter database standby; SQL>SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);

创建服务

使用root用户进入$DM_HOME/script/root/

主库 创建数据库服务(以mount启动)

$DM_HOME/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_01 -dm_ini /dm8/data/DAMENG/dm.ini -m mount

创建DmWatcher服务

$DM_HOME/script/root/dm_service_installer.sh -t dmwatcher -p GRP1_RT_01 -watcher /dm8/data/DAMENG/dmwatcher

备库 创建数据库服务

$DM_HOME/script/root/dm_service_installer.sh -t dmserver -p GRP1_RT_02 -dm_ini /dm8/data/DAMENG/dm.ini -m mount

创建DmWatcher服务

$DM_HOME/script/root/dm_service_installer.sh -t dmwatcher -p GRP1_RT_02 -watcher /dm8/data/DAMENG/dmwatcher

启动监视器

监控服务器切换到dmdba用户

./dmmonitor data/DAMENG/dmmonitor.ini

**确认监视器会自动将主备库拉起来至open状态,

<<DATABASE GLOBAL INFO:>> IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT 192.168.1.141 52141 2020-11-01 21:50:41 GLOBAL VALID OPEN GRP1_RT_01 OK 1 1 OPEN PRIMARY DSC_OPEN TIMELY VALID EP INFO: INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG 32141 OK GRP1_RWW_01 OPEN PRIMARY 0 0 TIMELY VALID 3954 39422 3954 39422 NONE <<DATABASE GLOBAL INFO:>> IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT 192.168.1.142 52142 2020-11-01 21:50:40 GLOBAL VALID OPEN GRP1_RT_02 OK 1 1 OPEN STANDBY DSC_OPEN TIMELY VALID EP INFO: INST_PORT INST_OK INAME ISTATUS IMODE DSC_SEQNO DSC_CTL_NODE RTYPE RSTAT FSEQ FLSN CSEQ CLSN DW_STAT_FLAG 32142 OK GRP1_RWW_02 OPEN STANDBY 0 0 TIMELY VALID 3941

使用show命令刷新页面查看集群中数据库的状态信息。**

最新回复(0)