PostgreSQL Hot Standby的搭建
一、 简介:
二、系统环境
- master库操作
- 创建流复制用户repuser
CREATE USER repuser replication LOGIN CONNECTION LIMIT 3 ENCRYPTED PASSWORD 'li0924';# replication 做流复制的时候用到的一个用户属性,一般单独设定。# LOGIN 用户登录的属性;CREATE USER默认自带;所以LOGIN关键字可以略去。
wal_level = hot_standbymax_wal_senders = 1wal_keep_segments = 32# max_wal_senders 是slave库的节点数,有多少个slave库就设多少,# wal_keep_segments 默认值是16,是PG_XLOG下的日志文件数相关参数
host replication repuser 192.168.1.201/16 md5# 第二项必须填 replication;
4.重新启动主数据库,让配置生效:
pg_stop;pg_start
这个步骤就是一个数据库克隆的工作。
- slave库操作
1.在slave数据库的/data/pgdata/postgresql.conf文件中设置如下配置项:
hot_standby = on
2.在PGDATA目录下;也就这里的/data/pgdata;新建文件recovery.conf
standby_mode = 'on'primary_conninfo = 'host=192.168.1.202 port=5432 user=repuser password=li0924'trigger_file = '/data/pgdata/trigger_standby'
3.删除原先从master库上过来的/data/pgdata/postmaster.pid文件,
rm /data/pgdata/postmaster.pid
4.根据master库中的环境变量文件;修改slave库的postgres用户的环境变量 然后启动备库:
pg_start
四、验证工作
- 查看进程
master库
[postgres@sdserver40_210 ~]$ ps -ef | grep postgreroot 2021 556 0 15:18 pts/1 00:00:00 su - postgrespostgres 2022 2021 0 15:18 pts/1 00:00:00 -bashpostgres 2239 1 0 15:24 pts/1 00:00:00 /opt/pgsql95/bin/postgrespostgres 2249 2239 0 15:24 ? 00:00:00 postgres: checkpointer processpostgres 2250 2239 0 15:24 ? 00:00:00 postgres: writer processpostgres 2251 2239 0 15:24 ? 00:00:00 postgres: wal writer processpostgres 2252 2239 0 15:24 ? 00:00:00 postgres: autovacuum launcher processpostgres 2253 2239 0 15:24 ? 00:00:00 postgres: archiver process last was 00000006000000000000001E.00000028.backuppostgres 2254 2239 0 15:24 ? 00:00:00 postgres: stats collector processpostgres 3235 2239 0 15:54 ? 00:00:00 postgres: wal sender process repuser 183.60.192.229(40399) streaming 0/1F000D80
slave库
[postgres@sdserver40_222 pgdata]$ ps -ef | grep postgrespostgres 6856 1 0 15:54 pts/0 00:00:00 /opt/pgsql/bin/postgrespostgres 6863 6856 0 15:54 ? 00:00:00 postgres: startup process recovering 00000006000000000000001Fpostgres 6864 6856 0 15:54 ? 00:00:00 postgres: checkpointer processpostgres 6865 6856 0 15:54 ? 00:00:00 postgres: writer processpostgres 6866 6856 0 15:54 ? 00:00:00 postgres: wal receiver process streaming 0/1F000CA0postgres 6867 6856 0 15:54 ? 00:00:00 postgres: stats collector processroot 6922 30527 0 16:08 pts/0 00:00:00 su - postgrespostgres 6923 6922 0 16:08 pts/0 00:00:00 -bashpostgres 6974 6923 0 16:49 pts/0 00:00:00 ps -efpostgres 6975 6923 0 16:49 pts/0 00:00:00 grep postgres
- 数据验证
在master库操作
[postgres@sdserver40_210 ~]$ psql mydb repuserpsql (9.5.0)Type "help" for help.mydb=> \dList of relationsSchema | Name | Type | Owner--------+-------+---------------+----------public | dept | table | lottupublic | emp | foreign table | postgrespublic | test | table | lottupublic | trade | table | lottu(4 rows)mydb=> create table t_lottu (id int primary key,name varchar(20));CREATE TABLEmydb=> \dList of relationsSchema | Name | Type | Owner--------+---------+---------------+----------public | dept | table | lottupublic | emp | foreign table | postgrespublic | t_lottu | table | repuserpublic | test | table | lottupublic | trade | table | lottu(5 rows)mydb=> insert into t_lottu values (1001,'lottu');INSERT 0 1mydb=> insert into t_lottu values (1002,'vincent');INSERT 0 1mydb=> insert into t_lottu values (1003,'rax');INSERT 0 1mydb=> select * from t_lottu;id | name------+---------1001 | lottu1002 | vincent1003 | rax(3 rows)
登录slave库查看数据
[postgres@sdserver40_222 pgdata]$ psql mydb repuserpsql (9.5.0)Type "help" for help.mydb=> select * from t_lottu;id | name------+---------1001 | lottu1002 | vincent1003 | rax(3 rows)mydb=> delete from t_lottu where id = 1003;
ERROR: cannot execute DELETE in a read-only transaction
参考博客 --http://my.oschina.net/Kenyon/blog/54967
PostgreSQL Hot Standby的搭建的更多相关文章
- postgresql数据库异步流复制hot standby环境搭建
生命不息,test不止. 最近组里面修改了几个postgresql的bug,要进行回归测试,除了前面提到的WAL的RT测试和Mirroring Controller的RT测试,还要测试下postgre ...
- PostgreSQL Hot Standby的主备切换
一. 简介: PG在9.*版本后热备提供了新的一个功能,那就是Stream Replication的读写分离,是PG高可用性的一个典型应用.其中备库是只读库:若主库出现故障:备库这个 ...
- Postgresql监控pgwatch的搭建
一,需要环境: You will need a handful of components to make this work: - Apache (webserver) #apache搭建web页面 ...
- Logical standby database 搭建(配置)
说明 Logical standby 数据库是通过Physical standby数据库转换的.本Logical standby是通过之前创建的Physical standby转换的. Physica ...
- postgresql 10.5 主从复制--搭建测试
env: role master slave host pg1 pg2 ip 11 12 pg-version 10.5 10.5 1 初始化查看 [ceiec@localhost ~]$ df -h ...
- postgresql集群的搭建
目录 架构图 部署详情 postgresql的安装与配置 pgpool的安装与配置 写在安装前 postgresql是一款很强大的数据库,具体有多强大呢,请谷歌... 网上的相关资料不是很多,参考了大 ...
- ORACLE Physical Standby DG搭建
主库: 一:强制force logging: alter database force logging; 二:开启主库的归档模式 三:主库添加standby redo log,比redo日志组多一组: ...
- Nginx+PostgreSQL+Django+UWSGI搭建
最近因为项目上的需要开始大量使用nginx,因此也想趁机将以前常用的django+apache的架构换成django+nginx.常见的 django webapp 部署方式采用FCGI 或 WSGI ...
- postgreSQL 时间线
“时间线”(Timeline)是PG一个很有特色的概念,在备份恢复方面的文档里面时有出现.但针对这个概念的详细解释却很少,也让人不太好理解,我们在此仔细解析一下. 时间线的引入 为了理解引入时间线的背 ...
随机推荐
- iOS 自定义UITableViewCell
#import <UIKit/UIKit.h> @interface AppDelegate : UIResponder <UIApplicationDelegate> @pr ...
- C# 以管理员方式启动Winform,进而使用管理员控制Windows Service
问题起因: 1,) 问题自动分析Windows服务在正常运行时,确实会存在程序及人为原因导致该服务停止.为了在应用程序使用时确保该服务正常运行,于是有了该讨论主题. 2,)一般账户(尽管是管理员组账户 ...
- 如何用Java解析CSV文件
首先看一下csv文件的规则: csv(Comma Separate Values)文件即逗号分隔符文件,它是一种文本文件,可以直接以文本打开,以逗号分隔.windows默认用excel打开.它的格式包 ...
- VS的基本学习
2016.4.11 下午 一.数据类型 1.基本数据类型 注:字节:例{10221021 8位数为一个字节 8b=1B} 1).整形(整数) ① short(比Int短 Int16){2 ...
- SQL 2008 数据库只读 修改
先对数据库分离 数据库鼠标右键->任务->分离 将UsersDB.mdf UsersDB_log.LDF文件 属性->安全->编辑 两个文件的都要更改权限 ...
- 转:Python 的 Socket 编程教程
这是用来快速学习 Python Socket 套接字编程的指南和教程.Python 的 Socket 编程跟 C 语言很像. Python 官方关于 Socket 的函数请看 http://docs. ...
- Excel 生成sql语句
CONCATENATE 拼接字符串 IF 不能跟 CONCATENATE 连用,所以可以通过建立新列去完成更高的需求 新建一列 cw=CONCATENATE("insert into biC ...
- vmware ubuntu server 联网
查看本地ip 直接输入命令 ifConfig 只有 lo ,而没有eth0和eth1: 输入命令ifconfig -a,lo.eth0皆存在: 但是eth0 完全没有ip地址等,可以通过修改 /etc ...
- cordova3.X 运用grunt生成plugin自定义插件骨架
Cordova提供了一组设备相关的API,通过这组API,移动应用能够以JavaScript访问原生的设备功能,如摄像头.麦克风等.Cordova还提供了一组统一的JavaScript类库,以及为这些 ...
- 在Tomcat里使用配置连接池连接数据库
一:首先在Tomcat下的conf/context.xml文件里的contenx标签里配置数据源: <Resource name="jdbc/zzz" auth=" ...