我的任务是将数据库从 PROGRESS 导入到 SQL Server。我即将使用 PROGRESS 的 ODBC 驱动程序建立一个“链接服务器”。
我需要获取所有表格及其所有内容 - 有些内容相当大。总体而言,当前 PROGRESS 数据库需要大约 135 GB 的磁盘空间。
您对 SQL Server 数据库的大小有任何想法/估计吗?
另外:此批量操作的最佳恢复模型是什么?bulk_logged
或者simple
?猜猜我需要多少日志文件空间?不幸的是,我目前还没有 PROGRESS 数据库表的行数 - 但数据主要是文本和数字 - 没有 blob 或任何类似的东西
答案1
以下几点想法可以提供帮助 -
1.) 如果您已备份 PROGRESS 数据库,并且导入 SQL Server 期间出现问题的解决方案只是重新启动,那么我会保持简单模式。当文件中的现有记录不需要用于崩溃恢复/重新启动恢复时,这将允许事务日志实质上被重用。您将无法恢复到某个时间点,但如果出现问题,您只需重新启动导入过程即可。这应该有助于节省事务日志空间。
2.) 事务日志将在事务期间持续增长。因此,如果您使用一条语句一次性插入整个大型表,则日志可能会增长那么多(尽管使用最少日志记录的操作也可以有所帮助,尤其是在简单恢复模型中 -http://msdn.microsoft.com/en-us/library/ms191244.aspx)这里的重点是您可能希望对更大的表进行批量插入,甚至可能在批次之间留下一些延迟因素,以尽量减少日志增长。
3.) 我之前没有从 PROGRESS 导入过,但您可以考虑使用 SSIS 包甚至导入向导来执行此操作。您可能会发现它比链接服务器查询更快,而且有多种方法可以处理批处理大小和处理大量数据负载。