PostgreSQL13.7的安裝與主從搭建以及備份方法

lff1530983327發表於2022-10-12
1.安裝/下載軟體和初始化
205  groupadd postgres
206  useradd postgres -g postgres
207  yum install gcc
214  yum install -y readline-devel
216  yum install zlib-devel
200  mkdir /apps/data/pgsql137/
200  mkdir /apps/data/pgsql137/data/
200  mkdir /apps/data/pgsql137/log/
200  cd /apps/svr/postgresql-13.7/
217  ./configure --prefix=/apps/data/pgsql137/
221  make && make install
223  chown -R postgres:postgres /apps/data/pgsql137
224  su postgres
18  export 
PGHOME=/apps/data/pgsql137
19  export 
PGDATA=/apps/data/pgsql137/data
200  /apps/data/pgsql137/bin/pg_ctl -D /apps/data/pgsql137/data/ -l logfile start
20  /apps/data/pgsql137/bin/pg_ctl start -l /apps/data/pgsql137/log/pg_server.log
22  /apps/data/pgsql137/bin/psql -U postgres -d postgres
postgres=# \dg
List of roles
Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
2.許可權
一般會有一個postgres的使用者初始化,無密碼,超級使用者,可直接登陸先,進去之後這個時候怎麼加密碼以及加其他使用者呢?
Create user或者Create role 設定PASSWORD,完成後更改 
pg_hba.conf 設定訪問許可權。
3.搭建主從配置
wal_level = hot_standby  # 這個是設定主為wal的主機
max_wal_senders = 32 
# 這個設定了可以最多有幾個流複製連線,差不多有幾個從,就設定幾個
wal_keep_segments = 256 # 設定流複製保留的最多的xlog數目 max_keep_size 13.7是這個引數
wal_sender_timeout = 60s # 設定流複製主機傳送資料的超時時間
max_connections = 100 
# 這個設定要注意下,從庫的max_connections必須要大於主庫的
4.從庫設定
安裝軟體即可
5.基礎備份,注意-R
  -R, --write-recovery-conf
                         write configuration for replication
pg_basebackup -F p --progress -D /apps/data/pgsql137/data -hxx -p 5432 -U repl --password -R
6.完成後注意檔案
[postgres@ip-xx data]$ more standby.signal
[postgres@ip-xx data]$ more postgresql.auto.conf
# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
primary_conninfo = 
'user=repl password=xx channel_binding=disable host=''master_host'' port=5432 sslmode=disable sslcompression=0 ssl_min_protocol_version=TLSv
1.2 gssencmode=disable krbsrvname=postgres target_session_attrs=any'
7.從庫程式檢查
[postgres@ip-xx data]$ ps -ef|grep postgres
root      4632  3385  0 06:33 pts/0    00:00:00 su - postgres
postgres  4633  4632  0 06:33 pts/0    00:00:00 -bash
root      6727  6686  0 07:09 pts/1    00:00:00 su postgres
postgres  6728  6727  0 07:09 pts/1    00:00:00 bash
root     10142 10120  0 08:11 pts/3    00:00:00 su - postgres
postgres 10143 10142  0 08:11 pts/3    00:00:00 -bash
root     13100 12118  0 09:01 pts/4    00:00:00 su - postgres
postgres 13102 13100  0 09:01 pts/4    00:00:00 -bash
postgres 13443     1  0 09:07 ?        00:00:00 /apps/data/pgsql137/bin/postgres
postgres 13444 13443  0 09:07 ?        00:00:00 postgres: startup recovering 00000001000000000000000F
postgres 13445 13443  0 09:07 ?        00:00:00 postgres: checkpointer
postgres 13446 13443  0 09:07 ?        00:00:00 postgres: background writer
postgres 13447 13443  0 09:07 ?        00:00:00 postgres: stats collector
postgres 13448 13443  0 09:07 ?        00:00:00 postgres: walreceiver streaming 0/F000060
postgres 13479 13102  0 09:07 pts/4    00:00:00 ps -ef
postgres 13480 13102  0 09:07 pts/4    00:00:00 grep --color=auto postgres
8.主庫程式以及狀態檢查
[postgres@ip-xx ~]$ ps -ef|grep postgres
postgres  3799     1  0 Sep09 ?        00:00:33 /apps/data/pgsql137/bin/postgres
postgres  3801  3799  0 Sep09 ?        00:00:01 postgres: checkpointer
postgres  3802  3799  0 Sep09 ?        00:00:33 postgres: background writer
postgres  3803  3799  0 Sep09 ?        00:00:32 postgres: walwriter
postgres  3804  3799  0 Sep09 ?        00:00:37 postgres: autovacuum launcher
postgres  3805  3799  0 Sep09 ?        00:00:04 postgres: archiver last was 00000001000000000000000E.00000028.backup
postgres  3806  3799  0 Sep09 ?        00:00:57 postgres: stats collector
postgres  3807  3799  0 Sep09 ?        00:00:01 postgres: logical replication launcher
root     28882 28863  0 07:09 pts/3    00:00:00 su postgres
postgres 28883 28882  0 07:09 pts/3    00:00:00 bash
root     29432 29415  0 08:10 pts/6    00:00:00 su postgres
postgres 29433 29432  0 08:10 pts/6    00:00:00 bash
root     29621 29601  0 08:21 pts/0    00:00:00 su postgres
postgres 29622 29621  0 08:21 pts/0    00:00:00 bash
postgres 29720 29622  0 08:30 pts/0    00:00:00 /apps/data/pgsql137/bin/psql -U postgres -d postgres -h localhost -W
postgres 29721  3799  0 08:30 ?        00:00:00 postgres: postgres postgres 127.0.0.1(51594) idle
root     29893 29876  0 08:46 pts/7    00:00:00 su postgres
postgres 29894 29893  0 08:46 pts/7    00:00:00 bash
root     29997 29980  0 08:47 pts/8    00:00:00 su postgres
postgres 29998 29997  0 08:47 pts/8    00:00:00 bash
postgres 30105 29998  0 08:59 pts/8    00:00:00 /apps/data/pgsql137/bin/psql -U postgres -d postgres -h127.0.0.1 -W
postgres 30106  3799  0 08:59 ?        00:00:00 postgres: postgres postgres 127.0.0.1(34106) idle
postgres 30270  3799  0 09:07 ?        00:00:00 postgres: walsender repl 172.31.34.1(37046) streaming 0/F000060
root     30336 30319  0 09:08 pts/2    00:00:00 su - postgres
postgres 30337 30336  1 09:08 pts/2    00:00:00 -bash
postgres 30360 30337  0 09:08 pts/2    00:00:00 ps -ef
postgres 30361 30337  0 09:08 pts/2    00:00:00 grep --color=auto postgres
[postgres@ip-xx root]$ psql -h localhost -xc 
"select * from pg_stat_replication"
could not change directory to 
"/root": Permission denied
Password for user postgres:
-[ RECORD 1 ]----+------------------------------
pid              | 30270
usesysid         | 16394
usename          | repl
application_name | walreceiver
client_addr      | 172.31.34.1
client_hostname  |
client_port      | 37046
backend_start    | 2022-10-12 09:07:14.54261+00
backend_xmin     |
state            | streaming
sent_lsn         | 0/F000060
write_lsn        | 0/F000060
flush_lsn        | 0/F000060
replay_lsn       | 0/F000060
write_lag        |
flush_lag        |
replay_lag       |
sync_priority    | 0
sync_state       | async
reply_time       | 2022-10-12 09:10:14.878291+00
9.模擬主從切換
主庫:pg_ctl stop -m fast
從庫:pg_ctl promote
touch standby.signal
vim postgresql.auto.conf 寫入新主庫資訊


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30018455/viewspace-2917940/,如需轉載,請註明出處,否則將追究法律責任。

相關文章