这一章会简单介绍在linxu当中如何管理网关,会重点讲解Linux中网关路由设置,路由网关概念,路由器,路由表,直连路由,静态路由,默认路由,直连路由和静态路由区别,路由表管理,路由表和策略,查看指定路由表,main路由等知识点
文章目录
路由网关的概念
什么是网关
例如:公司的财务部用的是192.168.1.0/24,研发部:192.168.2.0/24,这两个部门想要通信中间需要借助一台路由器,路由器把这两个网络链接起来,左侧和右侧想要通信则需要配置网关,右侧想要和左侧通信也需要配置网关,在通信的时候先把数据发给路由器,再由路由器帮我们转发出去
路由
“路由”是一个网络层的术语。指从某一网络设备出发去往某个目的地的路径;
路由器
路由器 : 也称作网关,读取每一个数据包中的地址然后决定如何传送到正确目的地,并且选择最佳路径的网络设备。
路由表
路由表:是若干条路由的集合体,路由器根据路由表做路径选择;
路由器的IP路由表中的路由可以是直连路由、静态路由,但是更多的是通过运行路由协议获得的动态路由。路由器上除了存在的IP路由表外,还存在着为每个运行的路由协议专门创建并维护的路由表。
直连路由
直连路由:设备自动发现的路由信息。直连路由就是能直达接口上所有连接的网络,当在路由器上配置了接口的IP地址,路由表中就出现直连路由项;
静态路由
静态路由:由网络管理员根据网络拓扑,使用命令在路由器上配置的路由,通过静态路由信息发送报文,完全依赖于网络管理员的手动配置。
它的特点是:路由表是手工设置的;通常用于网络规模很小、拓扑结构固定的网络中
另外路由表中存在相同目标网络的路由条目时,根据路由条目优先级的高低,将请求转发到相应端口。
默认路由
默认路由:默认路由是一种特殊的静态路由,网络管理管理员手工配置了默认路由后,当路由表中与目的地址之间没有匹配的表项时路由器将把数据包发送给默认网关。也就是当路由器在路由表中找不到目标网络的路由条目时,路由器把请求转发到默认路由接口 。
它的特点是:在所有路由类型中,默认路由的优先级最低;通常只应用在只有一个出口的末端网络中或作为其他路由的补充。
直连路由和静态路由区别
直连路由只能使用于直接相连的路由器端口(图1),非直连的路由器端口是没有直连路由的(图2)。
-
直连路由的拓扑图
图中路由器不需要任何配置就能互相访问,因为这三个网段的网关地址都在同一个路由器的接口上,属于直连路由,路由器会自动生成路由表,不需要手动配置就可以让这三个区域互相ping通。 -
静态路由拓博图
静态路由是指在路由表中需要指定要到达什么网络下一跳是什么接口。不同网段之间可以通过路由器进行通信,但若是中间有多个路由器,在两三台的情况下,通过配置静态路由来实现数据转发。
路由表管理
路由表和策略(了解)
在基于策略的路由中,会同时存在多个路由表,作为运维工程师需了解
不要混淆路由表和策略:规则指向路由表,多个规则可以引用一个路由表,可以通过策略指向某些路。
[root@shuge ~]# ip rule show
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
在 Linux 系统启动时,内核会为路由策略数据库配置三条缺省的规则:
- 0:匹配任何条件,查询路由表local(ID 255),该表local是一个特殊的路由表,包含对于本地和广播地址的优先级控制路由。rule 0非常特殊,不能被删除或者覆盖。
- 32766:匹配任何条件,查询路由表main(ID 254),该表是一个通常的表,包含所有的无策略路由。系统管理员可以删除或者使用另外的规则覆盖这条规则。
- 32767:匹配任何条件,查询路由表default(ID 253),该表是一个空表,它是后续处理保留。对于前面的策略没有匹配到的数据包,系统使用这个策略进行处理,这个规则也可以删除。
linux 系统中,可以自定义从 1-252个路由表,其中,linux系统维护了4个路由表:
[root@shuge ~]# cat /etc/iproute2/rt_tables
#
# reserved values
#
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
-
0#表: 系统保留表
-
local(255表):locale table 保存本地接口地址,广播地址、NAT地址 由系统维护,用户不得更改。例如执行ssh 127.0.0.1时,会参考这份路由表内容。
-
main(254表):默认情况下所有设置的路由会放到这个表中。使用route 看到的路由表就是main的内容。系统使用这份路由表的内容来传输数据包。配置网卡的时候,会自动生成main路由表的内容。
-
default: defulte table 没特别指定的默认路由都放在该表,通常下内容为空,不用处理。
查看指定路由表
使用ip rule show命令来查看目前使用了哪些路由表,可以通过使用ip route show [table id | name]命令来查看路由表的内容。
[root@shuge ~]# ip route list table local
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
broadcast 192.168.1.0 dev ens34 proto kernel scope link src 192.168.1.43
local 192.168.1.43 dev ens34 proto kernel scope host src 192.168.1.43
broadcast 192.168.1.255 dev ens34 proto kernel scope link src 192.168.1.43
broadcast 192.168.16.0 dev ens32 proto kernel scope link src 192.168.16.128
local 192.168.16.128 dev ens32 proto kernel scope host src 192.168.16.128
broadcast 192.168.16.255 dev ens32 proto kernel scope link src 192.168.16.128
[root@shuge ~]# ip route list table main
default via 192.168.1.1 dev ens34 proto dhcp metric 100
default via 192.168.16.2 dev ens32 proto dhcp metric 101
192.168.1.0/24 dev ens34 proto kernel scope link src 192.168.1.43 metric 100
main路由表(route 输出)
[root@shuge ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.16.2 0.0.0.0 UG 100 0 0 ens32
0.0.0.0 192.168.1.1 0.0.0.0 UG 101 0 0 ens34
192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 ens34
192.168.16.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32
- Destination 目标网段或者主机
- Gateway 网关地址,”*” 表示目标是本主机所属的网络,不需要路由
- Genmask 网络掩码
- Flags 标记。一些可能的标记如下:
U — 路由是活动的
H — 目标是一个主机
G — 路由指向网关
R — 恢复动态路由产生的表项
D — 由路由的后台程序动态地安装
M — 由路由的后台程序修改
! — 拒绝路由 - Metric 路由距离,到达指定网络所需的中转数
- Ref 路由项引用次数
- Use 此路由项被路由软件查找的次数
- Iface 该路由表项对应的输出接口
route
Route命令是用于操作路由表
route语法选项
route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]
选项:
- -c 显示更多信息
- -n 不解析名字
- -v 显示详细的处理信息
- -F 显示发送信息
- -C 显示路由缓存
- -f 清除所有网关入口的路由表。
- -p 与 add 命令一起使用时使路由具有永久性。
参数
-
add:添加一条新路由。
-
del:删除一条路由。
-
-net:目标地址是一个网络。
-
-host:目标地址是一个主机。
-
netmask:当添加一个网络路由时,需要使用网络掩码。
-
gw:路由数据包通过网关。注意,你指定的网关必须能够达到。
-
metric:设置路由跳数。
-
Command 指定您想运行的命令 (Add/Change/Delete/Print)。
-
Destination 指定该路由的网络目标。
-
mask Netmask 指定与网络目标相关的网络掩码(也被称作子网掩码)。
-
Gateway 指定网络目标定义的地址集和子网掩码可以到达的前进或下一跃点 IP 地址。
-
metric Metric 为路由指定一个整数成本值标(从 1 至 9999),当在路由表(与转发的数据包目标地址最匹配)的多个路由中进行选择时可以使用。
-
if Interface 为可以访问目标的接口指定接口索引。若要获得一个接口列表和它们相应的接口索引,使用 route print 命令的显示功能。可以使用十进制或十六进制值进行接口索引。
显示当前路由和输出解释
route / route -n
[root@shuge ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens32
default gateway 0.0.0.0 UG 101 0 0 ens34
192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 ens34
192.168.16.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32
[root@shuge ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.16.2 0.0.0.0 UG 100 0 0 ens32
0.0.0.0 192.168.1.1 0.0.0.0 UG 101 0 0 ens34
192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 ens34
192.168.16.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32
- Destination 目标网段或者主机
- Gateway 网关地址,”*” 表示目标是本主机所属的网络,不需要路由
- Genmask 网络掩码
- Flags 标记。一些可能的标记如下:
U — 路由是活动的
H — 目标是一个主机
G — 路由指向网关
R — 恢复动态路由产生的表项
D — 由路由的后台程序动态地安装
M — 由路由的后台程序修改
! — 拒绝路由 - Metric 路由距离,到达指定网络所需的中转数
- Ref 路由项引用次数
- Use 此路由项被路由软件查找的次数
- Iface 该路由表项对应的输出接口
备注:
route -n (-n 表示不解析名字,列出速度会比route 快)
添加网关/设置网关
route add -net 212.0.0.0 netmask 212.0.0.0 dev ens32
[root@shuge ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens32
default gateway 0.0.0.0 UG 101 0 0 ens34
212.0.0.0 * 212.0.0.0 U 0 0 0 ens32 //增加一条 到达212.0.0.0的路由
192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 ens34
192.168.16.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32
屏蔽一条路由
route add -net 212.0.0.0 netmask 212.0.0.0 reject
[root@shuge ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens32
default gateway 0.0.0.0 UG 101 0 0 ens34
212.0.0.0 - 212.0.0.0 ! 0 - 0 - //增加一条屏蔽路由,目的地址为 212.x.x.x 将被拒绝
212.0.0.0 * 212.0.0.0 U 0 0 0 ens32
192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 ens34
192.168.16.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32
删除路由记录
route del -net 212.0.0.0 netmask 212.0.0.0
route del -net 212.0.0.0 netmask 212.0.0.0 reject
[root@shuge ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens32
default gateway 0.0.0.0 UG 101 0 0 ens34
212.0.0.0 - 212.0.0.0 ! 0 - 0 -
212.0.0.0 * 212.0.0.0 U 0 0 0 ens32
192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 ens34
192.168.16.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32
[root@localhost ~]# route del -net 212.0.0.0 netmask 212.0.0.0
[root@shuge ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens32
default gateway 0.0.0.0 UG 101 0 0 ens34
212.0.0.0 - 212.0.0.0 ! 0 - 0 -
192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 ens34
192.168.16.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32
[root@localhost ~]# route del -net 212.0.0.0 netmask 212.0.0.0 reject
[root@shuge ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens32
default gateway 0.0.0.0 UG 101 0 0 ens34
192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 ens34
192.168.16.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32
删除和添加设置默认网关
route add default gw 192.168.16.212
route del default gw 192.168.16.212
[root@localhost ~]# route add default gw 192.168.16.240
[root@shuge ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens32
default gateway 0.0.0.0 UG 101 0 0 ens34
192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 ens34
192.168.16.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32
default 192.168.16.212 0.0.0.0 UG 0 0 0 ens32
[root@localhost ~]# route del default gw 192.168.16.212
[root@localhost ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens32
default gateway 0.0.0.0 UG 101 0 0 ens34
192.168.1.0 0.0.0.0 255.255.255.0 U 101 0 0 ens34
192.168.16.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32
总结
这一章会简单介绍在linxu当中如何管理网关,会重点讲解Linux中网关路由设置,路由网关概念,路由器,路由表,直连路由,静态路由,默认路由,直连路由和静态路由区别,路由表管理,路由表和策略,查看指定路由表,main路由等知识点
友情链接
目录 | 章节 |
---|---|
版本说明 | 版本说明 |
安装MySQL规范 | 1 安装方式 2 安装用户 3 目录规范 |
MySQL 5.7 安装部署 | 1 操作系统配置 2 创建用户 3 创建目录 4 安装 5 配置文件 6 安装依赖包 7 配置环境变量 8 初始化数据库 9 重置密码 |
MySQL8 安装 | MySQL8 安装 |
源码安装 | 1 安装依赖包 2 生成源码包 3 创建用户 4 编译安装 5 配置数据库 6 连接mysql |
多实例部署及注意事项 | 1 多实例概念 2 多实例安装 3 mysqld_multi(多实例第二种安装方式) |
目录 | 章节 |
---|---|
生产中MySQL启动方式 | 1、 启动原理 2、参数文件默认位置及优先级 3、 以server方式启动 4、 mysqld_safe方式 5、 mysqld 方式 6、 systemctl 方式 |
关库 | 1、相关参数innodb_fast_shutdown 2、相关参数innodb_force_recovery 3、关闭mysql多种方式 |
常见MySQL启动失败案例 | 1.、目录权限 2、参数问题 3、配置文件 4、端口占用 5、误删二进制文件 6、undo表空间异常 7、binlog缓冲异常 |
MySQL启动失败排查方法 | MySQL启动失败排查方法 |
连接MySQL数据库的方式 | 连接MySQL数据库的方式 |
MySQL数据库用户安全策略 | 1、初始化数据库 2、修改密码 3、删除无用的用户 4、mysql_secure_installation |
找回丢失的用户密码 | 找回丢失的用户密码 |
目录 | 章节 |
---|---|
MySQL字符集和校验规则 | MySQL字符集和校验规则 |
查看字符集方法 | 1、查看mysql支持的字符集 2、查看字符集的校对规则 3、查看当前数据库的字符集 4、查看当前数据库的校对规则 |
MySQL字符集设置 | 1、字符集设置层级关系 2、设置MySQL服务器级别字符集 3、设置创建对象的字符集 |
字符集案例 | 1、常用字符集每个汉字占用字节多少 2、大小案例 |
插入中文乱码解决 | 插入中文乱码解决 |
数据库常见字符集及如何选择字符集 | 数据库常见字符集及如何选择字符集 |
生产中如何彻底避免出现乱码 | 生产中如何彻底避免出现乱码 |
目录 | 章节 |
---|---|
访问控制 | 1、连接验证(阶段一) 2、允许的连接 3、连接优先级 4、请求验证(阶段二) |
用户管理 | 1、新增用户 2、修改用户 3、删除用户 4、查看用户 |
密码管理 | 1、密码修改 2、密码过期设置 3、set password 4、密码过期策略 5、密码插件 |
MySQL用户权限管理 | 1、权限粒度 2、显示账户权限 3、显示账户非权限属性 4、库级权限 5、表级权限 6、列级权限 7、权限回收 |
资源限制 | 1、用户创建指定配额 2、修改配额 |
MySQL用户权限案例 | 1、断掉已清理的用户 2、忘记密码 3、如何禁止一个ip段的某个用户登录 4、创建开发账号 5、创建复制账号 6、创建管理员账号 |
目录 | 章节 |
---|---|
缓冲池 | 1、默认引擎 2、设置缓冲池大小 3、优化缓冲池 4、管理缓冲池 5、数据页类型 |
线程 | 1、IO线程 2、主线程 |
index page | index page |
insert buffer page | insert buffer page |
重做日志 | 重做日志 |
回滚日志 | 回滚日志 |
checkpoint,刷写脏页check point | checkpoint |
关键特性 | 1、插入缓冲 2、数据写入可靠性提升技术-doublewrite 3、自适应哈希索引-AHI |
innodb预读预写技术 | 预读写 |
目录 | 章节 |
---|---|
参数和配置文件 | 1、文件位置 2、查找参数 3、参数类型 4、参数修改 5、示例一 6、示例二 7、注意事项 |
错误日志文件 | 错误日志 |
通用日志 | 通用日志 |
慢查询日志 | 慢日志 |
binlog | 1、记录什么 2、用途 3、开启和参数配置 4、日志查看 5、日志刷新 6、删除日志 7、日志分析(mysqlbinlog) 8、利用二进制日志文件恢复误删的表 |
InnoDB存储引擎表空间文件 | 表空间文件 |
主从同步相关文件 | 主从同步文件 |
套接字文件 | 套接字文件 |
pid 文件 | pid 文件 |
redo log | 1、redo初识 2、日志组 3、与oracle redo的区别 4、相关参数 5、和binlog的区别 6、redo 缓冲区(innodb_flush_log_at_trx_commit) |
InnoDB存储引擎逻辑结构 | 1、表空间 2、段 3、区 4、页 |
表碎片清理 | 1、判断是否有碎片 2、整理碎片 |
表空间文件迁移 | 1、需求 2、操作 |
目录 | 章节 |
---|---|
常用语句 | 1、导入数据 2、库操作 3、表操作 4、数据操作 5、use性能影响 6、delete、truncate、drop的区别 7、SQL语句分类 |
数据类型与性能 | 1、整型 2、浮点型 3、字符串类型 4、日期类型 |
MySQL约束 | 1、unsigned/signed 2、not null 3、count(*) 为什么慢 4、default 5、unique 6、 auto_increment 7、primary key |
SQL编程高级 | 1、查询Syntax 2、查询列 3、where子句 4、group by … having子句 5、order by子句 6、limit子句(分页) 7、聚合函数 8、合并查询 9、多表查询 10、子查询 |
表的元数据库管理 | 1、统计应用库哪些表没有使用innodb存储引擎 2、如何查看表中是否有大对象 3、统计数据库大小 4、统计表的大小 |
目录 | 章节 |
---|---|
MySQL索引与二分查找法 | 1、什么是索引 2、索引的优缺点 3、索引的最大长度 4、二分查找法:折半查找法 5、mysql一张表存多少数据后,索引性能就会下降? |
剖析b+tree数据结构 | 1、B和B+树的区别 2、索引树高度 3、非叶子节点 4、指针 5、叶子节点 6、双向指针 7、b+tree插入操作 8、b+tree删除操作 |
相辅相成的聚集索引和辅助索引 | 1、聚集索引 2、聚集索引特点 3、聚集索引的优势 4、辅助索引 |
覆盖索引与回表查询 | 1、回表查询 2、覆盖索引 |
创建高性能的主键索引 | 1、主键索引创建的原则 2、主键索引的特点 3、为什么建议使用自增列作为主键 |
唯一索引与普通索引的性能差距 | 1、唯一索引特点 2、普通索引特点 3、唯一索引与普通索引的性能差距 |
前缀索引带来的性能影响 | 1、作用 2、坏处 |
如何使用联合索引 | 1、什么是联合索引 2、创建原则 3、排序 |
Online DDL影响数据库的性能和并发 | 1、5.6版本之前 2、新版本 3、online ddl语法 4、相关参数 5、示例 6、影响 |
pt-ocs原理与应用 | 1、安装pt-osc 2、pt-osc语法 3、案例 4、pt-osc原理 |
生产中索引的管理 | 1、建表时创建索引 2、建表后创建索引 3、查看索引 |
SQL语句无法使用索引的情况 | 1、where条件 2、联合索引 3、联表查询 4、其他情况 |
目录 | 章节 |
---|---|
最常用的STATISTICS和TABLES | 1、STATISTICS:用于存放索引的信息 2、TABLES:用于存放库表的元数据信息 |
判断索引创建是否合理 | 1、选择性 2、索引创建的建议 |
检查联合索引创建是否合理 | 1、联合索引创建是否合理 2、有了联合索引(a,b),还需要单独创建a索引吗? |
如何查找冗余索引 | 查找冗余索引 |
查找产生额外排序的sql语句 | 额外排序的sql语句 |
查找产生临时表的sql语句 | 临时表的sql语句 |
全表扫描的sql语句 | 全表扫描的sql语句 |
统计无用的索引 | 无用的索引 |
索引统计信息 | 1、存储索引统计信息 2、如何查看索引统计信息 |
目录 | 章节 |
---|---|
简单嵌套查询算法-simple nested-loop join | simple nested-loop join |
基于索引的嵌套查询算法-index nested-loop join | index nested-loop join |
基于块的嵌套查询算法- block nested-loop join | block nested-loop join |
Multi-Range Read | MRR |
bached key access join | BKA |
mysql三层体系结构 | 体系结构 |
Index Condition Pushdown | 索引条件下推 |
一条查询SQL语句是怎样运行的 | 查询SQL语句 |
一条更新SQL语句是怎样运行的 | 更新SQL语句 |
MySQL长连接与短连接的选择 | 1、相关参数 2、断开连接 |
执行计划explain | 1、语法 2、执行计划解析 |
目录 | 章节 |
---|---|
MySQL查询优化技术 | 概览 |
子查询优化 | 1、优化器自动优化 2、优化措施:子查询合并 3、优化措施:子查询上拉技术 |
外连接消除 | 外连接消除 |
生产环境不使用join联表查询 | 不使用join |
group by分组优化 | 1、group by执行流程 2、为什么group by要创建临时表 |
order by排序优化 | 排序优化 |
MySQL性能抖动问题 | 性能抖动问题 |
count(*)优化 | count(*)优化 |
磁盘性能基准测试 | 1、安装sysbench 2、生成文件 3、测试文件io 4、清除文件 |
MySQL基准测试 | 1、生成数据 2、测试(读) 3、测试(写) 4、清理数据 |
目录 | 章节 |
---|---|
认识事务 | 认识事务 |
事务控制语句 | 1、开启事务 2、事务提交 3、事务回滚 |
事务的实现方式 | 1、原子性 2、一致性 3、隔离性 4、持久性 |
purge thread线程 | purge thread线程 |
事务统计QPS与TPS | 1、QPS 2、TPS |
事务隔离级别 | 1、隔离级别 2、查看隔离级别 3、设置隔离级别 4、不同隔离级别下会产生什么隔离效果 |
事务组提交group commit | 组提交 |
事务两阶段提交 | 两阶段提交 |
MVCC多版本并发控制 | 1、MVCC原理 2、MVCC案例 |
目录 | 章节 |
---|---|
认识锁 | 1、锁的作用 2、加锁的过程 3、锁对象:事务 |
innodb行锁 | 1、行锁类型 2、共享锁(S锁) 3、排他锁(X锁) |
索引对行锁粒度的影响 | 1、行锁粒度有哪些 2、在RC隔离级别下不同索引产生的锁的范围 3、RR隔离级别下不同索引产生锁的范围 |
FTWRL全局读锁 | FTWRL全局读锁 |
innodb表锁 | innodb表锁 |
innodb意向锁与MDL锁 | 1、意向锁 2、意向锁作用 3、意向锁冲突情况 4、MDL锁 |
自增锁 | 自增锁 |
插入意向锁 | 插入意向锁 |
死锁 | 1、什么是死锁 2、相关参数 3、避免死锁 4、锁的状态 |
两阶段锁协议 | 两阶段锁协议 |
目录 | 章节 |
---|---|
1. 系统状态 | show status |
2. 慢查询 | 2.1 慢查询开启 2.2 简单示例 2.3 数据准备 |
3. mysqldumpslow | 3.1 语法 3.2 常见用法 |
4. pt-query-digest | 4.1 安装 4.2 语法选项 4.3 报告解读 4.4 用法示例 |
5. 优化工具(soar) | 5.1 安装配置 5.2 添加数据库 5.3 语句优化 |
15、备份恢复原理和实战_逻辑备份_物理备份_金融行业备份还原脚本
目录 | 章节 |
---|---|
1.生产中备份方式 | 1.1 物理备份与逻辑备份 1.2 联机与脱机备份 1.3 完整备份与增量备份 1.4 常用命令 |
2.mysqldump备份 | 2.1 相关参数 2.2 备份所有数据库 2.3 备份指定数据库 2.4 备份指定表 2.6 只导出结构 2.7 只导出数据 2.8 --tab(生成文本,类似load) 2.8 mysqldump原理 2.9 binlog异步备份 2.10 利用mysqldump全备及binlog恢复数据 |
3.xtrabackup | 3.1 Xtrabackup安装 3.2 原理 3.2 备份过程 3.4 恢复原理 3.3 相关参数 3.4 xtrabackup相关文件 3.5 备份示例 3.6 还原示例 |
4.binlog备份和恢复(数据库恢复) | 4.1 找到恢复时间点 4.2 增量恢复 |
5. 生产环境的备份恢复实战 | 5.1 实施部署 5.1.1 环境清单 5.1.2 备份目的 5.1.3 备份说明 5.1.4 实施步骤 5.1.5 全备脚本 5.1.6 差异备份脚本 5.2 实施部署备份还原 5.2.1 Xtraback还原全量/差异备份 5.2.2 故障点数据恢复 5.2.3 增量恢复 |
16、主从复制,gtid,并行复制_半同步复制_实操案例_常用命令_故障处理
目录 | 章节 |
---|---|
1.认识主从复制 | 1.1 主从复制原理深入讲解 1.2 主从复制相关参数 1.3.主从复制架构部署 1.4从库状态详解 1.5 .过滤复制 |
2 .gtid复制 | 2.1 什么是GTID? 2.2 GTID主从配置 2.5 gtid维护 2.4 GTID的特点 2.3 工作原理 2.4 gtid相关状态行和变量 |
3. 并行复制 | 3.1 延迟的原因 3.2 并行复制设置 3.3 查看并行复制 |
4. 增强半同步复制 | 4.1 异步复制 4.2 半同步复制 4.3 增强半同步复制 4.4 配置增强半同步 |
5. 案例 | 5.1 主库删除操作导致sql线程关闭案例 5.2 主从复制中断解决方案及案例 5.3 延迟复制 5.4 主库drop误操作利用延迟复制恢复案例 |
6 常用命令 | 6.1 启动线程 6.2 关闭线程 6.3 查看 6.4 重置 6.5 主从数据一致性校验 |
目录 | 章节 |
---|---|
MHA | 介绍 |
架构和相关组件 | 架构和相关组件 |
工作流程 | 工作流程 |
MHA高可用架构部署 | 1、环境准备 2、软件安装 3、创建软链接 4、配置各节点互信 5、节点免密验证 6、mha管理用户 7、配置文件 8、状态检查 9、开启MHA |
主库宕机故障模拟及处理 | 主库宕机故障模拟及处理 |
MHA VIP自动切换 | VIP自动切换 |
MHA主从数据自动补足 | MHA主从数据自动补足 |
目录 | 章节 |
---|---|
Atlas读写分离高性能架构 | 介绍 |
安装配置 | 安装配置 |
配置注解 | 配置注解 |
启动和关闭 | 启动和关闭 |
读写分离架构应用 | 读写分离架构应用 |
创建应用用户 | 创建应用用户 |
Atlas在线管理 | Atlas在线管理 |
读写分离避坑指南 | 读写分离避坑指南 |
目录 | 章节 |
---|---|
1.MyCAT分布式架构入门及双主架构 | 1.1 主从架构 1.2 MyCAT安装 1.3 启动和连接 1.4 配置文件介绍 |
2.MyCAT读写分离架构 | 2.1 架构说明 2.2 创建用户 2.3 schema.xml 2.4 连接说明 2.5 读写测试 2.6 当前是单节点 |
3.MyCAT高可用读写分离架构 | 3.1 架构说明 3.3 schema.xml(配置) 3.4 文件详解 3.4.1 schema标签 3.4.2 table标签 3.4.3 dataNode标签 3.4.4 dataHost 3.4 读写测试 3.5 故障转移 |
4.MyCAT垂直分表 | 4.1 架构 4.2 新建表 4.3 配置mycat 4.4 验证 |
5 MyCAT水平分表-范围分片 | 5.1 新建表 5.2 schema.xml 5.2 rule.xml 5.3 autopartition-long.txt 5.4 验证 |
6. MyCAT水平分表-取模分片 | 取模分片 |
7. MyCAT水平分表-枚举分片 | 枚举分片 |
8. MyCAT全局表与ER表 | 全局与ER表 |
8.1 全局表 | 8.1.1 特性 8.1.2 建表 8.1.3 配置 8.1.4 验证 8.1.5 分析总结(执行计划) |
8.2 ER表 | 8.2.1 特性 8.2.2 建表 8.2.3 配置 8.2.4 测试验证,子表是否跟随父表记录分片 8.2.5 分析总结(执行计划) |
目录 | 章节 |
---|---|
1. sysbench | 1.1 用途 1.2 安装 1.3 版本 1.4 查看帮助 1.5 测试过程阶段 |
2 CPU 性能测试 | 2.1 测试原理 2.2 查看帮助 2.3 测试 |
3. 内存性能测试 | 3.1 查看帮助信息 3.2 测试过程 |
4.磁盘性能基准测试 | 4.1 查看帮助 4.2 生成文件(prepare) 4.3 测试文件io(run) 4.4 结果分析 4.5 清除文件(cleanup) |
5. 线程测试 | 5.1 查看帮助信息 5.2 测试过程 |
6. MySQL基准测试 | 6.1 语法参数 6.2 生成数据 6.3 测试(读) 6.4 测试(写) 6.5 清理数据 |