12 2021 档案

摘要:1.备份,导出单表, test.t_user /usr/bin/xtrabackup -uroot -p'GreatSQL' -S /data/GreatSQL/mysql.sock --tables='test.t_user' --backup --target-dir=/data/backup 阅读全文
posted @ 2021-12-17 12:13 屠魔的少年
摘要:说明: 在扫盲MongoDB相关的一些知识的时候,做下笔记方便自己需要的时候查阅。本文将说明分片相关的内容。在比较早之前已经对这些有过说明,可以看MongoDB 分片的原理、搭建、应用。分片(sharding)是指将数据库拆分,将其分散在不同的机器上的过程。将数据分散到不同的机器上,不需要功能强大的 阅读全文
posted @ 2021-12-17 10:22 屠魔的少年
摘要:摘要: 在MySQL中,慢查询日志是经常作为我们优化查询的依据,那在MongoDB中是否有类似的功能呢?答案是肯定的,那就是开启Profiling功能。该工具在运行的实例上收集有关MongoDB的写操作,游标,数据库命令等,可以在数据库级别开启该工具,也可以在实例级别开启。该工具会把收集到的所有都写 阅读全文
posted @ 2021-12-17 10:14 屠魔的少年
摘要:说明: 在扫盲MongoDB相关的一些知识的时候,顺手做下笔记。本文将说明副本集相关的内容。在比较早之前已经对这些有过说明,可以看MongoDB 副本集的原理、搭建、应用。MongoDB中的副本集是一组维护相同数据集的mongod进程,副本集提供冗余和高可用性,可提供一定程度的容错能力,以防止丢失单 阅读全文
posted @ 2021-12-17 10:11 屠魔的少年
摘要:背景 最近在扫盲MongoDB 4.2 的相关知识点,顺便记录下日常的一些操作。包括:用户管理、索引管理、引擎管理、副本集管理、分片管理等。本文对MongoDB的用户管理进行说明,以前有针对MogoDB 3.0的用户管理进行过说明:MongoDB 3.0 用户创建 本文MongoDB的配置文件模板: 阅读全文
posted @ 2021-12-16 22:58 屠魔的少年
摘要:摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法。 环境、测试: 在安装MongoDB之后,先关闭auth认证,进入查看数据库,只有一个local库,admin库是不存在的: root@zhoujinyi:/usr 阅读全文
posted @ 2021-12-16 22:55 屠魔的少年
摘要:背景 一般说MySQL的索引,都清楚其索引主要以B+树为主,此外还有Hash、RTree、FullText。本文简要说明一下MySQL的B+Tree索引,以及和其相关的二叉树、平衡二叉树、B-Tree,相关的知识网上很多,为了方便自己更快、清楚的了解,文本聚合一些内容以及个人的一些理解。 说明 二叉 阅读全文
posted @ 2021-12-16 22:44 屠魔的少年
摘要:“Too many open files”是一个比较常见的错误,不仅仅是在 MySQL 中。只要是在 Linux 中启动的进程,都有可能遇到这个错误。 究其原因,是进程打开的文件描述符数超过了自身的限制。 这个限制,是进程级别的,在 MySQL 中,与 open_files_limit 的设置有关。 阅读全文
posted @ 2021-12-16 22:07 屠魔的少年
摘要:SQL_MODE是MySQL中的一个系统变量(variable),可由多个MODE组成,每个MODE控制一种行为,如是否允许除数为0,日期中是否允许'0000-00-00'值。 为什么需要关注SQL_MODE呢? 首先,看三个简单的Demo(MySQL 5.6)。 1. mysql> create 阅读全文
posted @ 2021-12-16 22:01 屠魔的少年
摘要:命令如下: tcpdump -s 0 -l -w - dst 192.168.244.10 and port 3306 -i eno16777736 |strings 其中-i指定监听的网络接口,在RHEL 7下,网络接口名不再是之前的eth0,而是 eno16777736。 在RHEL 5&6下, 阅读全文
posted @ 2021-12-16 21:58 屠魔的少年
摘要:关于TIMESTAMP和DATETIME的比较 一个完整的日期格式如下:YYYY-MM-DD HH:MM:SS[.fraction],它可分为两部分:date部分和time部分,其中,date部分对应格式中的“YYYY-MM-DD”,time部分对应格式中的“HH:MM:SS[.fraction]” 阅读全文
posted @ 2021-12-16 21:48 屠魔的少年
摘要:CURRENT_TIMESTAMP CURRENT_TIMESTAMP() NOW() LOCALTIME LOCALTIME() LOCALTIMESTAMP LOCALTIMESTAMP() 阅读全文
posted @ 2021-12-16 21:46 屠魔的少年
摘要:一直以来,对于MySQL root密码的忘记,以为只有一种解法-skip-grant-tables。 问了下群里的大咖,第一反应也是skip-grant-tables。通过搜索引擎简单搜索了下,无论是百度,抑或Google,只要是用中文搜索,首页都是这种解法。可见这种解法在某种程度上已经占据了使用者 阅读全文
posted @ 2021-12-16 21:45 屠魔的少年
摘要:在线上进行DDL操作时,相对于其可能带来的系统负载,其实,我们最担心的还是MDL其可能导致的阻塞问题。 一旦DDL操作因获取不到MDL被阻塞,后续其它针对该表的其它操作都会被阻塞。典型如下,如阻塞稍久的话,我们会看到Threads_running飙升,CPU告警。 mysql> show proce 阅读全文
posted @ 2021-12-16 21:40 屠魔的少年
摘要:如果表示MyISAM那么可以直接去到数据库目录mv就可以。 Innodb完全不行,会提示相关表不存在。 第一种方法: RENAME database olddbname TO newdbname 这个是5.1.7到5.1.23版本可以用的,但是官方不推荐,会有丢失数据的危险 第二种方法: 1.创建需 阅读全文
posted @ 2021-12-15 22:58 屠魔的少年
摘要:xtrabackup相信目前使用已经非常广泛了,备份innodb表的首选工具,但是其中还是有点小坑,虽然发生的概率不大,但是我还是踩坑了。关于xtrabackup的详细参考请查阅官方文档http://www.percona.com/doc/percona-xtrabackup/2.2/intro.h 阅读全文
posted @ 2021-12-15 22:56 屠魔的少年
摘要:当我们输入不管大小写都能查询到数据,例如:输入 aaa 或者aaA ,AAA都能查询同样的结果,说明查询条件对大小写不敏感。 解决方案一: 于是怀疑Mysql的问题。做个实验:直接使用客户端用sql查询数据库。 发现的确是大小不敏感 。 通过查询资料发现需要设置collate(校对) 。 colla 阅读全文
posted @ 2021-12-15 22:40 屠魔的少年
摘要:pt-archiver相信大家都非常熟悉了,该工具可以按指定条件导出数据到文件,也可以按指定条件清理数据,同时也可以按条件把数据归档到另外一个表。最近在工作中无意发现在某种场景下会导致归档数据丢失。 下面建立表复现数据丢失的场景: 通过把表t1的数据归档到t2,条件是insert_time >= " 阅读全文
posted @ 2021-12-15 22:33 屠魔的少年
摘要:简介 go-sniffer 可以抓包截取项目(MySQL、Redis、MongoDB)中的请求并解析成相应的语句,并格式化输出。类似于在之前的文章 MySQL抓包工具:MySQL Sniffer【转】中介绍的mysql-sniffer。而 go-sniffer 可以对更多数据库进行抓包分析,现在来介 阅读全文
posted @ 2021-12-14 23:17 屠魔的少年
摘要:前言 当提到MySQL数据库的时候,我们的脑海里会想起几个关键字:索引、事务、数据库锁等等,索引是MySQL的灵魂,是平时进行查询时的利器,也是面试中的重中之重。 可能你了解索引的底层是b+树,会加快查询,也会在表中建立索引,但这是远远不够的,这里列举几个索引常见的面试题: 1、索引为什么要用b+树 阅读全文
posted @ 2021-12-14 23:11 屠魔的少年
摘要:在上篇文章《MySQL表结构变更,不可不知的Metadata Lock》中,我们介绍了MDL引入的背景,及基本概念,从“道”的层面知道了什么是MDL。下面就从“术”的层面看看如何定位MDL的相关问题。 在MySQL 5.7中,针对MDL,引入了一张新表performance_schema.metad 阅读全文
posted @ 2021-12-14 23:06 屠魔的少年
摘要:前言 MySQL在2016年仍然保持强劲的数据库流行度增长趋势。越来越多的客户将自己的应用建立在MySQL数据库之上,甚至是从Oracle迁移到MySQL上来。但也存在部分客户在使用MySQL数据库的过程中遇到一些比如响应时间慢,CPU打满等情况。阿里云RDS专家服务团队帮助云上客户解决过很多紧急问 阅读全文
posted @ 2021-12-14 23:02 屠魔的少年
摘要:前言 pt-fk-error-logger,通过定时拉取和解析show engine innodb status相关信息,并将错误信息打印在屏幕 或 写到日志文件 或 写到表,从而实现将所有发生的违反外键约束错误都保存下来;该工具默认是永久运行的,除非设置了--run-time 或 --iterat 阅读全文
posted @ 2021-12-14 22:41 屠魔的少年
摘要:前言 pt-find这个工具,和Linux find命令类似,通过SHOW TABLE STATUS方式,查找特定的表并执行一些SQL语句,对于日常运维工作也是有比较大的帮助。 pt-find 基本用法 (1)基本语法 pt-find [OPTIONS] [DATABASES] (2)常见选项 -- 阅读全文
posted @ 2021-12-14 22:40 屠魔的少年
摘要:前言 pt-fingerprint是Percona Toolkit工具集的其中一个,可以将SQL语句格式化为抽象化形式,可以用于数据脱敏等场景,接下来我们看一下。 pt-fingerprint 基本用法 (1)基本语法 pt-fingerprint [OPTIONS] [FILES] (2)常见选项 阅读全文
posted @ 2021-12-14 22:39 屠魔的少年
摘要:前言 相信大多数DBA都遇见过这样一个场景:开发同事给到一个非常大的SQL文件,里面包含了几千万甚至几亿行记录,这个时候我们应该怎么处理呢?如果直接导入的话,一方面串行执行效率比较低,另一方面大事务也可能导致主从复制延迟。pt-fifo-split这个工具,可以对大文件进行切割,就可以很好解决这个问 阅读全文
posted @ 2021-12-14 22:38 屠魔的少年
摘要:前言 在数据库中,索引可以加快查询速度,但是索引并不是越多越好,索引过多会带来额外的维护成本,降低DML操作的效率。pt-duplicate-key-checker这个工具,通过SHOW CREATE TABLE检查每一张表,找出其中重复/冗余的索引。 pt-duplicate-key-checke 阅读全文
posted @ 2021-12-14 22:36 屠魔的少年
摘要:前言 数据库的死锁,是开发和DBA都非常关注的信息,但是在MySQL中,查看死锁信息却不是非常方便,通过show engine innodb status只能查看最近一次发生的死锁信息,之前的死锁信息会被覆盖掉;这时候我们可以利用pt-deadlock-logger这个工具实现这个需求。 pt-de 阅读全文
posted @ 2021-12-14 22:36 屠魔的少年
摘要:pt-config-diff 基本用法 (1)基本语法 pt-config-diff [OPTIONS] CONFIG CONFIG [CONFIG...] (2)配置文件之间的对比 pt-config-diff /etc/my-1.cnf /etc/my-2.cnf (3)配置文件和系统变量之间的 阅读全文
posted @ 2021-12-14 22:35 屠魔的少年
摘要:前言 在日常工作中,时不时会收到内存使用率高的告警,那么我们应该如何处理呢?本文将从Linux和MySQL两个层面,介绍内存管理的相关知识点,希望能给大家带来一些帮助,以便更好地应对内存问题。 如何看懂内存指标 遇到内存问题,可以先通过free、vmstat、top等命令,进行检查。free命令,可 阅读全文
posted @ 2021-12-14 22:34 屠魔的少年
摘要:前言 所谓全文索引,就是一种通过建立倒排索引,快速匹配文档内容的方式。和B+树索引一样,倒排索引也是一种索引结构,一个倒排索引是由文档中所有不重复的分词和其所在文档的映射组成。倒排索引一般有两种不同的结构,一种是inverted file index,另一种是full inverted index。 阅读全文
posted @ 2021-12-14 22:32 屠魔的少年
摘要:背景 在日常的使用过程中,时不时会遇到个别,或者大量的连接堆积在 MySQL 中的现象,这时一般会考虑使用 kill 命令强制杀死这些长时间堆积起来的连接,尽快释放连接数和数据库服务器的 CPU 资源。 问题描述 在实际操作 kill 命令的时候,有时候会发现连接并没有第一时间被 kill 掉,仍旧 阅读全文
posted @ 2021-12-14 22:29 屠魔的少年
摘要:前言 在日常工作中,发现 MySQL 的状态不太对劲的时候,一般都会看看监控指标,很多时候会看到熟悉的一幕:CPU 使用率又爆了。本文会简单介绍一下 MySQL 和 CPU 之间的关系,对此有一些了解之后可以更准确的判断出问题的原因,也能够提前发现一些引发 CPU 问题的隐患。 怎么看懂 CPU 使 阅读全文
posted @ 2021-12-14 22:28 屠魔的少年
摘要:问题交代 在Linux下,SWAP的作用类似Windows系统下的“虚拟内存”。当物理内存不足时,拿出部分硬盘空间当SWAP分区(虚拟成内存)使用,从而解决内存容量不足的情况。 SWAP意思是交换,顾名思义,当某进程向OS请求内存发现不足时,OS会把内存中暂时不用的数据交换出去,放在SWAP分区中, 阅读全文
posted @ 2021-12-14 21:55 屠魔的少年
摘要:1、问题现象 我的网站前段时间经常时不时就抽风一下,提示数据库无法连接,提示: 建立数据库连接时出错 本想反正是个人网站,挂就挂了,无所谓啦;也可能是VPS配置太低,访问量一大就容易出问题,忍忍算啦。 后来启荣大师说了一句话:看那木匠做的烂门 😓(⊙﹏⊙)b 于是下决心解决问题,不能再被鄙视啦,作 阅读全文
posted @ 2021-12-14 21:47 屠魔的少年
摘要:1 连接检测 连接失败检测:当监控组件无法连接到 Redis 实例时,则触发告警。 客户端连接数:执行 info clients 命令获取 connected_clients 就是客户端连接数。 2 变量检测 maxmemory:执行 config get maxmemory 获取配置的最大内存,判 阅读全文
posted @ 2021-12-12 14:40 屠魔的少年
摘要:1 背景 Hotkey 指某个时间段访问频率比较高的键值,对应的业务比如热点话题或者热点商品。 Hotkey 可能会导致集群流量不均衡,或者某一个节点 QPS、网卡流量被打满。 因此需要考虑一些措施来降低 Hotkey 出现的概率,比如在编码阶段避免产生 Hotkey,或者提前准备出现 Hotkey 阅读全文
posted @ 2021-12-12 14:36 屠魔的少年
摘要:1 什么是 Bigkey 下面这两种情况,在很多互联网公司都被认为是 Bigkey: 字符串类型:一般认为超过 10 KB 就是 Bigkey 非字符串类型:哈希、列表、集合、有序集合,体现在元素个数过多,比如超过 5000 个。 2 Bigkey 的危害 Bigkey 存在很多危害,具体体现在以这 阅读全文
posted @ 2021-12-12 14:36 屠魔的少年
摘要:AOF(Append Only File) 日志是写后日志,Redis 会先执行命令,把数据写入内存,然后才记录日志。 1 开启 AOF 日志 在 Redis 的配置文件中,设置以下两个参数即可开启 AOF: appendonly yesappendfilename "appendonly.aof" 阅读全文
posted @ 2021-12-12 14:26 屠魔的少年
摘要:1 生成 RDB 的方式 两个命令可以生成 RDB 文件:save 和 bgsave save:在主线程中执行,会导致阻塞,线上环境不建议使用 bgsave:创建一个子进程,专门用于写入 RDB 文件,避免了主线程的阻塞,这也是 Redis RDB 文件生成的默认配置。 bgsave 为了保证快照完 阅读全文
posted @ 2021-12-12 14:22 屠魔的少年
摘要:Redis 最为突出的特性就是:执行命令的速度非常快(原因是所有数据都存放在内存中)。但是单机 Redis 总会遇到瓶颈的,比如:并发、流量、内存等。在 Redis 3.0 之前,官方并没有提供集群方案,在访问量比较大的情况,基本使用的是 Twemproxy、Codis 等集群方案。直到 Redis 阅读全文
posted @ 2021-12-12 14:21 屠魔的少年
摘要:1 会话相关的管理语句 我们经常需要确定数据库当前正在执行的 SQL,CH 提供了一些系统表用于记录这些信息,具体用法如下: 1.1 获取活跃会话 SELECT query_id, user, address, elapsed, query FROM system.processes ORDER B 阅读全文
posted @ 2021-12-12 14:18 屠魔的少年
摘要:1 安装 Grafana Red Hat、CentOS 系统使用如下方式安装(这一节操作系统使用的是:CentOS 7.4): wget https://dl.grafana.com/oss/release/grafana-6.5.2-1.x86_64.rpmyum install grafana- 阅读全文
posted @ 2021-12-12 14:02 屠魔的少年
摘要:1 安装 MySQL 8.0 安装参考:https://dev.mysql.com/doc/refman/8.0/en/linux-installation.html 2 安装 ClickHouse ClickHouse 单机版安装参考:https://clickhouse.tech/docs/zh 阅读全文
posted @ 2021-12-12 13:51 屠魔的少年
摘要:1 Kafka 基础环境搭建 因为主要是为了测试数据同步,因此 Kafka 只简单安装了单机版本。 1.1 安装 JDK cd /usr/src 在这里[https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.htm 阅读全文
posted @ 2021-12-12 13:30 屠魔的少年
摘要:首先我们来看下官方文档对 alter table 语句的解释。alter table 语句有七个不同的阶段事件,每个事件在其不同的阶段执行,具体如下: stage/innodb/alter table (read PK and internal sort):当 ALTER TABLE 处于读取主键阶 阅读全文
posted @ 2021-12-12 11:47 屠魔的少年
摘要:# 只打印-查杀select大于30s的会话 pt-kill --host=127.0.0.1 --port=3306 --user=root --password=rootpwd --match-db='machine' --match-info "select|SELECT" --busy-ti 阅读全文
posted @ 2021-12-12 11:44 屠魔的少年
摘要:大数据时代的到来,数据成为企业最重要的资产之一,数据加密的也是保护数据资产的重要手段。本文主要在结合学习通过MySQL函数及Python加密方法来演示数据加密的一些简单方式。 01准备工作 为了便于后面对比,将各种方式的数据集存放在不同的表中。 创建原始明文数据表 /* 创建原始数据表 */ CRE 阅读全文
posted @ 2021-12-12 11:36 屠魔的少年
摘要:简介 用过MySQL数据库朋友一定对“ERROR 1040 (HY000): Too many connections”,这个报错不陌生,出现这个报错的原因有两种情况,一种是单个用户的连接数超过“max_user_connections”参数定义值,另外一种情况是,所有应用的连接数超过“max_co 阅读全文
posted @ 2021-12-12 11:35 屠魔的少年
摘要:pt-archiver功能介绍 pt-archiver有以下几个功能 按照过滤条件,将线上数据导出成归档文件 按照过滤条件,清理线上过期的历史数据 按照过滤条件,清理过期数据,并把数据归档到本地归档表,或者远端归档服务器的历史表 pt-archiver使用限制 使用pt-archiver工具,只有一 阅读全文
posted @ 2021-12-12 11:34 屠魔的少年
摘要:1.假如变量参数在column_list.txt中 cat column_list.txt 1111 1111 2222 2222 3333 4444 2.假如要生成批量查询test表中id等于上述列表值的select语句。可以使用如下命令: cat column_list.txt | awk '{ 阅读全文
posted @ 2021-12-12 11:33 屠魔的少年
摘要:什么情况下会出现数据不一致▼ 首先我们来谈一谈在什么情况下可能会引起主从数据的不一致性;在这一部分我会介绍几种常见的场景,可能会有没考虑到的场景,欢迎大家补充。 复制过程中实例宕机 复制过滤参数配置 Binlog非row格式 主从延迟过高 人为操作 从库发生写入操作 双主双写 MySQL主从版本不一 阅读全文
posted @ 2021-12-12 11:31 屠魔的少年
摘要:1. Recycle_bin简介 recycle_bin是一款MySQL插件,可以在不修改任何MySQL代码的情况下,自动备份MySQL中被Drop的数据库/表,在出现人为误操作删表时,可以快速的进行恢复。实现灵感来源于Oracle flashback的功能,但是从功能完整性上来讲,还有较大的差距, 阅读全文
posted @ 2021-12-12 11:28 屠魔的少年
摘要:默认情况下,我们的 MySQL 实例是可读写的。但有些情况下,我们可以将整个实例设置为只读状态,比如做迁移维护的时候或者将从库设为只读。本篇文章我们来看下 MySQL 设置只读相关知识。 1.关于 read_only 参数 MySQL系统中,提供有 read_only 和 super_read_on 阅读全文
posted @ 2021-12-12 11:23 屠魔的少年
摘要:业务报错”Column ‘create_time’ cannot be null”,从字面意思可以理解为表字段’create_time’想插入null值,但报错该字段不能为null。由此引发了对explicit_defaults_for_timestamp这个有关时间参数的思考。 概念概述 1. T 阅读全文
posted @ 2021-12-12 00:31 屠魔的少年
摘要:0. 背景 在业务低峰通过pt-osc在线做DDL期间出现死锁,导致业务的SQL被回滚了,对应用不友好。本案例死锁发生的场景:pt-osc拷贝最后一个chunk-size并且期间其它事务有对原表做insert操作,才会出现本案例的死锁。 1. 先简单介绍一下pt-osc的工作原理 创建一个跟原表表结 阅读全文
posted @ 2021-12-12 00:30 屠魔的少年
摘要:对crash的数据库进行故障分析并不是一件快乐的事情,尤其是 MySQL 的日志中没有提供 crash 原因的情形。比如当 MySQL 内存耗尽。在 2012年 Peter Zaitsev 写了一篇文章 分析MySQL如何使用内存 该文章中有很多有用的技巧。使用新版本的 MySQL (5.7+) 和 阅读全文
posted @ 2021-12-12 00:27 屠魔的少年
摘要:多大的 key 算大 阿里云Redis 最佳实践中提到: 合理的 Key 中 Value 的字节大小,推荐小于10 KB。过大的 Value 会引发数据倾斜、热点Key、实例流量或 CPU 性能被占满等问题,应从设计源头上避免此类问题带来的性能影响。 那么 value Bytes >10kb 可以作 阅读全文
posted @ 2021-12-12 00:23 屠魔的少年
摘要:systemd 介绍 systemd是目前Linux系统上主要的系统守护进程管理工具,由于init一方面对于进程的管理是串行化的,容易出现阻塞情况,另一方面init也仅仅是执行启动脚本,并不能对服务本身进行更多的管理。所以从CentOS 7开始也由systemd取代了init作为默认的系统进程管理工 阅读全文
posted @ 2021-12-12 00:19 屠魔的少年
摘要:TwinDB是一款专门用于InnoDB数据恢复的工具,它还有一个名字叫undrop for InnoDB。 安装方法 使用下面的命令进行下载: $ wget https://github.com/chhabhaiya/undrop-for-innodb/archive/master.zip 或者: 阅读全文
posted @ 2021-12-12 00:17 屠魔的少年
摘要:一、锁类型介绍: MySQL有三种锁的级别:页级、表级、行级。 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度 阅读全文
posted @ 2021-12-12 00:07 屠魔的少年
摘要:MySQL 索引及优化实战 索引概念和作用 索引是一种使记录有序化的技术,它可以指定按某列/某几列预先排序,从而大大提高查询速度(类似于汉语词典中按照拼音或者笔画查找)。 索引的主要作用是加快数据查找速度,提高数据库的性能。 MySQL 索引类型 从物理存储角度上,索引可以分为聚集索引和非聚集索引。 阅读全文
posted @ 2021-12-12 00:00 屠魔的少年
摘要:MySQL的字符集从latin1经过utf8 到utf8mb4 ,算是经历曲折的路线。特别是从使用一个字符集变更另一个字符集时,实践当中都非常无奈,不是没办法,而是麻烦。到了MySQL8.0多出了一个字符集utf8mb4_0900_*的字符集,有必要了解一下。 1.字符集基础 先了解下MySQL字符 阅读全文
posted @ 2021-12-11 23:56 屠魔的少年
摘要:my2sql go版MySQL binlog解析工具,通过解析MySQL binlog ,可以生成原始SQL、回滚SQL、去除主键的INSERT SQL等,也可以生成DML统计信息。类似工具有binlog2sql、MyFlash、my2fback等,本工具基于my2fback、binlog_roll 阅读全文
posted @ 2021-12-11 23:45 屠魔的少年
摘要:strace简介 strace是Linux环境下的一款程序调试工具,用来监察一个应用程序所使用的系统调用。Strace是一个简单的跟踪系统调用执行的工具。在其最简单的形式中,它可以从开始到结束跟踪二进制的执行,并在进程的生命周期中输出一行具有系统调用名称,每个系统调用的参数和返回值的文本行。 常用选 阅读全文
posted @ 2021-12-11 23:38 屠魔的少年
摘要:问题 我的 MySQL CPU 高了,看了一下 processlist,实在有太多行了,我要不要准备辞职? 实验 MySQL CPU 飚高的原因有很多种,我们先分析一种最简单常见的。 还是先建个数据库: 快速造一些数据: 反复执行最后一句 SQL: 下面来执行一条比较坑的 SQL,让 CPU hig 阅读全文
posted @ 2021-12-11 23:33 屠魔的少年
摘要:一、思路 设置 init_connect 参数; 创建用户连接信息表; 通过 binlog 日志进行查看执行的危险 SQL 语句; 通过 thread_id 找到对应的用户及来源 IP 地址。 init_connect 参数的功能:当用户在客户端连接 MySQL 时,隐式执行的一条自定义的 SQL 阅读全文
posted @ 2021-12-11 23:30 屠魔的少年
摘要:一、OGG概述 OGG全称为Oracle GoldenGate,是由Oracle官方提供的用于解决异构数据环境中数据复制的一个商业工具。相比于其它迁移工具OGG的优势在于可以直接解析源端Oracle的redo log,因此能够实现在不需要对原表结构做太多调整的前提下完成数据增量部分的迁移。本篇文章将 阅读全文
posted @ 2021-12-11 23:24 屠魔的少年
摘要:1、用dbm来解放生产力 对于 dbm 来讲无论你是搭建单机、主从复制、异或是 MGR 都只须要一行命令就能高效、高质量的解决;而且几乎不会有任何成本(dbm是全开源的,包含dbm-agent,dbm-center),下面先来检验一下 dbm-agent 常来的效率提高。数据库 2、安装&初始化db 阅读全文
posted @ 2021-12-11 23:19 屠魔的少年
摘要:1. Mysql 是如何使用索引的 索引可以帮助我们快速的找到包含指定列值的行。假如没有索引的话,Mysql必须从第一行开始查找整个表,才能找到我们想要的那些行。如果没有索引,表越大,花费的时间也就越大。如果我们在查询条件中指定了某几个列的值,并且这个表恰好有一个建立在这些列上的索引,那么Mysql 阅读全文
posted @ 2021-12-11 23:14 屠魔的少年
摘要:#! /bin/env python # encoding: utf-8 import datetime import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMETex 阅读全文
posted @ 2021-12-11 23:12 屠魔的少年
摘要:#! /bin/env python # encoding: utf-8 import xlwt import pymysql import datetime from mail import send_mail yestoday = (datetime.datetime.now() + datet 阅读全文
posted @ 2021-12-11 23:11 屠魔的少年
摘要:问题 前几天遇到一个奇怪的问题,服务器内存明明够用,结果在对 MySQL 进行测压的时候却出现了 OOM,是 Linux 内核出错了吗? 具体现象如下:使用 sysbench 对 mysql 进行压测,并发 50、80 均正常输出,当并发达到 100 时开始报 OOM。 [root@yang-01 阅读全文
posted @ 2021-12-10 15:45 屠魔的少年
摘要:本文将就下面三个场景做正向测试 case1. MySQL 配置文件和 mysqld.service 中都声明了可打开的最大文件数时,哪个在生效? case2. MySQL 配置文件中对可打开的最大文件数配置,怎么才能生效? case3. 如果把 mysqld 的 service 中对最大文件数做的限 阅读全文
posted @ 2021-12-10 15:18 屠魔的少年
摘要:一、背景 #### 20191219 10:10:10,234 | com.alibaba.druid.filter.logging.Log4jFilter.statementLogError(Log4jFilter.java:152) | ERROR | {conn-10593, pstmt-38 阅读全文
posted @ 2021-12-10 13:55 屠魔的少年
摘要:可以通过三种方式对 Hive 的相关属性进行配置,分别介绍如下: 配置文件 方式一为使用配置文件,使用配置文件指定的配置是永久有效的。Hive 有以下三个可选的配置文件: hive-site.xml - Hive 的主要配置文件; hivemetastore-site.xml - 关于元数据的配置; 阅读全文
posted @ 2021-12-08 23:06 屠魔的少年
摘要:Help 使用 hive -H 或者 hive --help 命令可以查看所有命令的帮助,显示如下: usage: hive -d,--define <key=value> Variable subsitution to apply to hive commands. e.g. -d A=B or 阅读全文
posted @ 2021-12-08 23:05 屠魔的少年
摘要:一、数据准备 为了演示查询操作,这里需要预先创建三张表,并加载测试数据。 数据文件 emp.txt 和 dept.txt 可以从本仓库的resources (opens new window)目录下载。 1.1 员工表 -- 建表语句 CREATE TABLE emp( empno INT, -- 阅读全文
posted @ 2021-12-08 23:02 屠魔的少年
摘要:一、加载文件数据到表 语法 LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, partcol2=val2 ...)] LOCAL 关键字代表从本地文件系统加载 阅读全文
posted @ 2021-12-08 22:59 屠魔的少年
摘要:一、视图 简介 Hive 中的视图和 RDBMS 中视图的概念一致,都是一组数据的逻辑表示,本质上就是一条 SELECT 语句的结果集。视图是纯粹的逻辑对象,没有关联的存储 (Hive 3.0.0 引入的物化视图除外),当查询引用视图时,Hive 可以将视图的定义与查询结合起来,例如将查询中的过滤器 阅读全文
posted @ 2021-12-08 22:57 屠魔的少年
摘要:一、分区表 概念 Hive 中的表对应为 HDFS 上的指定目录,在查询数据时候,默认会对全表进行扫描,这样时间和性能的消耗都非常大。 分区为 HDFS 上表目录的子目录,数据按照分区存储在子目录中。如果查询的 where 子句中包含分区条件,则直接从该分区去查找,而不是扫描整个表目录,合理的分区设 阅读全文
posted @ 2021-12-08 22:55 屠魔的少年
摘要:一、Database 查看数据列表 show databases; 使用数据库 USE database_name; 新建数据库 语法: CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name --DATABASE|SCHEMA 是等价的 [CO 阅读全文
posted @ 2021-12-08 22:50 屠魔的少年
摘要:一、简介 Hive 是一个构建在 Hadoop 之上的数据仓库,它可以将结构化的数据文件映射成表,并提供类 SQL 查询功能,用于查询的 SQL 语句会被转化为 MapReduce 作业,然后提交到 Hadoop 上运行。 Hive包括以下部件: 1)用户接口:UI 包括CLI(hive shell 阅读全文
posted @ 2021-12-08 22:47 屠魔的少年
摘要:配置文件 backup-masters - 默认情况下不存在。列出主服务器应在其上启动备份主进程的主机,每行一个主机。 hadoop-metrics2-hbase.properties - 用于连接 HBase Hadoop 的 Metrics2 框架。 hbase-env.cmd and hbas 阅读全文
posted @ 2021-12-08 22:44 屠魔的少年
摘要:进入 HBase Shell 控制台:./bin/hbase shell 如果有 kerberos 认证,需要事先使用相应的 keytab 进行一下认证(使用 kinit 命令),认证成功之后再使用 hbase shell 进入可以使用 whoami 命令可查看当前用户. 一、基本命令 获取帮助信息 阅读全文
posted @ 2021-12-08 22:42 屠魔的少年
摘要:一、HBase 简介 HBase 是一个构建在 HDFS(Hadoop 文件系统)之上的面向列的数据库管理系统。 HBase 适用场景:实时地随机访问超大数据集。 #Hadoop 的局限 要想明白为什么产生 HBase,就需要先了解一下 Hadoop 存在的限制?Hadoop 可以通过 HDFS 存 阅读全文
posted @ 2021-12-08 22:40 屠魔的少年
摘要:什么是安全模式? 安全模式是 HDFS 的一种特殊状态,在这种状态下,HDFS 只接收读数据请求,而不接收写入、删除、修改等变更请求。 安全模式是 HDFS 确保 Block 数据安全的一种保护机制。 Active NameNode 启动时,HDFS 会进入安全模式,DataNode 主动向 Nam 阅读全文
posted @ 2021-12-08 22:35 屠魔的少年
摘要:# 显示当前目录结构 hdfs dfs -ls <path> # 递归显示当前目录结构 hdfs dfs -ls -R <path> # 显示根目录下内容 hdfs dfs -ls / #创建目录 hdfs dfs -mkdir <path> # 递归创建目录 hdfs dfs -mkdir -p 阅读全文
posted @ 2021-12-08 22:32 屠魔的少年
摘要:1. Kafka 和 ZooKeeper Kafka 使用 Zookeeper 来维护集群成员的信息。每个 Broker 都有一个唯一标识符,这个标识符可以在配置文件里指定,也可以自动生成。在 Broker 启动的时候,它通过创建临时节点把自己的 ID 注册到 Zookeeper。Kafka 组件订 阅读全文
posted @ 2021-12-08 22:24 屠魔的少年
摘要:一、Broker 级别配置存储配置首先 Broker 是需要配置存储信息的,即 Broker 使用哪些磁盘。那么针对存储信息的重要参数有以下这么几个: log.dirs:指定了 Broker 需要使用的若干个文件目录路径。这个参数是没有默认值的,必须由使用者亲自指定。log.dir:注意这是 dir 阅读全文
posted @ 2021-12-08 22:13 屠魔的少年
摘要:##主题(Topic) #创建 Topic kafka-topics --create --zookeeper localhost:2181 --replication-factor 1 --partitions 3 --topic my-topic #查看 Topic 列表 kafka-topic 阅读全文
posted @ 2021-12-08 22:06 屠魔的少年
摘要:修改配置 复制配置为多份: cp config/server.properties config/server-1.properties cp config/server.properties config/server-2.properties 修改配置: config/server-1.prop 阅读全文
posted @ 2021-12-08 22:01 屠魔的少年
摘要:安装jdk JDK版本大于1.8 安装kafka tar -zxvf kafka_2.11-0.10.2.1.tgz mv kafka_2.11-0.10.2.1 /usr/local/kafka 配置kafka 创建kafka日志目录 mkdir /data/kafkalogs vi /usr/l 阅读全文
posted @ 2021-12-08 21:54 屠魔的少年
摘要:一、ZooKeeper 简介 ZooKeeper 是什么 ZooKeeper 是 Apache 的顶级项目。ZooKeeper 为分布式应用提供了高效且可靠的分布式协调服务,提供了诸如统一命名服务、配置管理和分布式锁等分布式的基础服务。在解决分布式数据一致性方面,ZooKeeper 并没有直接采用 阅读全文
posted @ 2021-12-08 14:44 屠魔的少年
摘要:# 进入命令行控制台 bin/zkCli.sh 键入上述命令后,将连接到 ZooKeeper 服务器,你应该得到以下响应。 Connecting to localhost:2181 ................ ................ ................ Welcome 阅读全文
posted @ 2021-12-08 14:32 屠魔的少年
摘要:下载解压 进入官方下载地址:http://zookeeper.apache.org/releases.html#download 解压到本地: tar -zxf zookeeper-3.4.6.tar.gz cd zookeeper-3.4.6 环境变量 执行 vim /etc/profile,添加 阅读全文
posted @ 2021-12-08 14:02 屠魔的少年
摘要:数据存储 不同于 Redis 的 key-value 结构, ZooKeeper 将所有的数据管理在一个树状结构中. 这个结构很像文件系统, 一个路径标识一个节点, 由若干个用斜杠隔开的名字组成. 根结点路径为 /, 因此路径总是由斜杠开头. 与文件系统不同的是, ZooKeeper 中叶子结点和内 阅读全文
posted @ 2021-12-08 13:55 屠魔的少年
摘要:下载地址 https://zookeeper.apache.org/releases.html 禁用防火墙和SELinux systemctl stop firewalld.service systemctl disable firewalld.service setenforce 0 sed -i 阅读全文
posted @ 2021-12-07 14:42 屠魔的少年
摘要:MySQL [sms]> show create table sms.home_menu\G *************************** 1. row *************************** Table: home_menu Create Table: CREATE TA 阅读全文
posted @ 2021-12-03 16:13 屠魔的少年
摘要:第一步:选中需要收缩的数据库,然后右键数据库属性; 第二步:更改数据库恢复模式,将模式从“完整”改为“简单”; 第三步:右键数据库,“任务”->“收缩”->“文件”; 第四步:收缩数据库日志,选择文件类型“日志”,选择收缩操作“将文件收缩到” 最小(后有提示),点击“确定”; 第五步:收缩完成后,重 阅读全文
posted @ 2021-12-02 17:45 屠魔的少年