如何审计 Linux 系统的操作行为

很多时候我们为了安全审计或者故障跟踪排错, 可能会记录分析主机系统的操作行为. 比如在系统中新增了一个用户, 修改了一个文件名, 或者执行了一些命令等等, 理论上记录的越详细, 越有利于审计和排错的目的. 不过过剩的记录也会为分析带来不少麻烦, 尤其是将很多主机的记录行为发送到固定的远程主机中, 数据越多, 分析的成本便越大. 实际上, 绝大多数的系统行为都是重复多余的, 比如 cron 任务计划, 我们信任的程序等, 这些都会产生大量的记录, 但很少用于审计分析. 基于这个需求, 我们在审计系统操作行为的时候, 至少应该添加一些过滤规则, 避免记录过多的无用信息, 比如重复的 cron...

MySQL 编码不一致可能引起的问题

问题列表 存储过程与编码 jdbc 直接执行 sql jdbc useSSL 参数变更 存储过程与编码 MySQL 存储过程中, 表和数据的编码与数据库和存储过程默认的编码不同则可能出现 sql 不会使用索引的情况, 因为 MySQL 会对条件列的数据做相应的编码转换, 比如以下, 表数据为 latin1, MySQL 解析器会做一些转换: ... WHERE namecolumn...

发生 SLAB 内存泄漏该怎么办

通常应用程序主要通过类似 malloc 等标准函数来进行内存的分配使用, 不过在 Linux 中, 内核无法使用标准函数, 一般通过 SLAB Allocator 机制来进行内存的分配. 各个子系统, 驱动以及内核模块等都可以通过 SLAB Allocator 机制分配内存, 同时该机制还可以当作缓存来使用, 这点主要是针对经常分配并释放的对象. 从内核 2.6 版本开始, slab 分配器有两个替代分配器: 分配器 用途...

为什么 DISTINCT 返回错误的结果

问题说明 在通过 SELECT DISTINCT 进行查询的时候发现结果一直返回空, 然而通过 SELECT 却能返回正常的结果, 如下所示: -- Server version: 5.6.38-83.0-log Percona Server mysql > select distinct(name) from t_web_column where column_id IN (946390,...

为什么 Percona MySQL 开启 NUMA 选项后启动很慢

最近在使用新版本 Percona MySQL 的时候, 发现启动巨慢, 且启动时间随 innodb_buffer_pool_size 的大小成正比, 配置的 innodb_buffer_pool_size 值越大, 启动时间就越长, 所耗时间约为 T = innodb_buffer_pool_size(GB), 如下所示, 我们将 innodb_buffer_pool_size 配置的足够大, 就会发现实例启动耗时约 440s: Jul 7 12:00:44...

运维同学需要掌握的 MySQL 数据库知识

很多公司的运维同学或许都身兼数职, 其中打交道最多的应该要数操作系统和数据库, 从大的层面来看, 我们需要对系统和数据库都有一定的了解才能让服务稳定的运行. 不过要熟悉数据库一般都需要大量的实践才能对其有一定程度的理解, 这样才能避免很多故障产生. 下面则简单介绍运维同学需要掌握的 MySQL 数据库知识, 以便大家对 MySQL 的操作有个整体的认识: MySQL 方面知识 系统方面的知识 性能相关 定期巡检 管理与开发规范 其它 MySQL 方面知识 了解 MySQL 的架构设计 不同版本的...

git 使用记录

git 技巧 git-tips git 开发流程 git-flow github-flow 忽略文件 仓库下的 .gitignore 支持正则匹配, 在提交时忽略指定的文件. 基本使用 git status [-s/--short] git diff git diff --staged git diff --cached git...

什么情况下 MySQL slave 不会更新数据

什么情况下 MySQL slave 的 sql_thread 线程不会更新数据? 目前主从有两个原因: 1. 主从 server-id 相同 如果设置以下选项: replicate-same-server-id = 0 并且主从的 server-id 相同, 则 sql_thread 线程会忽略更新收到的数据; 我们应该保证主从配置不同的 server-id 值. 2....

MySQL 8.0 特性概览

MySQL 8.0 版本比之 5.7 做了很大的变化, 比较明显的主要有去掉了查询缓存, 密码验证方式变更, 默认编码变更等方面, 部分特性随着 8.0 最新版的发布也会存在小幅度的改变, 更多变化可以参考 what-is-new-in-mysql8.0 了解更多. 如果是从 5.7 升级到 8.0 可以参考 upgrading-from-previous-series.html 了解更多的不同. 下面则主要介绍 MySQL 常用特性的一些变化. 常用参数变更...

如何避免销毁 zfs 镜像后出现 Unable to automount 错误提示

简要说明 在正常创建 zfs 镜像后, 如果需要访问镜像的文件, 可以直接访问当前 zfs 系统下的 .zfs 隐藏文件, 在访问镜像目录内容的时候会触发 zfs 的 automount 自动挂载, 这点有点像 Linux 内核提供的 automount 属性, 即默认不挂载镜像设备文件, 仅在访问的时候自动挂载, 如下所示: # zfs...