随着互联网技术的高速发展,信息数据正呈量级增长,数据的存储方式也多种多样,而数据库就在其中扮演了非常重要的角色。PostgreSQL作为数据库中的重要组成部分,它的数据提取方案也显得日益重要起来,本文主要为大家介绍PostgreSQL数据文件迁移的小技巧,供大家参考!
一、PostgreSQL简介PostgreSQL 是一个免费的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如MySQL 和 Firebird)和专有系统(比如Oracle、Sybase、DB2 和、Microsoft SQL Server)更加丰富的数据类型和可扩展性。二、为什么要进行数据迁移?目前,阿里云中主要使用的关系型存储数据库就是PostgreSQL。在实际的工作中,很容易遇到一种情况:通过寻求阿里官方的帮助,从而获取到PostgreSQL数据文件夹,但由于该数据文件/夹中的内容是二进制结构,当它脱离了原始的数据库环境之后将无法快速获取其中的数据信息。针对这种情况,本文为读者介绍一种PostgreSQL数据快速迁移的小技巧,希望能给您提供一定参考价值和分析思路。
三、数据迁移的具体操作方案1.事前准备1)获取数据库data文件夹文件夹必须是原始未经修改的,例如:在Windows7 中PostgreSQL10默认安装情况下,data文件夹所在的路径为C:\Program Files\PostgreSQL(红色数字10为数据库版本编号)。
▲data文件夹中包含的文件信息如图所示2)获取数据库版本并安装与原数据库版本一致的数据库环境。例如:本文环境为PostgreSQL-x64-10。数据库版本信息可从data目录下的PG_VERSION中直接查看。3)原数据库登录密码(若忘记密码,详见后文知识补充了解具体操作方法)。2.具体操作步骤1)关闭PostgreSQL服务命令:net stop postgresql-x64-10(命令须事先知道服务名称)。
2)备份并删除当前环境下的data目录。(注意,若未完成步骤1,此步骤是不能成功的。)
3)将原数据库数据文件data复制至步骤3中的路径下,添加一个新的用户,并授权。
相关操作如下↓↓↓右键查看属性
选择安全标签
点击编辑
点击添加,并添加NETWORK SERVICE
设置完全控制权限
4)重启服务命令:net start postgresql-x64-10
5)双击打开目录C:\Program Files\PostgreSQL\pgAdmin 4\bin下的pgAdmin4.exe,双击其中的服务,然后输入密码,进入下图,即可查看数据,至此数据迁移过程结束。
*另外,若需导出数据,则可以使用pgAdmin4,进行导出操作。该工具只能单表导出,若需批量导出,可使用第三方数据库管理工具套件,比如navicat工具。
知识补充前面我们已经提到,进行数据迁移首先要知道原数据库的登录密码(该密码是专门为防止数据泄露而设置的)。如果没有该密码,即使是拿到数据文件也不能进行数据前提,那么当密码忘记时,该怎么办呢?这时,我们可按如下操作重置密码1、将目录C:\Program Files\PostgreSQL\data下的配置文件pg_hba.conf做如下修改(将文件拉至最下):把md5修改成trust。
2、在目录C:\Program Files\PostgreSQL\bin下,打开命令行窗口。1)打开方式:Shift+鼠标右键,选择“在此处打开命令行窗口(W)”,并输入命令:psql -h localhost -U postgres。2)若步骤1跳过的话,此处需要输入登录密码。
3、修改密码,命令:alter user postgres with password '123456'; (注意“;”须一起输入)
4、将步骤1中的配置还原,并重启服务。*针对数据库密码问题,当前DBF6100数据库取证系统能有效支持四种主流数据库,后续研究会陆续支持PostgreSQL等十余种数据库,有效解决无法获取数据库密码的问题。【新产品动态】DBF6100数据库取证系统公测版上线啦!
注意事项
1、该方案只针对获取正常的数据,并且需要保持版本一致;
2、替换之后的data目录必须要添加用户,并授权,否则将重启不了服务;
3、忘记密码时必须要改配置,否则将需要输入登录密码。“本文主要介绍了一种PostgreSQL数据迁移小技巧,该方法的主要目的是告诉大家一种快速迁移PostgreSQL数据文件目录的方法和思路。
来源:
https://zhuanlan.zhihu.com/p/59685064