PostgreSQL在Windows下的数据迁移(手把手避坑)

使用环境:win10&win11  数据库Postpgres14.4-1

建议win防火墙和杀毒软件都关了。

  1. 停止拷贝源的Postgres服务,需要检查下是否停掉了所有的 postgre 开头的服务,有时候会开启多个,尤其是在数据库出现问题的时候;如果没有全部关闭,数据迁移都会失败。

具体操作:此电脑(右键)->服务和应用程序->服务,找到图中该项,右键选择 停止

2.迁移数据,将 postgresql 程序所在目录下的 data 目录中的数据全部拷贝到新的目录下;直接拷贝整个data目录就行,拷贝到安装目录。

3.修改注册表,找到 HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicespostgresql-x64-9.5ImagePath",将“-D”后的目录名修改为新的数据目录位置即可,如果目录路径中含有空格,需要用引号引起。(我这里是从一台电脑拷贝到另一台电脑,目录都是一样的,所以没有修改)

4.修改配置文件pg_hba.conf和postgresql.conf,保证数据库可以被主机访问(默认是本地127.0.0.1),尽量把无关的IP地址删除,一般都可以,可以再确认一下,也确认写法规范。

  1. 检查data目录,删除掉名为 postmaster.pid的文件(没有就略过)。

  1. 接下来检查data目录的权限,右键data目录->属性->安全,确认权限是否受限制。我遇到这里是下图这样,我对比之前安装的data目录属性,多了“ALL APPLOCATION PACKAGES”和“所有受限制的应用程序包”,关键还删不掉,提示是继承的权限,需要关闭继承。

关闭继承:右键data目录->属性->高级,左下角有更改权限-关闭继承,提示是否全部删除已经继承的权限,全部删除即可,权限为空。

关闭继承后可能权限为空,这时候不用慌,同样左下角“添加”即可,添加->选择主体->高级->立即查找,然后在下方找到需要添加的权限,

我是按照安装的data目录属性来设置,

主体选了下图中的几个主体,权限全设置为“完全控制”。

7.WIN + R cmd,进入bin目录:pg_resetwal.exe -f 你的数据启动目录、pg_ctl -D 你的数据启动目录。

8.最后开启Postgres服务。

具体操作:此电脑(右键)->服务和应用程序->服务,找到图中该项,右键选择 启动

附录:

如果报错,提示某些服务在未由其他服务或程序使用时将自动停止,类似下图

可以查看windows应用程序日志查看是什么原因。

在计算机管理——系统工具——事件查看器——Windows日志,找到PostgreSQL的错误日志。下图里可以查看到是权限不足,然后修改权限或者去 某应/某度 去搜索解决措施。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值