6

为了建立总统,我审查了以下内容:

  • Amazon-RDS 数据库到专用服务器
  • AWS RDS 的 Mysqldump
  • 然而,我还没有找到一个明确的解决方案来解决我在这些问题中的问题,并且只有辅助因素——我想提供一个全面的具体指南来将数据移动到 AWS RDS 中/周围。

    我确实在 Percona MySQL 性能会议上与一位与 RDS 合作的 DBA 顾问进行了讨论,他提出了以下建议,这显然是一个经常出现的问题——我想要更多的投入来帮助每个人。

** 根据大型 MySQL 咨询公司和演讲中举手的数量,这对 RDS 用户很重要。**

  • 目标#1。从您的 RDS 实例中获取数据 - 您不能在 RDS 中的主要版本之间移动。-也许你想把它带到 EC2 实例上,比如 Percona 等。
  • 愿望清单目标#1a。其次,如果可能的话,清理/QA数据,
  • 目标 #3 - 将数据返回到另一个较小的 RDS 或其他风格/平台。

事实:

  1. 我在 MySQL 5.5.x (<5.5.8) 中有一个大的(主要是 utf-8 中的 40-50GB 数据集,一些 latin-1)。1a。旧管理员出于某种原因将我们的实例大小设置为 1000GB 的专用存储,这只是填充。(?)。
  2. 现在所有的表都是,显然 InnoDB - 几个表大约是 ~14GB。那是另一个问题。
  3. 可能存在多重编码:也许是 UTF8;拉丁语 1 和瑞典语-fkafkakfk?

因此,这些是我正在辩论的选项:

选项 A:直接 .sql 转储;.sql 重新加载

  1. 转储,在 .sql 标准可执行文件中,模式和表等集体转储,重新加载。
  2. **因此考虑 latin-1 的可移植性: mysqldump -u username -p --default-character-set=latin1 -N database > backup.sql mysql -u username -p --default-character-set=latin1 database < backup.sql**

问题RE:选项A: - 建议re:上面的代码,用于分块,完整性和以其他方式保证平滑转储和重新加载?变量编码的意外情况show information schema(处理 latin1 不能处理的算法?)

选项 B:带有架构 + QA/架构细化的表的单个 ascii 文件转储

  1. 以纯 ASCII(字符集?UTF-8?我必须小心吗?)将这些数据转储到单独的各个表中,可能以块的形式用于数据 QA。

    将继续执行以下操作以输出 TSV DATA 和 SCHEMA:

    mysqldump --user=dbuser --password --tab=~/output/dir dbname

  2. 其次,运行一些 perl/python 来清理可能的错误垃圾字符;编码问题;等来自 8 年的 5 个不同 DBA 和大约 12 种不同的数据输入格式/文件类型。

问题回复:选项 B:

  • 我的数据有很多对数据真实的垃圾字符;管定型最好?
  • 我从 TSV 等从基本转储加载到 AWS RDS 时遇到了可怕的错误,超出了他们的数据加载白皮书中发布的建议?
4

1 回答 1

0

我强烈建议使用 ETL 工具来移动数据的选项 C。我已经非常成功地使用了 Pentaho Data Integration 的社区版来完成您所询问的事情(尤其是清理)。它比简单的转储和加载更费力,但是您有很好的控制力,并且可以做一些事情,比如稍后再次同步等等。

于 2015-06-19T19:00:21.577 回答