DBA 实战手记 (薛晓刚) -- 综合类数据库技能经验类书籍介绍

文摘   2024-09-01 07:01   天津  

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共2360人左右 1 + 2 + 3 + 4 +5 + 6 + 7)(1 2 3 4 5 群均已爆满,6群急速扩张ing,请不要在问有没有位置谢谢)

DBA的书籍大致分为几种

1  专业技术类书籍 

2  大咖分享工作经验分享

3  以上两类以外  如  盖老师最近新发的  《数据库简史》(属于宏观类的数据库业界的巨作)

今天咱们要说的是第二类书籍,薛晓刚,薛大师的 DBA 实战手记,为了满足读者的好奇心,咱们把目录给大家展示一下。

其实第一种和第二种书籍最大的不同点,在于知识的输出形式的不同,第一类书籍具有技术的专业性,第二类书籍是数据库工作者在多年的工作中,将自己的工作经验和工作方式和业内的同学进行分享的类型。

有时候,工作一段时间,或出入职场,对于本质工作会不清晰,或恍惚,那么读一读,前人的工作经验的总结和一些工作的思路,是让自己重新走上清晰的职场道路的一种方式。

更重要的是,如果在阅读书中的内容后,有新的想法和一些问题,还可以在薛老师有时间的情况下,在本群和薛老师近距离的沟通。

所以如果在工作中遇到一些屏障的时候,可以在这本书里面,找找感觉。


第1章 漫谈数据库

1 什么是数据库
1.2 数据库发展史

  • 1.2.1 国外数据库的历史
  • 1.2.2 国内数据库的历史

1.3 数据库的主要分类

  • 1.3.1 关系数据库:传统交易数据库
  • 1.3.2 键值数据库:基于KV键值对的内存数据库
  • 1.3.3 列式数据库:列式存储的分析型数据库
  • 1.3.4 文档型数据库:松散型数据结构的数据库
  • 1.3.5 图数据库:用于社交图谱的数据库
  • 1.3.6 时序数据库:适用于物联网场景的数据库
  • 1.3.7 搜索引擎数据库:全文索引的数据库
  • 1.3.8 多模数据库:具有多种数据库模式的融合数据库
  • 1.3.9 最容易忽视的数据库—移动端数据库

1.4 数据库应用的发展趋势

  • 1.4.1 国外数据库应用发展趋势
  • 1.4.2 国内数据库应用发展趋势

1.5 数据库与新兴数字技术

  • 1.5.1 数据库与大数据技术
  • 1.5.2 数据库的延伸:区块链、物联网

1.6 与数据库长相厮守的DBA

  • 1.6.1 DBA的定义与内涵
  • 1.6.2 DBA的工作职责
  • 1.6.3 DBA需要具备的能力
  • 1.6.4 DBA的价值
  • 1.6.5 DBA是可以做一辈子的职业

第2章 如何提升数据库性能
2.1 通过索引提升性能

  • 2.1.1 索引的概念及原理
  • 2.1.2 索引的种类
  • 2.1.3 规避索引使用的误区
  • 2.1.4 通过索引实现海量数据中的高效查询
  • 2.1.5 自动化索引:数据库自治的趋势

2.2 通过SQL优化提升性能

  • 2.2.1 SQL优化实现高速执行任务
  • 2.2.2 慎用分页有效提升性能
  • 2.2.3 从认知上杜绝低效SQL

2.3 避免数据库对象设计失误

  • 2.3.1 避免不必要的多表关联导致的低效查询
  • 2.3.2 避免动态计算结果没有单独存储导致的低效查询
  • 2.3.3 避免没有明确需求查询条件导致的低效查询
  • 2.3.4 避免过度分表

2.4 从识别需求的合理性提升性能

  • 2.4.1 拒绝无效需求
  • 2.4.2 正确理解开发需求
  • 2.4.3 拒绝不合理的需求
  • 2.4.4 引导业务改善需求

2.5 减少IO操作提升数据库性能

  • 2.5.1 正确认识数据库的性能
  • 2.5.2 减少IO交互—批量写入数据(MySQL)
  • 2.5.3 减少IO交互—批量写入数据(Oracle)
  • 2.5.4 减少IO交互—批量写入数据(PostgreSQL)
  • 2.5.5 精简架构

第3章 如何运维好数据库

3.1 运维好数据库的关键:处理故障

  • 3.1.1 常见的数据库故障类型
  • 3.1.2 数据库故障的危害

3.2 分析处理数据库故障的关键点

  • 3.2.1 分析数据库故障的主要原因—SQL
  • 3.2.2 分析SQL的主要问题—处理速度慢
  • 3.2.3 分析数据库参数对数据库的影响
  • 3.2.4 分析硬件短板带来的问题—IO吞吐能力与CPU计算能力

3.3 数据库故障处理的典型案例分析

  • 3.3.1 一次Elasticsearch误删除的故障分析
  • 3.3.2 一次配置文件丢失导致的MySQL数据库故障分析
  • 3.3.3 一次In-Memory丢失引起的故障分析
  • 3.3.4 一次疑似分区查询异常的故障分析
  • 3.3.5 一次数据库归档导致的故障分析
  • 3.3.6 一次数据库binlog写入失败的故障分析
  • 3.3.7 一次两表关联导致的故障分析
  • 3.3.8 数据库连接数与连接复用不当的故障分析
  • 3.3.9 一次数据库CPU使用率100%的故障分析
  • 3.3.10 一次数据库索引不当引起的故障分析
  • 3.3.11 一次数据库主从延迟过大的故障分析
  • 3.3.12 一次数据库主从不一致的故障分析
  • 3.3.13 一次Redis数据库无法启动的故障分析
  • 3.3.14 一次MySQL数据库数据类型不恰当导致的故障
  • 3.3.15 一次数据库全表查询的优化

第4章 如何进行数据库设计  、

  • 4.1 数据库都有哪些架构

  • 4.1.1 集中式架构

  • 4.1.2 分布式架构

  • 4.1.3 数据库内部的体系架构

  • 4.1.4 “烟囱”式的数据库架构

  • 4.1.5 独立业务线的数据库架构

  • 4.2 根据实际场景选择数据库架构

  • 4.3 五个维度谈数据库选型

  • 4.3.1 从业务场景特征维度

  • 4.3.2 从数据规模大小维度

  • 4.3.3 从用户自身开发团队能力维度

  • 4.3.4 从用户自身运维团队能力维度

  • 4.3.5 从公司管理能力维度

  • 4.4 数据库拆分的利与弊

  • 4.4.1 数据库拆分的背景

  • 4.4.2 数据库拆分的三大问题:一致性、数据关联、数据同步

  • 4.4.3 分表带来的问题:一致性、聚合、排序、扩缩容

  • 4.5 如何看待数据库的合并

  • 4.5.1 为何要做数据库合并

  • 4.5.2 数据库合并的意义:降成本、提升稳定性

  • 4.5.3 数据库合并带来的问题:鸡蛋放在一个篮子里

  • 4.5.4 数据库合并的前提:高质量SQL、硬件的进步、稳定的基础环境

  • 4.6 CAP理论与分布式数据库

  • 4.6.1 CAP理论概述

  • 4.6.2 CAP理论的延展

  • 4.6.3 分库分表不是分布式数据库

  • 4.7 如何看待数据库与中间件

  • 4.7.1 数据库与中间件:上下游的“难兄难弟”

  • 4.7.2 中间件内存溢出的原因:源头还是数据库

  • 4.7.3 适当减少数据库与中间件的数量:避免不必要的故障节点


第5章 如何做好数据库之间的数据同步

  • 5.1 数据同步的作用

  • 5.1.1 实现数据传输

  • 5.1.2 实现数据汇聚

  • 5.1.3 实现数据迁移

  • 5.2 数据库同步的分类

  • 5.2.1 同构数据库的同步

  • 5.2.2 异构数据库的同步

  • 5.2.3 数据库到消息队列的同步

  • 5.2.4 数据库到 Hadoop 的数据同步

5.3 同构数据库数据同步的示例

  • 5.3.1 使用 dblink 实现 Oracle 数据库之间的数据同步  - 5.3.2 使用物化视图实现远程 Oracle 数据库之间的数据同步
  • 5.3.3 使用插件实现 MySQL 数据库之间的数据同步
  • 5.3.4 利用数据同步实现 MySQL 的
  • 5.3.5 采用多源复制的功能实现 MySQL 数据库之间的数据同步
  • 5.3.6 采用主从模式实现 PostgreSQL 主从数据同步
  • 5.4 异构数据库同步的实例—基于 OGG
  • 5.4.1 CDC 简介
  • 5.4.2 OGG 概述
  • 5.4.3 OGG 微服务版的安装部署
  • 5.4.4 使用 OGG for Oracle 实现 Oracle 数据库之间的数据同步
  • 5.4.5 使用 OGG for MySQL 实现 MySQL 与异构数据库的同步
  • 5.4.6 使用 OGG for BigData 实现大数据组件与异构数据库的数据同步

第6章 认识 HTAP 技术

  • 6.1 HTAP 的概念及其价值
  • 6.1.1 HTAP:混合事务/分析处理
  • 6.1.2 HTAP 的价值
  • 6.2 HTAP 的几种实现方式
  • 6.2.1 垂直方向的实现
  • 6.2.2 水平方向的实现:以 MySQL、TiDB 数据库为例
  • 6.2.3 其他类型数据库的实现方式

第7章 认识数据库的功能原理

  • 7.1 优化器—基于统计学原理
  • 7.2 数据库的查询—火山模型
  • 7.3 数据库 AI—向量化
  • 7.4 编译执行

第8章 认识数据库中的数学(逻辑与算法)

  • 8.1 数据库中的典型逻辑与算法

  • 8.1.1 从斐波那契数列到数据分析

  • 8.1.2 增加数据维度处理—减少关联

  • 8.1.3 多表关联算法—一对多与多对多

  • 8.1.4 排除处理算法—笛卡儿积

  • 8.1.5 函数算法—对 SQL 的影响

  • 8.2 动态规划法在数据库中的应用

  • 8.2.1 动态规划原理 1:爬楼梯

  • 8.2.2 动态规划原理 2:背包问题

  • 8.2.3 动态规划的五部曲

  • 8.3 数据库开发中的逻辑思维

  • 8.3.1 元数据的空与非空

  • 8.3.2 优化器处理极值和极限:加速查询速度

  • 8.3.3 并发处理热点的逻辑:避免锁

  • 8.3.4 减库存的逻辑:从设计出发防止超卖

第9章 DBA的日常:数据库管理及开发的最佳实践

  • 9.1 七个针对数据库特性的最佳实践
  • 9.1.1 Oracle的DML重定向
  • 9.1.2 Oracle的资源隔离
  • 9.1.3 MySQL的延迟复制—挽救误删除
  • 9.1.4 PostgreSQL的延迟复制
  • 9.1.5 数据库对于磁盘IO吞吐的要求
  • 9.2 面向执行器和优化器的最佳实践
  • 9.2.1 主流数据库的事务异常处理机制对比(MySQL、PostgreSQL、Oracle)
  • 9.2.2 MySQL和达梦两个数据库优化器的对比
  • 9.2.3 SQL语句的解析过程分析
  • 9.2.4 优化器的多表关联
  • 9.2.5 SQL使用in进行子查询
  • 9.2.6 数据归档和数据迁移
  • 9.3 数据库的复制(克隆)与高可用受控切换的最佳实践
  • 9.3.1 Oracle的PDB数据库克隆
  • 9.3.2 MySQL克隆的关键点
  • 9.3.3 MySQL的MGR架构以及受控切换
  • 9.3.4 PostgreSQL的高可用切换
  • 9.3.5 Redis的高可用切换
  • 9.4 三个SQL编写的最佳实践
  • 9.4.1 关于MyBatis开发框架使用绑定变量的实践
  • 9.4.2 使用exists的SQL语句的改写9.4.3 设计上出发减少SQL的标量子查询
  • 9.5 时序数据库使用的最佳实践
  • 9.5.1 时序数据库的数据库表设计
  • 9.5.2 时序数据库的数据分析
  • 附录 DBA杂谈
-----


置顶文章


阿里云数据库产品 对内对外一样的卷 --3年阿里云数据库的使用感受与反馈系列

阿里云数据库使用感受--客户服务问题深入剖析与什么是廉价客户 --3年的使用感受与反馈系列

阿里云数据库使用感受--操作界面有点眼花缭乱 --3年的使用感受与反馈系列
PostgreSQL 软肋 “最大连接数” 到底是不是问题?
MongoDB  系统IOPS 告警系统处于崩溃,优化语句从1秒优化到1毫秒解决问题
云原生数据库是青出于蓝胜于蓝,还是数据库产品的倒退?
专访唐建法-从MongoDB中国第一人到TapData掌门人的故事
你有发表论点的自由,我们DBA有屏蔽你封杀你的自由
MySQL 8.0x 到 9.0均可能崩溃--云厂商开发指责 MYSQL不测试就推新版本?
MongoDB 入门教学贴 从术语到操作 (用户权限 内部培训贴)
MongoDB 入门教学贴 单机的安装与设置 (内部培训贴)
MongoDB  聚合怎么写,更复杂的聚合案例
MongoDB 谨献给说MongoDB 这不好那不好的“古董”  -- 发展与演进,从3 到 7 的卓越变化
DISS 阿里云 DAS数据库服务,阿里云数据库服务的毒瘤


往期热门文章:

最近一段 不务正业 的 "学习成果"  与  “众人”是什么!

临时工说:DBA 7*24H 给2万的工作,到底去不去?

PolarDB 最近遇到加字段加不上的问题 与 使用PolarDB 三年感受与恳谈

PostgreSQL 稳定性平台 PG中文社区大会--杭州来去匆匆

MySQL 让你还用5.7 出事了吧,用着用着5.7崩了

临时工访谈:问金融软件开发总监  哪些业务不用传统数据库
PolarDB  Serverless POC测试中有没有坑与发现的疑问
临时工访谈:PolarDB  Serverless  发现“大”问题了  之 灭妖记 续集
临时工访谈:庙小妖风大-PolarDB 组团镇妖 之 他们是第一
PolarDB for PostgreSQL  有意思吗?有意思呀
PolarDB  Serverless POC测试中有没有坑与发现的疑问

MySQL 的SQL引擎很差吗?由一个同学提出问题引出的实验

临时工访谈:从国产数据库 到 普罗大众的产品 !与在美国创业软件公司老板对话

PostgreSQL 如何通过工具来分析PG 内存泄露

MySQL 的SQL引擎很差吗?由一个同学提出问题引出的实验
临时工访谈:我很普通,但我也有生存的权利,大龄程序员 求职贴
临时工说: 快速识别 “海洋贝壳类” 数据库方法速递
临时工说:国产 数据库 销售人员  图鉴
临时工说:DBA 是不是阻碍国产数据库发展的毒瘤 ,是不是?从国产DB老专家的一条留言开始 (其实更好看的是文章下方的留言)

感谢 老虎刘 刘老师 对 5月20日 SQL 问题纠正贴 ---PostgreSQL 同一种SQL为什么这样写会提升45%性能

PostgreSQL 同一种SQL为什么这样写会提升45%性能 --程序员和DBA思维方式不同决定

MongoDB 不是软柿子,想替换就替换

PostgreSQL  熊灿灿一句话够学半个月 之 KILL -9

MongoDB  挑战传统数据库聚合查询,干不死他们的

临时工说:国内数据库企业存活   “三板斧”

临时工访谈:庙小妖风大-PolarDB 组团镇妖 之 他们是第一  (阿里云组团PK笔者实录

临时工访谈:金牌 “女” 销售从ORACLE 转到另类国产数据库 到底  为什么?

临时工访谈:无名氏意外到访-- 也祝你好运(管理者PUA DBA现场直播)

临时工说:搞数据库 光凭的是技术,那DBA的死多少次?

PostgreSQL  分组查询可以不进行全表扫描吗?速度提高上千倍?
临时工说:分析当前经济形势下 DBA 被裁员的根因
PostgreSQL PG_DUMP 工作失败了怎么回事及如何处理
MySQL 八怪(高老师)现场解决问题实录
PostgreSQL 为什么也不建议 RR隔离级别,MySQL别笑
临时工访谈:OceanBase上海开大会,我们四个开小会 OB 国产数据库破局者
临时工说:OceanBase 到访,果然数据库的世界很卷,没边
临时工访谈:恶意裁员后,一个国产数据库企业程序员的心声
临时工说:上云后给 我一个 不裁 DBA的理由
PolarDB for PostgreSQL  有意思吗?有意思呀
PostgreSQL   玩PG我们是认真的,vacuum 稳定性平台我们有了
临时工说:裁员裁到 DBA 咋办  临时工教你 套路1 2 3
PolarDB  搞那么多复杂磁盘计费的东西,抽筋了吗?
临时工说:OceanBase 到访,果然数据库的世界很卷,没边
MONGODB  ---- Austindatabases  历年文章合集
MYSQL  --Austindatabases 历年文章合集
POSTGRESQL --Austindatabaes 历年文章整理
POLARDB  -- Ausitndatabases 历年的文章集合
PostgreSQL  查询语句开发写不好是必然,不是PG的锅
SQL SERVER 如何实现UNDO REDO  和PostgreSQL 有近亲关系吗
MongoDB 2023纽约 MongoDB 大会 -- 我们怎么做的新一代引擎 SBE Mongodb 7.0双擎力量(译)
MongoDB 2023年度纽约 MongoDB 年度大会话题 -- MongoDB 数据模式与建模
MongoDB  双机热备那篇文章是  “毒”
MongoDB   会丢数据吗?在次补刀MongoDB  双机热备
临时工说:从人性的角度来分析为什么公司内MySQL 成为少数派,PolarDB 占领高处
POLARDB  到底打倒了谁  PPT 分享 (文字版)
PostgreSQL  字符集乌龙导致数据查询排序的问题,与 MySQL 稳定 "PG不稳定"
PostgreSQL  Patroni 3.0 新功能规划 2023年 纽约PG 大会 (音译)

Austindatabases 公众号,主要围绕数据库技术(PostgreSQL, MySQL, Mongodb, Redis, SqlServer,PolarDB, Oceanbase 等)和职业发展,国外数据库大会音译,国外大型IT信息类网站文章翻译,等,希望能和您共同发展。


AustinDatabases
关于数据库相关的知识分享
 最新文章