postgres 数据库备份¶
导出数据¶
pg_dump
将制定查询,制定数据库导出成文件,下操作将制定的数据库test 导成文件test.sql
pg_dump -d test -U postgres -f test.sql
Pg_dumpall
将所有数据库都导成文件,下面指令将数据库导为testall.sql
pg_dumpall -U postgres -f testall.sql
pg_dump 备份数据库中的某张表,用-t
指定
$ pg_dump -t my_table -d mydatabase --inserts -f /backup/my_table_backup.sql
以上两种方式是导出成copy 个是,这种格式备份数据,恢复时可能会存在一定问题,可以使用 --inserts 将配置备份成sql 样式,这样会更加稳定,上面的命令可修改成如下
pg_dump -d test -U postgres -f test.sql
pg_dumpall -U postgres -f testall.sql --inserts
导入数据¶
导入数据就比较简单
psql -U postgres -f test.sql
示例¶
To dump a database called mydb into an SQL-script file:
$ pg_dump mydb > db.sql
$ psql -d newdb -f db.sql
$ pg_dump -Fc mydb > db.dump
$ pg_dump -Fd mydb -f dumpdir
$ pg_dump -Fd mydb -j 5 -f dumpdir
$ pg_restore -d newdb db.dump
$ pg_restore -d postgres --clean --create db.dump
$ pg_dump -t mytab mydb > db.sql
$ pg_dump -t 'detroit.emp*' -T detroit.employee_log mydb > db.sql
$ pg_dump -n 'east*gsm' -n 'west*gsm' -N '*test*' mydb > db.sql
$ pg_dump -n '(east|west)*gsm' -N '*test*' mydb > db.sql
$ pg_dump -T 'ts_*' mydb > db.sql
$ pg_dump -t "\"MixedCaseName\"" mydb > mytab.sql