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