AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 394191
Accepted
marfarma
marfarma
Asked: 2012-05-31 16:17:20 +0800 CST2012-05-31 16:17:20 +0800 CST 2012-05-31 16:17:20 +0800 CST

MySql 数据丢失 - 事后分析 - RackSpace 云服务器

  • 772

在最近对 RS 云服务器进行“紧急迁移”之后,事实证明我们服务器快照映像上的 mysql 数据库与备份日期相比已过时数日。然而,通过受影响的 Web 应用程序上传的文件已写入文件系统。写入数据库的相关元数据丢失,但文件本身已备份。

一旦我能够在 mysql 服务器启动之前手动访问 mysql 数据文件(服务器配置为在启动时启动 mysql),我就能看到 ib_logfile1、ib_logfile0 和 ibdata1 的更新时间是几天前的。

对于这张海报,mysql data loss after server crash,就好像某个缓存控制器告诉 OS / mysql 服务器它已经提交了仍在缓存中的数据,并且它丢失了而不是刷新了。

我不太清楚上传的文件是如何写入的,但数据库数据却没有。我原以为任何缓存都会在系统范围内刷新,而不是逐个进程刷新。

关于这可能是如何发生的任何建议?

更新二:

请参阅下面解释发生了什么的我的回答。

更新:

配置详细信息,按要求提供。

RackSpace 云服务器详细信息:
操作系统:Ubuntu 10.04 LTS (Lucid)
内存:1024MB
磁盘空间:40 GB
数据中心:ORD1
服务级别:非托管
root@restore-testing:~# dpkg -s mysql-server
...
架构:全部
来源:mysql-dfsg-5.1
版本:5.1.61-0ubuntu0.10.04.1
...
root@restore-testing:~# cat /etc/fstab 目录
proc /proc proc 默认值 0 0
/dev/xvda1 / ext3 defaults,errors=remount-ro,noatime 0 1
/dev/xvdc1 无交换 sw 0 0
mysql cloud-computing innodb server-crashes rackspace
  • 2 2 个回答
  • 650 Views

2 个回答

  • Voted
  1. RolandoMySQLDBA
    2012-05-31T19:42:12+08:002012-05-31T19:42:12+08:00

    根据 Innodb 刷新数据的方法,我可以看到这种情况的发生。

    请查看您的 MySQL 安装使用的innodb_flush_method 。根据设置的值(O_DSYNC 或 O_DIRECT),InnoDB 可以双缓冲到操作系统和 InnoDB 缓冲池或只是 InnoDB 缓冲池。如果变量设置为仅缓存到缓冲池,如果操作系统恢复在此过程中破坏了缓冲池,我可以很快看到数据消失。我在 DBA StackExchange 上写了一篇关于这个的帖子。

    这是另一个关于在云中使用 MySQL 与在裸机中使用 MySQL 的链接(单击此处)。它列出了将 MySQL 迁移到云环境中的三个潜在问题/挑战:

    • 虚拟IP
    • 内存配置
    • 慢盘

    即使自那篇文章以来这些限制已被克服,重新考虑关键任务数据将驻留在何处仍是谨慎的做法。考虑到您的数据刚刚发生的事情,这一点尤其正确。

    顺便说一句,StackOverflow 有一篇关于 MySQL in the Cloud 优缺点的好帖子。

    为了从另一个方面进一步说明这一点,Cloud Environments 提供了从东海岸到西海岸的 mysql 实例的地理复制。当我亲自对 XEROUND 数据库服务进行为期 30 天的评估时(我获得了两个公共 IP),我发现 IP 之间的间歇性非常差(大约 5-6 分钟)。您能想象由于两端崩溃而在此窗口期间丢失数据吗?您的数据丢失是由于紧急手动干预造成的。

    推荐

    恕我直言,我会将您的 MySQL 数据库切换为裸机,并使用 DRBD 或 MySQL 复制来实现数据冗余。您可以维护 Web 和应用程序服务器的所有云服务。

    • 4
  2. Best Answer
    marfarma
    2012-06-02T12:47:24+08:002012-06-02T12:47:24+08:00

    虽然innodb_flush_method与某些硬件结合使用的某些设置可能会导致硬件故障导致数据丢失,但没有结合使用innodb_flush_method并innodb_flush_log_at_trx_commit解释 ib_logfile1 和 ib_logfile2 如何过时。

    我在数据库文件的时间戳左右迁移了服务器。我在两台服务器上缓慢地关闭了 mysql,并将 /var/lib/mysql 从一台服务器同步到另一台服务器。Web 应用程序出现并在新服务器上签出。

    但是,如果我忘记monit unmonitor mysql在目标服务器上并且它重新启动了 mysql 怎么办?也许我已经替换了正在运行的 mysql 服务器下的数据和日志文件?mysql 会继续愉快地将数据刷新到陈旧的 inode 吗?

    稍后进行快速测试,答案是肯定的。当 MySql 的数据和日志文件已被替换但内存缓冲池能够满足所有查询时,MySql 不会注意到它正在写入无效的文件句柄。鉴于我们的数据库大小(小)和查询量(低),缓冲池可能会继续处理我们的请求一段时间。

    • 2

相关问题

  • 开源与专有关系 db mgt 系统的优缺点是什么?

  • 在 solaris 10 上为 mysql 设置 max_allowed_pa​​cket

  • 如何移动 MySQL 的数据目录?

  • 通过 VPN 连接什么是远程服务器 IP?

  • mysql崩溃

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve