PostgreSQL迁移

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介:

备份:
    set PGPASSWORD=密码

    set PGCLIENTENCODING=UTF8
    pg_dumpall -U postgres > backup_file

恢复:
    set PGPASSWORD=密码
    set PGCLIENTENCODING=UTF8
    psql -U postgres < backup_file



升级(当然要把以前的数据迁移到新系统):

目前我在Windows XP上用的PostgreSQL的版本是8.1,既然有新版本8.3.4出来了,就想升级到这个版本。

一般小版本升级,如把8.3.1升级到8.3.4,只需要升级程序就可用,原来的数据仍然可用。可是如果把8.1升级到8.3.x就要

用pg_dump或pg_dumpall和psql或pg_restore命令了。

如果能两个系统同时存在,可以用命令:

    pg_dumpall -p 5432 | psql -d template1 -p 6543

我在使用时,提示Administrator密码不对,于是使用命令

    pg_dumpall -U postgres -p 5432 | psql -U postgres -p 6543

**如果有多个数据库要迁移,就要输入多次密码,比较烦。


Linux下先执行下面命令:
export PGPASSWORD=密码
要用密码文件的话先执行下面命令:
export PGPASSFILE=/文件路径/.pgpass

同样,在Windows下也是先执行下面命令:
set PGPASSWORD=密码
或使用密码文件,先执行下面命令:
set PGPASSFILE=/文件路径/.pgpass

再执行pg_dump、pg_dumpall等命令就不会提示要密码了。


windows下pgpass.conf在C:\Documents and Settings\username\Application Data\postgresql\pgpass.conf


**另外,可能在中文下出现编码问题,Linux下先执行下面命令:
export PGCLIENTENCODING=UTF8
再执行pg_dumpall等命令,就没事了。
在windows下,先执行的命令是:
set PGCLIENTENCODING=UTF8


PostgreSQL自带的帮助文档“PostgreSQL Help”上有更详细的备份、恢复、升级等信息。 

下面内容摘自PostgreSQL文档:

28.12. 口令文件

用户家目录中的 .pgpass 或者 PGPASSFILE 引用的文件是一个可以包含口令的文件。如果连接要求口令(并且没有用其它方法声明口令),那么可以用它。在 Microsoft Windows 上,文件名字是 %APPDATA%\postgresql\pgpass.conf (这里的 %APPDATA% 指用户配置里的 Application Data 子目录)。

这个文件应该有下面这样的格式行:

hostname:port:database:username:password

头四个字段每个都可以是一个文本值,或者 *,它匹配所有的东西。第一个匹配当前连接参数的口令行的口令域将得以使用。(因此,如果你使用了通配符,那么应该把最具体的记录放在前面。)如果记录包含 : 或者 \ ,应该用 \ 逃逸。一个 localhost 的主机名匹配来自本机的 host(TCP)和 local (Unix 域套接字)。

.pgpass 的权限必须不允许任何全局或者同组的用户访问;我们可以用命令 chmod 0600 ~/.pgpass 实现这个目的。如果权限比这个松,这个文件将被忽略。(不过目前在 Microsoft Windows 上没有检查这个文件的权限。)










本文转自 h2appy  51CTO博客,原文链接:http://blog.51cto.com/h2appy/795614,如需转载请自行联系原作者
相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
目录
相关文章
|
关系型数据库 MySQL Linux
TiDB实时同步数据到PostgreSQL(三) ---- 使用pgloader迁移数据
使用PostgreSQL数据迁移神器pgloader从TiDB迁移数据到PostgreSQL,同时说明如何在最新的Rocky Linux 9(CentOS 9 stream也适用)上通过源码编译安装pgloader。
|
数据可视化 关系型数据库 MySQL
将 PostgreSQL 迁移到 MySQL 数据库
将 PostgreSQL 迁移到 MySQL 数据库
1825 2
|
9月前
|
SQL 关系型数据库 MySQL
postgresql|数据库|MySQL数据库向postgresql数据库迁移的工具pgloader的部署和初步使用
postgresql|数据库|MySQL数据库向postgresql数据库迁移的工具pgloader的部署和初步使用
380 0
|
9月前
|
关系型数据库 MySQL 测试技术
【专栏】PostgreSQL数据库向MySQL迁移的过程、挑战及策略
【4月更文挑战第29天】本文探讨了PostgreSQL数据库向MySQL迁移的过程、挑战及策略。迁移步骤包括评估规划、数据导出与转换、创建MySQL数据库、数据导入。挑战包括数据类型不匹配、函数和语法差异、数据完整性和性能问题。应对策略涉及数据类型映射、代码调整、数据校验和性能优化。迁移后需进行数据验证、性能测试和业务验证,确保顺利过渡。在数字化时代,掌握数据库迁移技能对技术人员至关重要。
537 5
|
9月前
|
SQL 关系型数据库 MySQL
MySQL【实践 02】MySQL迁移到PostgreSQL数据库的语法调整说明及脚本分享(通过bat命令修改mapper文件内的SQL语法)
MySQL【实践 02】MySQL迁移到PostgreSQL数据库的语法调整说明及脚本分享(通过bat命令修改mapper文件内的SQL语法)
327 0
|
9月前
|
关系型数据库 数据库 PostgreSQL
postgresql|数据库迁移|ora2pg工具的web界面介绍
postgresql|数据库迁移|ora2pg工具的web界面介绍
190 0
|
SQL 关系型数据库 Apache
Microsoft SQL Server 迁移到 PostgreSQL 利器:Babelfish
Babelfish for PostgreSQL 加速了将 Microsoft SQL Server 应用程序迁移到 PostgreSQL 的旅程。Babelfish for PostgreSQL 是一个开源项目,可在 Apache 2.0 和 PostgreSQL 许可下使用。它使 PostgreSQL 能够理解来自 Microsoft SQL Server 编写的应用程序的查询。Babelfish 了解 SQL Server 有线协议和 Microsoft SQL Server 查询语言 T-SQL,此您不必切换数据库驱动程序或重新编写所有应用程序查询。
488 0
|
安全 关系型数据库 测试技术
PostgreSQL 14和SCRAM认证的改变--应该迁移到SCRAM?
PostgreSQL 14和SCRAM认证的改变--应该迁移到SCRAM?
211 0
|
关系型数据库 PostgreSQL Docker
docker 容器部署postgresql数据持久化迁移
docker 容器部署postgresql数据持久化迁移
882 0
|
存储 NoSQL Oracle
「数据库选型」卫报从MongoDB迁移到Amazon RDS上的PostgreSQL
「数据库选型」卫报从MongoDB迁移到Amazon RDS上的PostgreSQL