任务:用MySQL替换Oracle11g
当前设置:
管理层现在想要概述一份迁移草案。不要为模式或数据迁移操心。
我正试图找出翻译500个查询所需时间的粗略估计。当然,这些查询的范围从非常简单的插入/选择到具有子查询、多个联接和类似于这样的表达式的相当复杂的查询:
TRUNC(EXTRACT(DAY FROM (afs.next - TO_TIMESTAMP_TZ('1970-01-01 00:00:00 UTC',
'YYYY-MM-DD HH24:MI:SS TZR'))) * 86400 + EXTRACT(HOUR FROM (afs.next -
TO_TIMESTAMP_TZ('1970-01-01 00:00:00 UTC', 'YYYY-MM-DD HH24:MI:SS TZR')))
* 3600 + EXTRACT(MINUTE FROM (afs.next - TO_TIMESTAMP_TZ('1970-01-01 00:00:00 UTC',
'YYYY-MM-DD HH24:MI:SS TZR'))) * 60 + EXTRACT(SECOND FROM (afs.next -
TO_TIMESTAMP_TZ('1970-01-01 00:00:00 UTC', 'YYYY-MM-DD HH24:MI:SS TZR')))) as \"next\"提示:这些表达式的意义和目的必须从现有查询中读出,因为在创建时,没有人费心记录实现的细节。
我完全意识到,有些查询可能无法翻译,因为MySQL可能不支持某些东西。
问:你能对你认为专家能够做到的“吞吐量”给出一个粗略的提示吗?专家将是一个熟练的MySQL,甲骨文和应用程序的人。您认为“转换”单个平均查询并在目标数据库中手动测试需要多长时间?
请忽略整个应用程序所需的测试。不要认为我们必须事先设置目标模式。欢迎有关移民失败和灾难性问题的提示和故事。
谢谢!
发布于 2012-07-23 18:18:55
为什么要迁移到MySQL?你考虑过PostgreSQL吗?我之所以问这个问题,是因为PostgreSQL与甲骨文基本上是兼容的,并且会使迁移变得更简单。
也就是说,翻译80个表定义和500个查询可能需要一个月左右的时间。简单的CRUD语句将仅限于专家的输入速度,但如果您正在进行任何聚合或其他BI类型的工作,只需一天就可以使一条语句正常工作。您最好简单地记录每个查询,然后使用MySQL成语从头重写它们,而不是尝试翻译它们。
https://dba.stackexchange.com/questions/21280
复制相似问题