codecamp

PostgreSQL pg_standby

pg_standby用于支持创建一个温备数据库服务器。它被设计为一个可以随时投入生产的程序,以及一个可定制的模板供你进行特定的修改。

pg_standby被设计成一个等待着的restore_command,它被用来把一次标准的归档恢复变成一次温备操作。还需要一些其他的配置,所有这些配置都在主服务器手册中有相应的描述(见第 26.2 节)。

要配置一台后备服务器去使用pg_standby,可以把下面的内容放在postgresql.conf配置文件中:

restore_command = 'pg_standby archiveDir %f %p %r'

其中archiveDir是 WAL 段文件应该被存储的目录。

如果指定了restartwalfile(通常用%r宏指定),那么所有在逻辑上位于这个文件之前的 WAL 文件都将被从archivelocation中移除。这使需要被保留的文件数最小化,与此同时能够保持崩溃重启的能力。如果archivelocation对于这个特定后备服务器是一个瞬态区域,使用这个参数是合适的,但当 archivelocation 是一个长期 WAL 归档区域时则不是合适的。

pg_standby假定archivelocation是一个拥有服务器的用户可读的目录。如果指定了restartwalfile(或者-k),archivelocation目录必须也是可写的。

当主服务器失效时,有两种方式转移到一个温备数据库服务器:

智能失效备援

在智能失效备援中,服务器在应用归档中可用的所有 WAL 文件之后被提升。即便后备服务器落后于主服务器,这也会导致零数据丢失,但是如果有很多未应用的 WAL,在后备服务器准备好之前就需要比较长的时间。要触发一次智能失效备援,创建一个包含单词smart的触发文件,或者只创建一个空文件。

快速失效备援

在快速失效备援中,服务器被立即提升。归档中任何还未被应用的 WAL 文件将被忽略,并且这些文件中的所有事务都会丢失。要触发一次快速失效备援,创建一个触发文件并且把单词fast写在其中。pg_standby也能被配置为在一段定义好的区间内没有新 WAL 文件出现时自动执行一次快速失效备援。


PostgreSQL 服务器应用
PostgreSQL 外部项目
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

PostgreSQL SQL语言

PostgreSQL 服务器管理

PostgreSQL 客户端接口

PostgreSQL 服务器编程

PostgreSQL 参考

PostgreSQL 内部

PostgreSQL 附录

PostgreSQL 参考书目

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }