zoukankan      html  css  js  c++  java
  • 【HICP Gaussdb】数据库 数据库管理( 集群部署搭建 优化 停启 升级回滚 维护监控) -17

    分布式数据库搭建

    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库路径

    
    

    未完待续

  • 相关阅读:
    喷水装置(一)
    下沙小面的(2)
    +-字符串
    非洲小孩
    寻找最大数(三)
    C
    寻找最大数
    阶乘之和
    背包问题
    python的内存管理机制(zz)
  • 原文地址:https://www.cnblogs.com/oscarli/p/12156306.html
Copyright © 2011-2022 走看看