炫“库”行动-人大金仓有奖征文-金仓数据库巡检方案
Posted 深灰涩
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了炫“库”行动-人大金仓有奖征文-金仓数据库巡检方案相关的知识,希望对你有一定的参考价值。
一.概述
为达到服务人员有效的对现场数据库环境进行管理、配置和维护,保障信息系统安全和稳定的运行以及具备日后对数据库系统风险的评估能力,推出本巡检方案。
主要目的:
- 了解现场硬件环境
- 了解操作系统环境
- 了解当前I/O状况
- 了解数据库版本以及数据库架构
- 了解当前数据库风险点
二.适用范围
适用于接手新项目现场或者接手他人负责的项目,尽快熟悉当前项目环境完整的信息可以快速有效完成后续的故障处理、事件跟踪和现场配合工作。
三.环境确认
- 数据库环境
1.1数据库运行架构
确认当前数据库的运行架构,单机/cluster/standby/HA
1.2数据库安装目录
接触新的项目时,想要管理好数据库服务首先应找到数据库的安装目录。查看环境变量$KINGBASE_HOME,该环境变量在部署时也应该设置方便其他人员维护。
1.3 数据库版本
1.4 数据库data目录位置
- 注意:目前有些项目data目录是软链接形式,需留意一下。
1.5 数据库启动时间
- V7版本使用select sys_kingbase_start_time()
1.6 数据库license信息
- V8版本查看$KINGBASE_HOME/license.dat
- V7版本查看$KINGBASE_HOME/bin/license.dat
1.7存储可用空间
df -hT
1.8 备份文件有效性
解压备份压缩文件,查看备份日志确认当前备份有效性。
2.硬件以及操作系统
2.1操作系统类型
- hostnamectl命令适用于所有Linux操作系统(需要3.0以上内核),查看/etc/issue、/etc/redhat-release文件等方法
2.2芯片类型
- 需要关注的上图标记的位置,cpu类型和CPU品牌厂家
2.3内存
2.4系统日志
四.环境检查
1.数据库
1.1检查数据库表锁信息
1.2 检查数据库链接信息
select datname,usename,client_addr,query,state,now() - query_start as time from sys_stat_activity where time > '03:00:00' and state = 'idle in transaction';
- 该语句查询出超过3小时的长连SQL,根据情况适当处理。
1.3检查数据库当前连接数&最大连接数
1.4检查各数据库大小
1.5查询各个库的年龄
- 如果age列中有超过 5亿,应立即进行事务回收。
1.6 数据库扩展插件
2.操作系统
2.1 CPU使用情况
- 使用top检查信息,判断资源使用情况。
2.2 内存使用情况
- 使用free -m 检查信息,其中total为总内存量;used为使用内存量;free 为内存剩余量。
2.3 系统I/O情况
- 如上所示,蓝色、黄色部分为磁盘读写情况,红色部分为CPU I/O等待情况。
2.4 系统是否存在僵尸进程
- 系统所能使用的进程号是有限的,如果大量的产生僵死进程,将因为没有可用的进程号而导致系统不能产生新的进程。
2.5磁盘使用情况
2.6 inode节点信息
2.7 服务器负载
- 蓝色部分代表系统启动时间,红色部分代表系统的平均负载,3个地方数字正常不超10。
2.8 防火墙状态
五.性能优化
1.操作系统
1.1内核配置文件检查
1.2资源限制文件检查
1.3电源管理配置文件
- 在centos7.2中,systemd-logind 服务引入了一个新特性,该新特性是:当一个user 完全退出os之后,remove掉所有的IPC objects。
1.4 selinux状态
1.5磁盘调度策略
- 查看/sys/block/dm-0/queue/scheduler文件,推荐deadline
2.数据库
2.1 kingbase参数优化
cat kingbase.conf | grep -v ^# | grep -v ^$ | grep ^[a-zA-Z] | awk -F'#' '{print $1}'
2.2 max_connections=1000
- 数据库最大连接数,跟进现场需求适当调整
2.3 shared_buffers=总内存*25%
- 数据库共享缓存,建议设置服务器内存大小的25%
2.4 work_mem=16MB
- SQL语句在使用到排序子句的时候所使用到的最大内存
2.5 effective_cache_size=总内存*50%
- 告知SQL优化器有多少内存可用与于磁盘缓存,不会实际分发内存。建议总内存50%
2.6 maintenance_work_mem=1GB
- 定义的内存主要影响vacuum,analyze,create index,reindex等操作,设置越高该类命令执行速度越快。
2.7 logging_collector=on
- 开启后进行数据库日志收集。
2.8 log_destination=’stderr’
- 日志输出格式,三种格式stderr,csvlog,syslog。默认stderr
2.9 log_directory=’sys_log’
- 数据库日志存放路径,默认sys_log
2.10 log_filename='kingbase-%w.log'
- 数据库日志命令格式,常见:%w周,%d日,%m月
2.11 log_truncate_on_rotation=on
- 设置为on的话,如果新建了一个同名的日志文件,则会清空原来的文件,再写入日志,而不是在后面追加。
2.12 log_rotation_age=1440
- 当logging_collector被启用时,这个参数决定一个个体日志文件的最长生命期。当这些分钟过去后,一个新的日志文件将被创建。
2.13 log_rotation_size=500MB
- 这个参数决定一个个体日志文件的最大尺寸。当这么多千字节被发送到一个日志文件后,将创建一个新的日志文件。
2.14 查看各数据库中表膨胀信息
2.15 查询大于10GB以及年龄大于5亿的表
select relname,age(relfrozenxid),sys_relation_size(oid)/1024/1024/1024.0 table_size from sys_class where relkind='r' and age(relfrozenxid)>500000000 and sys_relation_size(oid)/1024/1024/1024 > 10 order by 3 desc;
- 项目维护计划
数据库产品维护服务,主要包括:数据库基本使用培训、常见故障处理方法培训以及对数据库的定期上门巡检服务。
系统日志、网络状况、系统空间状况、存储设备状态、系统性能、数据库各种文件的状态与配置、数据库安全审计、数据库配置的合理性、实例的运行效率等。
七.文档交付
- 巡检报告
定期对各项目进行的健康检查汇总的文件形式报告提供可用并归档。
- 事件分析报告
数据库产生故障后,对事件的整个过程记录提交用户,也方便部门后续复盘。
- 数据库升级方案
项目中数据库升级需要提前准备好升级方案,规划好升级步骤、思路不容易出错。所有的升级方案中必须有回退流程,再出现不可控情况时可以回退到升级前的版本。
- 数据库项目档案
记录数据库的详细信息如:硬件环境、数据库版本,在项目交接时应将项目信息完善归纳成文档有利于后续运维。
- 客户服务记录单
外出到项目现场工作结束时,需要客户或集成商签字认可我们的工作。
八.服务体系
- 电话支持
当发生问题时,可以提供给用户及时有效的24小时电话支持。服务人员做好客户服务需求的记录,并向用户明确服务需求的解决方式、过程和最终的解决办法。提供远程服务接入、微信和电话服务支持。
- 现场服务
如果用户的问题不能通过电话解决,会立刻派工程师到现场为用户解决问题,服务人员对解决的过程进行记录,并向用户提供解决问题的报告.包括问题原因、解决方法、解决问题的方式和过程,以及建议用户对系统进行正常使用的指导和培训,问题解决后需要用户进行确认。
- 定期巡检服务
保证数据库长久稳定的运行,为项目现场制定巡检服务,每月对数据库进行一次月度巡检,每季度进行一次季度巡检,每半年进行一次半年度巡检以及每年一次的年度巡检。
以上是关于炫“库”行动-人大金仓有奖征文-金仓数据库巡检方案的主要内容,如果未能解决你的问题,请参考以下文章
炫“库”行动-人大金仓有奖征文—金仓数据库的Windows安装教程
炫“库”行动-人大金仓有奖征文--改造TPCE测试工具dbt5,提升测试结果tpSE