PostgreSQL 9.3 Have pg_basebackup --write-recovery-conf output a minimal recovery.conf

Have pg_basebackup --write-recovery-conf output a minimal recovery.conf (Zoltán B?sz?rményi, Magnus Hagander)
This simplifies setting up a standby server.

个人感觉没有太大的意义.

[测试]

-- 命令行帮助

pg93@db-172-16-3-33-> pg_basebackup --help
pg_basebackup takes a base backup of a running PostgreSQL server.

Usage:
  pg_basebackup [OPTION]...

Options controlling the output:
  -D, --pgdata=DIRECTORY receive base backup into directory
  -F, --format=p|t       output format (plain (default), tar)
  -R, --write-recovery-conf
                         write recovery.conf after backup
  -x, --xlog             include required WAL files in backup (fetch mode)
  -X, --xlog-method=fetch|stream
                         include required WAL files with specified method
  -z, --gzip             compress tar output
  -Z, --compress=0-9     compress tar output with given compression level

General options:
  -c, --checkpoint=fast|spread
                         set fast or spread checkpointing
  -l, --label=LABEL      set backup label
  -P, --progress         show progress information
  -v, --verbose          output verbose messages
  -V, --version          output version information, then exit
  -?, --help             show this help, then exit

Connection options:
  -d, --dbname=CONNSTR   connection string
  -h, --host=HOSTNAME    database server host or socket directory
  -p, --port=PORT        database server port number
  -s, --status-interval=INTERVAL
                         time between status packets sent to server (in seconds)
  -U, --username=NAME    connect as specified database user
  -w, --no-password      never prompt for password
  -W, --password         force password prompt (should happen automatically)

-- 使用pg_basebackup并使用-R选项

pg93@db-172-16-3-33-> pg_basebackup -D /pgdata/digoal/1921/data03/test -F p --write-recovery-conf
WARNING:  skipping special file "./.s.PGSQL.1999"
NOTICE:  pg_stop_backup complete, all required WAL segments have been archived
pg93@db-172-16-3-33-> cd /pgdata/digoal/1921/data03/test/

-- 自动生成的recovery.conf文件.

pg93@db-172-16-3-33-> cat recovery.conf
standby_mode = 'on'
primary_conninfo = 'user=''postgres'' port=''1999'' sslmode=''prefer'' sslcompression=''1'' '

[参考]
1. src/bin/pg_basebackup/pg_basebackup.c

00071 /* Contents of recovery.conf to be generated */
00072 static PQExpBuffer recoveryconfcontents = NULL;
...
00680             if (basetablespace && writerecoveryconf)
00681             {
00682                 char        header[512];
00683                 int         padding;
00684
00685                 tarCreateHeader(header, "recovery.conf", NULL,
00686                                 recoveryconfcontents->len,
00687                                 0600, 04000, 02000,
00688                                 time(NULL));
00689
00690                 padding = ((recoveryconfcontents->len + 511) & ~511) - recoveryconfcontents->len;
00691
00692                 WRITE_TAR_DATA(header, sizeof(header));
00693                 WRITE_TAR_DATA(recoveryconfcontents->data, recoveryconfcontents->len);
00694                 if (padding)
00695                     WRITE_TAR_DATA(zerobuf, padding);
00696             }
...
01190 /*
01191  * Write a recovery.conf file into the directory specified in basedir,
01192  * with the contents already collected in memory.
01193  */
01194 static void
01195 WriteRecoveryConf(void)
01196 {
01197     char        filename[MAXPGPATH];
01198     FILE       *cf;
01199
01200     sprintf(filename, "%s/recovery.conf", basedir);
01201
01202     cf = fopen(filename, "w");
01203     if (cf == NULL)
01204     {
01205         fprintf(stderr, _("%s: could not create file \"%s\": %s\n"), progname, filename, strerror(errno));
01206         disconnect_and_exit(1);
01207     }
01208
01209     if (fwrite(recoveryconfcontents->data, recoveryconfcontents->len, 1, cf) != 1)
01210     {
01211         fprintf(stderr,
01212                 _("%s: could not write to file \"%s\": %s\n"),
01213                 progname, filename, strerror(errno));
01214         disconnect_and_exit(1);
01215     }
01216
01217     fclose(cf);
01218 }
时间: 2024-09-20 11:48:01

PostgreSQL 9.3 Have pg_basebackup --write-recovery-conf output a minimal recovery.conf的相关文章

全志 10 砖 刷死 救活-全志A10方案的导航一体机,刷错recovery后开机自动进recovery,无法进系统了

问题描述 全志A10方案的导航一体机,刷错recovery后开机自动进recovery,无法进系统了 搞来一个安卓导航一体机,支持FM发射,蓝牙通话,带记录仪镜头的.查了一下CPU是全志A10 1GHZ,图像处理器是mali-400.系统内置的一些软件不大好用,我想直接卸载后替换其他的软件.于是想进recovery备份原系统. 原装的recovery很简单不支持备份恢复,网上找了一个全志A10通用recovery,刷入后杯具了,只能进recovery,在recovery菜单里挂载system失败

Android5.0 Recovery源代码分析与定制---recovery UI相关(二)

       http://blog.csdn.net/morixinguan/article/details/72858346引用我的代码片 在上一篇文章中,我们大致的介绍了recovery的启动流程,那么,recovery升级或者做双清的时候,那些图形动画又是如何实现的呢?我们来看看代码:      以下这段代码位于recovery/screen_ui.cpp void ScreenRecoveryUI::Init() { gr_init(); gr_font_size(&char_widt

oppo r7怎么进入recovery模式 oppo r7进入recovery模式方法

  方法一,最原始的方法也就是Android系统自带的方法 手机关机,后再按下"音量下键"+"电源键",看到开机标志后我们立即松开电源按键,但"音量下键"不能松手,之后再过几秒即可进入Recovery模式. 第二种 在电脑如果安装了 卓大师 我们可以把手机与电脑连接,然后在桌大师中点击"实用工具"找到重启到recovery模式即可: 第三种:此方法是支持要rom包的支持 在oppo r7 手机中我们点击"设置-开发者

vivo X9怎么进入recovery?vivo X9进入recovery方法

1:先把手机彻底关闭手机,手机在关机状态下同时按住电源键和音量上键,直到出现vivo的字样再松开,手机自动进入recovery模式. 2:进入recovery模式之后进行双清,选择[清除数据]进入选择界面,有清除缓存.清除所有数据两个选项: 3:先进行[清除缓存数据]: 4:再行[清除所有数据]这个就是恢复出厂设置: 5:回到recovery主界面选择[重启]就可以了.  

小米4如何进入recovery模式?小米4进入recovery模式方法介绍

方法一:手机能进入系统进入Recovery模式 我们在小米4系统桌面找到"工具"然后进入之后找到"系统更新" 在这个界面我们按一下"菜单键" --> 之后选择 重启到Recovery, 这样手机重启就可以直接进入到Recovery模式了哦. 方法二 : 手机进不了系统了进入recovery模式教程   利用传统的方法,我们强制按下"小米4音量+键"和"电源键",大约3s左右,即可进入小米4Recove

如何用好PostgreSQL的备份与恢复?

如何用好PostgreSQL的备份与恢复? 作者 赵成 日期 2017-10-22 标签 PostgreSQL , 数据库高可用 , 备份与恢复 高可用性是数据库的关键指标,简单说就是要做到故障时间短,数据不丢失,能够回退到指定位置(时间/事务).实现高可用的基础是数据库的备份与恢复技术. PostgreSQL备份与恢复操作涉及的参数和相关文件较多,内部逻辑关系较复杂,恢复分类方式容易混淆,这些都会影响到PostgreSQL高可用方案的实现. 本文首先介绍通常的数据库故障场景与处理方案,然后通过

一天学会PostgreSQL应用开发与管理 - 8 PostgreSQL 管理

本章大纲 一.权限体系 1 逻辑结构 2 权限体系 3 schema使用 , 特别注意 4 用户 5 public 6 如何查看和解读一个对象的当前权限状态 二.索引介绍 1 索引有什么用? 2 索引的类型 3 索引合并扫描 4 表膨胀检查 5 检查膨胀 6 索引维护 三.系统配置 1 存储.文件系统规划 2 网络规划 3 CPU评估 4 内核配置 5 资源限制 6 防火墙配置 四.数据库初始化 1 initdb 介绍 2 postgresql.conf参数配置 3 pg_hba.conf数据库

PostgreSQL HOT STANDBY using log shipping

PostgreSQL HOT STANDBY by log shipping 测试:一.准备硬件1. 主节点硬件配置DISK : 146GB*6MEM : 14GBCPU : 2.83GHz*82. standby节点硬件配置DISK : 146GB*4MEM : 8GBCPU : 2.0GHz*8 二.准备环境1. 系统Red Hat Enterprise Linux Server release 5.5 (Tikanga) x642. 时钟同步8 * * * * /usr/sbin/ntpd

PostgreSQL integration with pg_matlab

pg_matlab是一个pg插件, 并非一般的过程语言. 使用pg_matlab创建的函数必须转换成c代码后, 编译并在数据库中使用共享库的方式调用. pg_matlab下载和安装 :  wget http://www.cybertec.at/download/pg_matlab/pg_matlab-v2.tar.gz tar -zxvf pg_matlab-v2.tar.gz mv pg_matlab /opt/soft_bak/postgresql-9.3beta2/contrib/ [ro