部署准备
序号 | 类型 | 软件名称 | 说明 |
---|---|---|---|
1 | 操作系统 | Windows Server 2003 或更高版本(RedHat 6.5或CentOS 7或Ubuntu 11) | 部署应用服务器,建议内存在8G以下,如果多个适配器,则可以根据实际情况增加相应的内存大小 |
2 | 应用服务器 | JDK 6(或更高版本) | |
3 | Tomcat 6.5(或更高版本) | ||
4 | 适配端应用 | Dataclient.dmp | Oracle适配端dmp数据库 |
5 | Dataclient.sql | Sql Server适配端数据库 | |
6 | Dataclient.sql | MySql适配端数据库 | |
8 | Dataclient.jar |
数据导入
SQL Server数据导入
确定源库所在数据库服务器的IP地址、sa口令及源库的名称。
进入Sql Server企业管理器,在源库所在数据库新建一个dataclient数据库,
数据库的字符集与要适配的源库一致,数据库日志模式修改成简单模式,这个一定要修改,因为如果不是简单模式日志增长会很快。
在企业管理器中备份还原功能还原dataclient,还原文件为“dataclient.bak”。
Oracle 9i-11g版本数据导入
设置Process配置1600
用sys账号登录,修改Process参数,命令如下:
alter system set processes=1600 scope = spfile;
修改180天要强制修改口令:
用sys账号登录,修改口令限期问题,命令如下:
Alter PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
设置参数SQLNET.EXPIRE_TIME
找到sqlnet.ora文件(在Oracle_Home\network\amdin目录下),打开文件,在文件中增加以下内容:
SQLNET.EXPIRE_TIME=20
防火墙设置,设置1521端口可以外部防问,如果没有安装防火墙或防火墙关闭则可以不处理。
设置游标数(show parameter open_cursors;):
alter system set open_cursors=2000;
确定源库所在的服务IP地址、实例名及system账号与密码;
用sys账号(dba身份)登录PLSQL,打开sql文件,执行文件中的所有语句。
注意:要核对所有的语句是否执行成功。
Dmp导入:
Imp userid=dataclient/data file=dataclient文件目录/dataclient.dmp full=y
Oracle12c及以上版本数据导入
单租用户
参考文件:
设置Process配置1600
用sys账号登录,修改Process参数,命令如下:
alter system set processes=1600 scope = spfile;
修改180天要强制修改口令:
用sys账号登录,修改口令限期问题,命令如下:
Alter PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
设置参数SQLNET.EXPIRE_TIME
找到sqlnet.ora文件(在Oracle_Home\network\amdin目录下),打开文件,在文件中增加以下内容:
SQLNET.EXPIRE_TIME=20
防火墙设置,设置1521端口可以外部防问,如果没有安装防火墙或防火墙关闭则可以不处理。
设置游标数(show parameter open_cursors;):
alter system set open_cursors=2000;
确定源库所在的服务IP地址、实例名及system账号与密码;
启动归档日志
-- ---开启日志归档和及更改日志类型,启用xstream-------------------
sqlplus /nolog
CONNECT sys/password@orcl AS SYSDBA;
-- 执行以下命令开启Xstream。
alter system set enable_goldengate_replication=true;
-- 查询归档状态,如果未开启归档,需要开启归档,如果已开启归档,则不需要执行开启归档--
archive log list;
-- 以下为开启归档
-- 执行以下命令配置归档日志参数(真实环境下最少100G)
alter system set db_recovery_file_dest_size = 100G;
-- 正确填写归档日志存放路径
alter system set db_recovery_file_dest = '/opt/oracle/oradata/recovery_area' scope=spfile;
-- ------开启归档
shutdown immediate; (检查是否报错)
startup mount;
alter database archivelog;
alter database open;
-- -执行以下命令修改日志记录参数。
alter database add supplemental log data (all) columns;
创建出站服务器
-- 在sys用户执行以下命令创建XStream管理员用户并配置权限----
-- 核对dbf存放路径--
select * from dba_data_files;
CREATE TABLESPACE xstream_adm_tbs DATAFILE 'E:\ORACLE19C\APP\ADMINISTRATOR\ORADATA\ORCL\xstream_adm_tbs.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
CREATE USER xstreamadmin IDENTIFIED BY data DEFAULT TABLESPACE xstream_adm_tbs QUOTA UNLIMITED ON xstream_adm_tbs;
GRANT CREATE SESSION TO xstreamadmin;
-- ----------------------给xstreamadmin授权---------------------
BEGIN
DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE(
grantee => 'xstreamadmin',
privilege_type => 'CAPTURE',
grant_select_privileges => TRUE,
container => 'ALL'
);
END;
/* 可以通过查询 dba_xstream_administrator 视图检查用户是否正确授予流管
理权限*/
SELECT * FROM dba_xstream_administrator
-- 在xstreamamdin用户执行以下命令创建出站服务器,启用出站服务器
DECLARE
tables DBMS_UTILITY.UNCL_ARRAY;
schemas DBMS_UTILITY.UNCL_ARRAY;
BEGIN
tables(1) := null;
schemas(1) := 'HIS'; -- 改成要捕获业务系统数据用户
DBMS_XSTREAM_ADM.CREATE_OUTBOUND(
server_name => 'dbzxout',
table_names => tables,
schema_names => schemas
);
END;
创建出站用户
-- 创建出站用户---------------------------------
-- -在sys用户执行以下命令创建dataclient connect连接数据库的用户并配置权限。核对存放路径--
CREATE TABLESPACE xstream_tbs DATAFILE 'E:\ORACLE19C\APP\ADMINISTRATOR\ORADATA\ORCL\xstream_tbs.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
CREATE USER xstreamout IDENTIFIED BY data DEFAULT TABLESPACE xstream_tbs QUOTA UNLIMITED ON xstream_tbs;
grant unlimited tablespace to xstreamout;
GRANT CREATE SESSION TO xstreamout;
GRANT SELECT ON V_$DATABASE to xstreamout;
GRANT FLASHBACK ANY TABLE TO xstreamout;
GRANT SELECT ANY TABLE to xstreamout;
GRANT LOCK ANY TABLE TO xstreamout;
grant select_catalog_role to xstreamout;
-- -sys用户执行以下命令连接到数据库实例。
-- 执行以下命令允许xstreamout用户连接XStream出站服务器。
BEGIN
DBMS_XSTREAM_ADM.ALTER_OUTBOUND(
server_name => 'dbzxout',
connect_user => 'xstreamout'
);
END;
导入数据
用sys账号(dba身份)登录PLSQL,打开 sql文件,按步骤执行文件中的所有语句。
注意:要核对所有的语句是否执行成功。
Dmp导入:
Imp userid=dataclient/data file=dataclient文件目录/dataclient.dmp full=y
多租用户
参考文件:
设置Process配置1600
用sys账号登录,修改Process参数,命令如下:
alter system set processes=1600 scope = spfile;
修改180天要强制修改口令:
用sys账号登录,修改口令限期问题,命令如下:
Alter PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
设置参数SQLNET.EXPIRE_TIME
找到sqlnet.ora文件(在Oracle_Home\network\amdin目录下),打开文件,在文件中增加以下内容:
SQLNET.EXPIRE_TIME=20
防火墙设置,设置1521端口可以外部防问,如果没有安装防火墙或防火墙关闭则可以不处理。设置游标数(show parameter open_cursors;):
alter system set open_cursors=2000;
启动归档日志
-- ---开启日志归档和及更改日志类型,启用xstream-------------------
sqlplus nolog
CONNECT sys/password@orcl AS SYSDBA;
-- 执行以下命令开启Xstream。
alter system set enable_goldengate_replication=true;
-- 查询归档状态,如果未开启归档,需要开启归档,如果已开启归档,则不需要执行开启归档--
archive log list;
-- 以下为开启归档
-- 执行以下命令配置归档日志参数(真实环境下最少100G)
alter system set db_recovery_file_dest_size = 100G;
-- 正确填写归档日志存放路径
alter system set db_recovery_file_dest = '/opt/oracle/oradata/recovery_area' scope=spfile;
-- ------开启归档
shutdown immediate;(检查是否报错)
startup mount;
alter database archivelog;
alter database open;
-- -执行以下命令修改日志记录参数。
alter database add supplemental log data (all) columns;
创建出站服务器
-- 创建出站服务器---------------------------------
-- -----------在sys用户执行以下命令创建XStream管理员用户并配置权限
-- 核对dbf存放路径
select * from dba_data_files;
CREATE TABLESPACE xstream_adm_tbs DATAFILE 'E:\ORACLE19C\APP\ADMINISTRATOR\ORADATA\ORCL\xstream_adm_tbs.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
CREATE USER c##xstreamadmin IDENTIFIED BY data DEFAULT TABLESPACE xstream_adm_tbs QUOTA UNLIMITED ON xstream_adm_tbs;
GRANT CREATE SESSION TO c##xstreamadmin;
-- ----------------------给xstreamadmin授权---------------------
BEGIN
DBMS_XSTREAM_AUTH.GRANT_ADMIN_PRIVILEGE(
grantee => ' c##xstreamadmin ',
privilege_type => 'CAPTURE',
grant_select_privileges => TRUE,
container => 'ALL'
);
END;
/* 可以通过查询 dba_xstream_administrator 视图检查用户是否正确授予流管
理权限 */
SELECT * FROM dba_xstream_administrator
-- 在c##xstreamamdin用户执行以下命令创建出站服务器,启用出站服务器
DECLARE
tables DBMS_UTILITY.UNCL_ARRAY;
schemas DBMS_UTILITY.UNCL_ARRAY;
BEGIN
tables(1) := null;
schemas(1) := 'C##HIS'; -- 改成要捕获业务系统数据用户
DBMS_XSTREAM_ADM.CREATE_OUTBOUND(
server_name => 'dbzxout',
table_names => tables,
schema_names => schemas
);
END;
创建出站用户
-- -在sys用户执行以下命令创建dataclient connect连接数据库的用户并配置权限。
-- 核对dbf地址
CREATE TABLESPACE xstream_tbs DATAFILE 'E:\ORACLE19C\APP\ADMINISTRATOR\ORADATA\ORCL\xstream_tbs.dbf' SIZE 25M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;
CREATE USER c##xstreamout IDENTIFIED BY data DEFAULT TABLESPACE xstream_tbs QUOTA UNLIMITED ON xstream_tbs;
grant unlimited tablespace to c##xstreamout;
GRANT CREATE SESSION TO c##xstreamout;
GRANT SELECT ON V_$DATABASE to c##xstreamout;
GRANT FLASHBACK ANY TABLE TO c##xstreamout;
GRANT SELECT ANY TABLE to c##xstreamout;
GRANT LOCK ANY TABLE TO c##xstreamout;
grant select_catalog_role to c##xstreamout;
-- -执行以下命令以sys用户连接到数据库实例。
-- 执行以下命令允许c##xstreamout用户连接XStream出站服务器。
BEGIN
DBMS_XSTREAM_ADM.ALTER_OUTBOUND(
server_name => 'dbzxout',
connect_user => 'c##xstreamout'
);
END;
导入数据
用sys账号(dba身份)登录PLSQL,打开sql文件,按步骤执行文件中的所有语句。
注意:要核对所有的语句是否执行成功。
Dmp导入:
Imp userid=c##dataclient/data file=dataclient文件目录/dataclient.dmp full=y
MySql数据导入
确定源库所在数据库服务器的IP地址、root口令及源库的名称。
修改Mysql my.ini参数:
[mysqld] server-id=1 binlog_format=row log_bin=mysql-bin.log expire_logs_days=10 max_binlog_size=100M
在源库所在数据库新建一个dataclient数据库。
在查询窗口执行
set global log_bin_trust_function_creators=1;
打开dataclient.sql,执行dataclient.sql,注意,执行这个语句应该是在dataclient数据库中执行。
Jar包部署
安装前准备工作
下载JDK,地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html,注请下载64位的JDK版本。
下载Tomcat,地址;http://tomcat.apache.org/,请下载64位版本。
其它未涉及事宜。
JDK安装
双击进行安装;
配置环境变量,JAVA_HOME与Bin路径,下面是Windows的配置
设置JAVA_HOME:
在PATH中增加%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
jar部署前准备工作
Tomcat、JDK、数据库配置已经安装完成;
获得最的dataclient.jar包;
准备Winrar类似的解压工具与UE类似的编辑工具。
修改jar中配置文件
用winrar打开datacenter.jar包;
修改application.properties文件
application.properties在目录dataclient.jar\BOOT-INF\class下,修改datamanager连接信息,根据数据库类型选择不同的修改地方:
修改dataclient.properties文件
application.properties在目录dataclient.jar\BOOT-INF\class下,oracle 12c及以上的版本需要配置管道流接收服务,9i-11g的版本不需要开启管道流
#管道流接收服务配置成1表示表示启动运行 配置成0表示停止运行
修改redis数据库连接信息,如下图:
部署dataclient.jar包
拷贝修改后dataclient.jar包到新建目录springboot
创建批处理文件(bat文件)
启动bat文件
常见问题处理
重建xstream服务
参考文件:
MySql 适配器发布启停
如果MySql发布启停,请重启MySqlCdc,关闭MySqlCdc_Run.bat再运行MySqlCdc_Run.bat。
多个适配器适配一个业务库
dataclient用户:用户名不能相同。
用户配置:支撑库用户名要与实际用户名一致。
适配器支撑库修改C_C_CONNECTUSER表中数据。
shutdown immediate报错12514
在监听文件加入
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(ORACLE_HOME = E:\\oracle19c)
(SID_NAME = ORCL)
)