postgresql 9.6 常规场景操作

  • 服务启动\关闭\重启
#/etc/init.d/postgresql-9.6 start\stop\restart
./pg_ctl -D /var/lib/pgsql/9.5/data start -l /var/lib/pgsql/9.5/data/
或
#service postgresql-9.6 start\stop\restart
  • 登录postgresql控制台
#psql -U 用户名 -p 端口号 -d 数据库名称 -h 数据库地址
  • 退出pgsql控制器
postgres=#\q
  • 创建密码
postgres=# \password
  • 创建一个新数据库
    1、创建系统用户test
    #adduser test
    2、创建数据库用户test
    postgres=#create user test-user with password '123456'
    3、创建数据库从属于数据库test-db
    postgres=#create database test-db owner test-user;
    4、给数据库用户test赋权
postgres=#grant all privileges on database test-db to test-user;
postgres=#grant all privileges on all tables in schema public  TO #{table_user};
  • 查看启动日志
tail -f data/pg_log/postgresql-Mon.log
  • 纯文本SQL格式的备份和还原
备份:
  pg_dump -U gfcj -h 10.11.*.* -p 5432 -Fp gfcj2 > gfcj2017101811
  pg_dump -U gfcj -h 10.11.*.* -p 5432 -Fc -t tableName -f fileName database
还原:
  psql -U gfcj -h 192.168.*.* -f gfcj2017101811 database_name
  pg_restore -t tableName -d database fileName
  • 主从数据库搭建
主库相关操作:
1、在主数据库中创建从库备份用户
CREATE ROLE rep login replication encrypted password '654321';

2、修改pg_hba.conf 允许user rep访问主库
host   replication      rep       192.168.1.233/32          md5   #允许94使用replica用户来复制

3、开启主库主从模式
  cat >> postgresql.conf <<EOF
wal_level = hot_standby  # 这个是设置主为wal的主机
max_wal_senders = 32 # 这个设置了可以最多有几个流复制连接,差不多有几个从,就设置几个
wal_keep_segments = 256 # 设置流复制保留的最多的xlog数目
wal_sender_timeout = 60s # 设置流复制主机发送数据的超时时间
max_connections = 100 # 这个设置要注意下,从库的max_connections必须要大于主库的
EOF

  cat >> pg_hba.conf <<EOF
  host    replication     rep     192.168.1.233/32   md5
  EOF

4、重启主库
  • 从数据库搭建
1、从主库拷贝数据到从库(基础备份)
pg_basebackup -h 192.168.1.233 -U rep -D /var/lib/pgsql/9.6/data -X stream -P  

2、
cp /usr/pgsql-9.6/share/recovery.conf.sample ./data/recovery.conf
修改recovery.conf
standby_mode = on  # 这个说明这台机器为从库
primary_conninfo = 'host=10.12.12.10 port=5432 user=replica password=replica'  # 这个说明这台机器对应主库的信息
recovery_target_timeline = 'latest' # 这个说明这个流复制同步到最新的数据

3、postgresql.conf中也有几个地方要进行修改
max_connections = 1000 # 一般查多于写的应用从库的最大连接数要比较大
hot_standby = on  # 说明这台机器不仅仅是用于数据归档,也用于数据查询
max_standby_streaming_delay = 30s # 数据流备份的最大延迟时间
wal_receiver_status_interval = 1s  # 多久向主报告一次从的状态,当然从每次数据复制都会向主报告状态,这里只是设置最长的间隔时间
hot_standby_feedback = on # 如果有错误的数据复制,是否向主进行反馈

4、重启从库
    原文作者:fumenyaolang
    原文地址: https://www.jianshu.com/p/1b53f2574308
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞