本课程假定你已有另一个 SQL Server,该 SQL Server 可能驻留在另一台本地计算机或 Azure 中的虚拟机中。 有关如何在 Azure 中创建 SQL Server 虚拟机的信息,请参阅 在 Azure 上预配 SQL Server 虚拟机。 在 Azure 中预配 SQL Server 虚拟机后,请确保可以通过另一台计算机中的 SQL Server Management Studio 连接到此虚拟机中的 SQL Server 实例。
本课程还假定你已完成以下步骤:
你有一个 Azure 存储帐户。
已在 Azure 存储帐户下创建了容器。
已在具有读取、写入和列表权限的容器上创建了策略。 还生成了 SAS 密钥。
已在源计算机上创建了 SQL Server 凭据。
已在 Azure 中创建目标 SQL Server 虚拟机。 建议通过选择包含 SQL Server 2014 的平台映像来创建它。
若要将数据库从本地 SQL Server 迁移到 Azure 中的另一个虚拟机,可以按照以下步骤作:
在源计算机(本教程中的本地计算机)中,在 SQL Server Management Studio 中打开查询窗口。 通过执行以下语句,分离数据库以将其移动到另一台计算机:
-- Detach the database in the source machine USE master EXEC sp_detach_db 'TestDB1', 'true';如果需要将数据库传输到目标计算机,首先必须对其进行准备。 若要准备目标计算机,首先需要在目标计算机中创建 SQL Server 凭据。 如果是加密的数据库,则还需要将证书从源计算机导入目标计算机。
若要在目标计算机中创建 SQL Server 凭据,请执行以下步骤:
在源计算机中通过 SQL Server Management Studio 连接到目标计算机。 或者,直接在目标计算机中启动 SQL Server Management Studio。
在标准工具栏上,单击“ 新建查询”。
将以下示例复制并粘贴到查询窗口中,根据需要进行修改。 以下语句创建 SQL Server 凭据来存储存储容器的共享访问证书。
USE master GO CREATE CREDENTIAL [http://teststorageaccnt.blob.core.windows.net/testcontainer] WITH IDENTITY='SHARED ACCESS SIGNATURE', SECRET = 'your SAS key' GO若要查看所有可用的凭据,可以在查询窗口中运行以下语句:
SELECT * from sys.credentials连接到目标服务器时,打开查询窗口并运行:
-- Create a master key and a server certificate USE master GO CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'MySQLKey01'; -- You may use a different password. GO CREATE CERTIFICATE MySQLCert FROM FILE = 'C:\certs\MySQLCert.CER' WITH PRIVATE KEY ( FILE = 'C:\certs\MySQLPrivateKeyFile.PVK', DECRYPTION BY PASSWORD = 'MySQLKey01' ); GO此步骤结束时,目标计算机已导入从源计算机备份的加密证书。 接下来,可以在目标计算机中附加数据文件。
然后,使用 FOR ATTACH 选项创建一个数据库,其中包含指向 Azure 存储中现有文件的数据和日志文件。 在查询窗口中,运行以下语句:
--Create a database on the destination server CREATE DATABASE TestDB1onDest ON (NAME = TestDB1_data, FILENAME = 'https://teststorageaccnt.blob.core.windows.net/testcontainer/TestDB1Data.mdf' ) LOG ON (NAME = TestDB1_log, FILENAME = 'https://teststorageaccnt.blob.core.windows.net/testcontainer/TestDB1Log.ldf') FOR ATTACH GO在对象资源管理器上,单击“数据库”,右键单击“刷新”。 你应该能看到新创建的数据库 TestDB1onDest 已列在列表中。
接下来,在查询窗口中运行以下语句:
USE TestDB1onDest SELECT * FROM Table1; GO这应列出第 4 课中输入的所有数据。
请注意,加密的数据库已传输到没有数据移动的另一个计算实例。
若要使用 SQL Server Management Studio 用户界面创建包含指向 Azure 存储中现有文件的数据和日志文件的数据库,请执行以下步骤:
在 对象资源管理器中,连接到 SQL Server 数据库引擎的实例,然后展开该实例。
右键单击 “数据库”,然后单击“ 新建数据库”。 然后,右键单击 TestDB1。 单击“任务”,然后单击“分离”。 在“分离”对话框窗口中,选中“删除连接”。 单击 “确定” 。
连接到具有 SQL Server 2014 CTP2 或更高版本的目标计算机。 若要准备目标计算机,需要在目标计算机中创建 SQL Server 凭据,以指向放置 TestDB1 的同一容器。 如果要在同一台计算机中重新附加,则无需创建另一个凭据。
在 对象资源管理器中,右键单击 “数据库 ”,然后单击“ 附加”。
在“ 附加数据库 ”对话框中,若要指定要附加的数据库,请单击“ 添加”。 在 “查找数据库文件 ”对话框窗口中:
对于数据库数据文件位置,请键入:
https://teststorageaccnt.blob.core.windows.net/testcontainer/。对于文件名,请键入:
TestDB1Data.mdf.单击 “确定” 。
下一课: