首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将大型论坛数据从一个系统迁移到另一个系统

将大型论坛数据从一个系统迁移到另一个系统
EN

Stack Overflow用户
提问于 2011-08-23 19:40:33
回答 2查看 254关注 0票数 2

我需要将一个相当大的论坛安装从一个系统(自定义,MS SQLServer)迁移到另一个系统(vBul公告,MySQL)。目标系统有许多不同的导入脚本,我计划从中获得一些想法,但我希望能在这里得到一些关于它的一些方面的建议。

值得注意的是:

  • 原来的系统使用微软SQLServer。新系统使用MySQL (模式不同)
    • PHP能和SQLServer对话吗?如果不是,也许可以使用Java进行迁移,因为它可以同时与两者进行对话?(新系统是用php编写的,如果可能的话,我们希望将所有代码都用一种语言编写)

  • 数据量约为1300万个帖子和650 k个成员。
    • 如果有必要,我们可以修剪成员(删除那些在过去X年中没有登录并且在活动线程中没有帖子的成员)。
    • 如果有必要,我们可以修剪线程(删除那些在过去X年中没有新帖子的线程)。
    • 即使经过修剪,我们仍有750万个帖子

我认为可能引起问题的事情包括:

  • 我不确定是否可以在新的系统中保留I(消息或用户)。
  • 显然,我无法将所有13m条记录从旧数据库加载到内存中,处理它们,然后写入新数据库。
  • 我希望以后能够运行第二次数据迁移,以获得自原始导入以来的任何新数据(因此,我们可以对主数据库的备份运行一个长时间运行的导入,然后在关闭旧系统时运行“所有其他”导入)

我目前的想法是这样做:

  • old_user_id列添加到新的数据库用户表中
  • 从旧数据库迁移用户,将其原始用户id放在新列中。
  • 从旧数据库批量加载线程,并使用用户表中的old_user_id -> new_user_id映射将它们插入新数据库
  • 迁移用户时,按创建日期顺序加载它们,并跟踪最近的日期(在另一个db表中)。这将使系统能够在下次运行时恢复到原来的位置。
  • 同样的事情也适用于线程
  • 在运行迁移时,首先获取“在存储日期之前创建,但之后修改”的所有内容,并使用修改后的信息更新数据库中的记录。一旦完成,处理自那以后创建的事情。

我为这样一个开放式的问题道歉。其中涉及的因素很多,而且我还没有具体的问题要问。我真的只是在寻找那些过去可能不得不处理类似事情的人们的想法/建议。任何关于处理事情的最佳方法的想法,我错过的东西,或边缘的案件,我应该注意。

编辑:我不知道如何使这成为一个维基。如果有人能帮我转换,或者告诉我怎么做,我会很乐意这样做的。它显然没有一个,正确的答案,所以它可能应该被标记为这样。

EN

回答 2

Stack Overflow用户

发布于 2011-08-23 19:45:50

PHP能与SQLServer对话吗? 链接在这里

票数 3
EN

Stack Overflow用户

发布于 2011-08-23 19:47:51

您必须做的第一件事是比较数据库的数据结构和将要使用的CMS,然后您可以确定哪些字段可以更改、更改等等。

我假设您将转储整个sql,主要是通过搜索和替换来更改数据类型或表名,以便在导入时具有更好的兼容性。

另外,您可能希望查看有关您的php和mssql问题的http://php.net/manual/en/book.mssql.php。这能给你省下很多麻烦。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7166607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档