我需要将 100 个数据库从各种 SQL 实例移动到另一个盒子上的其他相同实例。
我知道我可以手动分离、复制文件、重新连接,但有没有更简单/自动化的方法?最好有一个 UI 工具来选择要复制的数据库并让它继续进行?
这类似于上一个问题但那已经是 7 年前的事了,也许事情已经发生了变化?
答案1
使用DBA 工具powershell 库,你可以做这样的事情:
Get-DbaBackupHistory -SqlInstance Server1 |
Restore-DbaDatabase -SqlInstance Server2 -withreplace
这将使用 Server1 上的现有备份并将其还原到 Server2。我的假设是,如果您对 Server1 上的所有数据库进行尾日志备份,则还原将使用它们,并且您将拥有一种有效的方法将数据库复制到 Server2,并且如果您需要返回到 Server 1(即restore [dbName] with recovery
在 Server1 上运行所有内容),您还将拥有一个不错的后备计划
答案2
不再推荐使用分离/附加存储过程,因为它们可能会导致 Service Broker 和其他一些问题。最好的办法是,在无需购买第三方工具的情况下,编写脚本将所有数据库脱机,然后手动将数据和日志文件复制到新目标,然后使用附加代码的“创建数据库”将它们附加。如果您有兴趣,我可以与您分享一些可以自动执行这些语句的代码。
答案3
我很惊讶没有人提到内置复制数据库向导。看来正是我想要的!