Java 将大型论坛数据从一个系统迁移到另一个系统
我需要将一个相当大的论坛安装从一个系统(自定义,MS SQLServer)迁移到另一个系统(vbulletin,MySQL)。目标系统有许多不同的导入脚本,我计划从中获取想法,但我希望我能在这里得到一些关于它的一些方面的建议 值得注意的是:Java 将大型论坛数据从一个系统迁移到另一个系统,java,php,mysql,sql-server,database,Java,Php,Mysql,Sql Server,Database,我需要将一个相当大的论坛安装从一个系统(自定义,MS SQLServer)迁移到另一个系统(vbulletin,MySQL)。目标系统有许多不同的导入脚本,我计划从中获取想法,但我希望我能在这里得到一些关于它的一些方面的建议 值得注意的是: 原始系统使用Microsoft SQLServer。新系统使用MySQL(模式不同) PHP可以与SQLServer对话吗?如果没有,也许可以使用Java进行迁移,因为它可以与这两种语言进行通信?(新系统是用php编写的,如果可能的话,我们希望所有代码都
- 原始系统使用Microsoft SQLServer。新系统使用MySQL(模式不同)
- PHP可以与SQLServer对话吗?如果没有,也许可以使用Java进行迁移,因为它可以与这两种语言进行通信?(新系统是用php编写的,如果可能的话,我们希望所有代码都使用一种语言)
- 数据量约为1300万个帖子和650k个会员
- 如有必要,我们可以删减成员(删除那些在过去X年中没有登录并且在活动线程中没有帖子的成员)
- 如果有必要,我们可以删减线程(删除那些在过去X年中没有新帖子的线程)
- 即使在删减之后,我们仍然可能有大约750万个帖子
- 我不确定是否可以在新系统中保留旧系统的ID(消息或用户)李>
- 显然,我无法将旧数据库中的所有1300万条记录加载到内存中,对它们进行处理,然后写入新数据库
- 我希望能够在以后运行第二次数据迁移,以获取原始导入后的任何新数据(因此,我们可以针对主数据库的备份运行长时间运行的导入,然后在关闭旧系统时运行“其他所有内容”导入)
- 将
列添加到新的数据库用户表中old\u user\u id
- 从旧数据库迁移用户,将其原始用户id放入新列
- 使用用户表中的
映射,以X为单位从旧数据库加载线程,并将其插入新数据库old\u user\u id->new\u user\u id
- 迁移用户时,按创建日期的顺序加载用户,并跟踪最近的日期(在另一个db表中)。这将允许系统在下一次运行时恢复其中断的位置
- 同样的事情也适用于线程
- 运行迁移时,首先获取“在存储日期之前创建,但在存储日期之后修改”的所有内容,并使用修改后的信息更新数据库中的记录。完成后,处理此后创建的内容
编辑:我不知道如何把它变成一个维基。如果有人能帮我转换或告诉我如何转换,我很乐意这样做。显然,它没有一个单一的、正确的答案,因此可能应该将其标记为正确答案。PHP可以与SQLServer对话吗是您首先要做的是将数据库的数据结构与您将要使用的CMS进行比较,然后您可以确定哪些字段可以更改、更改等等 我假设您将转储整个sql,大多数情况下,您需要搜索并替换更改的数据类型或表名,以便在导入时获得更好的兼容性
此外,您可能还想了解关于php与mssql的问题。这可以为您节省很多麻烦。太棒了,非常感谢您的链接。虽然我更喜欢使用Java而不是PHP,但将所有代码保存在一种语言中更为重要。将整个表作为SQL转储到磁盘,然后运行搜索和替换可能不是我要走的方向。感觉我在转义数据方面遇到了太多问题,需要能够将旧id映射到新id(即,在插入线程/帖子时,知道新的用户id)。