修改数据库数据路径
1、新建数据库数据目录(注意目录权限)
2、打开服务,停止postgresql数据库服务
3、运行cmd,输入regedit打开注册表,修改 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\postgresql-x64-9.1\ImagePath",将“-D”后的目录名修改为新的数据目录位置即可,如果目录路径中含有空格,需要用引号引起。
4、重启电脑,重启服务,尝试重新连接登入。
使用pg_upgrade 进行数据库大版升级操作
这里需要注意的一个点是,设定密码时最好和老版本的实例 postgres 账户密码保持一致,实例化的时候参数中传递的编码格式 如 Chinese (Simplified)_China.936,Chinese_China.936 这些一定要和原来老版本的实例最好保持一直,密码加密格式最好也是和老版本的实例保持一直如 scram-sha-256,实例化之后根据自己的需要把 postgresql.conf 文件中的配置参数按照老版本中改动过的地方按照自己需求再调整一次,然后把 pg_hba.conf 直接复制到新版本中,原则就是新老版本尽量保持配置一致。
准备好这些之后就可以开始升级操作了,首先关闭老的实例,确保新老版本的两个实例都没有启动,都在关闭状态。
检查新老实例版本所在的文件夹,我们的账户是都有完整的全部权限,我这里 cmd 命令是以 Administrator 账户运行的,所以我为两个文件夹都赋予了 Administrator 的完整权限
然后在新版本的 bin 下执行如下命令 cmd环境
cmd
set PGPASSWORD=xxxxxx (xxxx为postgres 的密码)
pg_upgrade -b “c:\Software\PostgreSQL\bin” -B “c:\Software\PostgreSQL15\bin” -d “c:\Software\PostgreSQL\data” -D “c:\Software\PostgreSQL15\data” -U postgres
注释:> pg_upgrade -b “旧的bin目录” -B “新的bin目录” -d “旧的data目录” -D “新的data目录” -U postgres
添加连接地址
备份数据库
备份数据库
pg_dump --format=c olddb_name > db_dump_file.dump
恢复该备份
pg_restore -v -d newdb_name db_dump_file.dump