我得到了一个从PostgreSQL数据库提取数据的项目。我以前没有使用PostgreSQL的经验,但是我要进行的项目是对现有代码进行错误修复,因此连接到引擎并获取数据的所有逻辑都已经就绪。
我遇到的问题是数据库是以直接来自源HDD的文件夹和文件的形式提供给我的,而不是备份(这种情况不会发生,因此,“请客户为您提供备份而是这里不是一个选择)。
该文件夹还包含实际的PostgreSQL二进制文件,因此我查看了版本(9.4.14),然后从PostgreSQL站点下载了最接近的版本(9.4.18)并进行了安装。现在,我要做的就是一些如何查看给定数据文件的方法。
我尝试了将数据文件夹的内容复制到已安装的数据文件夹中的尝试,但是在PostgreSQL服务无法启动之后。
我确实在conf文件中找到了一个选项:
#data_directory = 'ConfigDir'
我将其更改为:
data_directory = 'C:\customer\data'
但是,此后该服务将无法启动。
答案 0 :(得分:0)
服务使用的数据目录是通过服务命令行定义的,该命令行将覆盖postgresql.conf
中定义的任何属性。
您需要重新创建服务才能更改数据目录,例如:
删除服务:
pg_ctl -unregister -N postgresql-9.1
postgresql-9.1
是服务的“真实”名称,而不是“显示名称”。您可以在“服务”应用内的服务属性中看到它。
然后使用正确的数据目录重新创建服务:
pg_ctl -register -D -D c:\customer\data -N postgresql-9.1
在Windows中“调试”启动错误的另一种方法是从命令行启动Postgres(而不是通过服务),因为启动过程中的某些错误未记录在Postgres日志文件中,但显示在命令行中。您可以使用以下方法做到这一点:
pg_ctl start -D c:\customer\data`
如果bin
目录不在您的PATH
中,则需要在命令行上指定该目录的完整路径,例如:c:\Postgres9.1\bin\pg_ctl