• 当前位置: 首 页 > 教育百科 > 学历/技能 > 正文

    Postgres主从模式部署

    :2024年08月01日
    IT那活儿

    本文介绍了如何在CentOS系统中安装和配置PostgreSQL。首先需要安装依赖包,然后下载并解压PostgreSQL的离线包,接着创建并安装PostgreSQL的安装目录。接着,生成Makefile并编译安装。

    一、准备工作

    首先安装依赖包:

    yum -y install   readline-devel zlib-devel

    二、部署工作

    2.1 安装postgresql

    将postgresql的包上传到(/tmp)文件夹中进行解压。

    postgresql的离线包到官方网站下载:https://www.postgresql.org/

    tar -xzvf postgresql-13.3.tar.gz

    2.2 创建postgresql的安装目录

    mkdir /data01/postgresql //data01目录下创建postgresql

    2.3 生成makefile

    需要到解压的目录下操作:

    ./configure --prefix=/data01/postgresql //需要到解压的目录下操作

    2.4 编译安装

    在解压的目录下执行:

    make && make install //在解压的目录下执行

    2.5 安装工具集

    PS:进入到解压后的目录下的contrib文件夹。

    cd /data01/postgresql-11.7/contrib //进入到解压后的目录下的contrib文件夹

    make && make install

    2.6 创建postgresql用户

    groupadd postgres

    useradd -g postgres postgres

    为了安全考虑,postgresql不允许使用root用户操作数据库,我们在系统中为了使用postgresql添加一个用户postgres:

    也可以是其他用户名,但是习惯上大家都是创建postgres用户作为数据库的超级用户。

    初始化数据库时,就以这个用户作为数据库的超级用户。

    2.7 修改data目录的用户为postgres

    cd /data01/postgresql //进入到安装的postgresql目录

    mkdir data //在postgresql目录下创建data文件夹

    chown -R postgres:postgres /data01/postgresql/data

    2.8 修改环境变量

    su - postgres

    vim /home/postgres/.bash_profile

    添加环境变量:

    export PGHOME=/data01/postgresql

    export PGDATA=/data01/postgresql/data

    export PATH=$PGHOME/bin:$PATH

    export MANPATH=$PGHOME/share/man:$MANPATH

    export LANG=en_US.utf8

    export DATE=`date +"%Y-%m-%d %H:%M:%S"`

    export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH

    alias rm='rm -i'

    alias ll='ls -lh'

    保存后使环境变量立即生效,否则initdb命令会找不到:

    source /home/postgres/.bash_profile

    2.9 初始化数据库

    initdb -D /data01/postgresql/data/

    djEvbXU5ekRaMEZXZF9XR0ZjVUZGMHZyZW15elo1MVlMT1F5eTBpR0xjbVU5eUdEWEh0Q09lV2lfcGFkS2pTTTlybmNlS1k4MlpDSF9GaXNpRFV2aDZhYzFfNl9ya2oxaXk1bVZqR01XNzhoSjQ9.jpg

    2.10 启动数据库

    su - postgres

    cd /home/postgres //logfile需要在postgres的用户目录下创建

    pg_ctl -D /data01/postgresql/data/ -l logfile start

    查看5432端口是否已经启动:

    netstat -nltp|grep 5432

    2.1-2.10,主库备库服务器上都要操作。

    2.11 主库修改/data01/postgresql/data/pg_hba.conf文件,允许备库IP通过复制用户访问数据库

    djEvbE1JVGtldUNKeHNzOUkzRkNhbGFUZHVmWmhSMDRDRjZPdVlHdTJMTnVIUWQ4aHNjNmNraDYxUHVqZEo3T2FUaG1zSGdONzVvNjdndTFLa1FETkFwV0ZfNl9ya2oxaXk1bVZqR01XNzhoSjQ9.jpg

    2.12 主库修改/data01/postgresql/data/postgresql.conf

    listen_addresses= '*'

    wal_level = replica

    max_connections = 10000

    archive_mode = on

    archive_command = 'cp %p /data01/postgresql/archive/%f'

    max_wal_senders= 10

    wal_keep_size = 1000 # in megabytes; 0 disables

    max_slot_wal_keep_size = 10 # in megabytes; -1 disables

    wal_sender_timeout = 120s # in milliseconds; 0 disables

    hot_standby = on

    2.13 修改完后重启主库服务

    pg_ctl -D /data01/postgresql/data/ -l logfile restart

    2.14 备库使用pg_basebackup命令将主节点的data同步过来

    pg_basebackup -h 192.XXX.XXX.208 -p 5432 -U postgres -P -X stream -D /data01/postgresql/data -R


    djEvQ1ZHd2NlUTlZM1F0RjlHbkxWaGdMNG1SbEFpdW12UThkTG5lTTUwTGYtZVZVNTZvY0VfTk44Ml9jZEJ4azFIdFJiaW9TZ3NQQWhNYkVYRm16UERwNmNRRzhXZ1diZGxVdGZkLVpEQUp6aGs9.gif

    END

    本文作者:李黄衍(上海新炬中北团队)

    本文来源:“IT那活儿”公众号

    [编辑:宋聪乔 &发表于江苏]
    [我要纠错]

    来源:本文内容搜集或转自各大网络平台,并已注明来源、出处,如果转载侵犯您的版权或非授权发布,请联系小编,我们会及时审核处理。
    声明:江苏教育黄页对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,文章版权及插图属于原作者。

    关键词: 准备工作 首先 安装 依赖 nbsp
    有价值
    0
    无价值
    0
    猜您喜欢
    最热文章

    暂不支持手机端,请登录电脑端访问

    正在加载验证码......

    请先完成验证