IT技术博客大学习 共学习 共进步

标签:Backup

共 16 篇相关文章

IT 累计浏览 1

Linux 备份和恢复 docker volume 脚本分享

这是一组用于自动化备份与恢复 Docker 数据卷的 Bash 脚本。备份脚本(docker-volume-dump.sh)会遍历宿主机上所有 Docker 卷,使用一个轻量级的 Alpine 容器挂载每个卷,通过 `tar` 命令将其内容打包并压缩为 `.tar.gz` 文件,统一存储在指定目录。恢复脚本(docker-volume-restore.sh)则反向操作,它会遍历备份目录,检查同名卷是否存在(若存在则删除并重建),然后再次利用 Alpine 容器将压缩包解压并写入到对应的数据卷中。整个方案利用容器作为隔离的操作环境,无需在宿主机安装额外依赖,实现了对 Docker 持久化数据的便捷备份与灾难恢复,适用于需要定期保存数据库、应用配置等关键卷数据的运维场景。

IT 累计浏览 1,961

MySQL Binlog Server

这篇讲的是如何用原生工具为MySQL构建一个实时、安全的binlog备份服务器。 文章从数据安全备份的重要性切入,指出在MySQL 5.6之后,DBA们终于有了官方支持的便捷方案,无需再自行编写程序来拉取日志。核心方案是利用`mysqlbinlog`命令的几个关键参数:`-R`允许从远程服务器读取,`-raw`保持binlog原格式便于后续使用,而`-stop-never`则确保服务器会持续连接并同步,直到远端关闭。 作者用具体的命令示例,演示了如何从指定日志文件开始,搭建一个持续运行的binlog server,并且特别说明了如何通过`--stop-never-slave-server-id`参数,为多个服务器实例分配不同的ID以避免冲突。文章末尾抛出了一个实践中的重要问题:这样的binlog server,究竟该如何安全关闭?

IT 累计浏览 3,502

磁盘空间满了之后MySQL会怎样

当数据库磁盘被撑爆后,MySQL会如何反应?这篇讲的正是这个运维中常见的“车祸现场”。磁盘满后,MySQL将无法写入任何新数据,包括表数据和binlog。不过,由于InnoDB可以先将脏页存放在内存,所以问题不会立刻爆发,只有在涉及binlog写入时,请求才会被阻塞。 文章详细描述了MySQL的后续行为:它会每分钟检查一次磁盘空间,一旦发现可用空间就立即恢复写入;如果连续十分钟仍无空间,则会在日志中记录一条告警。对于处理办法,作者给出了几个具体步骤:及时清理无用文件释放空间;若发现有线程被阻塞,可将其杀掉,等待系统下一轮自动检测后恢复正常;有时一个被阻塞的线程会引发连锁阻塞,处理掉源头线程即可解除整个卡顿。 此外,文章还特别提到了一个例外情况:在执行`REPAIR TABLE`、`OPTIMIZE TABLE`或批量更新索引等操作时,如果磁盘满了,MySQL会将涉及的表标记为崩溃状态并删除临时文件(`ALTER TABLE`操作则会主动放弃并清理)。需要注意的是,若此时mysqld进程意外终止,这些临时文件需要人工删除才能释放空间。整篇文章从现象到原理,再到实操应对,提供了清晰的排查与处理思路。

IT 累计浏览 3,120

服务器间同步/镜像/备份配置备忘录

这篇文章讲的是作者在从VPS迁移到独立服务器后,面对没有现成备份的困境,如何一步步摸索并比较各种文件同步方案,以实现可靠、实时备份的实战经历。 作者首先解决备份服务器的选型,找到了高性价比的大容量VPS。核心的挑战在于文件同步:基础的rsync配合cron定时任务虽然方便,但面对海量小文件和对“实时性”的追求,显得力不从心。于是,作者依次尝试了基于inotify机制的inotify-tools和sersync。文章详细记录了每一步的配置和遇到的真实问题:inotify-tools的过滤规则在实践中不顺手,日志混乱;而国产的sersync虽然整合了failover机制,看似更顺手,却暴露了多线程下大文件同步不完整、资源占用高等新问题,且文档和日志功能缺失。 最终,作者回归到inotify-tools,通过编写自定义脚本来解决文件过滤问题,找到了更可控的解决方案。整篇文章像一份技术人的踩坑笔记,清晰地对比了rsync、inotify-tools、sersync在功能、易用性、稳定性和资源消耗方面的差异,其价值不在于给出一个标准答案,而是为读者提供了在选择实时同步方案时,需要考量哪些实际维度——是稳定性、资源效率,还是配置的简洁性。

IT 累计浏览 4,441

rman备份对各种数据块操作

这篇讲的是,很多DBA对Oracle RMAN备份到底操作到数据文件的什么级别(比如是整个文件还是部分数据块)存有疑惑。作者在文章中以Oracle 10.2.0.4版本为例,通过设计测试实验,直观地展示了RMAN在备份时实际读取和备份的数据块范围。 文章没有停留在理论陈述,而是提供了一种可复现的验证方法。作者通过对比分析,澄清了在不同场景下RMAN的备份行为,这对于在实际运维中判断备份完整性、理解备份存储开销非常有帮助。其核心价值在于,它不仅给出了一个具体版本的结论,更教会了读者如何通过类似实验去验证自己环境中RMAN的具体功能,提供了解决这类模糊问题的实用思路。

IT 累计浏览 2,660

享受职业素养

这篇文章是《Clean Coder》中文版译者序的一部分,作者章显洲和伙伴在翻译这本强调程序员职业精神的经典著作时,不仅是在转换文字,更是在践行书中的理念。 他们将翻译过程视为一次深度学习与自我修炼,把“职业素养”这个抽象概念,具体化为对每一个术语准确性的执着、对每一段逻辑流畅性的打磨。文章分享了翻译团队如何严谨对待技术概念的传递,如何在协作中保持高标准,以及这个过程如何反过来加深了他们对书中那些关于“专注、尽责、持续改进”原则的理解。 这种将职业标准内化到日常行动中的态度,恰恰是对《Clean Coder》核心精神的最佳诠释。它提醒技术工作者,真正的专业素养并非空谈,而是体现在每一次代码提交、每一次文档撰写、甚至每一次翻译校对的细节之中,值得所有追求卓越的开发者体味。

IT 累计浏览 2,701

服务器间同步/镜像/备份配置备忘录

这篇讲的是作者从VPS转向独立服务器后,面对备份策略完全自主的新挑战时,如何梳理和记录自己的一系列配置实践。文章的核心出发点很实际:经济型VPS虽然简陋,但服务商通常会提供基础的RAID1+0硬盘冗余,硬件故障尚有一线希望;而独立服务器出于成本考虑可能没有RAID保护,一旦疏于备份,数据风险便完全由自己承担。 作者并没有展开一个宏大的备份架构,而是像一份贴心的备忘录,记录了自己在“服务器间同步、镜像与备份”这个具体任务中,反复搜索、尝试并最终固定下来的一系列配置方案。这些内容包括具体的工具选择、配置命令和注意事项,旨在为自己省去日后重复折腾的麻烦。对于同样从托管服务转向自管理服务器的技术人员,尤其是那些预算有限、需要亲自上手维护数据安全的读者来说,这些凝聚了踩坑经验的配置笔记,提供了一份可以直接参考或借鉴的实战清单,避免了从零开始的盲目摸索。

IT 累计浏览 7,940

三种东西永远不要放到数据库里

这篇讲的是数据库设计中那些容易被忽略、但会埋下长期隐患的常见错误。作者从多年的咨询经验出发,指出改进系统往往始于避免“蠢事”——并非指开发者本身,而是那些看似无害却为后续维护和升级带来巨大麻烦的决策。他特别强调,自己从未见过做出此类选择的人得到好结果。 文章具体分析了三种绝不该塞进数据库的内容(虽然这里没有展开,但标题和开头已强烈暗示了其严重性)。核心观点很清晰:数据库不是万能收纳盒,有些数据放进去反而会拖累系统性能、增加复杂度和未来的迁移成本。作者的观察基于大量实际案例,意在提醒技术人员,在系统设计时多一层审慎思考,能避免后期付出高昂代价。 对于正在规划数据存储方案或已陷入维护困境的工程师,这篇文章提供的不是抽象理论,而是基于实战教训的具体告诫,能帮助避开那些隐蔽却代价不菲的“设计陷阱”。

IT 累计浏览 2,240

记录一次比较棘手数据库恢复要点

这篇讲的是一次堪称“教科书级坑”的数据库异常恢复实录。作者在恢复一个关键业务数据库时,并未遇到单一故障,而是遭遇了归档日志缺失、控制文件损坏、以及数据文件状态不一致的三重难题,让标准恢复流程频频报错。 文章的核心价值在于其“拆弹”过程。作者没有依赖一键恢复,而是细致分析了每条报错背后的深层原因:归档日志链条断裂如何追溯与重建,控制文件备份失效后如何从参数文件和告警日志反向推导其结构,以及在数据文件头损坏时,如何利用数据泵导出与表空间时间点恢复(TSPITR)进行组合式抢救。这些步骤环环相扣,展示了解决复杂、连锁故障的系统性思路。 最终,数据库被成功恢复且数据零丢失。作者在文末总结了恢复前的检查清单和关键命令备忘,对于同样可能面临类似复杂恢复场景的DBA或运维工程师而言,这份“踩坑后”的实战笔记,比任何理论文档都更具即时的参考价值。

IT 累计浏览 4,581

最简单的命令最让你抓狂

这篇文章从一次网站部署的经历讲起,分享了一个很多人可能都忽略的陷阱。作者发现,当使用经典的 `cp -r` 命令来同步整个网站目录时,一个关键的变化悄悄发生了:命令默认会将源目录中的符号链接替换为它们指向的实体文件。这意味着,原本通过符号链接共享的同一份文件,会在目的目录中变成多个副本,白白浪费了磁盘空间,并可能因文件不一致而引发难以察觉的故障。 问题的根源在于 `cp` 命令的设计逻辑——它忠实地执行“复制”动作,将符号链接的“目标”而非链接本身复制过来,这与许多人“两个目录完全一致”的直觉预期相悖。作者指出,如果你确实希望保持链接属性不变,正确的工具是 `rsync`,它提供了更精细的控制。这个小坑提醒我们,越是习以为常的简单命令,越值得在关键任务前确认其行为细节。

IT 累计浏览 2,580

如何在windows下用bat脚本定时备份mysql

这篇讲的是如何在Windows环境下,用一个简单的bat脚本来实现MySQL数据库的定时自动备份。作者从日常运维的需求出发,提供了一套可直接落地的脚本方案。 脚本的核心思路清晰:首先跳转到指定备份目录,通过变量设定带有日期的备份文件名和日志文件名。执行备份时,调用`mysqldump`命令,并用`--single-transaction`确保备份过程的一致性。备份完成后,脚本会自动调用WinRAR命令行工具将.sql文件压缩成.rar包,并删除原始的SQL文件,最后将操作时间记录到日志中。 这套方案虽短,但涵盖了路径管理、日志记录、文件压缩和清理这些备份脚本必备的要素。对于需要在Windows服务器上维护MySQL备份,又未使用复杂调度工具的用户来说,这个脚本提供了一个简单有效的自动化起点。

IT 累计浏览 4,100

mydumper的使用和源代码分析

这篇文章讲的是MySQL数据库备份工具mydumper。作者从它作为mysqldump多线程替代品的使用场景切入,重点带读者剖析了它的源代码实现。 文章深入分析了mydumper实现高效备份的核心:如何利用多线程并行导出数据。作者拆解了其关键逻辑,比如如何将不同表的数据导出任务分配到不同的工作线程中,以及如何设计任务分片与工作队列来协调这些线程,避免冲突。这些实现细节展示了工具如何在保证数据一致性的前提下,大幅提升备份速度。 通过源码级的走读,文章不仅解释了工具“怎么用”,更揭示了它“为什么快”。对于想了解MySQL备份工具内部工作原理,或者对Go语言并发编程实践感兴趣的读者来说,这篇分析提供了清晰的思路和巧妙的设计参考。

IT 累计浏览 2,261

ORACLE数据仓库备份方案分析

这篇讲的是在超大规模ORACLE数据仓库场景下的备份与恢复方案设计。作者面对一个典型挑战:100TB的RAC数据仓库,每日归档量高达5TB,即便已经对非关键数据采用了nologging策略以减少日志产生,备份压力依然巨大。 文章的核心是围绕这个背景,探讨如何制定一套可行且高效的备份恢复策略。它很可能深入分析了多种备份方式(如全量、增量、块变更)的权衡,考虑了RAC环境下的一致性保障,以及在海量数据下如何控制备份窗口和恢复时间目标(RTO/RPO)。对于同样运维着大型数据仓库的技术人员来说,文章提供的思路和具体参数考量,直接针对了日常运维中最令人头疼的存储与时间瓶颈问题。 通过分析这个真实案例,文章为处理类似“数据量大、日志多”的备份难题,提供了一份从问题定义到方案落地的实用参考。

IT 累计浏览 3,302

服务器间同步/镜像/备份配置备忘录

这篇备忘录从实际运维中“服务器间文件同步”这一高频需求出发,讨论了使用 `rsync` 进行文件同步的几种主要方式。作者对比了通过直连、SSH 隧道以及搭建 Rsync daemon 这三种连接方式在认证、安全性和适用场景上的区别,并明确指出了各自的优缺点。 文章的重点在于提供一份清晰、可操作的配置参考。它详细列举了 `rsyncd.conf` 配置文件中的关键参数,比如用于认证的 `auth users` 和 `secrets file`,控制访问的 `hosts allow/deny`,以及影响传输性能的 `timeout` 和 `max connections` 等选项,并解释了它们的作用。对于需要快速搭建或优化 rsync 同步流程的技术人员来说,这份备忘录直接给出了经过验证的配置思路和参数细节,省去了反复查阅文档的时间。

IT 累计浏览 2,342

轻量级MySQL备份方案:AutoMySQLBackup

这篇讲的是如何为MySQL数据库做数据备份。作者没有去对比那些功能繁复的专业备份工具,而是将目光投向了一个名为AutoMySQLBackup的开源方案。 它主要解决的问题是:对于许多中小型应用或个人开发者来说,一套全自动、可靠且不复杂的备份机制,是刚需。过于重型的方案反而可能带来维护负担。AutoMySQLBackup的核心思路,就是用一套简单的Shell脚本,自动执行SQL转储、按日期轮转存储并清理旧备份。 文章特别强调了一个务实观点:“最好的不一定是最好的选择”。AutoMySQLBackup功能或许不如商业软件全面,但它零成本、配置简单、开箱即用,能很好地覆盖定期备份、日志保留这些基本需求。对于预算有限或追求运维简捷的团队而言,它提供了一个足够好的起点。

IT 累计浏览 3,620

Zmanda让MySQL的备份与恢复更加方便快捷灵活

数据库管理员常为MySQL的备份恢复问题头疼:传统脚本维护成本高,第三方工具又可能不够灵活或费用高昂。这篇讲的是开源工具ZRM(Zmanda for MySQL)如何有效解决这些痛点。文章从实际运维场景出发,指出ZRM不仅免费提供社区版,其核心优势在于将备份恢复流程化、策略化。它支持灵活配置备份类型、频率和存储位置,并能通过Web界面进行可视化管理,大幅降低了操作复杂度。对于寻求可靠、低成本且易扩展的MySQL数据保护方案的团队,文中展示的ZRM具体功能和实践效果,提供了一个值得考量的实用选择。