【GaussDB】数据库日常维护

本文介绍了如何通过一系列SQL查询和管理命令来检查GaussDB数据库的状态,包括实例、锁信息、活跃会话、对象统计、空间管理以及基本信息和容量监控,帮助DBA进行有效的数据库维护。
摘要由CSDN通过智能技术生成

1.检查实例状态

[omm@gauss001 ~]$ cm_ctl query -Cv
[  CMServer State   ]

node             instance state
---------------------------------
1  192.168.0.142 1        Primary

[   Cluster State   ]

cluster_state   : Normal
redistributing  : No
balanced        : Yes
current_az      : AZ_ALL

[  Datanode State   ]

node             instance state
---------------------------------------------
1  192.168.0.142 6001     P Primary Normal

2.查询数据库中的锁信息

--2.查询数据库中的锁信息
SELECT * FROM pg_locks;
--查询等待锁的线程状态信息,获取持锁线程block_sessionid。
SELECT * FROM pg_thread_wait_status WHERE wait_status = 'acquire lock';
 node_name | db_name | thread_name | query_id | tid | sessionid | lwtid | psessionid | tlevel | smpid | wait_status | wait_event | locktag | lockmode | block_sessionid | global_sessionid 
-----------+---------+-------------+----------+-----+-----------+-------+------------+--------+-------+-------------+------------+---------+----------+-----------------+------------------
(0 rows)
--查找正在持锁的会话,然后使用pg_terminate_session命令结束此会话。
gaussdb=# SELECT pid,sessionid,query FROM pg_stat_activity where sessionid=block_sessionid;              
gaussdb=# SELECT pg_terminate_session(pid,sessionid);

3.活跃会话检查

--SQL语句长时间运行会占用大量系统资源,用户可以通过查看事件发生的时间,占用内存大小来了解现在数据库运行状态。
--查询事件的时间
--查询事件的线程启动时间、事务启动时间、SQL启动时间以及状态变更时间
gaussdb=# SELECT backend_start,xact_start,query_start,state_change FROM pg_stat_activity;
--查询当前服务器的会话计数信息
SELECT count(*) FROM pg_stat_activity;
--查询当前使用内存最多的会话信息。
gaussdb=# SELECT sessid, sum(totalsize)/1024/1024 as "totalsize MB", 
count(1) as count FROM gs_session_memory_context GROUP BY sessid ORDER BY 2 DESC LIMIT 10;

4.对象检查

--表、索引、分区、约束等是数据库的核心存储对象,其核心信息和对象维护是DBA重要的日常工作。
--查看表的详细信息
\d+ table_name 
--查询表统计信息
SELECT * FROM pg_statistic;
--查看索引的详细信息
\d+ index_name
--查询分区表信息
SELECT * FROM pg_partition;

5.收集统计信息

--使用ANALYZE语句收集数据库相关的统计信息。
gaussdb=# ANALYZE;
gaussdb=# ANALYZE table_name;

6.使用VACUUM语句可以回收空间并更新统计信息。

gaussdb=# VACUUM;
gaussdb=# VACUUM table_name;
--查询约束信息
gaussdb=# SELECT * FROM pg_constraint;

7.基本信息检查

--基本信息包括版本、组件、补丁集等信息,定期检查数据库信息并登记在案是数据库生命周期管理的重要内容之一。
--版本信息
gaussdb=# SELECT version();

8.容量检查:表大小,数据库大小。

gaussdb=# SELECT pg_table_size('table_name');
gaussdb=# SELECT pg_database_size('database_name');

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值