1.登陆Oracle
lsnrctl status 查看监听
lsnrctl start 开启监听
[oracle@172~]sqlplus sys/password as sysdba
SQL>shutdown immediate
SQL>startup mount
SQL>alter database archivelog;
SQL>alter database open;
SQL>alter database add supplemental log data (all) columns;
注:alter database archivelog; 开启归档日志
alter database noarchivelog; 关闭 归档日志
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; 查看当前用户信息 !
创建测试表
create table on_log(ip varchar(19) , time varchar(20),user_id varchar(15),province varchar(16),phone_type varchar(20),machine_type varchar(4));
插入语句
INSERT INTO on_log values ('193.34.32.2','2019-03-05 12:12:09','001','河南省','pc','p') ;
INSERT INTO on_log values ('193.34.32.23','2019-03-05 12:12:09','001','河南省','pc','P') ;
2.启动zookeeper kafka
后台运行
nohup ./zookeeper-server-start.sh ../config/zookeeper.properties >> zook.log &
nohup ./kafka-server-start.sh ../config/server.properties >> kafka.log &
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
4.修改配置文件
配置kafka的config/connect-standalone.properties文件
bootstrap.servers=node1IP:9092,node2IP:9092
key.converter=org.apache.kafka.connect.json.JsonConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=true
value.converter.schemas.enable=true
internal.key.converter=org.apache.kafka.connect.json.JsonConverter
internal.value.converter=org.apache.kafka.connect.json.JsonConverter
internal.key.converter.schemas.enable=false
internal.value.converter.schemas.enable=false
offset.storage.file.filename=/tmp/connect.offset
offset.flush.interval.ms=10000
OracleSourceConnector.properties中配置
name=oracle-logminer-connector
connector.class=com.ecer.kafka.connect.oracle.OracleSourceConnector
db.name.alias=test
tasks.max=1
topic=user
db.name=orcl
db.hostname=hostname
db.port=1521
db.user=abc
db.user.password=123456
db.fetch.size=1 # 如果数据量比较大,可以增大(存在问题,达到你的设定值才做一次同步)
table.whitelist=ABC.*
table.blacklist=TEST2.TABLE3
parse.dml.data=false
reset.offset=false
multitenant=false
创建topic
./kafka-topics.sh --create --zookeeper guassdb-01:2181 --replication-factor 1 --partitions 2 --topic user
5.运行connector
nohup ./connect-standalone.sh ../config/connect-standalone.properties ../config/oracleSourceConnector.properties >> kafka-conn-oracle.log &
运行消费者即可看到已经到kafka中的数据
./kafka-console-consumer.sh --zookeeper guassdb-01:2181 --from-beginning --topic user
6.注意点
使用的kafka版本 kafka_2.12-0.10.2.0
../bin下(里边已经有了zookeeper ,可以不需要单独安装)
../config下
Kafka的server.propertes
broker.id=0 (集群时 每个节点值不一样)
listeners=PLAINTEXT://10.199.100.210:9092
zookeeper.connect=10.199.100.210:2181