迁移pgsql从数据库
将原先的1.56服务器上的从数据库迁移至1.62服务器上
55服务器为主库
1、安装依赖包
yum -y install readline gcc -y readline-devel zlib-devel
2、下载对应版本的pgsql并解压编译安装
下载地址: https://www.postgresql.org/ftp/source/
tar -xvf postgresql-11.6.tar.gz
mkdir -p /home/data/postgresql-11.6
cd postgresql-11.6
./configure --prefix=/home/data/postgresql-11.6 --with-blocksize=32 && make && make install
需要注意--with-blocksize=32
如果主数据库编译安装时指定了,那么从数据库也需要指定
反之则不需要指定 删掉--with的配置即可
3、创建相应的用户
groupadd postgres
useradd -g postgres postgres
创建数据及日志目录,并做相应授权
mkdir -p /home/data/postgresql-11.6/{data,log}
chown -R postgres:postgres /home/data/postgresql-11.6
4、初始化数据库
切换至postgres用户
su - postgres
cd /home/data/postgresql-11.6/bin
./initdb -D /home/data/postgresql-11.6/data/
如果不想切换路径
嫌弃麻烦 需配置环境变量
还是用postgres用户操作
[postgres@localhost ~]$vim .bash_profile
在上面的目录下去编辑
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
#加以下配置
PATH=$PATH:$HOME/.local/bin:$HOME/bin:/home/data/postgresql-11.6/bin
export PATH
立即生效
source .bash_profile
5、启动数据库
pg_ctl start -D /home/data/postgresql-11.6/data -l /home/data/postgresql-11.6/log/postgres.log
6、成功启动后,暂时先不登录数据库设置密码
6.1关闭数据库服务
pg_ctl stop -D /home/data/postgresql-11.6/data -l /home/data/postgresql-11.6/log/postgres.log
6.2因为上面初始化了,所以需要将data目录删掉
并创建一个空的相同的目录
cd /home/data/postgresql-11.6
mv data bakdata
mkdir data
6.3切换至root用户
修改文件夹权限
chown -R postgres:postgres /opt/postgresql-11.6
chmod 0700 /opt/postgresql-11.6/data
6.4同步主库的数据文件
pg_basebackup -Fp --progress -D /opt/postgresql-11.6/data -h 192.168.1.55 -p 5432 -U repl --password
输入密码
repl
耐心等待
关于主库如何创建同步的用户以及设置同步用户的密码
可以参考这篇博客:https://www.cnblogs.com/likecoke/p/15715095.html