NO.1 ORCLA注意事项
数据库必须处于archivelog模式,并且必须启用补充日志记录。
在数据库服务器上:
注:alter database add supplemental log data (all) columns 是指启用补充日志记录。
为了成功执行连接器,必须以特权Oracle用户启动连接器。如果给定用户具有DBA角色,则可以跳过此步骤,否则将执行以下脚本来创建特权用户。
1.用有dba权限的用户登录:sys用户
2.创建一个新用户:create user abc identified by 123456;
3.授予DBA权限: grant connect,resource,dba to abc;
ok,创建好了,就可以用abc这个用户登录了,abc用户拥有dba权限。
select * from dba_users; 查看数据库里面所有用户,前提是你是有dba权限的帐号,如sys,system
select * from all_users; 查看你能管理的所有用户!
select * from user_users; 查看当前用户信息 !
NO.2简单的创建一个Oracle表
SQL> create table test_kafka(id VARCHAR(50) NOT NULL,username varchar2(100));
NO.3 添加相关组件
1)从https://github.com/erdemcer/kafka-connect-oracle下载整个项目,把整个项目mvn clean package成kafa-connect-oracle-1.0.jar。
2)下载一个oracle的jdbc驱动jar—ojdbc7.jar
3)将kafa-connect-oracle-1.0.jar and ojdbc7.jar放在kafka的安装包下的lib目录下,
4)将github项目里面的config/OracleSourceConnector.properties文件拷贝到kafak/config
No.4 修改配置文件
[[email protected] config]# vim connect-standalone.properties
[[email protected] config]# vim OracleSourceConnector.properties
NO.5 启动kafka
[[email protected] bin]# ./kafka-server-start.sh …/config/server.properties
1.创建Topic
kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test-Oracle
2.启动connector
[[email protected] bin]# ./connect-standalone.sh …/config/connect-standalone.properties …/config/OracleSourceConnector.properties
-----启动成功会有以下信息:
3.启动consumer
[[email protected] bin]# ./kafka-console-consumer.sh --bootstrap-server localhost:9092 --from-beginning --topic huang-Oracle
启动成功会等待topic数据,然后消费到控制台
NO.6在数据库中插入一条数据
SQL> INSERT INTO test_kafka values(‘1’,‘huang’);
一定注意commit提交,否则kafka不会收到数据
可以看到在消费的控制台上出现:
插入的值以key:value的形式打印到控制台上。
同样删除和修改也会将信息打印到控制台上,会在key为data以及before上体现不同。
这样也就实现了oracle中的数据在Insert时与kafka同步。