云服务器做淘客网站,vue大型网站开发吗,做网站 提要求,广州市照明建设管理中心网站GaussDB日常维护操作 日常维护检查操作系统参数数据库健康状态日志收集日志清理应用连接数表的例行维护索引重建慢SQL诊断 日常维护检查
实例状态检查#xff1a;
#检查集群实例状态
gs_check -U omm -i CheckClusterStatecm_ctl query -Cvipd#检查主备DN的角色和同步状态
g… GaussDB日常维护操作 日常维护检查操作系统参数数据库健康状态日志收集日志清理应用连接数表的例行维护索引重建慢SQL诊断 日常维护检查
实例状态检查
#检查集群实例状态
gs_check -U omm -i CheckClusterStatecm_ctl query -Cvipd#检查主备DN的角色和同步状态
gs_ctl query -D 实例数据目录版本检查
select version();数据库对象占用磁盘空间检查
select pg_size_pretty(pg_database_size(postgres)); --数据库占用磁盘空间select pg_size_pretty(pg_total_relation_size(pg_statistic)); --表数据索引数据
select pg_size_pretty(pg_table_size(pg_statistic)); --表数据
select pg_size_pretty(pg_indexes_size(pg_statistic)); --索引数据锁信息检查
--检查锁信息
select * from pg_locks;--检查等待锁的线程状态
select * from pg_thread_wait_status where wait_statusacquire lock;统计事件
--事件的启动时间、事务启动时间、SQL启动时间、状态变更时间等信息
select backend_start,xact_start,query_start,state_change,state,datname,usename,application_name,client_hostname from pg_stat_activity;--统计当前的会话计数信息
select count(*) from pg_stat_activity;--查询使用内存最多的会话
select * from pv_session_memory_detail() order by usedsize desc limit 10;对象检查
--查看表和索引信息
\d TABLE_NAME
\d INDEX_NAMEselect * from pg_statistic; --统计信息
select * from pg_partition; --分区表信息
select * from pg_constraint; --约束信息操作系统参数
进行操作系统参数的单项检查本地执行加-L
gs_check -i CheckCPU #检查CPU使用率
gs_check -i CheckCpuCount #检查CPU核数
gs_check -i CheckMemInfo #检查内存大小
gs_check -i CheckSwapMemory #检查交换内存
gs_check -i CheckOSVer #检查操作系统版本
gs_check -i CheckKernelVer #检查内核版本
gs_check -i CheckSysParams #检查操作系统参数数据库健康状态
检查集群状态
gs_check -U omm -i CheckClusterStatecm_ctl query -Cvipd支持按场景检查数据库健康状况
gs_check -e inspect #例行巡检
gs_check -e health #健康检查
gs_check -e replace #节点替换检查
gs_check -e install #安装前检查
gs_check -e expand #扩容前检查
gs_check -e upgrade #升级前巡检
gs_check -e binary_upgrade #就地升级前检查日志收集
数据库故障时可以使用gs_collector工具收集日志。
gs_collector -h 22.89.73.13 -o /data/backup/ --begin-time20240112 23:00 --end-time20240113 01:00 通过--begin-time和--end-time过滤不同时间段的日志-h指定要收集的DN节点默认收集所有节点的日志-o指定收集日志保存的路径。
日志清理
$GAUSSLOG路径下文件名不带current的历史日志可以定期清理。
应用连接数
查看最大连接数
show max_connections;查看当前连接数
select count(*) from (select pg_stat_get_backend_idset() as backendid);查看当前活跃会话
select datname,pid,sessionid,usename,application_name,client_addr,state,query_id,query from pg_stat_activity;杀会话
--指定会话的pid成功会返回t否则返回f
select pg_terminate_backend(PID);扩容最大连接数
gs_guc set -Z datanode -N all -I all -c max_connections1024然后重启数据库。
表的例行维护
为了保证数据库的有效运行数据库必须在插入、删除操作后基于客户场景定期做VACUUM FULL和ANALYZE更新统计信息以便获得更优的性能。 VACUUM与VACUUM FULL的主要区别
VACUUM命令不会阻塞SELECT和DML语句但是会阻塞ALTER TABLE语句。VACUUM命令只是将被删除的dead tuples标记为可重用因此数据文件占用的实际物理磁盘空间并不会缩小。VACUUM FULL命令会阻塞对表的所有读写操作包括SELECT语句。VACUUM FULL会物理删除dead tuples把释放的空间交还给操作系统。本质上是新建了一个数据文件并把live tuples迁移过去因此数据文件占用的磁盘空间会缩小到实际的数据量。
使用VACUUM或VACUUM FULL命令进行磁盘空间回收
vacuum TABLE_NAME; --清理普通表
vacuum TABLE_NAME partition(P1); --清理表分区vacuum full TABLE_NAME; --彻底回收死元组占用的空间 使用ANALYZE语句更新统计信息:
analyze TABLE_NAME;
analyze verbose TABLE_NAME; --更新表统计信息并输出相关信息vacuum analyze TABLE_NAME; --清理死元组的同时更新统计信息维护建议
定期对部分大表做VACUUM FULL在性能下降后为全库做VACUUM FULL目前暂定每月做一次VACUUM FULL定期对系统表做VACUUM FULL主要是PG_ATTRIBUTE。启用系统自动清理线程AUTOVACUUM自动执行VACUUM和ANALYZE回收被标识为删除状态的记录空间并更新表的统计数据。
索引重建
数据库经过多次删除操作后索引页面上的索引键将被删除造成索引膨胀。例行重建索引可有效的提高查询效率。
数据库支持的索引类型为B-tree索引例行重建索引可有效的提高查询效率。
在重建索引前用户可以通过临时增大maintenance_work_mem和psort_work_mem的取值来加快索引的重建。
重建索引有以下两种方式
1先运行DROP INDEX语句删除索引再运行CREATE INDEX语句创建索引。
在删除索引过程中会在父表上增加一个短暂的排他锁阻止相关读写操作。在创建索引过程中会锁住写操作但是不会锁住读操作此时读操作只能使用顺序扫描。
drop index IDX_T1_COL1;
create index IDX_T1_COL1 on T1(COL1);2使用REINDEX语句重建索引。 使用REINDEX TABLE语句重建索引会在重建过程中增加排他锁阻止相关读写操作。使用REINDEX INTERNAL TABLE语句重建desc表包括列存表的cudesc表的索引会在重建过程中增加排他锁阻止相关读写操作。
reindex table T1;
reindex internal table T1;慢SQL诊断
查询SQL语句信息需要合理设置GUC参数track_stmt_stat_level。track_stmt_stat_level参数控制语句执行跟踪的级别第一部分控制全量SQL第二部分控制慢SQL。对于慢SQL当track_stmt_stat_level的值为非OFF时且SQL执行时间超过log_min_duration_statement会记录为慢SQL。默认值为OFF,L0建议设置为L0,L0。
--查看某一时间段的SQL语句执行信息
select * from DBE_PERF.get_global_full_sql_by_timestamp(2025-01-15 09:25:22, 2025-01-15 10:00:41);--查看某一时间段的慢SQL执行信息
select * from DBE_PERF.get_global_slow_sql_by_timestamp(2025-01-15 09:25:22, 2025-01-15 10:00:41);--查看主节点SQL执行信息
select * from statement_history where start_time(2025-01-15 09:25:22) and finish_time(2025-01-15 10:00:41);--查看备节点SQL执行信息只能在备节点执行
select * from dbe_perf.standby_statement_history(true, 2025-01-15 09:25:22, 2025-01-15 10:00:41);