DM 数据库监控
1.概念
2.状态与资源监控
CPU:
top
查看进程运行时间
ps -eo pid,lstart,etime,cmd | grep 要查的进程
[root@enmoedu3 log]# ps -eo pid,lstart,etime,cmd | grep dmserver
3260 Mon Aug 29 09:46:23 2022 01:08:41 /opt/dm8/bin/dmserver path=/opt/dm8/data/PROD/dm.ini -noconsole
内存
free -h
[root@enmoedu3 log]# free -h
total used free shared buff/cache available
Mem: 3.9G 2.4G 262M 491M 1.2G 668M
Swap: 4.0G 531M 3.5G
centos 6
真正使用内存: used - cached - buffers
centos 7
真正可用内存: available
swappines 取值(1-100) 值越底, 内存使用越倾斜使用内存
cat /proc/sys/vm/swappiness
修改 vim /etc/sysctl.conf
vm.swappiness=10 --物理内存使用90%后开始使用swap分区
sysctl -p
===================
arena问题: MALLOC_ARENA_MAX=1
磁盘: 使用率 + io指标
df -Th
[root@enmoedu3 log]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sda2 xfs 40G 8.6G 32G 22% /
devtmpfs devtmpfs 2.0G 0 2.0G 0% /dev
tmpfs tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs tmpfs 2.0G 19M 2.0G 1% /run
tmpfs tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda5 xfs 50G 6.0G 45G 12% /opt
/dev/sda1 xfs 197M 121M 77M 62% /boot
tmpfs tmpfs 396M 4.0K 396M 1% /run/user/42
tmpfs tmpfs 396M 84K 395M 1% /run/user/0
/dev/loop0 iso9660 911M 911M 0 100% /mnt
规划专用的数据库程序目录
数据,归档,备份分开放
空间使用率.
iostat
[root@enmoedu3 log]# iostat -d -x -m 2 5
Linux 3.10.0-957.el7.x86_64 (enmoedu3.enmotech.com) 2022年08月29日 _x86_64_ (2 CPU)
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 1.10 13.41 24.31 8.62 0.76 0.77 94.97 1.57 47.58 16.31 135.74 0.80 2.62
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.00 0.50 0.50 0.00 0.00 12.00 0.00 0.50 1.00 0.00 0.50 0.05
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 1.00 0.00 6.50 0.00 0.05 14.77 0.01 1.15 0.00 1.15 0.46 0.30
Device: rrqm/s wrqm/s r/s w/s rMB/s wMB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00
%util : 繁忙程度.有并行能力的磁盘100%,不一定到瓶颈.
await,svctm : await 等待时间, svctm: 服务时间 .这两个指标相近,表示实际工作中.
查看磁盘写入速度
dd if=/dev/zero of=test bs=8k count=64k oflag=dsync
网络
ethtool --查看网卡速度
服务器时间同步
影响集成mal系统. 影响时间戳相关服务.
实例资源监控
会话监控
--会话数量
select count(*) from v$sessions ;
--空闲和活动的会话数
select a.STATE ,count(*) from SYS."V$SESSIONS" a
group by a.STATE ;
活动会话太多: 业务繁忙,慢sql ,数据异常,应用重连机制缺失.
空闲会话太多: 业务空闲期 ,连接池会话上线高,应用释放连接机制异常.
操作系统命令查看会话
lsof -i:5236
netstat -nat | awk '{print $4}' | grep 5236 | wc -l
慢sql与阻塞
长耗时sql
select a.SESS_ID ,a.SQL_TEXT ,a.LAST_RECV_TIME ,a.LAST_SEND_TIME from SYS."V$SESSIONS" a ;
--查看指定session的sql
select sf_get_session_sql(116150400) ;
select t1.SQL_TEXT ,t1.STATE ,t1.TRX_ID
from SYS."V$SESSIONS" t1 ,SYS."V$TRX" t2
where t1.TRX_ID = t2.id and t1.STATE='IDLE' and t2.STATUS = 'ACTIVE' ;
SELECT a.SESS_ID ,a.SQL_TEXT ,a.STATE ,a.TRX_ID
from v$sessions a , SYS."V$TRXWAIT" b
where a.TRX_ID = b.WAIT_FOR_ID ;
开启ENABLE_MONITOR和MONITOR_TIME
SP_SET_LONG_TIME(1000)设置记录最小时间
释放会话
SP_CLOSE_SESSION ()
内存监控
达梦数据使用的内存大致等于BUFFER+MPOOL .
buffer ,物理内存的60%
select a.NAME ,sum(free) from SYS."V$BUFFERPOOL" a group by a.NAME order by 2 ; -- 根据free 列调整大小
mem_pool需要关注使用大小和名称
select a.NAME,count(*) ,SUM(a.ORG_SIZE) ,SUM(a.TOTAL_SIZE),SUM(a.RESERVED_SIZE) ,SUM(a.DATA_SIZE),sum(a.TARGET_SIZE)
from SYS."V$MEM_POOL" a group by a.NAME
order by 4
;
SHARE_POOL 共享池
session 会话池
sql_CACHE_MANAGEMENT SQL缓存区
MAL_SYS 邮件系统池
监视使用内存的多的sql:
v$sql_stat -- 前提 ENABLE_MONITOR=1, 关注 MAX_MEM_USED
v$sql_stat_history -- 通过SP_SET_SQL_STAT_THRESHOLD()设置监控阀值
表空间监控
注意监控ROLL和TEMP
不同业务数据有独立表空间,不要使用MAIN表空间
可以对表空间设置阈值上限
ROLL设置上限
--查看表空间
select * from SYS."V$TABLESPACE
--roll设置上限:
select * from SYS."V$TABLESPACE" a ;
select * from SYS.DBA_DATA_FILES a where a.TABLESPACE_NAME = 'ROLL';
alter TABLESPACE ROLL DATAFILE 'ROLL.DBF' AUTOEXTEND ON MAXSIZE 512000 ;
TEMP设置上限
TEMP_SIZE 设置TEMP大小
TEMP_SPACE_LIMIT 设置TEMP大小上限
select a.TABLESPACE_NAME ,A.BYTES/power(2,20) from SYS.DBA_FREE_SPACE a ; -- 查看数据文件剩余空间
数据库日志
信息分类: INFO ,WARNNING ,ERROR ,FATAL
数据库sql日志:
1.如果开启sql日志,则必须配置日志切换模式SWITCH_MODE和FILE_NUM,防止日志无限增长.
2.同步日志影响系统效率,生成环境建议配置异步.
3.合理设置sql过滤规则: SQL_TRACE_MASK
数据库备份检查
合理规划数据库备份周期和策略.
设置任务定期清理历史备份.
定期校验数据库备份有效性.