逻辑备份
postgres=# select * from t; id | name ----+------ 1 | http 2 | qdds (2 rows) postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | template0 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres template1 | postgres | UTF8 | en_US.UTF-8 | en_US.UTF-8 | =c/postgres + | | | | | postgres=CTc/postgres (3 rows) postgres=# \d List of relations Schema | Name | Type | Owner --------+------+-------+---------- public | t | table | postgres (1 row) pg_dump -p 5432 --inserts --column-inserts -d postgres | gzip > /u01/pgsql/backup/dump.sql.gz
逻辑恢复
[postgres@redis01 backup]$ gzip -d /u01/pgsql/backup/dump.sql.gz [postgres@redis01 backup]$ pg_restore -p 5432 -C -d postgres /u01/pgsql/backup/dump.sql pg_restore: [archiver] input file appears to be a text format dump. Please use psql. [postgres@redis01 backup]$ psql -p 5432 -d postgres -f /u01/pgsql/backup/dump.sql SET SET SET SET SET set_config ------------ (1 row) SET SET SET SET SET SET CREATE TABLE ALTER TABLE INSERT 0 1 INSERT 0 1 ALTER TABLE
一个数据库(或者部分对象)导出为脚本文本文件,用psql恢复。
一个数据库(或者部分对象)导出为归档文件,用pg_restore恢复。
导出为其他格式的文件
pg_dump -p 5432 -Fc -d postgres > /u01/pgsql/backup/dump.dmp [postgres@redis01 backup]$ pg_restore -p 5432 -d postgres /u01/pgsql/backup/dump.dmp
物理备份 冷备
pg_ctl stop tar -cvjpf /u01/pgsql/colddata.tar.gz data pg_ctl start 恢复