PostgreSQL学习笔记(十一)数据备份与还原

虽然我们会采取一些措施来保证数据的安全,但是我们没有办法百分之百的保证意外情况不会发生,例如:误操作。所以为了保证数据的安全我们需要定期对数据进行备份。这样当数据库中的数据丢失或意外损坏,我们就可以使用备份设备中的数据进行还原。

  • 数据备份
    pg_dump是一个非常有用的备份工具,它甚至可以在数据库正在使用的事实进行完整的备份。pg_dump执行时会将数据库备份成一个文本文件,这个文件包含了整个数据库全部表的创建和数据的写入操作的SQL语句,使用这些语句就可以重建数据库了。
    pg_dump用法:

pg_dump [options...] [dbname]
#使用postgres用户登录并备份db1数据库到/bak/db1_bak文件
pg_dump -U postgres -f /bak/db1_bak db1
#使用pg_dump备份数据库中指定的表
pg_dump -U postgres -t tb1 -t tb2 -f /bak/db1_bak db1

使用pg_dumpall备份整个服务器的数据库
#使用pg_dumpall备份整个服务器的数据库
pg_dumpall -U postgres -f /bak/db_bak

  • 数据还原
    pg_restore可以还原由pg_dump备份的文件,它会重新生成包括数据在内的所有用户定义的类型、函数、表、索引的所有别要的命令
    pg_restore -d db1 -U postgres -C /bak/db1_bak
    #使用-d选项执行数据库的名称,-C指定备份文件的路径
    psql是一个PostgreSQL的终端,它可以运行用户输入的语句。另外输入的语句还可以来自一个文件。所以,对于备份的包含create、insert语句的文本文件,可以使用psql恢复到数据中。
    psql -d db1 -U postgres -f /bak/db1_bak

一般情况下,不同主版本的PostgreSQL之间的内部存储结构是不同的,而不同自版本之间是相同的。

推荐阅读更多精彩内容