zoukankan      html  css  js  c++  java
  • 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中定义的文件。大多数情况下,这是完全正常的,而且直到目前为止,足够快。

  • 相关阅读:
    小程序添加本地图片
    实现预览大图效果
    react-native 使用localhost报 Network request failed
    记两点错误reac-native
    react-native 进行调试
    微信公众号微信支付遇到的一些问题
    关于ionic3做微信公众号
    [c#]Extesion method
    值得收藏的27个机器学习的小抄
    ODBC Driver Development
  • 原文地址:https://www.cnblogs.com/songyuejie/p/4743512.html
Copyright © 2011-2022 走看看