美文网首页
运维pg数据库(集群)的常用使用方法

运维pg数据库(集群)的常用使用方法

作者: watson168 | 来源:发表于2017-11-14 10:00 被阅读48次

    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  否则会造成冲突导致集群不能正常启动 

    相关文章

      网友评论

          本文标题:运维pg数据库(集群)的常用使用方法

          本文链接:https://www.haomeiwen.com/subject/yyjbhxtx.html