POSTGRESQL10.3原始碼安裝主從搭建
一、下載POSTGRESQL原始碼安裝包及主機配置
虛擬機器環境
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、主庫配置
su - postgres
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' #根據實際情況設定
vi /data/pg /data/ postgresql.conf
listen_addresses ='*'
(5)
啟動備庫
/opt/postgresql-10.3/bin/pg_ctl -D /data/pg/data/ -l logfile start
cd /data/pg/
發現登陸postgres時出現以下問題
-bash-4.1$
root使用者執行
cp /etc/skel/.bash* /var/lib/pgsql/
再次登陸即可變成
[postgres@node1 ~]$
--未完待續
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28371090/viewspace-2155400/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MYSQL5.6.40原始碼安裝 主從搭建 主主搭建MySql原始碼
- POSTGRESQL10.3原始碼安裝主從搭建 pgpoolii + keepalive 高可用(未成功,實驗中)SQL原始碼
- POSTGRESQL10.8原始碼安裝主從搭建SQL原始碼
- MYSQL5.7.22 原始碼安裝 主從搭建MySql原始碼
- POSTGRESQL10.3 RPM包 主從搭建SQL
- MYSQL5.7.22 原始碼安裝 主從搭建 + KEEPALIVED高可用MySql原始碼
- rpm 安裝5.6 MySql主從搭建MySql
- LNMP 原始碼安裝搭建薦LNMP原始碼
- 從零搭建LNMP環境(一) - 編譯原始碼安裝PHPLNMP編譯原始碼PHP
- 從原始碼安裝GDB-8.1原始碼
- 在docker中安裝mysql並搭建主從複製DockerMySql
- linux下從原始碼安裝gitLinux原始碼Git
- PostgreSQL13.7的安裝與主從搭建以及備份方法SQL
- Redis for linux原始碼&叢集(cluster)&主從(master-slave)&哨兵(sentinel)安裝配置RedisLinux原始碼AST
- docker 安裝 Redis 主從容器DockerRedis
- Mysql8.0.13安裝&主從MySql
- 主從安裝mysql 5.6.15MySql
- Redis安裝及主從配置Redis
- MySQL 5.7的安裝及主從複製(主從同步)MySql主從同步
- 從原始碼安裝 Apache 1.3 和 PHP 4 (轉)原始碼ApachePHP
- [環境搭建] 透過原始碼編譯安裝 Redis原始碼編譯Redis
- LAMP原始碼安裝+wordpress安裝LAMP原始碼
- mysql 5.6 半同步主從安裝MySql
- helm 安裝redis的主從、哨兵Redis
- Redis主從搭建Redis
- mysql主從搭建MySql
- nginx原始碼安裝Nginx原始碼
- 原始碼安裝postgresql原始碼SQL
- 原始碼安裝openresty原始碼REST
- 原始碼安裝GO原始碼Go
- Nginx 原始碼安裝Nginx原始碼
- mysql原始碼安裝MySql原始碼
- zabbix原始碼安裝原始碼
- 原始碼安裝lamp原始碼LAMP
- 原始碼安裝MySQL原始碼MySql
- 原始碼安裝Nginx原始碼Nginx
- 在原始碼安裝的LAMP環境中搭建Nagios原始碼LAMPiOS
- 【推薦 - 原始碼安裝】nginx - 安裝原始碼Nginx