Oct 232013
 
This entry is part 17 of 20 in the series Matlab数据库基础班

最近纠结一个问题,如何在两台电脑之间同步一个数据库。当然,如果这两台电脑是通过局域网直接连接,那么我们用PITR模式可以直接同步,那个具体技术就不提,因为我遇到的问题不是这样的,所以也就没有去学习啦;如果两台电脑不是直接通过网络连接就麻烦,而且开机时间都不同,一台是白天,一台是晚上。

之前我用的办法比较笨,是用pg_dump(自pgAdmin里面可以有图形操作界面),将整个数据库备份起来,然后用7-zip压缩打包,由金山快盘直接同步到网络,这样晚上回家,过不久就可以将备份文件从网络上下载下来,然后用 pg_restore(即pgAdmin中的恢复功能),将整个数据库恢复过来。整个过程费时费力不说,更大的问题是每次都要重建整个数据库,对硬盘损害也挺大。

后来,突然想到一个问题,因为PostgreSQL数据库的数据文件都保存在某个目录(安装过程会询问目录位置),而且假如安装的时候将目录设置到某个已经存在的旧数据库目录,那么就直接能够使用那个数据库。

—— 这表明,所有信息都已经在数据库目录下,即这个目录是“绿色”。因此,假如把这个目录放在移动硬盘上,然后将两个电脑的PostgreSQL软件都指向这个目录,那么不就可以带着数据库到处走了!

接下来的问题就是怎样在不大动筋骨的前提下,将此方案实现。拷贝目录到移动硬盘上(建议专门在移动硬盘上分一个区用来放这个目录)。接下来怎么让Postgresql软件读写这个目录的数据库呢?

要做到这一点,需要修改Windows7的“服务”,其中,Postgresql服务项目的启动文件里面是有直接指定目录地址的。因此,要修改服务。修改的办法需要直接修改注册表。

到注册表的如下项目:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\

寻找Postgresql,例如我的是postgresql-x64-9.2。 下面有ImagePath项目,例如我这里是:
C:/Program Files//9.2/bin/pg_ctl.exe runservice -N "-x64-9.2" -D "D:/pgdb" -w

后面那个 D:/pgdb 就是当前的数据库目录地址,将其修改为新的目录地址即可!

 

【特别注意】

要将Postgresql服务设置为“手动”!非常重要。在插入移动硬盘后,再手工启动服务(可以通过系统服务界面启动,也可以通过pgAdmin启动)

在拔出移动硬盘前,要将服务器手动停止。否则会造成各种不可确定的问题。

No related posts.

Series Navigation<< 小工具:MDB Viewer Plus——直接看出Access数据库文件内容Matlab连接服务商提供的MySQL数据库 >>
Bookmark/FavoritesSina WeiboGoogle+FacebookQQTwitterYahoo BookmarksBaiduDiggEmailGoogle GmailOutlook.comEvernotePrintAIMLinkedInBlogger PostKindle ItOrkutShare

Related Posts:
  • No Related Posts, :-(

 Leave a Reply

(required)

(required)


*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>