【HICP Gaussdb】数据库 数据库管理(逻辑复制回滚 集群部署搭建 停启 升级回滚 维护监控) -17

时间:2020-01-06
本文章向大家介绍【HICP Gaussdb】数据库 数据库管理(逻辑复制回滚 集群部署搭建 停启 升级回滚 维护监控) -17,主要包括【HICP Gaussdb】数据库 数据库管理(逻辑复制回滚 集群部署搭建 停启 升级回滚 维护监控) -17使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

常见故障
Sql回放失败
     源端数据和目标数据库中要复制的表 没有匹配好映射关系 【用户 、表明、表结构不同】
     由于某种原因导致目标数据库进程退出
     变更源端某张要复制的表结构 ,而目标端的表没有加对应列
解决方法: 根据逻辑复制打印出来的日志信息排查错误

解析源端逻辑日志失败
原因:用户删除了某张已经开启逻辑复制的表 , 但是逻辑日志中还残留这张表的数据时 重启了逻辑复制工具的进程
解决方法: 在逻辑复制启动时 指定要跳过的某个用户下对应的表

启动逻辑复制工具进程失败
原因: 配置文件配置错误、 java环境变量没有匹配或者配置错误
解决方法: 根据具体日志 采取对应的解决措施

分布式数据库搭建
1、以root登录待安装集群任意主机, 并按规划 创建存放安装包的目录 ==> mkdir -p /opt/software/gaussdb
2、将相关安装包和clusterconfig.xml 上传第一步创建目录
3、 解压包 ,执行gs_preinstall 等OM工具
4、赋予工具脚本存放目录755权限 确保数据库安装用户对工具脚本存放目录有读取权限
5、确认集合各节点root密码一致

预安装
1、 使用gs_preinstall 准备安装环境 ---->./gs_preinstall -U omm -G dbgrp -X /opt/software/gaussdb/clusterconfig.xml
Time consistent has been completed 安装完成 ,安装失败请查看 $GAUSSLOG目录下om/gs_preinstall*.log日志
2、 系统参数

# 同时保持 time_wait tcp/ip 最大连接数
net.ipv4.tcp_max_tw_buckets 1000 
# 允许将time_wait状态的socket重新用于新的tcp连接
net.ipv4.tcp_tw_reuse 1 
# 开启TCP连接中的time_wait状态sockets的快速回收 
net.ipv4.tcp_tw_recycle 1 
# 表示当keepalive启动的时候 tcp发送keepalive消息频度 
net.ipv4.tcp_keepalive_time 30 
# 认定连接失效前, 发送tcp 的keepalive探测包数量 
net.ipv4.tcp_keepalive_probes 9 
# 当探测没有确认时 重新发送探测的频度 
net.ipv4.tcp_keepalive_intvl 30 
# 控制内核向已建立连接的主机重新发送数据的次数 
net.ipv4.tcp_retries2 80
# 控制在做内存分配的时候 内存的检查方式
vm.overcommit_memory 0 
# TCP协议接收端缓冲区 的内存大小 
net.ipv4.tcp_rmem 8192 250000 16777216 
# TCP协议发送端缓冲区 可用内存大小 
net.ipv4.tcp_wmem 21299200 
# socket发送/接受缓冲区大小的最大值 
net.core.wmem_max 21299200 / net.core.rmem_max 
# socket发送/接受缓冲区大小的默认值 
net.core.wmem_default 21299200 / net.core.wmem_defaulr 21299200
# 内核信号量参数设置大小 
kernel.sem 250 6400000 1000 25600 
# 保证物理内存有足够空闲空间 防止突发性换页 
vm.min_free_kbytes 系统内存的百分之5 
# 定义了系统中每一个端口最大侦听的长度 这个是全局参数 
net.core.somaxconn 65535 
# 出现syn等待队列溢出时 ,启动cookie来处理 可以减少syn攻击 
net,ipv4.tcp_syncookies 1 
# 在每个网络接口 接受数据包的速率比内核处理这些包的速率快 允许送到队列的数据包的最大数目
net.core.netdev_max_backlog 65535 
# 记录那些尚未收到客户端确认信息的连接请求最大值 
net.ipv4.tcp_max_syn_backlog 65535

安装
以omm用户登录gaussdb 100服务器 su - omm
使用gs_install 安装集群 gs_install -X /opt/software/gaussdb/clusterconfig.xml
查询集群状态 gs_om -t status

安装成功 successfully starting the cluster 表示安装成功
安装失败 om问题 查看om/gs_install*.log ; cm问题 查看cm/cm_agent/agent.log ; 内核问题 查看db_log/DB1_1/run/zengine.rlog 运行日志

连接 : zsql omm/password@ip:port
卸载: gs_uninstall --delete-data -X /opt/software/gaussdb/clusterconfig.xml -L 本地卸载
卸载清理: ./gs_postuninstall -U omm -X /opt/software/gaussdb/clusterconfig.xml --delete-user

升级前检查
1、确保集群状态正常 每个势力状态正常且未发生主备切换 即所查到的集群balanced信息为true
2、确保当前业务全部停止
3、确保存放版本包的目录 足够存放目标升级版本包
4、确保关键业务的数据表记录数进行登记 , 以备升级结束后, 对这些表的记录进行核对并确定是否一致
5、确保集群运行正常 且主DN的信息完全同步到备DN
6、确保$GAUSSDB目录有足够空间在升级过程中使用

分布式升级前检查
cd /opt/software/gaussdb/script
执行前置脚本
./gs_preinstall -U omm -G dbgrp -X /opt/software/gaussdb/clusterconfig.xml --alarm-type= 1 --operation=upgrade
集群自动升级
gs_upgradectl -t auto-upgrade -X /opt/software/gaussdb/clusterconfig.xml


# 判断升级方式
gs_upgradectl -t upgrade-type -X /opt/software/gaussdb/clusterconfig.xml
# 二进制升级
gs_upgradectl -t binary-upgrade -X /opt/software/gaussdb/clusterconfig.xml
# 小版本升级
gs_upgradectl -t systable-upgrade -X /opt/software/gaussdb/clusterconfig.xml

# 确认升级后版本
zengine -V
# 检查集群健康
gs_check -e cluster -X /opt/software/gaussdb/clusterconfig.xml

分布式数据库运维

# 启停集群或者实例 
gs_om -t start 
# 启动单个主机上所有的实例 假设plat1为主机的名称 
gs_om -t start -h plat1 
# 启动单个主机上的指定实例 , 可以启动类型有 CM CN DN GTS 不支持ETCD 
gs_om -t start -h plat1 -I DB1_1 
# 启动一组DN 假设group_1 为指定启动的DN组的名称 
gs_om -t start -g group_1 
# 停止集群 
gs_om -t stop 
# 停止单个主机上的所有实例,假设plat1位主机名称
gs_om -t stop -h plat1 
# 停止单个主机上的指定实例, 可启动的实例类型有 CM CN DN GTS 不支持ETCD 
gs_om -t stop -h plat1 -I DB1_1 
# 停止一组DN 假设group名称为 group_1 
gs_om -t stop -g group_1 
# 查询集群状态 
gs_om -t status 
# 节点状态 
gs_om -t staus -h HOSTNAME 
# AZ状态 
gs_om -t status --az=AZNAME 
# DN主备切换 plat1 为当前备份DN所在的主机名称 , DB1_2为要切换的DN名称 
gs_om -t switch -h plat2 -I DB2_1 
# CM主备切换 plat1 为当前备CM 所在的主机名称 , CM1为plat1 主机上的CM实例名称
gs_om -t swtich -h plat1 -I CM1

分布式集群 日常运维
集群管理
通过database manager 工具进行集群启停
日常监控
通过database manager 工具进行集群监控
1、集群状态 : 正常 降级 不可用 未知 不可用
2、集群详情: 集群状态、内核版本、数据库信息、操作系统信息、 节点与实例状态、诊断信息、集群性能、CPU 内存 IO 网络等
3、集群拓扑: AZ -> 具体实例名称状态 查看实例详细信息
4、主机管理: 查看集群信息, 所有主机的平均CPU 磁盘IO 内存 网络 存储信息
5、集群数据库: 查看集群所有DN组,以及每个组内所有DN主备实例信息
6、DB服务能力:实例状态、执行/连接数、实例CPU用量 、 实例内存用量、事务数、事务成功率、平均事务相应时间、平均SQL相应时间
7、DB性能指标:数据库连接数/执行数、总/平均事务数、 平均提交/回滚事务数、平均动态/静态SQL数、平均查询数、平均DML查询数
8、DB锁与缓存: DN锁数量、缓存命中信息页展示DN缓冲命中率,磁盘排序,磁盘读写、缓存排序/磁盘排序
9、容量指标: 表空间容量 空间名称、ID、表空间状态、扩展大小、段数目、文件数、总大小、已经 可用 使用量
10、OS性能指标: 主机名 IP端口 角色 实际占用CPU RAM CPU使用率/队列 ,IO TPS 读写量,内存使用率 网速效率
11、应用连接数: 应用名称 应用ID 连接端口:ip 连接号 最近连接时间
12、会话信息 :会话ID 、 会话时间、 用户、事务数、 回滚次数、SQL数、SQL用时 、 实例名称、 客户端IP 会话状态
13、数据库用户: 用户名称,创建数据库、 是否为管理员、 是否可以更新系统表、用户创建时间、 状态、 密码到期时间
14、 数据库角色: 角色名称等
15、查询监控: 集群内所有查询信息
16、告警监控: 在顶部监控告警

日志管理
1、数据库日志界面可以查询数据库内部各内部实例的日志文件内容,搜索 过滤日志等级,过滤日志周期,高级设置来展示日志内容

数据库安全
网络安全 、 系统安全、 数据安全 、授权账户信息、 硬件软件损坏
防御措施
1、通过访问控制和SSL 防止客户端仿冒,信息泄露 消息篡改

2、用户权限管理、数据服务器加固 防止权限提升风险
3、安全审计管理、数据库所有操作有机可查

访问控制

zengine.ini 优化配置
# 临时缓存 默认 建议
temp_buffer_size 32M 1G 
# 数据buffer缓存区 默认 建议
data_buffer_size 128M 2G 
# shardpool大小 默认 建议
shard_pool_size 128M 1G 
# 日志缓存大小 默认 建议
log_buffer_size 4M 64M 
# 脏页面线程个数 默认 建议
DBWR_PROCESSES 1 8 
# logbuffer数量 默认 建议
log_buffer_count 4 8 
# 地址
LSNR_ADDR 127.0.0.1 
# 端口
LSNR_PORT 1611 
# 最大并发session数量 
SESSIONS 200 1500

 

# 数据库安装成功 会在操作系统上 安装4个环境变量 
GSDB_DATA 数据库100数据目录
GSDB_HOME 安装目录 bin lib所在目录
PATH 数据库内核可执行码路径
LD_LIBRARY_PATH library库路径


未完待续

原文地址:https://www.cnblogs.com/oscarli/p/12156306.html