当前位置: 首页 > news >正文

达梦DataWatch主备环境搭建

  1. 配置信息
    1. 信息表

主机名

ip(私网)

ip(外网)

实例名

服务端口

心跳端口

守护监听端口

守护进程端口

dm-dw1

192.168.1.25

192.168.2.25

DMWAT

5236

5238

5237

5239

dm-dw2

192.168.1.26

192.168.2.26

DMWAT2

5236

5238

5237

5239

dm-mon

192.168.1.27

5239

    1. hosts表

192.168.1.25 dm-dw1

192.168.1.26 dm-dw2

192.168.1.27 dm-mon

192.168.2.25 dm-dw1-pub

192.168.2.26 dm-dw2-pub

    1. 概念说明

服务端口:对外提供数据库服务的端口

心跳端口:用于数据同步的端口

守护监听端口:数据守护监听数据库的端口

守护进程端口:datawatch收集数据守护信息的端口

  1. 基础准备
    1. 时间同步

#虚拟机无操作,仅修改了时区

timedatectl set-timezone Asia/Shanghai

    1. 同版本软件安装

所有数据库节点均需要安装数据库软件

单实例静默安装示范

#组

groupadd dinstall

#用户

useradd -g dinstall dmdba

#目录

mkdir -p /opt/dm8

chown dmdba:dinstall /opt/dm8

#介质挂载

mount dm8_20210818_x86_rh6_64_ent_8.4.2.18_pack14.iso /mnt

cd /mnt

#安装

[dmdba@dm-mon mnt]$ ./DMInstall.bin -i

Please select the installer's language (E/e:English C/c:Chinese) [E/e]:

Extract install files..........

core file size          (blocks, -c) 0

data seg size           (kbytes, -d) unlimited

scheduling priority             (-e) 0

file size               (blocks, -f) unlimited

pending signals                 (-i) 31096

max locked memory       (kbytes, -l) 64

max memory size         (kbytes, -m) unlimited

open files                      (-n) 1024

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) 4096

virtual memory          (kbytes, -v) unlimited

file locks                      (-x) unlimited

The max number of open files is too little, suggest to set 65536 or more to number of open files.

Welcome to DM DBMS Installer

Whether to input the path of Key File? (Y/y:Yes N/n:No) [Y/y]:n

Whether to Set The TimeZone? (Y/y:Yes N/n:No) [Y/y]:n

Installation Type:

1 Typical

2 Server

3 Client

4 Custom

Please Input the number of the Installation Type [1 Typical]:

Require Space: 1178M

Please Input the install path [/home/dmdba/dmdbms]:/opt/dm8

No write permission!

Please Input the install path [/home/dmdba/dmdbms]:/opt/dm8

Available Space:47G

Please Confirm the install path(/opt/dm8)? (Y/y:Yes N/n:No) [Y/y]:y

Pre-Installation Summary

Installation Location: /opt/dm8

Require Space: 1178M

Available Space: 47G

Version Information:

Expire Date:

Installation Type: Typical

Confirm to Install? (Y/y:Yes N/n:No):

Confirm to Install? (Y/y:Yes N/n:No):y

2022-08-26 16:24:15

[INFO] Installing DM DBMS...

2022-08-26 16:24:15

[INFO] Installing BASE Module...

2022-08-26 16:24:17

[INFO] Installing SERVER Module...

2022-08-26 16:24:18

[INFO] Installing CLIENT Module...

2022-08-26 16:24:19

[INFO] Installing DRIVERS Module...

2022-08-26 16:24:19

[INFO] Installing MANUAL Module...

2022-08-26 16:24:19

[INFO] Installing SERVICE Module...

2022-08-26 16:24:20

[INFO] Move log file to log directory.

2022-08-26 16:24:20

[INFO] Installed DM DBMS completely.

Please execute the commands by root:

/opt/dm8/script/root/root_installer.sh

End

[dmdba@dm-mon mnt]$ exit

logout

[root@dm-mon soft]# /opt/dm8/script/root/root_installer.sh

Move /opt/dm8/bin/dm_svc.conf to /etc

Modify the files' mode of DM Server

Create the DmAPService service

Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.

Finished to create the service (DmAPService)

Start the DmAPService service

#环境变量

vi /home/dmdba/.bash_profile

export PATH=$PATH:$DM_HOME/bin

#增加上面环境变量

  1. 搭建主备
    1. 主库阶段
      1. 主库初始化

#初始化数据库

dminit PATH=/opt/dm8/data DB_NAME=dmwat INSTANCE_NAME=dmwat PORT_NUM=5236  PAGE_SIZE=32 EXTENT_SIZE=32 CHARSET=1 CASE_SENSITIVE=0 LENGTH_IN_CHAR=0 BLANK_PAD_MODE=1

#初次启动

dmserver /opt/dm8/data/dmwat/dm.ini

…….

ctrl+c 退出

#配置服务后,可以用DmService 管理

DmServicedmwat start

      1. 主库开启配置归档

#登录,静默安装可以用以下方式登录

disql sysdba

#切换到mount

alter database mount;

#添加归档路径

alter database add archivelog 'DEST=/opt/dm8/data/dmwat/arch,TYPE=local,FILE_SIZE=128,space_limit=0';

#开启归档

alter database archivelog;

#开启数据库

alter database open;

#查询归档状态

SQL> select arch_mode from v$database;

LINEID     arch_mode

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

1          Y

      1. 主库备份

#关闭数据库

DmServicedmwat stop

#备份数据库

RMAN> backup database '/opt/dm8/data/dmwat/dm.ini' full;

backup database '/opt/dm8/data/dmwat/dm.ini' full;

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

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

Processing backupset /opt/dm8/data/dmwat/bak/DB_dmwat_FULL_20220826_153412_280474

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

backup successfully!

time used: 00:00:01.358

RMAN>

      1. 配置服务(可选,disable掉)

#配置服务

/opt/dm8/script/root/dm_service_installer.sh -t dmserver -dm_ini /opt/dm8/data/dmwat/dm.ini -p dmwat

[root@dm-dw1 yum.repos.d]# /opt/dm8/script/root/dm_service_installer.sh -t dmserver -dm_ini /opt/dm8/data/dmwat/dm.ini -p dmwat

Created symlink from /etc/systemd/system/multi-user.target.wants/DmServicedmwat.service to /usr/lib/systemd/system/DmServicedmwat.service.

Finished to create the service (DmServicedmwat)

[root@dm-dw1 yum.repos.d]# systemctl enable DmServicedmwat.service

[root@dm-dw1 yum.repos.d]# systemctl status DmServicedmwat.service

● DmServicedmwat.service - Dameng Database Service(DmServicedmwat).

   Loaded: loaded (/usr/lib/systemd/system/DmServicedmwat.service; enabled; vendor preset: disabled)

   Active: inactive (dead)

[root@dm-dw1 yum.repos.d]# systemctl start DmServicedmwat.service

[root@dm-dw1 yum.repos.d]# systemctl status DmServicedmwat.service

● DmServicedmwat.service - Dameng Database Service(DmServicedmwat).

   Loaded: loaded (/usr/lib/systemd/system/DmServicedmwat.service; enabled; vendor preset: disabled)

   Active: active (running) since Fri 2022-08-26 15:21:24 CST; 9s ago

  Process: 2021 ExecStart=/opt/dm8/bin/DmServicedmwat start (code=exited, status=0/SUCCESS)

 Main PID: 2045 (dmserver)

   CGroup: /system.slice/DmServicedmwat.service

           └─2045 /opt/dm8/bin/dmserver /opt/dm8/data/dmwat/dm.ini -noconsol...

Aug 26 15:21:09 dm-dw1.novalocal systemd[1]: Starting Dameng Database Servi....

Aug 26 15:21:24 dm-dw1.novalocal DmServicedmwat[2021]: [36B blob data]

Aug 26 15:21:24 dm-dw1.novalocal systemd[1]: Started Dameng Database Servic....

Hint: Some lines were ellipsized, use -l to show in full.

[root@dm-dw1 yum.repos.d]# systemctl disable DmServicedmwat.service

    1. 备库阶段
      1. 初始化实例

dminit PATH=/opt/dm8/data DB_NAME=dmwat INSTANCE_NAME=dmwat2 PORT_NUM=5236  PAGE_SIZE=32 EXTENT_SIZE=32 CHARSET=1 CASE_SENSITIVE=0 LENGTH_IN_CHAR=0 BLANK_PAD_MODE=1

      1. 恢复备库

#拷贝备份

[dmdba@dm-dw1 bak]$ scp -r DB_dmwat_FULL_20220826_153412_280474 dm-dw2:/home/dmdba

dmdba@dm-dw2's password:

DB_dmwat_FULL_20220826_153412_280474.bak     100%   16MB  63.2MB/s   00:00

DB_dmwat_FULL_20220826_153412_280474.meta    100%   77KB  16.4MB/s   00:00

#回复数据库

dmrman

restore database '/opt/dm8/data/dmwat/dm.ini' from backupset '/home/dmdba/DB_dmwat_FULL_20220826_153412_280474';

recover database '/opt/dm8/data/dmwat/dm.ini' from backupset '/home/dmdba/DB_dmwat_FULL_20220826_153412_280474';

recover database '/opt/dm8/data/dmwat/dm.ini' update db_magic;

      1. 配置服务(可选,disable掉)

#配置服务

/opt/dm8/script/root/dm_service_installer.sh -t dmserver -dm_ini /opt/dm8/data/dmwat/dm.ini -p dmwat

#disable服务

[root@dm-dw1 yum.repos.d]# systemctl disable DmServicedmwat.service

    1. 配置阶段
      1. 配置参数文件dm.ini

主备均修改

vi /opt/dm8/data/dmwat/dm.ini

主库

INSTANCE_NAME            =DMWAT

MAL_INI                  =1

ARCH_INI         =1

PORT_NUM       =5236

ALTER_MODE_STATUS    =0

ENABLE_OFFLINE_TS      =2

备库

INSTANCE_NAME            =DMWAT2

MAL_INI                  =1

ARCH_INI         =1

PORT_NUM       =5236

ALTER_MODE_STATUS    =0

ENABLE_OFFLINE_TS      =2

      1. 配置参数文件dmmal.ini

主备均修改,主备一致

vi /opt/dm8/data/dmwat/dmmal.ini

主备一致

[MAL_INST1]

MAL_INST_NAME = DMWAT        

MAL_HOST = 192.168.1.25    

MAL_PORT = 5238                

MAL_DW_PORT = 5239             

MAL_INST_HOST = 192.168.2.25  

MAL_INST_PORT = 5236           

MAL_INST_DW_PORT = 5237     

[MAL_INST2]

MAL_INST_NAME = DMWAT2        

MAL_HOST = 192.168.1.26    

MAL_PORT = 5238                

MAL_DW_PORT = 5239             

MAL_INST_HOST = 192.168.2.26  

MAL_INST_PORT = 5236           

MAL_INST_DW_PORT = 5237 

      1. 配置参数文件dmarch.ini

主备均修改

vi /opt/dm8/data/dmwat/dmarch.ini

主库

#DaMeng Database Archive Configuration file

#this is comments

[ARCHIVE_LOCAL1]

        ARCH_TYPE            = LOCAL

        ARCH_DEST            = /opt/dm8/data/dmwat/arch

        ARCH_FILE_SIZE       = 128

        ARCH_SPACE_LIMIT     = 0

        ARCH_FLUSH_BUF_SIZE  = 0

[ARCHIVE_REALTIME]

        ARCH_TYPE       = REALTIME

        ARCH_DEST       = DMWAT2

备库

#DaMeng Database Archive Configuration file

#this is comments

[ARCHIVE_LOCAL1]

        ARCH_TYPE            = LOCAL

        ARCH_DEST            = /opt/dm8/data/dmwat/arch

        ARCH_FILE_SIZE       = 128

        ARCH_SPACE_LIMIT     = 0

        ARCH_FLUSH_BUF_SIZE  = 0

[ARCHIVE_REALTIME]

        ARCH_TYPE       = REALTIME

        ARCH_DEST       = DMWAT

    1. 同步阶段
      1. 启动主备库到mount

启动数据库到mount

#主库

DmServicedmwat start mount

#备库

DmServicedmwat start mount

      1. 设置oguid与数据库角色

主库

[dmdba@dm-dw1 dmwat]$ disql sysdba

Server[LOCALHOST:5236]:mode is normal, state is mount

login used time : 3.867(ms)

disql V8

SQL> sp_set_oguid(3721886);

DMSQL executed successfully

used time: 18.406(ms). Execute id is 0.

SQL>alter database parimary;

备库

[dmdba@dm-dw2 ~]$ disql sysdba

Server[LOCALHOST:5236]:mode is normal, state is mount

login used time : 4.093(ms)

disql V8

SQL>

SQL> sp_set_oguid(3721886);

DMSQL executed successfully

used time: 19.548(ms). Execute id is 0.

SQL> alter database standby;

SQL>

      1. 关闭主备库
  1. 搭建datawatch
    1. 配置参数文件dmwatch.ini

主备修改dmwatch.ini,主备一致

vi /opt/dm8/data/dmwat/dmwatch.ini

主备一致

 [GRP1]

DW_TYPE = GLOBAL                           

DW_MODE = MANUAL                           

DW_ERROR_TIME = 10                         

INST_RECOVER_TIME = 60                     

INST_ERROR_TIME = 10                       

INST_OGUID = 3721886                        

INST_INI = /opt/dm8/data/dmwat/dm.ini     

INST_AUTO_RESTART = 1                      

INST_STARTUP_CMD = /opt/dm8/bin/dmserver   

RLOG_SEND_THRESHOLD = 0                    

RLOG_APPLY_THRESHOLD = 0       

设置oguid,sp_set_oguid(3721886) 一致

    1. 配置datawatch服务

主备库均配置该服务,由该服务来启停数据库

#主备一致

/opt/dm8/script/root/dm_service_installer.sh -t dmwatcher -watcher_ini /opt/dm8/data/dmwat/dmwatcher.ini -p mon

    1. 配置datawatch监控台

在dm-mon上配置

配置监控台参数

[dmdba@dm-mon data]$ mkdir -p /opt/dm8/data/dmmon

[dmdba@dm-mon data]$ cd /opt/dm8/data/dmmon

[dmdba@dm-mon mon]$ vi dmmonitor.ini

参数配置

MON_DW_CONFIRM = 1                  

MON_LOG_PATH = /opt/dm8/log         

MON_LOG_INTERVAL = 60               

MON_LOG_FILE_SIZE = 32             

MON_LOG_SPACE_LIMIT = 0             

[GRP1]

MON_INST_OGUID = 3721886            

MON_DW_IP = 192.168.1.25:5239

MON_DW_IP = 192.168.1.26:5239

与设置oguid,sp_set_oguid(3721886) 一致

使用dmmonitor监控

[dmdba@dm-mon data]$ dmmonitor /opt/dm8/data/dmmon/dmmonitor.ini

[monitor]         2022-08-26 16:49:43: DMMONITOR[4.0] V8

[monitor]         2022-08-26 16:49:43: DMMONITOR[4.0] IS READY.

Input command illegal, please input help to get the help information!

Input command illegal, please input help to get the help information!

[monitor]         2022-08-26 16:54:38: Received message from(DMWAT2)

[monitor]         2022-08-26 16:54:46: Received message from(DMWAT)

    1. 使用datawatch服务启动主备

关闭主备库

#先关闭数据库

DmServicedmwat stop

启动watcher服务

#启动datawatch服务

systemctl start DmWatcherServicemon

  1. 验证同步
    1. datawatch验证

监控台命令,dm-mon上

[dmdba@dm-mon data]$ dmmonitor /opt/dm8/data/dmmon/dmmonitor.ini

[monitor]         2022-08-26 16:49:43: DMMONITOR[4.0] V8

[monitor]         2022-08-26 16:49:43: DMMONITOR[4.0] IS READY.

Input command illegal, please input help to get the help information!

Input command illegal, please input help to get the help information!

[monitor]         2022-08-26 16:54:38: Received message from(DMWAT2)

[monitor]         2022-08-26 16:54:46: Received message from(DMWAT)

show global info

2022-08-26 16:57:19

#================================================================================#

GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG

GRP1             3721886     TRUE            MANUAL          FALSE

<<DATABASE GLOBAL INFO:>>

DW_IP               MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT

192.168.1.25        5239         2022-08-26 16:57:18  GLOBAL    VALID     OPEN           DMWAT            OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID

DW_IP               MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT

192.168.1.26        5239         2022-08-26 16:57:18  GLOBAL    VALID     OPEN           DMWAT2           OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  VALID

#================================================================================#

####该界面可随时退出,只是个监控界面输出

    1. sql验证

建表验证

##主库

SQL> create table wzy(x int);

executed successfully

used time: 20.814(ms). Execute id is 304.

SQL> insert into wzy values(123);

affect rows 1

used time: 1.402(ms). Execute id is 305.

SQL> commit;

executed successfully

used time: 3.339(ms). Execute id is 306.

SQL> select mode$ from v$instance;

LINEID     mode$

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

1          PRIMARY

##备库

SQL> select * from wzy;

LINEID     x

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

1          123

used time: 3.325(ms). Execute id is 1.

SQL> insert into wzy values(321);

insert into wzy values(321);

[-2018]:Error in line: 1

Try to insert/update/delete table table is not temporary or contains lob on standby mode.

used time: 0.624(ms). Execute id is 0.

SQL> select mode$ from v$instance;

LINEID     mode$

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

1          STANDBY

------

相关文章:

  • python入门I--基本概念--基本语法--变量和标识符--数据类型
  • opencv-python之图像的加法与按位运算
  • rocketMq 安装
  • 明日风尚杂志明日风尚杂志社《明日风尚》杂志社2022年第10期目录
  • django之day01
  • Linux中bind9的view(视图解析)配置示例与注意事项
  • BEIT-3杂谈
  • Nuxt.js - 根据条件,动态控制页面是否缓存(keep-alive-props)
  • Linux/Ubuntu/Arm设备中通过/proc/stat等文件计算Cpu使用率
  • 面试精选:1、史上最详细的Nginx、LVS、HAProxy负载均衡精选面试题
  • 程序流程控制语句
  • Centos 7手动按照Docker
  • 浅谈Kubernetes集群服务访问
  • 点成分享 | 离心机的原理、分类、应用及其在新冠病毒分离中的使用
  • D类音频放大器 CS8676E 特点及应用
  • Angular2开发踩坑系列-生产环境编译
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • IP路由与转发
  • java概述
  • MySQL QA
  • node学习系列之简单文件上传
  • Python socket服务器端、客户端传送信息
  • SAP云平台里Global Account和Sub Account的关系
  • use Google search engine
  • 编写高质量JavaScript代码之并发
  • 诡异!React stopPropagation失灵
  • 记录:CentOS7.2配置LNMP环境记录
  • 每天一个设计模式之命令模式
  • 一个完整Java Web项目背后的密码
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 我们雇佣了一只大猴子...
  • ​2021半年盘点,不想你错过的重磅新书
  • ​520就是要宠粉,你的心头书我买单
  • # Apache SeaTunnel 究竟是什么?
  • #控制台大学课堂点名问题_课堂随机点名
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • %check_box% in rails :coditions={:has_many , :through}
  • (a /b)*c的值
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)iOS字体
  • *Django中的Ajax 纯js的书写样式1
  • .bat批处理(五):遍历指定目录下资源文件并更新
  • .htaccess配置重写url引擎
  • .net 提取注释生成API文档 帮助文档
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET/C# 编译期间能确定的相同字符串,在运行期间是相同的实例
  • .net下简单快捷的数值高低位切换
  • /etc/shadow字段详解
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • :如何用SQL脚本保存存储过程返回的结果集
  • @Async注解的坑,小心
  • @selector(..)警告提示
  • [ 代码审计篇 ] 代码审计案例详解(一) SQL注入代码审计案例
  • [14]内置对象