• Centos7 yum安装postgresql 9.5


    添加RPM

    yum install https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/pgdg-centos95-9.5-3.noarch.rpm
    

    安装PostgreSQL 9.5

    yum install postgresql95-server postgresql95-contrib
    

    初始化数据库

    /usr/pgsql-9.5/bin/postgresql95-setup initdb
    

     开机启动

    systemctl enable postgresql-9.5.service
    

     启动数据库服务

    systemctl start postgresql-9.5.service
    

    查询版本

    psql --version
    

    修改用户密码

    su - postgres
    psql -U postgres
    ALTER USER postgres WITH PASSWORD '123456'
    q
    

     

    postgresql9.5主从复制

    系统版本

    主机名

    IP地址

    postgresql版本

    角色

    centos7.6

    postgresql-master

    192.168.216.130

    9.5.18

    主库

    centos7.6

    postgresql-slave

    192.168.216.129

    9.5.18

    从库

    说明:两台服务器都已经提前用yum方式安装好了postgresql 9.5,注意这里从库不需要进行初始化及启动服务,本文档配置的是主从复制,主库可以读写,从库只能读取不能写入数据。

    主库配置:

    cat >>/var/lib/pgsql/9.5/data/postgresql.conf <<EOF
    
    wal_level = hot_standby     #(默认是minimal)
    
    max_wal_senders=2           #(默认是0)
    
    wal_keep_segments=64        #(默认是0)
    
    EOF
    

    说明

    wal_level表示启动搭建Hot Standby,max_wal_senders则需要设置为一个大于0的数,它表示主库最多可以有多少个并发的standby数据库,而最后一个wal_keep_segments也应当设置为一个尽量大的值,以防止主库生成WAL日志太快,日志还没有来得及传送到standby就被覆盖,但是需要考虑磁盘空间允许,一个WAL日志文件的大小是16M

    如上图,一个WAL日志文件是16M,如果wal_keep_segments设置为64,也就是说将为standby库保留64个WAL日志文件,那么就会占用16*64=1GB的磁盘空间,所以需要综合考虑,在磁盘空间允许的情况下设置大一些,就会减少standby重新搭建的风险。接下来还需要在主库创建一个超级用户来专门负责让standby连接去拖WAL日志

    创建同步用户

    postgres=# create user rep1 superuser password '123456';
    

     修改配置文件,允许从库服务器连接主库去拖WAL日志数据

    vim /var/lib/pgsql/9.5/data/pg_hba.conf
    
    host     replication     rep1            192.168.216.0/24        md5
    

      

     这里需要配置监听地址,因为默认监听本地

    vi /var/lib/pgsql/9.5/data/postgresql.conf
    listen_addresses = '192.168.216.130' 
    

      

    重启服务

    systemctl restart postgresql-9.5.service
    

     从库配置:

    执行以下命令,从主库备份数据

    /usr/pgsql-9.5/bin/pg_basebackup -h 192.168.216.130 -U rep1 -F p -x -P -R -D /var/lib/pgsql/9.5/data/ -l rep_backup
    

    备份过程实际上就是从主库的data目录里物理拷贝数据的过程。

    参数说明

    -F 指定了输出的格式,支持p(原样输出)或者t(tar格式输出)。

    -x 表示备份开始后,启动另一个流复制连接从主库接收WAL日志。

    -p 表示允许在备份的过程中实时的打印备份的进度。

    -R 表示会在备份结束后自动生成recovery.conf文件,这样就避免了手动创建。

    -D 指定把备份写到哪个目录,注意:在做基础备份之前从库的数据目录需要手动清空。

    -l 表示指定一个备份的标识。

    由于拷贝过来的文件属主是root这里需要更改属主和组

    chown -R postgres.postgres /var/lib/pgsql/9.5/data/
    

     修改从库的配置文件

    vim /var/lib/pgsql/9.5/data/postgresql.conf
    
    247 #hot_standby = off          # "on" allows queries during recovery
    
    248 hot_standby = on    #添加此行
    

     注意这里59行监听地址需要进行注释,由于拷贝主库的/data下的所有文件,因此这里需要修改

     

    启动从库

    systemctl start postgresql-9.5.service
    

     测试:

    从库写入测试:

    在主库上创建一个test表,同时在从库上进行查询

    在从库上进行查询:如下图所示

     安装可参考:https://blog.51cto.com/wn2100/2239518

  • 相关阅读:
    SpringBoot + redis + @Cacheable注解实现缓存清除缓存
    Linux常用命令
    Java8 Stream分组
    VMware CentOS网络配置(局域网其它主机可访问Linux虚拟机)
    Jenkins实现自动打包,MAVEN打包,Shell脚本启动
    Docker常用命令,Docker安装Nginx、Redis、Jenkins、tomcat、MySQL
    Postman配置Pre-request scripts预请求对请求进行AES加密
    《Java并发编程的艺术》并发编程的基础(四)
    linux shell的创建与启动
    《Java并发编程的艺术》Java内存模型(三)
  • 原文地址:https://www.cnblogs.com/caidingyu/p/11285882.html
Copyright © 2020-2023  润新知