GitHub 与博客:要不要做,怎么做
结论先放前面:需要,但不是门槛,是证据。它解决的不是"没作品",是"外包身份下说不清哪些活是自己做的"。
一、先说结论
甲方和云厂商的 DBA JD 里几乎不会写"有 GitHub",写的是:MySQL/PG 原理、高可用架构、备份恢复、性能优化、故障处理、自动化(Shell/Python)、云上经验。
所以 GitHub 和博客不是门槛,是证据。
你真正的卡点也不是"没有作品",是:外包环境里活是别人派的,你说不清哪些是你做的。 这两件事解决的就是"归属权"——让某样东西看起来、查起来、问起来都是你自己的。
按投入产出比排序(从高到低):
| 优先级 | 做什么 | 为什么 |
|---|---|---|
| 1 | 在 OB / TiDB / 墨天轮问答区持续回答问题 | 直接接触甲方和厂商的人;可累积、可检索、可内推 |
| 2 | 写排障笔记,首发墨天轮 | 有真实流量、有现金奖、能被搜到;写作过程倒逼你把事想清楚 |
| 3 | 一个"故障实验室" repo | 解决你最大的短板:轮不到你处理核心故障。自己造 |
| 4 | 一个巡检脚本工具 repo | 直接对应 JD 里的"自动化能力" |
| 5 | 自建博客做 SEO | 对求职基本零加成,别在这上面花时间 |
| — | 刷 star 的 CRUD demo | 0 分,甚至负分(面试官会问,你答不上来) |
二、博客:你已经有站点了,但发的地方不对
已有资产
- 自建站:https://wiki.lyforcdf.cn (Hugo + hextra,能自己部署,边际成本 0)
- 问题:自建站没有流量、SEO 弱,HR 和技术面试官不会主动访问一个陌生域名
有效的顺序(这一步很容易做错)
先发墨天轮 → 再同步到 ITPUB 博客 / 自建站存档
原因很硬:墨天轮的「墨力原创作者计划」明确要求 “原创文章首发于墨天轮”。你先发自己站上,就失去参赛资格了。
墨天轮的规则(2026 年在跑的,原文见 http://www.modb.pro/db/608489)
参与方式:文章首发 + 打上「墨力计划」标签,每月一个活动周期。
硬要求:
- 字数 > 500 字(代码不计入)
- 格式清晰、主题明确
明确不合格的红线(都是官方原文):
- 搬运文(网上摘抄杂糅)
- 流水账(代码占比 80% 以上,自己的总结少)
- 翻译文(大篇幅翻译且无自己实操)
- 广告文 / 外部引流
- 刷阅读量
- AI 代写 —— AI 生成内容或聊天记录占比超 50% 即不合格
- 非首发于墨天轮
奖励:合格奖 10 墨值/篇(新人首月 20);优秀文章奖 100 元/篇(当月需 ≥2 篇合格)。另有「特约作者」通道:2000 字以上深度文章,300 元/篇起,最高叠加到 1000,附带首页推荐流量和免费参加数据技术嘉年华的资格。
官方偏好的文章结构(可以直接照抄):
- 故障处理类:
问题现象 → 问题定位与分析 → 问题处理 → 问题总结 - 踩坑类:
踩坑场景 → 问题现象 → 避坑方案 → 效果验证 - 调优类:
问题现象 → 原因分析 → 调优方案 → 实施步骤 → 效果验证
官方在征的主题标签:故障处理、性能优化、国产数据库、PG
注意第 6 条。如果打算用 AI 批量生产,会被判不合格;而且面试官顺着文章问三个细节就能问穿。只写自己真做过的事。
分发渠道(一份内容,多处放)
- 墨天轮(首发,拿流量和奖金)
- ITPUB 博客 https://blog.itpub.net (老 DBA 聚集地,你的读者在这)
- 自建 wiki https://wiki.lyforcdf.cn (当归档,标注原文链接)
- 公众号(有余力再说,别一开始就搞)
一个心态调整
不要写「MySQL 索引原理」「InnoDB 架构详解」——这类文章有 10 万篇,你写不过数据库内核专家。
写别人写不出来的:你的 4 年基础组件运维经历。 这段经历在简历上是减分项,在技术内容上却是稀缺素材——因为它能回答"DBA 面试最爱问但大多数人只会背答案"的那类问题。
三、10 个你马上就能写的选题(全部基于你现有经历)
- chrony/ntp 时间漂移导致主从延迟误判 ——
Seconds_Behind_Master显示 0 但其实已经延迟 40 秒,证据链怎么取 - 集群节点小版本不一致:一次 yum 源没对齐,导致 MGR 节点加不回去
- THP(透明大页)没关,MySQL 偶发 200ms 抖动 —— 从 perf top 到
/sys/kernel/mm/transparent_hugepage/enabled的完整证据 - swappiness 默认 60 在数据库机器上有多坑 —— 一次内存回收引发的查询变慢
- IO 调度器与预读参数实测:同一台机器,换参数前后 sysbench QPS 差多少
- 外包运维视角:一个脚本巡检 100 个实例 —— 分库分环境、结果汇总成一份报告
- “备份"不算备份,“恢复演练"才算 —— 一次 restore 失败记录(binlog 缺失 / GTID 不连续)
- XFS 与 ext4 在数据库场景下的差异实测
- 监控采得太勤反而拖慢数据库? —— 采集频率与
performance_schema开销实测 - 从 ntp 到 TSO:时间同步在分布式数据库里为什么是命门
每篇 500–1500 字,2–3 小时能写完(因为你是在写已经发生过的事,不是查资料编)。
26 周写 26 篇 = 每 2 周 1 篇。 这不算是新增任务,素材是从工作日里捞的,只是多了一道"记下来"的动作。
四、GitHub:不要做项目,要做三样东西
DBA 圈的 GitHub 文化是小工具文化,不是框架文化。参照这些真实存在的形态:
Percona Toolkit、mydumper、gh-ost、Patroni、mysqld_exporter、Yearning、dbatools。
共同点:只解决一个具体运维动作,但别人真的会用。
Repo 1:db-fault-lab(最重要,优先做这个)
解决的问题:外包环境里你轮不到碰核心故障。那就自己在家造。
db-fault-lab/
├── README.md # 每个实验:目的 / 怎么起 / 怎么触发 / 预期现象 / 怎么定位
├── mysql/
│ ├── docker-compose.yml # 一主两从,可切 MGR
│ ├── inject/ # 故障注入脚本
│ │ ├── disk-full.sh
│ │ ├── kill-master.sh
│ │ ├── semi-sync-stall.sh
│ │ ├── lock-wait.sh # 造一个 MDL 阻塞
│ │ └── binlog-corrupt.sh
│ └── observe/ # 观测脚本:抓什么指标、看哪个视图
├── postgres/
│ ├── docker-compose.yml # 流复制 + Patroni
│ └── inject/ # 复制槽堆积、XID 回卷、表膨胀、checkpoint 风暴
└── docs/
└── 01-disk-full.md # 每篇:现象 → 我的排查路径 → 根因 → 修复 → 防复发面试怎么用:打开 repo,docker compose up,当场把主库 kill -9,讲一遍你观察到的现象和判断顺序。这比背"我知道怎么做故障切换"强一百倍。
额外好处:这套东西做完,你会自动拥有一批"我亲手复现过"的故障案例,正好是墨天轮选题库。
Repo 2:db-healthcheck(对应 JD 里的"自动化能力”)
一个脚本,输入实例清单,输出一份 Markdown/HTML 巡检报告。
检查项写实的,不要贪多:
- 版本 / 参数偏离基线(对比一份 baseline.yml)
- 连接数、Threads_running、慢查询 Top10
- 复制状态与延迟、复制槽堆积
- 表空间增长 Top10、无主键表、超大表
- 备份是否最近成功、binlog 保留时长
- 磁盘剩余、inode 使用率
为什么有效:甲方面试必问"你日常怎么做巡检”,绝大多数人答"看监控"。你有代码,差别在这里。
加分点:输出成 HTML 报告,能直接发给领导看——这正是甲方 DBA 每天在干的事。
Repo 3:db-postmortem(纯 Markdown,零代码)
每篇一个文件,结构固定:
# 2026-11-05 MySQL 半同步卡住导致业务写入超时
## 时间线(精确到分钟)
## 现象与告警
## 排查过程(包括走错的路)
## 根因
## 修复动作
## 防复发(改了什么监控、什么参数、什么流程)价值:甲方最看重的能力就是"复盘"。你把这件事写成习惯,面试时可以直接展示输出节奏。
五、节奏(搭在现有 26 周计划上,不额外加负担)
| 时间 | 动作 | 每周耗时 |
|---|---|---|
| 现在 | 建 GitHub 账号(用真实姓名或稳定 ID,别用乱码),仓库先私有 | 10 分钟 |
| 第 1–2 周 | 把 db-fault-lab 的 MySQL 一主两从跑起来,做第一个实验:磁盘写满 |
2 小时 |
| 第 3 周起 | 每 2 周 1 篇墨天轮文章;每做完一个实验就顺手写一篇 | 2 小时/周 |
| 第 4 周 | 提问/回答:ask.oceanbase.com 与 ask.pingcap.com 各答 1 条 | 30 分钟 |
| 第 12 周 | db-healthcheck 能跑通、能出报告 |
— |
| 第 26 周 | 大盘点:约 13 篇文章 + 3 个 repo。这已经超过 90% 的 DBA 候选人 | — |
发布前检查:仓库设为 public 前,扫一遍有没有内网 IP、主机名、账号密码、公司业务表名。外包身份尤其注意——不要泄露客户环境信息(脱敏成 10.0.0.x、db-prod-01)。
六、不要做的四件事
- 不要做一个"数据库管理系统"或"运维平台" —— 做不完,做完了也没人信是你一个人做的。选小工具。
- 不要写原理科普文 —— 竞争不过内核专家,且容易被判为搬运/AI 生成。
- 不要把自建博客的 SEO 当回事 —— 域名对求职几乎零加成。内容发在有流量的地方。
- 不要为了凑数发 AI 生成的文章 —— 墨天轮明文判不合格;面试官顺着问三个细节就穿帮。你的可信度是这个阶段最贵的资产。
七、一句话
GitHub 不需要 star,博客不需要域名。 你需要的是面试时能打开一个链接说:“这是我做的,你 clone 下来能复现,你想问哪个环节我都能答。”
附:账号取名与各平台怎么填
一个原则
用户名不是网名,是身份锚点。 它要满足三条:
- 一致 —— GitHub / 墨天轮 / ITPUB / 公众号 / 简历上的链接,用同一个 ID。面试官从你的文章点进来,能一路找到你的代码,这条链才成立。
- 可读 —— 别人看一眼能读出来、能复述给你同事。
- 长期有效 —— 不绑年份、不绑公司、不绑某个具体产品。
实测可用性(2026-11-10 查的)
| 用户名 | 状态 | 评价 |
|---|---|---|
lianshan |
❌ 已占用 | 一个几乎空的休眠号,拿不到 |
lianshan-dba |
✅ 可用 | 首选。一句话说清你是谁、做什么 |
lianshan-db |
✅ 可用 | 备选。比 dba 宽一点,将来做内核/云数据库也不违和 |
lianshandba |
✅ 可用 | 备选。不带连字符,但容易被读成 “lians-handb” |
lianshanops |
✅ 可用 | 不推荐。ops 偏"运维",弱化了 DBA 定位 |
lyforcdf |
✅ 可用 | 不推荐。除了你自己没人看得懂,且和域名绑死了 |
推荐:lianshan-dba
为什么不加年份、不加数字
lianshan2026、lianshan-dba-2026 这类,第二年会显得很怪;superman、xiaoming123、cool_dba(下划线 GitHub 还不允许)属于学生时代的 ID,放在简历上会削弱专业性。
几条硬约束
- 只能用字母、数字、单个连字符;不能以连字符开头或结尾(下划线不允许)
- 最长 39 字符,大小写不敏感
- 不要用外包公司名——一旦绑定,换工作时这个名字会一直跟着你
- 改名是可行的(GitHub 会把旧链接重定向),但会丢一部分外部引用,所以一次定好,别反复改
注册后顺手做两件事
- Display name 单独写:用户名固定,显示名可以随时改。填
连山 | MySQL / PostgreSQL DBA,比纯拼音更像个人。 - Profile README 只写三行:
别做那种堆徽章、堆技术栈图标的 README——DBA 圈看的是 repo 里的内容,不是主页装饰。
30 岁,7 年运维,正在转 MySQL / PostgreSQL DBA。 在做的:db-fault-lab(可复现的数据库故障实验室) 写的:墨天轮「连山」专栏
头像
别用默认的 identicon 方块。一张干净的真人照,或者一个简单的字标(“连山"两个字黑底白字),就够了。面试官真的会点开看一眼。
各平台怎么填(一张表)
先分清两层东西,这是最容易混的:
- 用户名 / ID:URL 里那串,只能是小写字母、数字、连字符 →
lianshan-dba - 显示名 / 昵称:人读的,可以带空格和中文 →
连山 DBA
| 平台 | 用户名 / ID | 显示名 | 备注 |
|---|---|---|---|
| GitHub | lianshan-dba |
连山 DBA | 用户名大小写不敏感。注册时用全小写,lianshan-DBA 在 URL 里看着像素手误 |
| GitHub 仓库署名 | — | — | 提交邮箱用同一个,别混用公司邮箱 |
| 墨天轮 | 手机号登录 | 连山DBA | 文章署名就是它,求职时最常被搜到的名字 |
| ITPUB 博客 | — | 连山DBA | 同上 |
| 知乎 / 掘金 / CSDN | — | 连山DBA | 有余力再开,别一次铺满 |
| 公众号(以后) | 自定义微信号 | 连山DBA | 个人号名字一年限改 2 次,还有重名,想好再动 |
| 自建 wiki | — | 连山书房 | 保持不动。那是读书的地方,挂"DBA"反而怪 |
| 域名 | — | — | 别为改名换域名,成本高、收益几乎为零 |
| 简历 | — | 连山(李连山) | 真名照实写,别用网名代替 |
为什么中文名和英文 ID 长得不一样:GitHub 页面上只显示 lianshan-dba,搜"连山DBA"是搜不到的。所以中文一律「连山DBA」、英文 ID 一律 lianshan-dba,靠 dba 这个后缀建立映射——人一眼能对上,机器也能搜到。
只注册 3 个,别一次铺开
26 周内你真正会用到的是:GitHub + 墨天轮 + ITPUB 博客。
把 10 个平台都注册一遍、每个都是空账号,等于给面试官看到一片荒地——空账号是负分,不如没有。剩下的等真写了内容再开。