在异构数据库之间做数据迁移,对于任何 DBA 来说都是很头疼的一件事。OceanBase 作为一款刚开源不到两年的国产数据库,也会遇到各种各样的问题,OB 官方其实针对企业版提供了 OMS 一站式迁移服务,该服务支持从各种数据源迁移数据到 OB 企业版,但是开源版本支持的功能较少,当前仅支持 MySQL 到 OB 的数据同步。
本文来分享另外一种解决方案,由于都是集成三方工具,所以并不能达到整库一键复制的目标,如果大家有相应的需求,还需要自行定制。
本文分享的内容是基于 DataX 数据同步工具做的,数据源选择了一款较为流行的开源数据库 PostgreSQL,理论上来说,采用 DataX,任何能接入的数据源均可以迁移到 OceanBase 社区版。
前提条件
在开始主要内容之前,大家需要了解一下前置条件:
- 预先安装好 PostgreSQL 数据库环境;
- 预先下载好(或自行编译好)DataX 软件;
- 预先安装好 OceanBase 数据库环境。
从 PostgreSQL 迁移到 OceanBase 的过程
1. 源端构造
首先我们在源端 PostgreSQL 数据库创建测试表,并在表中插入100条测试数据:
--创建源端表
create table pg_tbl_src(id int, name text);
--插入100条数据
insert into pg_tbl_src select generate_series(1,100),'name'||generate_series(1,100)::text ;
--查询一下数据量
select count(*) from pg_tbl_src;
PostgreSQL 的连接可以采用多种工具,我这里使用了 DBeaver,当然如果您觉得麻烦,可以在安装完 PG 后,直接用 psql 工具连接,我这里 PG 数据库的默认配置如下,后面会用到:
- IP: 192.168.0.200
- PORT: 5432
- Use