NAME
pg_staging - Prepare a staging environment from http accessible backups
SYNOPSIS
[GLOBAL]
[database_name.env]
DESCRIPTION
Configuration file is a .ini containing several sections: first a
GLOBAL section containing common options to the following sections,
then a section per target database.
SECTIONS
The [DEFAULT] section allows to provide default values for any setting
describe here, that you can override in any of the specific sections.
Each specific section represent a target database to restore. The
options will allow to say from which backup and on which host. The host
knob is used in commands such as pg_restore, scp and ssh, so can be
either an ip address or a hostname (resolv.conf applies).
OPTIONS
backup_host
Which host to connect to to fetch the backup file. HTTP only.
backup_base_url
Path leading to the backup for the section’s database. The database
dump file will get expanded to dbname.date -I.dump, this is not
(yet?) configurable as of version 0.5.
dumpall_url
Path to the cluster pg_dumpall -g accompanying file, e.g.
8.2-main.globals.sql.
host
Target where to restore the dump file and manage pgbouncer setup.
dbname
Database name, will get appended by the backup date to form a
dbname_YYYYMMDD name.
dbowner
Owner of the database to get restored.
dbuser
Maintenance database role used in the connections to create or drop
databases.
maintdb
Maintenance database to connect to, usually postgres.
db_encoding
Database encoding to use in the following statement:
CREATE DATABASE ... WITH OWNER "..." ENCODING ´...´;
postgres_port
PostgreSQL port to use in pgbouncer configuration file.
postgres_major
Major version of postgresql, allows to choose the pg_restore binary
with the default settings.
pgbouncer_port
pgbouncer port to connect to, used for all pg_staging operations.
pgbouncer_conf
Configuration file name for pgbouncer, e.g.
+/etc/pgbouncer/pgbouncer.ini/
remove_dump
boolean (True or False) to control if pg_staging removes the dump
file after restore.
keep_bases
How many databases to keep arround, pg_staging drops less recent
databases. Not Yet Implemented as of 0.5.
auto_switch
boolean to control if pg_staging switches pgbouncer configuration
at restore time
use_sudo
boolean, used when invoking staging-client.sh
pg_restore
/usr/lib/postgresql/%(postgres_major)s/bin/pg_restore
pg_restore_st
boolean, use --single-statement option (-1) in pg_restore.
restore_vacuum
boolean, when true the restore command will VACUUM ANALYZE the
database.
restore_jobs
Number of working process to use at the same time while restoring.
Will set the -j option to pg_restore and will not check for you
that you’re using a pg_restore client version 8.4 or newer.
replication
configuration filename where to setup the replication options.
tmpdir
Directory where to fetch backup files, defaults to /tmp. Command
line argument -t will override .ini setting.
sql_path
Directory where to dispose SQL files to be sourced with the psql
utility, in alphabetical order. This directory may contain a pre
and a post subdirectories containing files following the shell
*.sql global pattern. No subdirectory of pre and post will get
walked into. The name of the section using the files will always
get expanded to the given sql_path.
schemas
List of schema (comma separated) to restore. If present, any schema
not listed here nor in schemas_nodata will get filtered out from
the pg_restore catalog.
search_path
List of schemas (comma separated) to add to the database
search_path, using the SQL command +ALTER DATABASE self.dbname SET
search_path TO +.
schemas_nodata
List of schema (comma separated) to restore without content. The
pg_restore catalog TABLE DATA sections will get filtered out.
EXAMPLE
[DEFAULT]
backup_host = backup1.backbone
dbuser = postgres
maintdb = postgres
postgres_port = 5432
postgres_major = 8.3
pgbouncer_port = 6432
pgbouncer_conf = /etc/pgbouncer/pgbouncer.ini
remove_dump = True
keep_bases = 2
auto_switch = True
use_sudo = True
pg_restore = /usr/lib/postgresql/%(postgres_major)s/bin/pg_restore
pg_restore_st = True
restore_vacuum = True
restore_jobs = 1
replication = replication.ini
[allopass_db.dev]
backup_base_url = /PostgreSQL/allopass_db/nightly/
dumpall_url = /PostgreSQL/clusters/bdd.allopass/8.2-main.globals.sql
host = bdd.allopass.dev
postgres_major = 8.2
dbname = allopass_db
dbowner = root
schemas = public, payment, utils, jdb
SEE ALSO
pg_staging(1)
AUTHOR
pg_staging is written by Dimitri Fontaine <dim@tapoueh.org[1]>.
NOTES
1. dim@tapoueh.org
mailto:dim@tapoueh.org
[FIXME: source] 11/24/2009