Welcome to IT 生活 互动学习空间,IT 记录 、分享、学习、提高
Jan 12
如何在Windows下监控mysql正在执行的sql语句和日志
因为我们开发的时候大部分是在本机进行,使用本地的数据库,所以这边以本地为例
以本机mysql为例,先查看mysql日志启用情况,默认情况下mysql日志是关闭状态,
可以通过如下语句 SHOW VARIABLES LIKE "general_log%" ,进行查看,
这时我们看到的是OFF,还有日志所在的位置,使用此默认位置


how-to-show-mysql-sql-log
可以通过如下语句开启,SET GLOBAL general_log = 'ON',执行成功之后看到如下
这样我们就开启mysql日志文件了,
若是在Linux系统下,我们直接使用 tail -f 命令进行日志的输出查看,在Windows下,我们通过Bare Tail这个实时读取sql日志文件和输出sql语句

mysql> SHOW VARIABLES LIKE "general_log%";
+------------------+------------------------------------------------------+
| Variable_name    | Value                                                |
+------------------+------------------------------------------------------+
| general_log      | ON                                                   |
| general_log_file | C:\phpStudy\PHPTutorial\MySQL\data\itlife365-com.log |
+------------------+------------------------------------------------------+
2 rows in set (0.00 sec)

mysql>
mysql> SELECT * from mysql.general_log ORDER BY event_time DESC;
Empty set (0.00 sec)

mysql> SET GLOBAL general_log = 'OFF';
Query OK, 0 rows affected (0.01 sec)

mysql> SELECT * from mysql.general_log ORDER BY event_time DESC;
Empty set (0.00 sec)

mysql> SHOW VARIABLES LIKE "general_log%";
+------------------+------------------------------------------------------+
| Variable_name    | Value                                                |
+------------------+------------------------------------------------------+
| general_log      | OFF                                                  |
| general_log_file | C:\phpStudy\PHPTutorial\MySQL\data\itlife365-com.log |
+------------------+------------------------------------------------------+
2 rows in set (0.00 sec)

其他语句也可以参考
1、使用processlist,但是有个弊端,就是只能查看正在执行的sql语句,对应历史记录,查看不到。好处是不用设置,不会保存。
-- use information_schema;
-- show processlist;
或者:
-- select * from information_schema.`PROCESSLIST` where info is not null;

2、开启日志模式
-- 1、设置
-- SET GLOBAL log_output = 'TABLE';SET GLOBAL general_log = 'ON';  //日志开启
-- SET GLOBAL log_output = 'TABLE'; SET GLOBAL general_log = 'OFF';  //日志关闭
-- 2、查询
SELECT * from mysql.general_log ORDER BY event_time DESC;

-- 3、清空表(delete对于这个表,不允许使用,只能用truncate)
-- truncate table mysql.general_log;
在查询sql语句之后,在对应的  C:\Program Files\MySQL\MySQL Server 5.7\data   文件夹下面有对应的log记录
如:
 C:\phpStudy\PHPTutorial\MySQL\data\itlife365-com.log
ps:在查询到所需要的记录之后,应尽快关闭日志模式,占用磁盘空间比较大
Tags:
Nov 28
如何查看exe是用什么语言写的
下载到一个.exe 文件,旁边有很多.dll的文件,想看软件 是用什么开发语言写的。
网上查询了如下两款软件,第二个好用
1、使用peid工具查看
2、使用Detect It Easy工具查看
下载地址 https://www.baidu.com/link?url=94SvvnxYpxfFzoqIVWisLpjLR_jP3eoDkipZms2PTZObNW4niP37HOYjaPUv7M28cBVLaaIb1ulqnyyefHz_dCk1LW9JicoOpCeleSSsGeRw5Exi-ba14GQvXSjc3TM89j8hitAY-7H-XvqYEppWka&wd=&eqid=86efb2760006faec000000065ddfd2e2
或者网上查找Detect It Easy 到官网下载
how-to-find-exe-language
Tags:
Jun 1
-- begin
之前在配置mssql 采集的时候,还专门去研究CDC的原理,怎么不知道有一个debezium这个好用的开源工具呢?
What is Debezium?
from:https://debezium.io/docs/tutorial/
Debezium is a distributed platform that turns your existing databases into event streams, so applications can see and respond immediately to each row-level change in the databases. Debezium is built on top of Apache Kafka and provides Kafka Connect compatible connectors that monitor specific database management systems. Debezium records the history of data changes in Kafka logs, from where your application consumes them. This makes it possible for your application to easily consume all of the events correctly and completely. Even if your application stops (or crashes), upon restart it will start consuming the events where it left off so it misses nothing.
Debezium是一个开源项目,为捕获数据更改(Capture Data Change,CDC)提供了一个低延迟的流式处理平台,通过安装配置Debezium监控数据库,可以实时消费行级别(row-level)的更改。身为一个分布式系统,Debezium也拥有良好的容错性。
Debezium的源端(即支持监控哪些数据库) : MySQL,MongoDB,PostgreSQL,Oracle,SQL Server
Debezium的目标端(即可以数据导入端) : Kafka
Debezium的应用 : 实时同步数据,实时消费数据
from:https://blog.csdn.net/bingoxubin/article/details/87871272
官网https://debezium.io/docs/tutorial/


Tags:
Jun 1
对debezium的运维和使用大半年时间。曾经管理的单个debezium集群有10个左右的debeizum任务。某个库的debezium订阅的表数量大概有几十个,得出了很多经验,踩了很多坑。下面会列出各种遇到的问题和一些比较不错的实践。

踩坑
debezium坑很多!!最大的坑就是kafka connect的rebalance;每当有新的debezium connector被发到集群后,就会触发集群的rebalance;集群内部的connector任务开始重启,表面上看任务重新分配,每个debezium实例都能均匀的分配到任务,确实很优雅。但是事实上重启集群内部所有的connector一个很重的操作。由于本身debezium的一些不优雅的特性,导致重启有可能造成集群内多个connector挂掉。所以需要尽可能的少触发集群的rebalance; 不过这个巨坑其实很难避免。

其它的几个大坑:

debezium的history topic 不能被多个connector共用。如果新的connector使用了集群内某个connector正在使用的history topic,集群内的正在使用history topic的connector会抛出异常终止(这个在0.5.x版本的时候,并不会抛出异常!!)。
竟可能的每个库对应一个connector,每个connector只订阅需要接入debezium的某个库内的表。可以通过设置库的白名单和表的白名单实现。(一个任务订阅多个库、多个表是非常不正确的行为,后续新增表代价会非常大)
debezium connector重启并不是每次都成功的,也即是说connector重启可能会导致任务挂掉。history topic可能会非常的大,connector重启时会读取history topic所有数据,如果history topic数据量非常的大,connector可能就无法在给定的时间内启动,connector抛出异常启动失败。
坑3这个坑遇上rebalance,就会出现比较严重的问题。如果集群内有多个connector,并且多个connector的histroy topic都很大,那rebalance之后,这些connector很有可能都会重启失败。
坑1和rebalance也有关系。debezium集群内connector数量很多时,重启可能会发生history topic被共用的异常,但是事实上我们并没有共用!!
建议
一个debezium内尽量不要运行太多的connector。相同数量的机器情况下,多集群的效果会比单集群多服务器好很多!
把很重的connector迁到单独的集群。比如我所在的公司,需要订阅一个库内几十个表,这就导致任务的重启非常的慢,停掉任务就要花很长时间,如果和其它connector部署在一起,不是很好!(理由自己想)
推荐将debezium部署到k8s,集群扩容、缩容会很方便。
可以尝试将每个connector对应一个k8s pod,来做到正真的资源隔离,互不影响。当然这个我没有尝试过 ~.~ 。
大概就这些吧。
--------------------- 
作者:_laomei_ 
来源:CSDN 
原文:https://blog.csdn.net/sweatOtt/article/details/82430724 
版权声明:本文为博主原创文章,转载请附上博文链接!

---end
Tags:
May 10
-- begin how-linux-get-dir-laster-file-name
linux获取文件夹下最新的文件名
ls -lt /dirname/ | grep filename | head -n 1 |awk '{print $9}'

逐条解释:

ls -lt /dirname/
 列出此目录下的所有文件并按照时间先后排序

grep filename
 过滤出包含关键字的文件

head -n 1
 查看排名第一的文件

awk '{print $9}'
打印出第九字段

其他命令
shell从字符串中提取数字
echo "2019年05月21日" | tr -cd "[0-9]"
这样就可以提取出20190521

按时间反序排序当前文件夹中文件(-r反序)
在当前文件夹内查找最近一天内更改的文件(包括子文件夹):
find . -type f -mtime -1
1天以前更改的文件:
find . -type f -mtime +1
最近10分钟内状态变化的文件:
find . -type f -cmin -10

查找所有文件的名称
ll -rth|grep -v "total"|awk -F ' ' {'print $NF'} 
-- end how-linux-get-dir-laster-file-name
Tags:
分页: 1/291 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]