pgpool 常用使用方法
-bash-4.1$ pgpool -m fast stop
2017-08-30 17:29:54: pid 2872: LOG: stop request sent to pgpool. waiting for termination...
.done.
-bash-4.1$
-bash-4.1$ nohup pgpool -n -d > /var/log/pgpool/pgpool.log 2>& 1 &
================================================================
pg_hba.conf 文件解析
# TYPE DATABASE USER ADDRESS METHOD
host fintech fintech 192.168.1.0 255.255.255.0 md5
host fintech fintech 192.168.6.0 255.255.255.0 md5
METHOD 是认证方法:
1.trust 无条件地允许连接,不需要密码即可连接进来
2.reject 无条件地拒绝连接。即拒绝某些主机访问
3.md5 要求客户端提供一个 MD5 加密的口令进行认证,非明文密码
4.password 要求客户端提供一个未加密的口令进行认,明文密码
# ==============
数据库角色
1.创建和删除角色
CREATE ROLE _name_;
DROP ROLE _name_;
2.查看现有角色的集合
postgres=# \du
postgres=# select rolname from pg_roles ;
3.角色授权
CREATE ROLE _name_ LOGIN; = CREATE USER _name_; CREATE USER 默认赋予 LOGIN
创建超级用户(不建议用):CREATE ROLE _name_ SUPERUSER;
重载配置文件:
-bash-4.1$ /usr/pgsql-9.6/bin/pg_ctl reload -D /var/lib/pgsql/9.6/data/
使用用户登录,需要指定库名,否则默认会登录同用户名的数据库
-bash-4.1$ psql -U=readonly -W -d mydb
#查看自动提交是否关闭
# mydb=# \echo :AUTOCOMMIT
# # 关闭自动提交
# mydb=# \set AUTOCOMMIT off ;
BEGIN 初始化一个事务块,也就是说所有 BEGIN 命令后的用户语句都将在一个事务里面执行直到给出一个明确的COMMIT或ROLLBACK。 缺省情况下(没有 BEGIN ),PostgreSQL
以"autocommit"模式执行事务,也就是说,每个语句在其自身的事务中执行,并且在语句结束的时候执行了一次隐含的提交。 (如果执行成功则隐含地执行一个提交,否则执行回滚。)
postgres的启动与停止
-bash-4.1$ /usr/pgsql-9.4/bin/pg_ctl -m fast stop -D /var/lib/pgsql/9.4/data
-bash-4.1$ /usr/pgsql-9.4/bin/pg_ctl -m fast start -D /var/lib/pgsql/9.4/data
-- 查看数据库运行时间
SELECT date_trunc('second', CURRENT_TIMESTAMP - pg_postmaster_start_time()) as uptime;
-- 查看启动时间
SELECT CURRENT_TIMESTAMP
--查看所有的库
SELECT * from pg_database;
--查看数据库所占用的磁盘空间大小
--查看当前库的大小
SELECT pg_database_size(current_database())/1024/1024 AS SPACE_SIZE
--查看所有数据库的大小
SELECT sum(pg_database_size(datname))/1024/1024 AS TOTAL_SPACE_SIZE FROM pg_database;
--查看表的大小
SELECT pg_relation_size('a')/1024
-- 查看库中已安装的扩展
SELECT * FROM pg_extension;
-- 查看参数设置
postgres=# show work_mem ;
postgres=# select * from pg_settings where name = 'work_mem';
postgres=# show config_file ;
-[ RECORD 1 ]----------------------------------------
config_file | /var/lib/pgsql/9.6/data/postgresql.conf
-- 获得当前参数非为默认值或从配置文件中获得值
postgres=# select name,source,setting from pg_settings where source != 'default' and source != 'override' order by 2, 1;
===========================
参数配置的主要文件
pg 主库的数据目录下有个recovery.done 文件 其他的备库下有个recovery.conf 文件 如果主库宕机 抢占主库的节点会自动将recovery.conf 文件改名成recovery.done
在启用宕机的原主库前需要将recovery.done 改名成recovery.conf 否则会造成冲突导致集群不能正常启动