重命名实时生产数据库

时间:2016-02-18 10:47:11

标签: sql-server reporting-services ssis

我在SQL Server中有一个名为'XYZ'的数据库。现在我想把它改成'ABC'。

问题是我的SSRS报告和SSIS包连接到XYZ。 我制作SSRS报告的所有内容和SSIS现已上线,用户全天候使用此报告。

有没有办法用最少/没有任何服务器/数据库停机时间重命名数据库?

谢谢

1 个答案:

答案 0 :(得分:2)

这是Rube Goldberg的做法:

  1. 创建一个新的空数据库,其中包含您最终打算重命名当前数据库的名称(在您的示例中" ABC")
  2. 在新数据库中为SSIS包引用的每个对象和使用三部分名称作为目标的SSRS报告创建同义词。例如:create synonym [ABC].[dbo].[myTable] for [XYZ].[dbo].[myTable]
  3. 更新您的包和报告以指向新数据库。
  4. 在黑暗的掩护下,将ABC重命名为ABC_drop,将XYZ重命名为ABC。
  5. 删除ABC_drop。
  6. 它不会消除停机时间,但确实可以让您有时间更新所有报告和ETL包引用。在第5步之前,回滚也很简单。