我需要将大量数据(数百万个文件,TB 级数据)迁移到 SQL 集群。迁移过程分为每周迁移,每周有数百个新用户(即请求生成器)。
到目前为止,一切进展顺利,但最近我发现 SQL 集群开始表现得很奇怪。 CPU 使用率稳定在 20% 左右,但 SQL 进程不断分配新内存,直到没有剩余内存(约 12GB)。发生这种情况时,该进程会“转储”所有内存并重新开始向 12GB 攀升。在此转储期间,通常会出现服务器无响应并最终超时的情况,而这在这周的迁移中是不可能发生的。
这种分配和转储行为是否常见于 SQL 集群?是否可以对其进行配置以使这种情况永远不会发生,或者至少不会使整个数据库拥塞?有人有大型移民工作的经验吗?
查看事件日志时,我发现在超时之前有一些 WMI 警告。我们正在使用 System Center Operations Manager 2007 来忽略系统,这可以解释这种行为吗?
感谢您的帮助!
最佳答案
不,这不是正常行为。
SQL Server 将根据需要动态分配内存,并在面临压力时适本地释放内存。但是,它不应该转储全部内容。
您能否提供有关您的环境的更多详细信息并确定您的 SQL 内存配置是什么。
如果您需要详细的帮助,请随时给我发电子邮件,并请提供 DBCC 命令的结果。
DBCC memorystatus
关于sql-server - 将海量数据迁移到 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/553249/