sql server 配置配置 日志跟踪
sql server 配置
配置 日志跟踪(sql server profiler)
- 在win系统下面的开始菜单中找到 sql server profiler 打开
- 点击文件 依次选择 ‘模板’ ‘新建模板’
-
选择 ‘选择事件’
-
列为:EventClass,TextData,DatabaseName,DatabaseID,RowCounts,SPID,HostName,Writes
-
事件:
-
-
列筛选
-
TextData
-
类似于 :%update%,%UPDATE%,%delete%,%DELETE%,%ALTER%
-
排除不包含值的行 也需要勾选
-
不类似于:%declare%,%SELECT%,%BEGIN%,%ROLLBACK%,%COMMIT%,%EXECUTE%
-
排除不包含值的行 也需要勾选
-
-
RowCounts
- 不等于:0 表示清除掉 执行语句对 数据没有影响的信息
- 排除不包含值的行 也需要勾选
以上是采集sql server 的配置
启动SQL Server 的日志跟踪
- 点击 文件 选择 新建跟踪
- 连接到 SQL Server 服务器
- [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-B6KBdEbe-1571062930789)(C:\Users\yx\AppData\Roaming\Typora\typora-user-images\1563761135057.png)]
- 跟踪属性
- 在 使用模板内 选择 上面新建的模板 名
- 选择 保存到表
- 在 使用模板内 选择 上面新建的模板 名
- 运行启动 测试 查看表中是否能采集到数据信息
-
flume 配置
配置conf文件
-
找到 flume 的配置文件 目录
-
创建 flume 配置文件 flume-sqlserver-kafka.conf ( 命令 touch /opt/cloudera/parcels/CDH/lib/flume-ng/conf/flume-sqlserver-kafka.conf)
# 数据来源 sync.sources = s-1 # 数据通道 sync.channels = c-1 # 数据去处,这里配置了failover,根据下面的优先级配置,会先启用k-1,k-1挂了后再启用k-2 sync.sinks = k-1 #这个是配置failover的关键,需要有一个sink group sync.sinkgroups = g-1 sync.sinkgroups.g-1.sinks = k-1 k-2 #处理的类型是failover sync.sinkgroups.g-1.processor.type = failover #优先级,数字越大优先级越高,每个sink的优先级必须不相同 sync.sinkgroups.g-1.processor.priority.k-1 = 5 sync.sinkgroups.g-1.processor.priority.k-2 = 10 #设置为10秒,当然可以根据你的实际状况更改成更快或者很慢 sync.sinkgroups.g-1.processor.maxpenalty = 10000 ########## 数据通道的定义 # 数据量不大,直接放内存。其实还可以放在JDBC,kafka或者磁盘文件等 sync.channels.c-1.type = memory # 通道队列的最大长度 sync.channels.c-1.capacity = 100000 # putList和takeList队列的最大长度,sink从capacity中抓取batchsize个event,放到这个队列。所以此参数最好比capacity小,比sink的batchsize大。 # 官方定义:The maximum number of events the channel will take from a source or give to a sink per transaction. sync.channels.c-1.transactionCapacity = 1000 sync.channels.c-1.byteCapacityBufferPercentage = 20 ### 默认值的默认值等于JVM可用的最大内存的80%,可以不配置 # sync.channels.c-1.byteCapacity = 800000 #########sql source################# # source s-1用到的通道,和sink的通道要保持一致,否则就GG了 sync.sources.s-1.channels=c-1 ######### For each one of the sources, the type is defined sync.sources.s-1.type = org.keedio.flume.source.SQLSource sync.sources.s-1.hibernate.connection.url = jdbc:sqlserver://10.3.2.158:1433; DatabaseName=ReportServerTempDB ######### Hibernate Database connection properties sync.sources.s-1.hibernate.connection.user = sa sync.sources.s-1.hibernate.connection.password = Aa1234 sync.sources.s-1.hibernate.connection.autocommit = true sync.sources.s-1.hibernate.dialect = org.hibernate.dialect.SQLServer2008Dialect sync.sources.s-1.hibernate.connection.driver_class = com.microsoft.sqlserver.jdbc.SQLServerDriver sync.sources.s-1.run.query.delay=1000 sync.sources.s-1.status.file.path = /var/log/flume/ #数据采集状态文件 flumeSql.sources.sourceTest.status.file.name=flumeSql.sqlSource.status sync.sources.s-1.status.file.name = trace-demo.log ######## Custom query sync.sources.s-1.start.from = 0 #flume 会自动将第一列 保存到状态文件中 (/var/log/flume/)的 "LastIndex"字段 例如 {"LastIndex":"3"} sync.sources.s-1.custom.query =select [RowNumber],(REPLACE([DatabaseName], CHAR(13) + CHAR(10), ' ')+'#-#'+REPLACE(cast([TextData] as nvarchar(MAX)),CHAR(13) + CHAR(10),' ')) AS DatabaseNames from [dbo].[trace-demo] WHERE [RowNumber]>$@$ ORDER BY [RowNumber] ASC sync.sources.s-1.batch.size = 100 sync.sources.s-1.max.rows = 100 sync.sources.s-1.hibernate.connection.provider_class = org.hibernate.c3p0.internal.C3P0ConnectionProvider sync.sources.s-1.hibernate.c3p0.min_size=5 sync.sources.s-1.hibernate.c3p0.max_size=20 ######### sinks 1 # sink k-1用到的通道,和source的通道要保持一致,否则取不到数据 sync.sinks.k-1.channel = c-1 sync.sinks.k-1.type = org.apache.flume.sink.kafka.KafkaSink sync.sinks.k-1.kafka.topic = sqlserver158 sync.sinks.k-1.kafka.bootstrap.servers = 10.100.11.29:9092,10.100.11.30:9092,10.100.11.32:9092 sync.sinks.k-1.kafka.producer.acks = 1 # 每批次处理的event数量 sync.sinks.k-1.kafka.flumeBatchSize = 100 ######### sinks 2 # sink k-2用到的通道,和source的通道要保持一致,否则取不到数据 #sync.sinks.k-2.channel = c-1 #sync.sinks.k-2.type = org.apache.flume.sink.kafka.KafkaSink #sync.sinks.k-2.kafka.topic = test-0 #sync.sinks.k-2.kafka.bootstrap.servers = 192.168.200.10:9092 #sync.sinks.k-2.kafka.producer.acks = 1 #sync.sinks.k-1.kafka.flumeBatchSize = 100
-
flume 执行命令
flume-ng agent -n sync -c conf -f /opt/cloudera/parcels/CDH/lib/flume-ng/conf/flume-sqlserver-kafka.conf -Dflume.root.logger=DEBUG,console
kafka 主题创建
创建主题
-
kafka-topics --create --zookeeper 10.100.11.29:2181,10.100.11.30:2181,10.100.11.32:2181 --replication-factor 3 --partitions 3 --topic sqlserver158
消息生产
-
kafka-console-producer --broker-list 10.100.11.29:9092,10.100.11.30:9092,10.100.11.32:9092 --topic sqlserver158
消息消费
-
kafka-console-consumer --bootstrap-server 10.100.11.29:9092,10.100.11.30:9092,10.100.11.32:9092 --from-beginning --topic sqlserver158