PostgreSQL Replication之第四章 设置异步复制(3)
4.3 slave到master的切换
如果您想扩展读或您想做一个数据备份,一个 slave是件美好的事情。但是,slave可能不会一直是slave。在有些时候,您可能需要把slave转换为master。PostgreSQL提供了一些简单的方法来做到这一点。第一个也是最有可能的最便捷的方法把一个slave转换为一个master是使用pg_ctl:
iMac:slavehs$ pg_ctl -D . promote
server promoting
iMac:slavehs$ psql test
psql (9.2.4)
Type "help" for help.
test=# CREATE TABLE sample (id int4);
CREATE TABLE
promote命令会给postmaster进程发送信号并把您的slave转换为master。一旦转换完成,您就可以连接和创建对象。
除了promote命令,还有第二个选项来把slave转换为master。尤其是当您试图把PostgreSQL和一个您所选择的高可用软件整合到一起的时候,创建一个简单的文件比调用init脚本更容易。
要使用基于文件的方法,您可以添加trigger_file 命令到您的 recovery.conf文件。
trigger_file = '/tmp/start_me_up.txt'
在我们的例子中,PostgreSQL将等待一个文件/tmp/start_me_up.txt 来使条件成立。这个文件的内容是完全不相干的;PostgreSQL简单地检查文件是否存在,如果存在,就会停止恢复,把自己转换为master。
创建一个空文件是相当简单的工作:
iMac:slavehs$ touch /tmp/start_me_up.txt
数据库系统将会回应新文件start_me_up.txt
FATAL: terminating walreceiver proced fire up:
LOG: trigger file found: /tmp/start_ss due to
administrator command
LOG: redo done at 0/50000E0
LOG: selected new timeline ID: 2
LOG: archive recovery complete
LOG: database system is ready to accept connections
LOG: autovacuum launcher started
PostgreSQL将会每五秒钟一次检查您已经在recovery.conf中定义的文件。大多数情况下,这是完全正常的,而且直到目前为止,足够快。
PostgreSQL Replication之第四章 设置异步复制(3)的更多相关文章
- PostgreSQL Replication之第四章 设置异步复制(1)
执行完您的第一个即时恢复(PITR,Point-In-Time-Recovery),我们准备在一个真正的复制设置上工作.在本章,您将学会如何设置异步复制和流.我们的目标是确保您可以实现更高的高可用和更 ...
- PostgreSQL Replication之第四章 设置异步复制(2)
4.2 配置级联复制 正如您在本章已经看到的,设置流复制真的很容易.只需要设置几个参数,做一个基础备份,并享受您的复制设置. 在许多情况下,这种情况更有一点点微妙.在这个例子中我们假设:我们要使用一个 ...
- PostgreSQL Replication之第四章 设置异步复制(4)
4.4 基于流和基于文件的恢复 生活并不总只是黑色或白色:有时也会有一些灰色色调.对于某些情况下,流复制可能恰到好处.在另一些情况下,基于文件复制和PITR是您所需要的.但是也有许多情况下,您既需要流 ...
- PostgreSQL Replication之第四章 设置异步复制(8)
4.8 处理时间线 时间线是一个您必须要知道的一个重要的概念,尤其是当您规划一个大型的设置的时候. 那么,什么是时间线呢?事实上,它是XLOG的一个分支.正常情况下,刚设置的一个数据库实例使用的时间线 ...
- PostgreSQL Replication之第四章 设置异步复制(7)
4.7 冲突管理 在PostgreSQL中,流复制数据仅在一个方向流动.XLOG由master提供给几个slave,这些slave消耗事务日志并为您提供一个较好的数据备份.您可能想知道这怎么会导致冲突 ...
- PostgreSQL Replication之第四章 设置异步复制(6)
4.6 有效的清理和恢复结束 最近几年, recovery.conf 已经变得越来越强大了.早在初期(在 PostgreSQL 9.0之前), 仅有 restore_command 和一些 recov ...
- PostgreSQL Replication之第四章 设置异步复制(5)
4.5 使流复制更健壮 当连接到master时,slave要做的第一件事情是赶上master.但是,这会一直工作吗?我们已经看到,我们可以使用由基于流和基于文件组成的混合设置.这给了我们一些额外的安全 ...
- PostgreSQL Replication之第五章 设置同步复制(1)
到目前为止,我们已经处理了基于文件的复制(或日志传送)和简单的基于流复制的设置.在两种情况中,在master上事务被提交之后,数据被提交,由slave接收.在master提交和slave实际上完全地接 ...
- PostgreSQL Replication之第五章 设置同步复制(2)
5.2 理解实际影响和性能 在本章中,我们已经讨论了实际影响以及性能影响.但是,有什么好的理论性的例子吗?让我们做一个简单的基准测试,看看复制是怎么做的.我们做这样的测试来为您显示各种耐久性的级别不只 ...
随机推荐
- Python菜鸟晋级12----多线程
Python 多线程 多线程类似于同一时候执行多个不同程序,多线程执行有例如以下长处: 使用线程能够把占领长时间的程序中的任务放到后台去处理. 用户界面能够更加吸引人.这样比方用户点击了一个butto ...
- MVVM 中 ViewModelBase和 CommandBase
public class ViewModelBase : INotifyPropertyChanged , IDisposable { public virtual string DisplayNam ...
- JAVA设计模式之【适配器模式】
适配器模式 当不需要实现一个接口所提供的所有方法时,可先设计一个抽象类该接口,并为接口每个方法提供一个默认实现 该抽象类的子类可以选择性地覆盖父类的某些方法来实现需求 角色 适配者接口 通常在接口中声 ...
- iOS (封装)一句话调用系统的alertView和alertController
前言: 本文仅作参考存留,请用新版封装:iOS 更加优雅便捷的UIAlertView/UIAlertController封装使用 UIAlertController是iOS8.0之后出来的新方法,其将 ...
- POJ 3693 后缀数组+RMQ
思路: 论文题 后缀数组&RMQ 有一些题解写得很繁 //By SiriusRen #include <cmath> #include <cstdio> #includ ...
- How To Do @Async in Spring--转
原文地址:http://www.baeldung.com/spring-async 1. Overview In this article, we’ll explore the asynchronou ...
- servlet中怎么注入service
在工作中使用到spring的mvc框架,分为controller/service/dao三个层次.偶尔会用到servlet替换掉controller,这就遇到如何在servlet中使用注入到sprin ...
- SpringBoot(三) SpringBoot中的日志配置
SLF4J Spring Boot在所有内部日志中使用Commons Logging,但是默认配置也提供了对常用日志的支持,如:Java Util Logging,Log4J, Log4J2和Logb ...
- Android 国际区号注册手机号编码 以及常用城市列表
附上 国际区号编码:我是定义到arrays.xml里面了 <?xml version="1.0" encoding="utf-8"?> <re ...
- (2016北京集训十四)【xsy1556】股神小D - LCT
题解: 题解居然是LCT……受教了 把所有区间按照端点排序,动态维护目前有重叠的区间,用LCT维护即可. 代码: #include<algorithm> #include<iostr ...