数据库备份:
1.采用sql文件进行备份
2.直接复制数据库文件进行全局备份
1.采用sql文件进行备份
将数据库dbname,从host1复制到host2
pg_dump -h host1 dbname | psql -h host2 dbname
pg_dump指令:
备份:pg_dump dbname > outfile
恢复:psql dbname < infile
注:转储sql文件中不包含创建数据库的语句。需要在恢复之前先创建一个数据库。
pg_dump工具转储的是一个数据库dbname中所有的信息,不会转储角色和表空间等信息,如果需要完整转储整个数据库中所有的数据库实例,PostgreSQL提供了一个工具pg_dumpall,该工具能够转储一个数据库集簇中所有的内容,包含了前面提到的角色和表空间。使用的方法是:
备份:pg_dumpall > outfile
恢复:psql -f infile postgres
2.直接复制数据库文件进行全局备份
直接将存储数据库的文件进行备份,也就是通常下的pgdata目录
tar -czvf backup.tar.gz /data1/pgdata