目录
一个数据库系统由横跨多台机器的多个实例构成。要监控一个数据库系统,需要了解整个系统的信息以及个体实例的状态信息。gpstate 工具提供有关一个数据库系统的状态信息。
默认的gpstate行为是检查实例并且显示可用和失效实例的一个简短状态。 例如,要快速查看数据库系统的状态:
$ gpstate
要查看数据库阵列配置更详细的信息,使用带有-s选项的gpstate:
$ gpstate -s
如果在使用镜像作为数据冗余,用户可能想要看看系统中的镜像实例列表、它们当前的同步状态以及镜像和主实例之间的映射。例如,要查看一个系统中的镜像实例和它们的状态:
$ gpstate -m
要查看主实例到镜像实例的映射:
$ gpstate -c
$ gpstate -f
数据库管理员最重要的监控任务是确保数据目录所在的文件系统的使用率不会超过70%的。完全占满的数据磁盘不会导致数据损坏,但是可能会妨碍数据库的正常操作。如果磁盘占用得太满, 可能会导致数据库服务器关闭。可以使用gp_toolkit管理模式中的gp_disk_free外部表 来检查主机文件系统中的剩余空闲空间(以KB为计量单位)。例如:
=# SELECT * FROM gp_toolkit.gp_disk_free ORDER BY dfsegment;
要查看一个数据库的总大小(以字节计),使用gp_toolkit管理模式中的gp_size_of_database 视图。例如:
=> SELECT * FROM gp_toolkit.gp_size_of_database ORDER BY sodddatname;
- => SELECT relname AS name, sotdsize AS size, sotdtoastsize
- AS toast, sotdadditionalsize AS other
- FROM gp_toolkit.gp_size_of_table_disk as sotd, pg_class
- WHERE sotd.sotdoid=pg_class.oid ORDER BY relname;
gp_toolkit管理模式包含几个用于检查索引大小的视图。要查看一个表上所有索 引的总大小,使用 gp_size_of_all_table_indexes视图。要查看一个特定索引的大小,使用gp_size_of_index视图。 该索引大小视图根据对象ID(而不是名称)列出表和索引。要根据一个索引的名称查看其尺寸,必须在pg_class 表中查找关系名称(relname)。例如:
- => SELECT soisize, relname as indexname
- FROM pg_class, gp_toolkit.gp_size_of_index
- WHERE pg_class.oid=gp_size_of_index.soioid
- AND pg_class.relkind='i';