news 2026/3/26 1:09:02

Windows下DATA目录的迁移

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Windows下DATA目录的迁移

文章目录

  • 文档用途
  • 详细信息

文档用途

Windows系统下安装完数据库后,想要将数据目录迁移至新的目录

详细信息

1、先查询当前的data目录

highgo=# show data_directory;data_directory-------------------------------C:/highgo/database/5.6.4/data

2、关闭数据库,关闭数据库服务

开始->管理工具->服务, 找到 hgdb-se5.6.4 选中后点击停止

3、修改data目录下配置文件postgresql.conf

# data_directory = 'ConfigDir' ==> data_directory = 'D:/highgo/data'

注意:参数里面改成新的data目录,而且一定注意,windows下也必须是斜杠,反斜杠不会识别,后期启动时会报错找不到data目录并会要求手动initdb

错误信息存在于系统日志 ( 开始->管理工具->服务器管理器->诊断->事件查看器->windows日志->应用程序) 中会提示找不到data目录

4、拷贝data目录至目标路径

将原data目录删除(或重命名)

5、在命令行启动数据库pg_ctl start,进行查询验证

highgo=# show data_directory;data_directory----------------C:/highgodb/data(1行记录)

6、通过服务启动数据库,发现会报错,提示找不到data目录,所以仅改数据库配置文件不够,可以有以下几种方法

1)删除原有服务,增加新服务。

(由于windows下封装的包,在安装时写入的data目录会注册到服务相对应的注册表中,所以修改了data目录就要修改相关的所有注册表,所以删除服务重新生成服务可以生成新的注册表,才能通过服务来启动数据库)

C:\Users\Administrator> pg_ctl unregister -N hgdb-se5.6.4

C:\Users\Administrator> pg_ctl register -N hgdb-se5.6.4 -U “NT AUTHORITY\NetworkService” -D “D:\highgo\data” -s

C:\Users\Administrator>

刷新服务列表,启动数据库

开始->管理工具->服务, 找到 hgdb-se5.6.4 选中后点击启动

2)可以不需要修改注册表的相关数据直接建立新的数据目录的目录链接

(比如原来是C:\data 改成C:\highgodb\data后,进行创建目录链接or联接)[如果有改动过postgresql.conf的data_dirctory参数需要注释]

C:\Users\Administrator> mklink /J C:\data C:\highgodb\data

(前面是要创建的目录链接,后面是真实文件路径,双引号可有可无)

7、刷新服务列表,启动数据库

开始->管理工具->服务, 找到 hgdb-se5.6.4 选中后点击启动。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!