linux

PostgreSQL 数据备份与还原

发布时间:8年前热度: 3300 ℃评论数:

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


数据备份 
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之间的内部存储结构是不同的,而不同自版本之间是相同的。

还原

手机扫码访问