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

文章目录


前言

本文章接达梦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提供了大量能使我们快速便捷地处理数据的函数和方法。

上一篇:埃及分数


下一篇:linux系统dm数据库安装