金蝶公有云沙箱数据库迁移至本地原创
金蝶云社区-王文科
王文科
0人赞赏了该文章 625次浏览 未经作者许可,禁止转载编辑于2023年11月14日 14:41:10

 

背景:

部分金蝶公有云客户,需要进行大量二次开发。而公有云的模式对开发者限制较多,故需搭建本地私有云苍穹环境,并从公有云迁移数据库至本地私有化环境。本文档专指postgre数据库类型。

 

步骤:

一、从公有云迁移数据

在公有云天梯提单,申请数据库备份。公有云工作人员处理好后,会给出的下载链接(下载限时6小时),点击下载。

 

二、数据存放

将公有云下载好的数据库文件(假设为2023-11-14.tar.gz),上传至私有化环境的数据库上。建议放至postgre用户的根目录/home/postgres/

注:因为还原数据需要用postgre用户(苍穹安装器安装的均用postgre用户非操作系统root用户)进行。

 

三、文件预处理

1、 切换用户为postgres

su - postgres

2、先对数据库文件进行解压:

 tar -zxvf 2023-11-14.tar.gz

解压后的文件名类似:10.199.22.254_5432_prod_myfjdtest_all.dump

3、(可选)重命名一下文件(降低后续处理的麻烦)

mv 10.199.22.254_5432_prod_myfjdtest_all.dump myfjdtest_all.dump

4、将备份文件中的表和索引(函数和存储过程等去除掉)列到一个文件中,例如1114.toc

  pg_restore -l myfjdtest_all.dump | grep -v -E "FUNCTION|PROCEDURE|TYPE" >./1114.toc

 

四、数据库预处理

1、 先进入数据库

在当前用户已经是postgres用户的情况下,直接输入psql进入数据库

2、 (可选,用安装器安装的苍穹环境已默认有cosmic用户,需跳过)建立新数据库用户(自定义用户名$a和密码$b)

CREATE USER $a PASSWORD '$b';

 

3、 新建一个数据库$c,例如public1114, 所有者为$a, 例如cosmic

create database $c encoding utf8 owner $a;

举例为create database public1114 encoding utf8 owner cosmic;

4、 授权

GRANT ALL ON DATABASE $c TO $a;

举例为GRANT ALL ON DATABASE public1114 TO cosmic;

5、 退出数据库界面,输入exit后回车即可

 

五、数据恢复

1、 保证当前用户是postgres,看命令行的前缀,一般是用户名@主机名,例如[postgres@localhost ~]

2、 (可选)密码设置进环境变量,pg_resore过程中需要数据库密码,初次恢复需要设置,后续不再需要

export PGPASSWORD=$b;

3   开始恢复数据:-h是主机ip,-p是端口,-U是用户名 -d是目标数据库名, -L是文件预处理步骤中列出的toc文件名,--role是数据库预处理步骤中建立的用户(默认则为cosmic),最后为数据库文件所在位置和名字(如放在/home/postgres目录), 回车开始执行

  pg_restore -h 127.0.0.1  -p 5432 -U cosmic -d public1114  -c --if-exists -L 1114.toc --no-owner --role cosmic /home/postgres/myfjdtest_all.dump

  此处视数据库文件的大小和机器性能,恢复时间不等,

可以另外开一个窗口用df -h查看硬盘的变化,或者再进入数据库,用select pg_size_pretty(pg_database_size('具体实例名'));查看数据库大小的变化

 

六、恢复存储过程

有几个重要的存储过程,如p_AlterPK等,需要恢复进数据库,(此处已将其存放在/homt/postgres目录下的proc_pg.sql文件),此处的-d就是数据库名称

psql -d public1114 -f /home/postgres/proc_pg.sql

 

七、注册至苍穹

打开苍穹的MC,进入租户,新建数据中心,分库规则选择“不分库”,实例名设置为数据库名,此处是public114,元数据库也同样是public114,保存后启用,集群管理里点“发布”即可。

 

image.png




图标赞 0
0人点赞
还没有人点赞,快来当第一个点赞的人吧!
图标打赏
0人打赏
还没有人打赏,快来当第一个打赏的人吧!

您的鼓励与嘉奖将成为创作者们前进的动力,如果觉得本文还不错,可以给予作者创作打赏哦!

请选择打赏金币数 *

10金币20金币30金币40金币50金币60金币
可用金币: 0