postgresql 9.1 热备

Posted on Posted in linux, postgresql
Tips: 本文创建于2015年5月11日,已超过 2 年,内容或图片可能已经失效!

安装

  1. apt-get install postgresql postgresql-client postgresql-server-dev-all  

1、环境
Distributor ID: Debian
Description: Debian GNU/Linux 7.6 (wheezy)
Release: 7.6
Codename: wheezy
2、操作步骤
基于postgresql安装后操作

  1. su - postgres  
  2. mkdir slave  
  3. /usr/lib/postgresql/9.1/bin/initdb -D /var/lib/postgresql/9.1/slave  
  4. master  
  5.   
  6. psql  
  7. postgres=# CREATE USER dbsync replication LOGIN CONNECTION LIMIT 3 ENCRYPTED PASSWORD 'dbsync';   
  8. \q  
  9.   
  10. vim /etc/postgresql/9.1/main/postgresql.conf  
  11.   
  12. listen_addresses = '*'      # what IP address(es) to listen on;  
  13. port = 5432             # (change requires restart)  
  14. max_connections = 100           # (change requires restart)  
  15. shared_buffers = 24MB           # min 128kB  
  16. wal_level = hot_standby         # minimal, archive, or hot_standby  
  17. max_wal_senders = 1     # max number of walsender processes  
  18. wal_keep_segments = 64      # in logfile segments, 16MB each; 0 disables  
  19. hot_standby = on            # "on" allows queries during recovery  
  20.   
  21. #max_wal_senders是Slave库的节点数,有多少个slave库就设多少,  
  22. #wal_level是write ahead log参数值,设置流复制务必将此值更新成hot_standby  
  23. #wal_keep_segments默认值是16,是PG_XLOG下的日志文件数相关参数  
  24. #archive也可以选择关闭,归档是定时恢复用的,流复制不是必须的  
  25.   
  26. vim /etc/postgresql/9.1/main/pg_hba.conf  
  27. host    replication     dbsync          127.0.0.1/24    md5  
  28. /etc/init.d/postgresql restart  
  29.   
  30. psql  
  31. select pg_start_backup('Replition work');  
  32. \q  
  33.   
  34. cp -rf /var/lib/postgresql/9.1/main/* /var/lib/postgresql/9.1/slave/  
  35. rm -rf postmaster.pid  
  36.   
  37. psql  
  38. select pg_stop_backup();  
  39. \q  
  40. slave  
  41.   
  42. vim postgres.conf  
  43.   
  44. max_connections = 100           # (change requires restart)  
  45. port = 5433  
  46. shared_buffers = 24MB           # min 128kB  
  47. wal_level = minimal         # minimal, archive, or hot_standby  
  48. synchronous_commit = off        # synchronization level; on, off, or local  
  49. max_wal_senders = 0     # max number of walsender processes  
  50. wal_keep_segments = 0       # in logfile segments, 16MB each; 0 disables  
  51. hot_standby = on            # "on" allows queries during recovery  
  52.   
  53. cp /usr/share/postgresql/9.1/recovery.conf.sample recovery.conf  
  54.   
  55. vim recovery.conf  
  56.   
  57. standby_mode = on  
  58. primary_conninfo = 'host=127.0.0.1 port=5432 user=dbsync password=dbsync'               # e.g. 'host=localhost port=5432'  
  59. trigger_file = '/var/lib/postgresql/9.1/slave/trigger_acivestd'  
  60.   
  61.   
  62. /usr/lib/postgresql/9.1/bin/pg_ctl -D /var/lib/postgresql/9.1/slave start  

进入不是默认端口的数据库

  1. psql -p 5433  

3、postgresql片段
导出数据库

  1. sudo -u postgres pg_dump demodb > demodb.sql  

导入数据库

  1. sudo -u postgres psql demodb < demodb.sql  

创建数据库

  1. CREATE ROLE user WITH LOGIN ENCRYPTED PASSWORD 'passwd' CREATEDB;   
  2. CREATE DATABASE dbname WITH OWNER user ENCODING 'UTF8';   
  3. GRANT ALL PRIVILEGES ON DATABASE dbname TO user;   
» 转载请注明来源:呢喃 » postgresql 9.1 热备