您好,登錄后才能下訂單哦!
1.安裝yum源
打開https://yum.postgresql.org/repopackages.php ,找到自己需要的版本,右鍵復(fù)制鏈接地址。
不放心是否復(fù)制成功的話可以粘貼出來看看。
以root模式進入CentOS7,輸入:yum install + 剛剛復(fù)制的鏈接
回車。
輸入:y,回車。
2.安裝PostgreSQL
輸入:yum install -y postgresql94-server postgresql94-contrib
回車。(如果使用其他版本的PostgreSQL則需要把其中的兩個94換成對應(yīng)的數(shù)字)
輸入y,回車。
輸入:/usr/pgsql-9.4/bin/postgresql94-setup initdb
回車,初始化數(shù)據(jù)庫。(如果使用其他版本的PostgreSQL則需要把其中的9.4和94換成對應(yīng)的數(shù)字)
(如果未安裝firewalld防火墻可跳過下面兩步)
輸入:firewall-cmd --add-service=postgresql --permanent
回車,開放防火墻。
輸入:firewall-cmd –reload
回車,重啟防火墻。
4.配置遠程訪問
輸入:vi /var/lib/pgsql/9.4/data/postgresql.conf
回車,進入文檔內(nèi)容。(如果使用其他版本的PostgreSQL則需要把其中的9.4換成對應(yīng)的版本)
光標下翻,找到listen_addresses。
按 i 鍵進入“插入編輯模式”,去掉“l(fā)isten_address”前面的 #,使該配置參數(shù)起效
如果想對所有IP開放,則將 localhost 改為 * 即可
如果想僅對部分IP開放,多個IP之間用 , (逗號+空格)隔開。
編輯完成后,按Esc鍵,輸入::wq
回車,“保存退出”文檔。
輸入:vi /var/lib/pgsql/9.4/data/pg_hba.conf
回車,進入文檔內(nèi)容。(如果使用其他版本的PostgreSQL則需要把其中的9.4換成對應(yīng)的版本)
將光標移至底部。
按 i 鍵進入“插入編輯模式”,在IPv4 local connections下方添加允許連接的IP。
如果想允許所有IPv4地址,則加入一行:host all all 0.0.0.0/0 md5
IPv6方法類似。
編輯完成后,按Esc鍵,輸入::wq
回車,“保存退出”文檔。
輸入:systemctl restart postgresql-9.4.service
回車,重啟postgressql服務(wù)。(如果使用其他版本的PostgreSQL則需要把其中的9.4換成對應(yīng)的版本)
此時postgreSQL數(shù)據(jù)庫安裝成功,用可視化工具連接一下吧。
172.16.125.201 部署主服務(wù)器
172.16.125.200 部署從服務(wù)器
主服務(wù)器配置
1。首先需要創(chuàng)建一個數(shù)據(jù)庫用戶進行主從同步。創(chuàng)建用戶replica,并賦予登錄和復(fù)制的權(quán)限。
輸入:su – postgres
回車,切換至用戶。
輸入:psql -U postgres
回車,登錄數(shù)據(jù)庫。
輸入:CREATE ROLE replica login replication encrypted password ‘replica’;
2.修改pg_hba.conf,允許replica用戶來同步。
輸入:vi /var/lib/pgsql/9.4/data/pg_hba.conf
回車,進入文檔內(nèi)容。
按 i 鍵進入“插入編輯模式”,在IPv4 local connections下方增加兩行配置。
允許200連接到主服務(wù)器:
host all all 172.16.125.200/32 trust
允許200使用replica用戶來復(fù)制:
host replication replica 172.16.125.200/32 md5
如果不明白,技術(shù)文檔支持
編輯完成后,按Esc鍵,輸入::wq
回車,“保存退出”文檔。
3.修改postgresql.conf
輸入:vi /var/lib/pgsql/9.4/data/postgresql.conf
回車,進入文檔內(nèi)容。
按 i 鍵進入“插入編輯模式”,修改以下配置。
監(jiān)聽所有IP:
listen_addresses = ‘*’
允許歸檔:
archive_mode = on
用該命令來歸檔logfile segment:
archive_command = ‘cp %p /opt/pgsql/pg_archive/%f’
wal_level = hot_standby
這個設(shè)置了可以最多有幾個流復(fù)制連接,差不多有幾個從,就設(shè)置幾個:
max_wal_senders = 2
設(shè)置流復(fù)制保留的最多的xlog數(shù)目:
wal_keep_segments = 256
設(shè)置流復(fù)制主機發(fā)送數(shù)據(jù)的超時時間:
wal_sender_timeout = 60s
這個設(shè)置要注意下,從庫的max_connections必須要大于主庫的:
max_connections = 100
編輯完成后,按Esc鍵,輸入::wq
回車,“保存退出”文檔。
輸入:systemctl restart postgresql-9.4.service
回車,重啟postgressql服務(wù)。
4.測試201能否連接200數(shù)據(jù)庫。在201上運行如下命令:
輸入:psql -h 172.16.125.200 -U postgres
回車,然后輸入200數(shù)據(jù)庫的密碼
回車,連接上200數(shù)據(jù)庫
從服務(wù)器配置
1.從主節(jié)點拷貝數(shù)據(jù)到從節(jié)點
輸入:su - postgres
回車,切換至用戶
輸入:rm -rf /var/lib/pgsql/9.4/data/*
回車,將data目錄下的數(shù)據(jù)都清空
輸入:pg_basebackup -h 172.16.125.201 -U replica –D /var/lib/pgsql/9.4/data -X stream -P
回車,從201拷貝數(shù)據(jù)到201(基礎(chǔ)備份)
輸入:mkdir /opt/pgsql
回車,創(chuàng)建pgsql文件夾
輸入:mkdir /opt/pgsql/pg_archive
回車,創(chuàng)建pg_archive文件夾
2.配置recovery.conf
輸入:
cp /usr/pgsql-9.4/share/recovery.conf.sample /var/lib/pgsql/9.4/data/recovery.conf
回車,復(fù)制recovery.conf
輸入:vi /var/lib/pgsql/9.4/data/recovery.conf
回車,進入文檔內(nèi)容。
按 i 鍵進入“插入編輯模式”,修改以下配置。
表明該節(jié)點是從服務(wù)器:
standby_mode = on
主服務(wù)器的信息以及連接的用戶:
primary_conninfo = ‘host=172.16.125.201 port=5432 user=replica password=replica’
recovery_target_timeline = ‘latest’
編輯完成后,按Esc鍵,輸入::wq
回車,“保存退出”文檔。
3.配置postgresql.conf
輸入:vi /var/lib/pgsql/9.4/data/postgresql.conf
回車,進入文檔內(nèi)容。
按 i 鍵進入“插入編輯模式”,修改以下配置。
wal_level = hot_standby
一般查多于寫的應(yīng)用從庫的最大連接數(shù)要比較大:
max_connections = 1000
說明這臺機器不僅僅是用于數(shù)據(jù)歸檔,也用于數(shù)據(jù)查詢:
hot_standby = on
數(shù)據(jù)流備份的最大延遲時間:
max_standby_streaming_delay = 30s
多久向主報告一次從的狀態(tài),設(shè)置最長的間隔時間:
wal_receiver_status_interval = 10s
如果有錯誤的數(shù)據(jù)復(fù)制,是否向主進行反饋:
hot_standby_feedback = on
編輯完成后,按Esc鍵,輸入::wq
回車,“保存退出”文檔。
輸入:systemctl restart postgresql-9.4.service
回車,重啟postgressql服務(wù)。
至此,PostgreSQL主從流復(fù)制安裝部署完成,用可視化工具測試一下吧。
在主服務(wù)器(201)上插入數(shù)據(jù)或刪除數(shù)據(jù),
在從服務(wù)器(200)上能看到相應(yīng)的變化。
從服務(wù)器(200)上只能查詢,不能插入或刪除。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。