博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PostgreSQL9.2的WINDOWS下备份与还原
阅读量:5159 次
发布时间:2019-06-13

本文共 1243 字,大约阅读时间需要 4 分钟。

这次在项目中需要利用工具pg_dump.exe来实现对PostgresQL数据库的备份,之前的命令如下:

pg_dump --host localhost --port 5432 --username

"postgres" --format custom --blobs --verbose --file "C:\20111209pm-xfserver.backup" pipeline

但是,在测试的过程中,发现命令行下,需要输入Password:才能继续执行,这样实现不了自动备份,而参数里也没有象设置username这样 --password,网上说为了安全不提供这种参数。

 

后来,经过查阅资料,找到了一个方法,就是在命令前添加一行:

set PGPASSWORD=<password>

就可以了。

 

这样,把命令集中在批处理文件中执行,整个文件看起来就像这个样子:

备份:

@echo off

c:

cd C:\Program Files\PostgreSQL\9.2\bin

set PGPASSWORD=dsideal

pg_dump --host localhost --port 5432 --username "postgres" --format custom --blobs --verbose --file "C:\%date:~0,4%-%date:~5,2%-%date:~8,2%-%time:~0,2%-%time:~3,2%-%time:~6,2%.dump" dsideal

pause

 

 还原 

恢复数据库实例dsideal

 为了演示好实验,我们首先要删除掉这个数据库:dsideal

然后马上:

cd C:\Program Files\PostgreSQL\9.2\bin

psql -U postgres

以迅雷不及掩耳盗铃的速度快速执行:

drop database dsideal;

如果你的运气好,那么删除成功,否则就需要再次重启一下WINDOWS 服务。

 

还原的指令:

pg_restore.exe -hlocalhost -Upostgres -ddsideal -v "C:\2013-04-22-15-57-52.dump"

当然,前提是你的数据库 dsideal需要提前创建好,它不负责创建数据库的。

 

如果是在LINUX环境中,那么简单了:

.另一种是查询出使用数据库的服务进程,接着将服务进程杀死,最后删除数据库

图1

图1中,数据库“test_db”不能被删除,原因就是有其他用户正在使用它,那要做的就是利用“ps -ef|grep test_db|grep -v grep”查出使用它的服务进程,见图2

                                                               图2

这时只要将图2中三个服务进程杀死,然后再执行数据库的删除操作,见图3、图4

图3

 

转载于:https://www.cnblogs.com/littlehb/archive/2013/04/22/3035499.html

你可能感兴趣的文章
jquery的几种写法
查看>>
360浏览器兼容问题
查看>>
基础练习一
查看>>
HTML5 增强的页面元素
查看>>
Python所涉及领域
查看>>
信息安全作业五 2016012101 上官文钦
查看>>
拓扑排序
查看>>
iOS opencv
查看>>
[转]KMP算法
查看>>
第四届CCCC团体程序设计天梯赛 后记
查看>>
Daily Codeforces 计划 训练时录
查看>>
51Nod 1557 两个集合(二分)
查看>>
Django(app的概念、ORM介绍及编码错误问题)
查看>>
UVa 120 煎饼
查看>>
ZOJ 2314 Reactor Cooling(无源汇上下界网络流)
查看>>
easyui页面布局
查看>>
OSS设置CORS规则以后还是报No 'Access-Control-Allow-Origin'解决方法
查看>>
有用到的网站网址
查看>>
大型运输行业实战_day04_3_高级查询+分页
查看>>
正则表达
查看>>