集群基本管理

YMatrix 6 我们提供了集群运维工具:mxstartmxstopmxstate

注意!
YMatrix 5 中首次上述运维工具管理集群,YMatrix 5 架构更多介绍请见 YMatrix 5 架构
YMatrix 4(MatrixDB 4)中默认使用 Greenplum 系列运维工具,具体介绍请见 YMatrix 4 集群基本管理

1. 操作集群

1.1 启动

mxstart -a  # 启动集群

1.2 关闭

mxstop -a   # 停止集群(此模式下,如果有会话链接,关闭数据库会卡住)
mxstop -a -M fast  # 使用 fast 模式快速关闭集群

1.3 重启

mxstop -ar # 重启集群,等待当前正在执行的 SQL 结束(此模式下,如果有会话链接,关闭数据库会卡住)
mxstop -ar -M fast # 使用 fast 模式快速重启集群

1.4 重新加载配置

mxstop -u  # 重新加载配置文件

1.5 查看集群状态

mxstate     # 查看集群状态
mxstate -s  # 查看整个 YMatrix 集群的状态
mxstate -m  # 查看 Mirror 的 List
mxstate -f  # 查看 Standby Master 的信息

1.6 查看与修改配置参数

显示配置值:

gpconfig -s {GUC}

# 例:查看允许最大连接数
gpconfig -s max_connections

修改配置值:

gpconfig -c {GUC} -v {Value} -m {Value} #-m 指定master节点参数值,-v 指定segment节点参数值
gpconfig -c {GUC} -v {Value} #当不指定-m时,master节点的参数修改和segment节点一致

# 例:
gpconfig -c max_connections -v 1000 -m 300
gpconfig -c shared_buffers -v 2GB

2. 登录集群

2.1 psql 登录数据库

psql -d ${db_name} -U ${user_name} -h ${ip_addr} -p ${port}

修改环境变量,添加 psql 的默认值:

# 可以通过修改环境变量来修改默认值
vi ~/.bash_profile  #使用mxadmin用户,编辑配置文件,将下面的几个变量添加到文件里面

export PGPORT=5432   #默认端口
export PGUSER=mxadmin #默认用户名
export PGDATABASE=postgres  #默认数据库

使环境变量立即生效:

source ~/.bash_profile

再次使用 SQL 登录数据库:

# 执行 psql 就可以登录到数据库
psql
# 此时的默认值为
psql -d postgres -U mxadmin -h localhost -p 5432

2.2 psql 元命令

\l 列出所有数据库。 
\d 列出当前数据库的所有表、视图、序列 
\d [table_name] 列出某一张表格的结构
\dt 只显示匹配的表。
\di 只显示索引。
\dt+ table_name 查看表的大小。
\di+ index_name 查看索引的大小。
\ds 只显示序列。
\dv 只显示视图。
\dm 查看物化视图列表。
\df 只显示函数。
\dn 列出所有模式(Schema)。
\du 或者\dg 列出所有角色或用户。
\dp 表名称 \z 表名称 列出表的权限分配情况。
\dx 查看插件信息。
\sf function_name 查看函数代码。
\h 查看 SQL 命令的解释,比如 \h select。 
\? 查看 psql 命令列表。 
\c 列出当前数据库和连接的信息。
\c [database_name] 连接其他数据库。 
\e 打开文本编辑器。 
\x 设置查询结果输出
\! 操作系统命令 调取操作系统命令
\o /home/postgres/test.txt 将执行的结果保存到文件 关闭使用 \o
\drds 列出库或用户定义的配置
\s 查看历史记录
\watch 1 执行上一条命令,每 1 秒执行一次

3. 建库与删库

3.1 建库

方法一,使用 createdb 工具创建:

createdb test

方法二,使用 CREATE DATABASE SQL 语句创建:

psql postgres
postgres=# create database test;

3.2 删库

方法一,使用 dropdb 工具删除:

dropdb test

方法二,使用 DROP DATABASE SQL 语句创建:

psql postgres
postgres=# drop database test;