postgresql备份和还原

1、备份

使用命令pg_dump -h localhost -U user database > C:\name.bak

  • localhost为地址,如果在本机则使用localhost即可;
  • user为数据库所属的账户;
  • database为要备份的库;
  • C:\name.bak为备份路径,如果为当前文件夹,则使用相对路径即可;

2、还原数据库

还原的话需要先创建一个新库,然后再还原;

1)新建数据库
  1. 使用命令su - postgres切换账户;
  2. 使用命令psql登录数据库;
  3. 使用命令CREATE DATABASE exampledb OWNER dbuser;来创建数据库,exampledb即为数据库名,dbuser为该数据库所属的用户名
  4. 使用命令GRANT ALL PRIVILEGES ON DATABASE exampledb TO dbuser;来赋予权限;
  5. 使用命令\q退出数据库;
  6. 使用命令exit退出用户;
  7. 使用命令psql -h localhost -U dbuser -d exampledb < C:\kar.bak来还原数据库,其中localhost为数据库所在服务器的地址,本机用localhost即可,dbuser为数据库所属用户名称,exampledb为新建的空库,C:\kar.bak为备份下来的库;
### 如何在 Windows 系统上执行 PostgreSQL 数据库备份还原 #### 使用 `pg_dump` 进行数据库备份 为了在 Windows 上备份 PostgreSQL 数据库,可以利用内置工具 `pg_dump` 来创建逻辑备份文件。以下是具体方法: 1. **定位到 PostgreSQL 的 bin 目录** 需要先找到 PostgreSQL 安装路径中的 `bin` 文件夹[^3]。例如,默认安装路径可能是 `C:\Program Files\PostgreSQL\14\bin`。 2. **运行备份命令** 打开命令提示符(CMD),进入上述 `bin` 路径后,输入以下命令备份指定数据库: ```bash pg_dump -U 用户名 -F c -b -v -f "目标文件路径" 数据库名称 ``` 参数说明如下: - `-U`: 指定用于连接数据库的用户名。 - `-F c`: 表示导出为自定义格式(支持压缩)。 - `-b`: 包含大对象数据。 - `-v`: 显示详细输出信息。 - `-f`: 输出文件的目标位置。 示例命令: ```bash pg_dump -U postgres -F c -b -v -f "D:\backup\db_backup.dump" mydatabase ``` #### 使用 `pg_restore` 进行数据库还原 当需要将之前备份的数据恢复至 PostgreSQL 中时,可使用 `pg_restore` 命令实现此功能。 1. **打开 CMD 并切换到 bin 目录** 同样需先进入 PostgreSQL 的 `bin` 文件夹[^5]。 2. **执行还原命令** 输入以下命令进行数据库还原操作: ```bash pg_restore -U 用户名 -d 数据库名称 -v "源文件路径" ``` 参数解释: - `-U`: 登录数据库所使用的用户名。 - `-d`: 指定要导入数据的目标数据库名称。 - `-v`: 提供详细的处理过程日志。 示例命令: ```bash pg_restore -U postgres -d mydatabase -v "D:\backup\db_backup.dump" ``` 以上步骤涵盖了从备份还原的整体流程,并基于官方推荐的最佳实践设计而成[^4]。 --- #### 注意事项 - 如果遇到权限不足的情况,请尝试以管理员身份运行 CMD 或 PowerShell。 - 对于大型数据库,建议增加时间戳以便区分不同日期的备份文件。 - 在生产环境中定期测试备份文件的有效性是非常重要的安全措施之一[^1]。 ```python import os os.system('cmd /k "cd C:\\Program Files\\PostgreSQL\\14\\bin & pg_dump -U postgres -F c -b -v -f D:\\backup\\db_backup.dump mydatabase"') ``` 该 Python 代码片段展示了如何通过脚本自动调用 `pg_dump` 实现自动化备份任务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值