ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

DM达梦DSC共享集群+DW(单机)

2021-06-21 21:32:09  阅读:311  来源: 互联网

标签:dmdba dm dmdbms MAL DM INST ini DW DSC


文章目录


前言

本文章接达梦DSC共享集群做的DSC主备,备用使用的单机
达梦DSC集群https://blog.csdn.net/qing1122334455/article/details/117935136


一、规划

前面已经有了DSC集群
这里准备一台单机做备库

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、系统参数相关设置

1.关闭防火墙

代码如下:

systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service

2.关闭selinux

vi /etc/selinux/config

SELINUX=disabled
SELINUXTYPE=targeted

3.创建安装用户和组

代码如下:

groupadd -g 10001 dinstall
useradd -u 20001 -g dinstall dmdba
passwd dmdba	
设置密码 dmdba

4.修改操作系统资源限制

vim /etc/security/limits.conf:

dmdba soft noproc 65536
dmdba hard noproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba hard core unlimited
dmdba soft core unlimited

修改参数 vi /etc/security/limits.d/20-nproc.conf:

* soft nproc 65536

5.修改内核参数

vi /etc/sysctl.conf

fs.aio-max-nr = 1048576
fs.file-max=6815744
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
vm.overcommit_memory=0

使内核参数生效:
sysctl -p

7.创建数据文件存放目录

代码如下:

mkdir -p /dm/dmdba/dmdbms
mkdir -p /dm/dmdata
chown -R dmdba:dinstall /dm
chmod -R 775  /dm

8.修改用户dmdba环境变量

su - dmdba
vi ~/.bash_profile

export LANG=zh_CN.UTF8
export DM_INSTALL_TMPDIR=/tmp
export DM_HOME=/dm/dmdba/dmdbms
export PATH=$DM_HOME/bin:$PATH:$HOME/bin

三、安装数据库软件

1.上传数据库软件到操作系统

创建软件目录并上传

mkdir -p /dm/soft
上传软件至此目录
挂载
[root@dmdb01 ~]# mount /dm/soft/dm8_setup_rh7_64_ent_8.1.1.48_20191129.iso /mnt/

2.安装数据库软件(备库)

进入用户dmdba
su - dmdba
cd /mnt
执行安装命令

[dmdba@dmrw2 mnt]$ ./DMInstall.bin -i
#在命令行界面安装后面加参数-i

结果如下

请选择安装语言(C/c:中文 E/e:英文) [C/c]:c
解压安装程序......... 
欢迎使用达梦数据库安装程序

是否输入Key文件路径? (Y/y:是 N/n:否) [Y/y]:n

是否设置时区? (Y/y:是 N/n:否) [Y/y]:y
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
请选择设置时区 [21]:

安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]:1
所需空间: 1012M

请选择安装目录 [/home/dmdba/dmdbms]:/dm/dmdba/dmdbms
#这里输入规划的软件安装目录
可用空间: 67G
是否确认安装路径(/dm/dmdba/dmdbms)? (Y/y:是 N/n:否)  [Y/y]:y

安装前小结
安装位置: /dm/dmdba/dmdbms
所需空间: 1012M
可用空间: 67G
版本信息: 
有效日期: 
安装结束安装类型: 典型安装
是否确认安装? (Y/y:是 N/n:否):y
2021-06-17 14:03:05 
[INFO] 安装达梦数据库...
..........
[INFO] 安装达梦数据库完成。

请以root系统用户执行命令:
/dm/dmdba/dmdbms/script/root/root_installer.sh

切换到root用户

[root@dmdb01 dmdbms]# /dm/dmdba/dmdbms/script/root/root_installer.sh
##创建并启动DmAPService服务

3.初始化主数据库实例

软件安装目录:/dm/dmdba/dmdbms,实例初始化目录:/dm/dmdata/,初始化脚本如下:
cd /dm/dmdba/dmdbms/bin

./dminit path=/dm/dmdata/  instance_name=dscstd  page_size=32

4.DSC主库脱机备份

关闭后台启动实例的窗口
在 DMDSCDMDSC DMDSCDMDSC集群生成有归 集群生成有归 集群生成有归 档日志的情况下进行脱机备份,以便后续校验连性时使用。
关闭数据库后,使用 dmrman 工具脱机备份主库,dmdba 用户到安装目录的 bin 下执行以下命令:
代码如下(示例):

./dmrman use_ap=2 dcr_ini=/dm/dmdba/config/dmdcr.ini

执行 backup 全库。

backup database '/dm/dmdba/config/dsc1/dm.ini' backupset '/dm/dmbak/bakfull';

5.备份还原(备库执行)

拷贝主库备份到备库合适目录,执行以下命令

scp -r /dm/dmbak/bakfull 192.168.16.151:/dm/dmbak/

关闭数据库后,使用 dmrman 工具还原备库,dmdba 用户到安装目录的 bin 下执行以下命令:

./dmrman

执行 restore。

 restore database '/dm/dmdata/DAMENG/dm.ini' from backupset '/dm/dmbak/bakfull';

执行 recover。

recover database '/dm/dmdata/DAMENG/dm.ini' from backupset '/dm/dmbak/bakfull';

执行 recover update db_magic。

recover database '/dm/dmdata/DAMENG/dm.ini' update db_magic;

执行结果如下

recover database '/dm/dmdba/dmdbms/dmrw/dm.ini' update db_magic;
Database mode = 0, oguid = 0
EP[0]'s cur_lsn[37904]
EP[0]'s apply_lsn[37904] >= end_lsn[37904]
recover successfully!
time used: 984.325(ms)

四.配置DSC参数(dmdba用户)

1.修改两个实例的配置文件 dm.ini

修改实例的 dm.ini 文件参数,执行以下命令:

vi /dm/dmdba/dmdbms/dmrw/dm.ini

主库修改以下参数值:

ALTER_MODE_STATUS = 0 #不允许手工方式修改实例模式/状态
ENABLE_OFFLINE_TS = 2 #不允许备库 OFFLINE 表空间
ARCH_INI = 1 #开启归档模式
MAL_INI = 1

2.修改归档配置文件 dmarch.ini

在实例目录下新建文件 dmarch.ini,执行以下命令:

vi /dm/dmdba/dmdbms/dmrw/dmarch.ini

主库添加以下内容:

[ARCHIVE_REALTIME]
ARCH_TYPE     = REALTIME  #实时归档类型
ARCH_DEST     = dmrw2   #实时归档目标实例名(主库侧填写备库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL #本地归档类型
ARCH_DEST     = /dm/dmarch  #本地归档文件存放路径
ARCH_FILE_SIZE    = 128 #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT  = 10240    #单位 MB,0 表示无限制,范围 1024~4294967294 MB

备库库添加以下内容:

[ARCHIVE_REALTIME]
ARCH_TYPE     = REALTIME  #实时归档类型
ARCH_DEST     = dmrw1   #实时归档目标实例名(备库侧填写主库实例名)
[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL #本地归档类型
ARCH_DEST     = /dm/dmarch  #本地归档文件存放路径
ARCH_FILE_SIZE    = 128 #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT  = 10240    #单位 MB,0 表示无限制,范围 1024~4294967294 MB

3.修改MAL系统配置文件 dmmal.ini

在实例目录下新建文件 dmmal.ini,执行以下命令:

vi /dm/dmdba/dmdbms/dmrw/dmmal.ini

主备库文件内容要相同。

MAL_CHECK_INTERVAL   = 5  #MAL 链路检测时间间隔
MAL_CONN_FAIL_INTERVAL  = 5  #判定 MAL 链路断开的时间
[MAL_INST1]
  MAL_INST_NAME = dmrw1 #与 dm.ini 中的 INSTANCE_NAME 一致
  MAL_HOST     = 10.10.10.135  #MAL 系统监听 TCP 内部网络 IP
  MAL_PORT     = 61141 #MAL 系统监听 TCP 连接的端口
  MAL_INST_HOST   = 192.168.16.135  #实例的对外服务 IP 地址
  MAL_INST_PORT   = 5236 #与 dm.ini 中的 PORT_NUM 一致
  MAL_DW_PORT   = 52141 #实例对应的守护进程监听 TCP 端口
  MAL_INST_DW_PORT = 33141
[MAL_INST2]
  MAL_INST_NAME = dmrw2 #与 dm.ini 中的 INSTANCE_NAME 一致
  MAL_HOST      = 10.10.10.136  # MAL 系统监听 TCP 内部网络 IP
  MAL_PORT          = 61141 #MAL 系统监听 TCP 连接的端口
  MAL_INST_HOST         = 192.168.16.136  #实例的对外服务 IP 地址
  MAL_INST_PORT         = 5236 #与 dm.ini 中的 PORT_NUM 一致
  MAL_DW_PORT  = 52141 #实例对应的守护进程监听 TCP 端口
  MAL_INST_DW_PORT = 33141

4.修改守护进程配置文件 dmwatcher.ini

在实例目录下新建文件 dmwatcher.ini,执行以下命令:

vi /dm/dmdba/dmdbms/dmrw/dmwatcher.ini

主备库文件内容要相同。

[GRP_RW] 
DW_TYPE    = GLOBAL  #全局守护类型
DW_MODE    = AUTO   #自动切换模式
DW_ERROR_TIME     = 10  #远程守护进程故障认定时间
INST_RECOVER_TIME  = 60         #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME   = 10  #本地实例故障认定时间
INST_OGUID         = 453331 #守护系统唯一 OGUID 值
INST_INI           = /dm/dmdba/dmdbms/dmrw/dm.ini #dm.ini 配置文件路径
INST_AUTO_RESTART  = 1   #打开实例的自动启动功能
INST_STARTUP_CMD   = /dm/dmdba/dmdbms/bin/dmserver #命令行方式启动

5.以 Mount 方式启动数据库实例

使用 dmdba 用户,到数据库安装目录的 bin 下执行(主备库都执行)。

./dmserver /dm/dmdba/dmdbms/dmrw/dm.ini mount

在新的终端使用 disql 工具连接数据库,执行以下命令:

./disql SYSDBA/SYSDBA

主备库都修改 oguid,执行以下命令:

sp_set_oguid(453331);

主库修改数据库模式为 primary,执行以下命令:

alter database primary;

备库修改数据库模式为 standby,执行以下命令:

alter database standby;

6.启动守护进程

dmdba 用户下,到数据库安装目录的 bin 下执行(主备库都执行)。

./dmwatcher /dm/dmdba/dmdbms/dmrw/dmwatcher.ini

守护进程启动后,会将 Mount 的实例 Open。

五、启动确认监视器

守护进程配置为自动切换时,必须配置确认监视器。在主备服务器以外的服务器上(需安装有 DM 数据库软件,且与主备心跳网络端口开放)。
新建确认监视器配置文件 dmmonitor.ini,执行以下命令:

vi /dm/dmdba/dmdbms/dmmonitor.ini 

添加以下内容:

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

启动监视器,执行以下命令:

./dmmonitor /dm/dmdba/dmdbms/dmmonitor.ini

启动后输入 show 命令查看集群状态。

show
2021-06-17 19:26:10 
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRP_RW           453331      TRUE            AUTO            FALSE     


<<DATABASE GLOBAL INFO:>>
IP              MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT    
10.10.10.135    52141        2021-06-17 19:26:10  GLOBAL    VALID     OPEN           DMRW1            OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID    

EP INFO:
INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT    FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG          
5236       OK        DMRW1            OPEN        PRIMARY   0          0            REALTIME  VALID    3824            42630           3824            42630           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    
10.10.10.136    52141        2021-06-17 19:26:10  GLOBAL    VALID     OPEN           DMRW2            OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  VALID    

EP INFO:
INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT    FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG          
5236       OK        DMRW2            OPEN        STANDBY   0          0            REALTIME  VALID    3774            42630           3774            42630           NONE                  

DATABASE(DMRW2) APPLY INFO FROM (DMRW1):
DSC_SEQNO[0], (ASEQ, SSEQ, KSEQ)[3824, 3824, 3824], (ALSN, SLSN, KLSN)[42630, 42630, 42630], N_TSK[0], TSK_MEM_USE[0]


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

六、注册服务

以上启动为前台方式启动,仅用户搭建过程中验证配置。配置没问题后需要将实例,守护进程和确认监视器注册为系统服务。
使用 root 用户,到数据库安装目录的 script/root 下,执行。

注册守护进程服务(主备库都执行)。

./dm_service_installer.sh -t dmwatcher -p dmrw -watcher_ini /dm/dmdba/dmdbms/dmrw/dmwatcher.ini

注册数据库实例服务(主备库都执行)。

./dm_service_installer.sh -t dmserver -p dmrw -dm_ini /dm/dmdba/dmdbms/dmrw/dm.ini

注册监视器服务(只需在监视器服务器上执行),执行以下命令:

./dm_service_installer.sh -t dmmonitor -p confirm -monitor_ini /dm/dmdba/dmdbms/dmmonitor.ini

1.以服务方式启动

主备 启动数据库实例,执行以下命令:

systemctl start DmServicedmrw

主备 启动守护进程,执行以下命令:

systemctl start DmWatcherServicedmrw

监控服务器(主备外)启动监视器,执行以下命令:

systemctl start DmMonitorServiceconfirm

七、disql 客户端验证

使用 disql 客户端登录主库,创建测试表,插入数据,执行以下命令:

./disql SYSDBA/SYSDBA@192.168.16.135:5236

SQL 提示符下执行以下命令:

create table test(id int);
insert into test values (1);
commit;

使用 disql 客户端登录备库,查询测试表验证,执行以下命令:

./disql SYSDBA/SYSDBA@192.168.56.12:5236

SQL 提示符下执行以下命令:

select * from test;
服务器[LOCALHOST:5236]:处于备库打开状态
登录使用时间: 6.908(毫秒)
disql V8
SQL> select * from test;

行号     ID         
---------- -----------
1          1

已用时间: 9.111(毫秒). 执行号:2.

1.引入库

代码如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.读入数据

代码如下(示例):

data = pd.read_csv(
    'https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。

标签:dmdba,dm,dmdbms,MAL,DM,INST,ini,DW,DSC
来源: https://blog.csdn.net/qing1122334455/article/details/118087202

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有