数据迁移
将Oracle数据库中的数据迁移至GaussDB 100 。
前提条件
- 待迁移的Oracle数据库基于OGG主备部署。
- 需要在Oracle数据库备节点开启归档模式。
查看归档模式的命令:
select log_mode from v$database
- Oracle数据库备节点和GaussDB 100之间网络可以连通。
- 如果数据量比较大,建议保留在开始同步前到同步完成后的Oracle归档日志。
- 在数据迁移的操作期间,停止一切Oracle数据库备节点的手动/自动备份,且不可删除备节点的归档文件。
全量迁移过程中会停止Oracle数据库备节点的恢复进程,因此要注意备节点的OGG进程是否会删除抽过来的日志文件。
- 不支持在迁移过程中产生的Oracle DDL语句。
- 不支持非同源数据库的DDL语句迁移,即数据库结构的改变不可同步。
- 在迁移过程中,会停止Oracle数据库备节点的OGG,在迁移前要确认业务是否有读取备节点的操作。
- 在Oracle数据库备节点端需要使用端口号9921-9940。
- Oracle数据库备节点必须是Linux操作系统。
- GaussDB的配置客户端接入认证要加入Oracle数据库备节点IP地址。
- Oracle数据库备节点运行Oracle数据库的用户需要有$JAVA_HOME的权限。
- 在GaussDB端需要支持expect命令。
- GaussDB分布式部署不支持lob、long等大字段类型。
- 以获取如下软件包:
表1 软件包 软件包名称
说明
上传服务器
获取地址
GaussDB_100-1.0.0-DATASYNC.tar.gz
全量同步软件安装包。
GaussDB 100
企业用户:点此前往
运营商用户:点此前往
com.huawei.gauss.jdbc.ZenithDriver-GaussDB_100_1.0.0.jar
GaussDB 100驱动包,用于OGG连接GaussDB 100。
从安装包的GaussDB_100_1.0.0-CLIENT-JDBC.tar.gz里面获得。
Oracle数据库备节点
OGG_BigData_Linux_x64_12.3.2.1.1.zip
GaussDB 100上用于导入数据的OGG安装包。
Oracle数据库备节点
请在Oracle官网下载。
版本号_fbo_ggs_Linux_x64_shiphome.zip
Oracle数据库备节点上用于捕获和传输数据的OGG安装
Oracle数据库备节点
ojdbc8-12.2.0.1.jar
Oracle驱动包,用于连接Oracle,必须为该版本。
GaussDB 100
操作步骤
- 使用PuttY工具,以root帐号登录Oracle数据库备节点和GaussDB 100服务器(单机/主备部署登录主DN服务器、分布式部署登录任一CN所在服务器)。
- 在Oracle数据库备节点和GaussDB 100上分别创建工作目录,用于安装同步软件及存放同步数据。盘空间大小要大于Oracle已有数据的1GB及以上。以下均以工作目录(work_dir)为“/opt/workspace”为例:
mkdir -p /opt/workspace mkdir -p /opt/workspace/software
- 修改工作目录权限。
在GaussDB端,修改工作目录权限为gaussdb运行用户和属组(例如:gaussdb运行用户为omm,属组为dbgrp)。chown -R omm.dbgrp /opt/workspaces
在Oracle数据库备节点,修改工作目录权限为Oracle运行用户和属组(例如:Oracle运行用户为oracle,属组为oinstall)。chown -R oracle.oinstall /opt/workspace
- 使用WinSCP工具,将软件包分别上传到工作目录"/opt/workspace"下,详情请参见表1
- 使用PuttY工具,以root帐号登录GaussDB 100服务器。
- 执行如下命令,切换到omm帐号登录。
[root@host2 /]#su - omm
- 执行以下命令,防止系统超时退出。
TMOUT=0
- 执行如下命令检查jdk版本。
echo $JAVA_HOME
无回显表示没有$JAVA_HOME,需要在~/.bashrc中添加环境变量。jdk版本要求1.8。
vi ~/.bashrc
按i进入编辑模式,增加环境变量后,按Esc键并输入:wq保存退出。
例如Java目录为“/home/omm/workspace/java/jdk-8u201 ”:
export JAVA_HOME=/home/omm/workspace/java/jdk-8u201 export PATH=$JAVA_HOME/bin:$PATH
重新加载:
source ~/.bashrc
- 进入trandata.ini文件(在相对路径script/config下)。
cd $GPHOME/script/config vi trandata.ini
- 按i编辑文件。
- 配置trandata.ini文件后,按Esc键并输入:wq保存退出。
[source_db_standby] host_ip = x.x.x.x #Oracle备节点IP user_name = oracle #Oracle备节点安装数据库用户名 dba_name = ogg_test #Oracle备节点具有DBA权限数据库用户,但不能是sys用户 db_port = 1521 #Oracle备节点数据库端口 server_name = ora12c #Oracle备节点数据库server_name(如果是rac必须填server_name) origin_dir = /home/ogg #Oracle备节点原OGG安装目录 work_dir = /home/app/oracle/trandata #Oracle备节点工作目录 sync_sw = 版本号_fbo_ggs_Linux_x64_shiphome.zip #Oracle备节点上传的OGG软件名称 db_name = ogg_ot,ogg_twl #Oracle备节点即将被同步的数据库(多个库之间使用半角,分割,且无空格) gas_pak = com.huawei.gauss.jdbc.ZenithDriver-GaussDB_100_1.0.0.jar #GaussDB驱动包 sync_swa = OGG_BigData_Linux_x64_12.3.2.1.1.zip #Oracle备节点上传的OGG软件名称 [target_db] host_ip = x.x.x.x #Gauss100节点IP(如果是单机则填入主DN的IP,如果是分布式则填入CN IP) user_name = omm #Gauss100节点安装数据库用户名 dba_name = ogg_sync #Gauss100节点数据库具有DBA权限的用户,但不能是sys用户 db_port = 8989 #Gauss100节点数据库端口 work_dir = /home/omm/workspace #Gauss100节点工作目录,用于存放迁移的文本,因此可用空间要比源库数据量要大 \ dss_sw = GaussDB_100-1.0.0-DATASYNC.tar.gz #DSS全量迁移工具
- 在GaussDB上创建与Oracle一致的数据库用户名、表空间名、表名、表结构。
- 以omm用户身份登录GaussDB 100服务器。
说明:
迁移命令必须在11的[target_db] 显示的“host_ip”服务器上执行。
- 在$GPHOME/script目录下执行如下命令,进行数据迁移。
在执行迁移命令后要输入配置文件中所配置用户的密码,密码输错3次命令会退出。建议密码不要带特殊字符。cd $GPHOME/script python gs_trandata
显示如下信息,表示数据迁移成功。如果迁移失败,可在“$GAUSSLOG/om/gs_trandata-xxx.log ”下查看日志信息。
当迁移命令执行成功后,表示OGG在后台已经启动实时数据同步,具体达成数据一致的时间,需要去查看Oracle的OGG进程状态。
the data full migration is complete and the ogg software begins incremental migration
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」关注作者【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。评论
- 修改工作目录权限。