1、介绍
1.1实时主备
实时主备系统由主库、实时备库、守护进程和监视器组成。通过部署实时主备系统,可以及时检测并处理各种硬件故障、数据库实例异常,确保持续提供数据库服务
1.2归档介绍:
类型:本地归档、远程归档、实时归档、即时归档、异步归档
本地归档:redo日志本地归档,就是由归档线程将redo日志写入到本地归档日志文件的过程。
远程归档:专用于dmdsc环境中。就是将归档目录配置的远程节点上(在dsc环境中每个实例都有自己的归档日志,这些所有的归档合在一起组成完成的归档)。配置方式有两种1、是共享本地归档的远程归档,将远程归档目录配置为另一个节点的本地归档目录。2、通过mal发送到远程节点,并写入远程节点的指定归档目录中。
实时归档(realtime):将主库产生的redo日志通过mal系统发到备库,是实时主备和mpp主备实现的基础。实时归档只在主库生效。执行流程是主库的redo日志写入联机日志文件前,将redo日志发送的备库。
即时归档(timely):在主库将redo日志写入联机日志文件后,通过mal发送redo日志到备库。
异步归档:由主、备库上配置定时器触发,定期扫描本地日志然后通过mal系统发送到异步备库。异步备库执行日志重演。
1.3 MAL系统
基于tcp协议实现的一种内部通信机制,具有可靠、灵活、高效的特性。
作用:实现redo日志传输,以及其他一些实例间的消息通讯。
1.4 OGUID
数据守护唯一标识码,配置数据守护时,需要由用户指定OGUID值。数据库的OGUID在mount状态下由系统函数SP_SET_OGUID设置,守护进程和监视器的OGUID值在配置文件中设定。
注意:同一守护进程组的所有数据库、守护进程和监视器,都必须配置相同的OGUID值。取值范围0-2147483647
查看OGUID:select OGUID from v$instance;
1、备份还原
2.1备份
#停止数据库dmserver服务,启动dmap服务。
su - dmdba
cd /dm8/dmdbms/bin
./DmServiceDMSERVER stop
./DmAPService start
#主库使用dmrman执行备份
./dmrman
RMAN>backup database '/dm8/dmdata/DAMENG/dm.ini' backupset 'full_bak';
2.2 还原
#将主库的备份拷贝到备库,进行还原。
#停止备库的数据库dmserver服务,启动dmap服务。
su - dmdba
cd /dm8/dmdbms/bin
./DmServiceDMSERVER stop
./DmAPService start
#使用dmrman还原
su - dmdba
cd /dm8/dmdbms/bin
RMAN>restore database '/dm8/dmdata/DAMENG/dm.ini' from backupset '/dm8/bak/full_bak';
RMAN>recover database '/dm8/dmdata/DAMENG/dm.ini' from backupset '/dm8/bak/full_bak';
RMAN>recover database '/dm8/dmdata/DAMENG/dm.ini' update db_magic;
3、配置实时主备
3.1 配置dm.ini
#主库
cd /dm8/dmdata/DAMENG
vi dm.ini
INSTANCE_NAME = GRP1_RT_01
PORT_NUM = 5236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
#备库
cd /dm8/dmdata/DAMENG
vi dm.ini
INSTANCE_NAME = GRP1_RT_02
PORT_NUM = 5236
DW_INACTIVE_INTERVAL = 60
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1
RLOG_SEND_APPLY_MON = 64
3.2 配置dmmal.ini
#主库和备库的dmmal.ini配置一样
cd /dm8/dmdata/DAMENG
vi dmmal.ini
MAL_CHECK_INTERVAL = 5
MAL_CONN_FAIL_INTERVAL = 5
[MAL_INST1]
MAL_INST_NAME = GRP1_RT_01
MAL_HOST = 192.168.11.21
MAL_PORT = 61141
MAL_INST_HOST = 192.168.10.21
MAL_INST_PORT = 5236
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 33141
[MAL_INST2]
MAL_INST_NAME = GRP1_RT_02
MAL_HOST = 192.168.11.22
MAL_PORT = 61142
MAL_INST_HOST = 192.168.10.22
MAL_INST_PORT = 5236
MAL_DW_PORT = 52142
MAL_INST_DW_PORT = 33142
3.3配置dmarch.ini
#主库
cd /dm8/dmdata/DAMENG
vi dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_02
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 512000
#备库
cd /dm8/dmdata/DAMENG
vi dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE = REALTIME
ARCH_DEST = GRP1_RT_01
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dm8/arch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 512000
3.4配置dmwatcher.ini
#主库和备库的dmwatcher.ini配置一样
cd /dm8/dmdata/DAMENG
vi dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 20210810
INST_INI = /dm8/dmdata/DAMENG/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dm8/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0
3.5设置主备角色
#主库
su - dmdba
cd /dm8/dmdbms/bin
#以mount方式启动主库数据库服务
./dmserver /dm8/dmdata/DAMENG/dm.ini mount
./disql sysdba/SYSDBA
#设置为主库
SQL> SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
SQL> sp_set_oguid(20210810);
SQL> alter database primary;
SQL> sp_set_para_value(1,'ALTER_MODE_STATUS',0);
SQL> select file_LSN, cur_LSN from v$rlog;
#备库
su - dmdba
cd /dm8/dmdbms/bin
#以mount方式启动备库数据库服务
./dmserver /dm8/dmdata/DAMENG/dm.ini mount
./disql sysdba/SYSDBA
#设置为备库
SQL> SP_SET_PARA_VALUE(1,'ALTER_MODE_STATUS',1);
SQL> sp_set_oguid(20210810);
SQL> alter database standby;
SQL> sp_set_para_value(1,'ALTER_MODE_STATUS',0);
SQL> select file_LSN, cur_LSN from v$rlog;
3.6启动守护进程
#主库和备库
#生成dmwatcher服务脚本
./dm_service_installer.sh -t dmwatcher -watcher_ini /dm8/dmdata/DAMENG/dmwatcher.ini -p DMWATCHER
#启动dmwatcher
cd /dm8/dmdbms/bin
./ DmServiceDMWATCHER start
#守护进程启动后,进入 Startup 状态,此时实例都处于 Mount 状态。守护进程开始广播自身和其监控实例的状态信息,结合自身信息和远程守护进程的广播信息,守护进程将 本地实例Open,并切换为 Open 状态。
3.7配置监视器
#在第三台服务器
mkdir -pv /opt/dmmonitor/{log,config}
#从主库或者备库拷贝/dm8/dmdbms/bin目录到本机/opt/dmmonitor
#使用root用户编辑配置文件dmmonitor_manual.ini
cd /opt/dmmonitor/config
vi dmmonitor_manual.ini
MON_DW_ CONFIRM = 0 #确认监视器模式,0表示普通监视器
MON_LOG_PATH = /opt/dmmonitor/log #监视器日志文件存放路径
MON_LOG_INTERVAL = 60 #每隔60s定时记录系统信息到日志文件
MON_LOG_FILE_SIZE = 32 #每个日志文件最大32M
MON_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
[GRP1]
MON_INST_OGUID = 20210810 #组GRP1的唯一OGUID值
#以下配置为监视器到组GRP1的守护进程的连接信息,以“IP:PORT”形式配置
#IP对应dmmal.ini中的MAL_HOST,PORT对应dmmal.ini中的MAL_DW_PORT
MON_DW_IP = 192.168.11.21:52141
MON_DW_IP = 192.168.11.22:52142
#启动dmmonitor
cd /opt/dmmonitor/bin
./dmmonitor /opt/dmmonitor/config/dmmonitor_manual.ini
总结
更多资讯请上达梦技术社区了解:https://eco.dameng.com