中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

POSTGRESQL10.3源碼如何安裝主從搭建

發布時間:2021-11-10 12:00:27 來源:億速云 閱讀:199 作者:小新 欄目:關系型數據庫

這篇文章將為大家詳細講解有關POSTGRESQL10.3源碼如何安裝主從搭建,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。


一、下載POSTGRESQL源碼安裝包及主機配置

https://www.postgresql.org/ftp/source/v10.3/
postgresql-10.3.tar.gz

虛擬機環境
node1  192.168.159.151
node2  192.168.159.152

操作系統為redhat6.5
數據庫為postgresql10.3

兩個節點均配置/etc/hosts
vi /etc/hosts
node1  192.168.159.151
node2  192.168.159.152
二、編譯安裝
(1)創建postgres用戶
useradd -m -r -s /bin/bash -u 5432 postgres
(2)安裝相關依賴包
yum install gettext gcc make perl python perl-ExtUtils-Embed   readline-devel   zlib-devel    openssl-devel   libxml2-devel  cmake  gcc-c++ libxslt-devel  openldap-devel  pam-devel  python-devel  cyrus-sasl-devel  libgcrypt-devel  libgpg-error-devel  libstdc++-devel

(3)配置POSTGRES
./configure --prefix=/opt/postgresql-10.3 --with-segsize=8 --with-wal-segsize=64 --with-wal-blocksize=16 --with-blocksize=16 --with-libedit-preferred --with-perl --with-python --with-openssl --with-libxml --with-libxslt --enable-profiling --enable-thread-safety --enable-nls=zh_CN

最后幾行出現以下黃色輸出即配置正確,否則根據報錯提示繼續安裝依賴包
configure: using CPPFLAGS= -D_GNU_SOURCE -I/usr/include/libxml2 
configure: using LDFLAGS=  -Wl,--as-needed
configure: creating ./config.status
config.status: creating GNUmakefile
config.status: creating src/Makefile.global
config.status: creating src/include/pg_config.h
config.status: creating src/include/pg_config_ext.h
config.status: creating src/interfaces/ecpg/include/ecpg_config.h
config.status: linking src/backend/port/tas/dummy.s to src/backend/port/tas.s
config.status: linking src/backend/port/dynloader/linux.c to src/backend/port/dynloader.c
config.status: linking src/backend/port/posix_sema.c to src/backend/port/pg_sema.c
config.status: linking src/backend/port/sysv_shmem.c to src/backend/port/pg_shmem.c
config.status: linking src/backend/port/dynloader/linux.h to src/include/dynloader.h
config.status: linking src/include/port/linux.h to src/include/pg_config_os.h
config.status: linking src/makefiles/Makefile.linux to src/Makefile.port

(4)編譯
make && make install

最后幾行出現以下黃色輸出即配置正確
make[1]: Leaving directory `/opt/postgresql-10.3/src'
make -C config install
make[1]: Entering directory `/opt/postgresql-10.3/config'
/bin/mkdir -p '/opt/postgresql-10.3/lib/pgxs/config'
/usr/bin/install -c -m 755 ./install-sh '/opt/postgresql-10.3/lib/pgxs/config/install-sh'
/usr/bin/install -c -m 755 ./missing '/opt/postgresql-10.3/lib/pgxs/config/missing'
make[1]: Leaving directory `/opt/postgresql-10.3/config'
PostgreSQL installation complete.

(5)安裝
make world && make install -world

最后幾行出現以下黃色輸出即配置正確
make[1]: Leaving directory `/opt/postgresql-10.3/src'
make -C config install
make[1]: Entering directory `/opt/postgresql-10.3/config'
/bin/mkdir -p '/opt/postgresql-10.3/lib/pgxs/config'
/usr/bin/install -c -m 755 ./install-sh '/opt/postgresql-10.3/lib/pgxs/config/install-sh'
/usr/bin/install -c -m 755 ./missing '/opt/postgresql-10.3/lib/pgxs/config/missing'
make[1]: Leaving directory `/opt/postgresql-10.3/config'
PostgreSQL installation complete.
make: Leaving directory `/opt/postgresql-10.3'

(6)創建相關目錄及配置環境變量
mkdir -p /data/pgdata/serverlog
mkdir /data/pg
su - postgres
vi .bash_profile  (刪除原來的所有,以下黃色部分直接復制粘貼)
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi

# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH

# postgres
#PostgreSQL端口
PGPORT=5432

#PostgreSQL數據目錄
PGDATA=/data/pgdata
export PGPORT PGDATA 

#所使用的語言
export LANG=zh_CN.utf8

#PostgreSQL 安裝目錄
export PGHOME=/data/pg

#PostgreSQL 連接庫文件
export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib:$LD_LIBRARY_PATH
export DATE=`date +"%Y%m%d%H%M"`

#將PostgreSQL的命令行添加到 PATH 環境變量
export PATH=$PGHOME/bin:$PATH

#PostgreSQL的 man 手冊
export MANPATH=$PGHOME/share/man:$MANPATH

#PostgreSQL的默認用戶
export PGUSER=postgres

#PostgreSQL默認主機地址
export PGHOST=127.0.0.1

#默認的數據庫名
export PGDATABASE=postgres

#定義日志存放目錄
PGLOG="$PGDATA/serverlog"source .bash_profile

(7)初始化數據庫
#執行數據庫初始化腳本
root用戶登錄
chown -R postgres.postgres /data/
su - postgres
$/opt/postgresql-10.3/bin/initdb --encoding=utf8 -D /data/pg/data 警告:為本地連接啟動了 "trust" 認證.
你可以通過編輯 pg_hba.conf 更改或你下次
行 initdb 時使用 -A或者--auth-local和--auth-host選項. Success. You can now start the database server using: 啟動數據庫
su - postgres
/opt/postgresql-10.3/bin/pg_ctl -D /data/pg/data -l logfile start
(8)相關命令拷貝
root用戶
mkdir /data/pg/bin
cp /opt/postgresql-10.3/bin/*  /data/pg/bin
chown -R postgres.postgres /data/pg/bin


三、postgresql主從搭建

1、主庫配置

(1)創建一個用戶復制的用戶replica
su - postgres

psql

CREATE ROLE replica login replication encrypted password 'replica';

(2)修改pg_hba.conf文件,指定replica登錄網絡(最后一添加)

vi /data/pg/data/pg_hba.conf

host    replication     replica            192.168.159.0/24         md5
host    all          replica           192.168.159.0/24         trust

 
(3)主庫配置文件修改以下幾項,其他不變
vi /data/pg/data/postgresql.conf
listen_addresses = '*'
wal_level = hot_standby  #熱備模式
max_wal_senders= 6 #可以設置最多幾個流復制鏈接,差不多有幾個從,就設置多少
wal_keep_segments = 20  #重要配置(這里的設置會影響到pg_wal目錄下文件的數量,建議不要設置太大,20就夠了)
wal_send_timeout = 60s
max_connections = 512 #從庫的 max_connections要大于主庫
archive_mode = on #允許歸檔
#archive_command = 'cp %p /url/path%f'   #根據實際情況設置

2、從庫環境

(1)把備庫的數據文件夾目錄清空

rm -rf /var/lib/pgsql/10/data/*

(2)在備庫上運行

pg_basebackup -F p --progress -D /data/pg/data/ -h 192.168.159.151 -p 5432 -U replica --password

輸入密碼replica 

!!!注意,復制完成后,在備庫一定要將數據目錄下的所有文件重新授權

chown -R postgres.postgres /data/pg/data/

(3)創建recovery.conf 文件

cp  /opt/postgresql-10.3/share/recovery.conf.sample /data/pg/data/recovery.conf

vi /data/pg/data/recovery.conf

standby_mode = on

primary_conninfo = 'host=192.168.159.151 port=5432 user=replica password=replica'

recovery_target_timeline = 'latest'

trigger_file = '/data/pg/data/trigger.kenyon'

(4)配置postgresql.conf文件
vi /data/pg/data/postgresql.conf
listen_addresses ='*'

wal_level = hot_standby

max_connections =1000 #一般從的最大鏈接要大于主的

hot_standby =on  #說明這臺機器不僅僅用于數據歸檔,也用于查詢

max_standby_streaming_delay =30s

wal_receiver_status_interval = 10s  #多久向主報告一次從的狀態

hot_standby_feedback = on   #如果有錯誤的數據復制,是否向主進行范例



(5)啟動備庫

su - postgres
/opt/postgresql-10.3/bin/pg_ctl -D /data/pg/data/ -l logfile start

如果無法啟動,到主庫復制文件postmaster.opts到備庫如下操作:

scp /data/pg/data/postmaster.opts 192.168.159.152:/data/pg/data/

chown -R postgres.postgres /data/pg/data/
cd /data/pg/

chmod 700 data/

3、驗證主從功能

主庫查詢

su - postgres

psql

postgres=# select client_addr,sync_state from pg_stat_replication;

   client_addr   | sync_state

-----------------+------------

 192.168.159.152 | async

(1 row)

發現登陸postgres時出現以下問題
-bash-4.1$ 
root用戶執行
cp /etc/skel/.bash* /var/lib/pgsql/
再次登陸即可變成
[postgres@node1 ~]$

關于“POSTGRESQL10.3源碼如何安裝主從搭建”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

荆州市| 平泉县| 永宁县| 曲阜市| 江达县| 泗洪县| 屏东县| 施甸县| 汶上县| 兴海县| 邵阳市| 昌江| 竹溪县| 井陉县| 淮阳县| 孟村| 阿鲁科尔沁旗| 喀什市| 明光市| 潮州市| 紫阳县| 连山| 如东县| 平潭县| 翼城县| 辽中县| 柘荣县| 长岭县| 江源县| 平和县| 视频| 甘谷县| 临桂县| 咸丰县| 宁都县| 阿城市| 商南县| 池州市| 白河县| 泾源县| 双鸭山市|