1. 备份数据库:
a. 备份格式选择
- *.bak:压缩二进制格式
- *.sql:明文转储
- *.tar:tarball
b. 使用 pg_dump 命令备份数据库
-
使用 pg_dump 备份整个数据库:
pg_dump -U 数据库角色 dbname > backup.sql
pg_dump -U postgres mydata > mydata.sql
这将备份整个数据库,并将备份数据保存到 backup.sql
文件中。
注:查询数据库角色语句:
SELECT rolname FROM pg_roles;
-
使用 pg_dump 备份特定表或特定模式**:
pg_dump -U username -t tablename dbname > backup.sql
或者:
pg_dump -U username -n schemaname dbname > backup.sql
这将备份特定表或特定模式的数据,并将备份数据保存到 backup.sql
文件中。
c. 将数据库备份输出到指定的文件
sh
pg_dump -U username -d dbname -f /path/to/backup.sql
-U username
指定要连接到数据库的用户名。-d dbname
指定要备份的数据库名称。-f /path/to/backup.sql
指定备份文件的路径和名称。
d. 备份所有的数据库
sh
pg_dumpall > backup.sql
或
pg_dumpall > backup.bak
2. 恢复数据库:
-
使用 pg_restore 工具恢复数据库:
pg_restore -U username -d dbname < backup.sql
在这个命令中,-U username
指定要连接到数据库的用户名,-d dbname
指定要恢复的数据库名称。恢复操作将从 backup.sql
文件中读取备份数据,并将其导入到指定的数据库中。
3. 注意事项:
- 在进行数据库恢复之前,请确保已经创建了要恢复到的数据库。如果数据库不存在,可以使用
createdb
命令创建新的数据库。 - 在进行数据库恢复之前,请确保备份文件的路径和名称正确,并且备份文件具有合适的权限。
- 在进行数据库恢复之前,请备份现有的数据库,以防止意外数据丢失。