我使用SQL Server 2014在Azure上托管了一个SQL数据库。现在,我想制作一个完整的副本,这个副本将在Azure上再次运行,但这一次是通过使用SQL Server 2016.我尝试编写数据库脚本并创建它再次通过执行2016年的查询,但有一个问题。在旧数据库上,我实现了一些安全性(3-4个安全证书和相同数量的加密列)。当我编写数据库脚本时,不知何故这些东西都没有包含在查询中,所以我必须手动完成它们(不是说这是一个问题,而是设想一个安全性不那么简单的数据库)。从广义上讲,我的问题是如何制作数据库的完整副本并在另一个(已创建的)azure数据库上实现它。
答案 0 :(得分:0)
有几种复制数据库的方法:
您可以使用“复制数据库向导”在服务器之间复制或移动数据库,或者将SQL Server数据库升级到更高版本。有关更多信息,请参见Use the Copy Database Wizard.
要复制整个数据库,可以使用BACKUP和RESTORE Transact-SQL语句。通常,出于多种原因,还原数据库的完整备份用于将数据库从一台计算机复制到另一台计算机。有关使用备份和还原复制数据库的信息,请参见Copy Databases with Backup and Restore。
您可以使用“生成脚本向导”将数据库从本地计算机传输到Web托管提供程序。有关更多信息,请参见Generate and Publish Scripts Wizard。
答案 1 :(得分:-1)
备份数据库并恢复它听起来像是最好的选择(正如史蒂夫牛顿提到的那样)。我从您的问题中了解到您希望在SQL Server 2016上拥有相同数据库的新副本。 只要用于加密这些列的相关证书和对称密钥存储在数据库中,备份就会包含它们并将它们还原到目标实例。 如果证书和密钥位于物理主服务器上,则需要单独备份它们并在新实例上还原它们。