设为首页 加入收藏

TOP

pgsql主备搭建及切换(一)
2019-09-03 03:38:15 】 浏览:97
Tags:pgsql 搭建 切换

二、主从搭建

2.1测试目标

测试postgresql主从搭建安装过程

2.2环境准备

实例级别的复制

流复制主库可读写,但从库只允许查询不允许写人, 而逻辑复制的从库可读写

 

流复制实验环境

主机

主机名

Ip地址

操作系统

Postgresql版本

主节点

pgsql

192.168.231.131

Redhat7.2

PostgreSQL10

备节点

pgstandby

192.168.231.132

Redhat7.2

PostgreSQL10

 

在 pgsql 和 pgstandby上创建操作系统用户和相关目录,如下所示:

# groupadd pgsql

# useradd pgsql -g pgsql

# passwd pgsql

# mkdir -p /database/pg10/pg_root

# mkdir -p /database/pg10/pg_tbs

# chown -R pgsql:pgsql /database/pg10

 

/database/pg10/pg_root 目录存储数据库系统数据文件,

/database/pg10/pg_tbs 存储用户自定义表空间文件。

设置 postgres 操作系统用户环境变量,

/home/postgres/.bash _profile 文件添加以下内容:

export PGPORT=5432

export PGUSER=pgsql

export PGDATA=/database/pg10/pg_root

export LANG=en_US.utf8

export PGHOME=/usr/pgsql-10

export LD_LIBRARY_PATH=$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib

export PATH=$PGHOME/bin:$PATH:.

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

 

2.3初始化数据库

[pgsql@pgstandby ~]$ initdb -D /database/pg10/pg_root -E UTF8 --locale=C -U pgsql -W   (初始化创建数据库实例)

-A  authmethod这个选项声明本地用户在 pg_hba.conf 里面使用的认证方法。除非你相信所有本地用户,否则不要使用 trust(缺省)。

-D  directory这个选项声明数据库集群应该存放在哪个目录。这是 initdb 需要的唯一信息,但是你可以通过设置 PGDATA 环境变量来避免键入,这样做可能方便一些,因为稍后数据库服务器(postgres)可以通过同一个变量找到数据库目录。

-E encoding 选择模板数据库的编码方式。这将是你以后创建的数据库的缺省编码方式,除非你创建数据库时覆盖了它。缺省是从区域设置中获得的,如果没有区域设置,就是 SQL_ASCII 。

--locale=locale 为数据库集群设置缺省的区域。如果没有声明这个选项,那么区域是从 initdb 运行的环境中继承过来的。

-U username 选择数据库超级用户的用户名。缺省是运行 initdb 的用户的有效用户。超级用户的名字是什么并不重要,但是可以选择习惯的名字 postgres ,即使操作系统的用户名字不一样也没关系。

-W 令 initdb 提示输入数据库超级用户的口令。如果你不准备使用口令认证,这个东西并不重要。否则你将不能使用口令认证,直到你设置了口令。

--pwfile=filename令 initdb 从一个文件里读取数据库超级用户的口令。该文件的第一行将被当作口令使用。

其它不常用的参数还有:

-d 从初始化后端打印调试输出以及一些其它的一些普通用户不太感兴趣的信息。初始化后端是 initdb 用于创建系统表的程序。这个选项生成大量非常枯燥的输出。

-L directory 告诉 initdb 到哪里找初始化数据库所需要的输入文件。通常是不必要的。如果需要你明确声明的话,程序会提示你输入。

-n 缺省时,当 initdb 发现一些错误妨碍它完成创建数据库集群的工作时,它将在检测到不能结束工作之前将其创建的所有文件删除。这个选项禁止任何清理动作,因而对调试很有用。

 

 

之后配置 $PGDATA/postgresql.conf 设置以下参数:

listen_addresses = ‘*’             

wal_level = replica # minimal, replica, or logical

archive_mode = on         # enables archiving; off, on, or always

archive_command = ’/ bin/date’   # command to use to archive a logfile segment

max_wal_senders = 10 # max number of walsender processes

wal_keep_segments = 512     # in logfile segment s, 16MB each; 0 disables

hot_standby = on

 

listen_addresses参数指定哪些ip可以访问,’*’代表所有ip可以访问数据库。

Wal_level参数控制WAL日志信息的输出级别,有minimal、replica、logical三种模式,minimal记录的WAL日志信息最少,除了记录数据库异常关闭需要恢复时的WAL信息外,其他操作信息都不记录;replica记录的WAL信息比minimal信息多些,会记录支持WAL归档、复制和备库中启用只读查询等操作所需的WAL信息;logical记录的WAL日志信息最多,包含了支持逻辑解析(10版本的新特性,逻辑复制使用这种模式,本章后面会介绍)所需的WAL;replica模式记录的WAL信息包含了minimal记录的信息,logical模式记录的WAL信息包含了replica记录的信息,此参数默认值为replica,调整此参数需重启数据库生效,开启流复制至少需要设置此参数为replica级别

 

Archive_mode参数控制是否启用归档,off表示不启用归档,on表示启用归档并使用archive_command参数的配置命令将WAL日志归档到归档存储上,此参数设置后需重启数据库生效,这里通常设置成

首页 上一页 1 2 3 4 5 6 下一页 尾页 1/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Navicat Premium12.0 常用快捷键 下一篇文件被占用导致Hive Load文件不成..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目