我想将本地(PostgreSQL)数据库迁移到Azure Database for PostgreSQL
首先
必须将现有的本地PostgreSQL迁移至Azure云环境。虽然我对数据库有一定了解,但对云环境一无所知,且没有经验进行迁移,因此决定记录下我所做的事情。
在中国内地,“Azure Database for PostgreSQL”的建立
首先,创建Azure Database for PostgreSQL实例。
在Azure门户中,选择创建资源>数据库>Azure Database for PostgreSQL,然后选择可扩展服务器进行创建。(单一服务器计划将来可能会被弃用)
然后,在实例概述页面中选择数据库,新建一个与迁移源数据库同名的数据库。
数据库备份
将本地数据库的SQL文件导出。
无论是使用psql还是pg_dump,似乎都可以执行类似的操作,但pg_dump更适合原本的用法,所以决定使用pg_dump。
pg_dump dbname=<数据库名称> -U <用户名> –clean -f <任意文件名>
pg_dumpall -U <用户名> –roles-only –clean -f <任意文件名>。
可以使用pg_dump命令备份表格、记录和函数,并使用pg_dumpall –roles-only命令备份用户账号。
数据库恢复
使用pgAdmin4将SQL文件导入Azure Database for PostgreSQL。
首先连接到Azure database for PostgreSQL实例,然后右键点击与迁移源数据库同名的数据库,选择打开查询工具,再通过文件夹图标导入备份文件。
应用程序配置更改
只需要将应用程序的数据库连接更改为新的目标,就完成了。
最终
我在查找的时候看到了很多不同的方法,不知道该选择哪个。听说一些对于大数据容量不适用,或者有很长的停机时间等等,每个方法都有其特点。但是这次,我决定先专注于一种简单的迁移方法来试试看。