ltdts_ora — Ltdts_ora用于将数据从Oracle同步到LightDB。
java -jar ltdts_ora.jar [option...] [
示例:java -jar ltdts_ora.jar --server.port=7777 --oh=192.168.1.1:1521/test --ou=XSTRM --op=dbz --oa=DBZXOUT --lh=192.168.1.2:7000/postgres --lu=lightdb --lp=lightdb123
]
ltdts_ora用于将数据从Oracle同步到LightDB。
在运行ltdts_ora.jar之前,您需要先完成以下准备工作。
# 打开Oracle归档日志并启用XStream。
sqlplus /nolog
CONNECT sys/password@host:port AS SYSDBA;
alter system set db_recovery_file_dest_size = 100G;
alter system set db_recovery_file_dest = '/opt/oracle/oradata/recovery_area' scope=spfile;
alter system set enable_goldengate_replication=true;
shutdown immediate;
startup mount;
alter database archivelog;
alter database open;
-- select status from v$instance;
-- 应显示 "Database log mode: Archive Mode"
archive log list;
exit;
# 创建XStream管理员用户
sqlplus sys/password@host:port/SID as sysdba
CREATE TABLESPACE xstream_adm_tbs DATAFILE '/opt/oracle/oradata/orcl/xstream_adm_tbs.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
CREATE USER xstrmadmin IDENTIFIED BY dbz DEFAULT TABLESPACE xstream_adm_tbs QUOTA UNLIMITED ON xstream_adm_tbs;
GRANT CREATE SESSION TO xstrmadmin;
BEGIN
DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE(
grantee => 'xstrmadmin',
privilege_type => 'CAPTURE',
grant_select_privileges => TRUE,
container => 'ALL'
);
END;
# 创建连接器的XStream用户
CREATE TABLESPACE xstream_tbs DATAFILE '/opt/oracle/oradata/orcl/xstream_tbs.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
CREATE USER xstrm IDENTIFIED BY dbz DEFAULT TABLESPACE xstream_tbs QUOTA UNLIMITED ON xstream_tbs;
GRANT CREATE SESSION TO xstrm;
GRANT SELECT ON V_$DATABASE to xstrm;
GRANT FLASHBACK ANY TABLE TO xstrm;
GRANT SELECT ANY TABLE to xstrm;
GRANT LOCK ANY TABLE TO xstrm;
grant select_catalog_role to xstrm;
GRANT EXECUTE_CATALOG_ROLE TO xstrm;
# alter database add supplemental log data (all) columns;
alter database add supplemental log data (primary key, unique index) columns;
exit;
# 创建XStream出站服务器
sqlplus xstrmadmin/password@host:port/SID
DECLARE
tables DBMS_UTILITY.UNCL_ARRAY;
schemas DBMS_UTILITY.UNCL_ARRAY;
BEGIN
tables(1) := NULL;
schemas(1) := 'XSTRM';
DBMS_XSTREAM_ADM.CREATE_OUTBOUND(
server_name => 'dbzxout',
table_names => tables,
schema_names => schemas
);
END;
/
exit;
# 配置XStream用户帐户以连接到XStream出站服务器
sqlplus sys/password@host:port/SID as sysdba
BEGIN
DBMS_XSTREAM_ADM.ALTER_OUTBOUND(
server_name => 'dbzxout',
connect_user => 'xstrm'
);
END;
/
exit;
必须至少指定以下选项之一才能选择操作:
--oh指定Oracle的主机、Oracle的端口和Oracle的数据库名称。 格式类似于192.168.1.1:1521/ORCL。
--ou要连接的Oracle用户名。
--opOracle用户密码。
--oaOracle XStream out应用程序名称。
--m数据同步格式模式,选项为{SQL,JSON},默认值为SQL。
--sd您要在哪里同步数据,选项为{LT,FILE},默认值为LT。 [提示:LT是LightDB的缩写]
--lh指定LightDB的主机、LightDB的端口和LightDB的数据库名称。 格式类似于192.168.1.1:5432/postgres。
--lu要连接的LightDB用户名。
--lpLightDB用户密码。
--bl不要同步的黑名单表,如果有多个,请用逗号分隔。