Занятие 6: Перенос базы данных с исходного локального компьютера на целевой компьютер в Azure
В этом занятии предполагается, что у вас уже есть еще одна SQL Server, которая может находиться на другом локальном компьютере или на виртуальной машине в Azure. Сведения о создании виртуальной машины SQL Server в Azure см. в статье Подготовка виртуальной машины SQL Server в Azure. После подготовки SQL Server виртуальной машины в Azure убедитесь, что вы можете подключиться к экземпляру SQL Server на этой виртуальной машине через SQL Server Management Studio на другом компьютере.
Для этого занятия также предполагается, что вы уже выполнили следующие шаги.
У вас есть учетная запись хранения Azure.
Вы создали контейнер в учетной записи хранения Azure.
Создали политику в контейнере с правами на чтение, запись и перечисление. Создали ключ SAS.
Создали учетные данные SQL Server на исходном компьютере.
Вы уже создали целевой SQL Server виртуальной машине в Azure. Рекомендуется создать ее, выбрав образ платформы, содержащий 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
После завершения этого шага сертификат шифрования, резервная копия которого была получена с исходного компьютера, будет импортирован на целевой компьютер. Далее можно присоединить файлы данных на целевом компьютере.
Затем создайте базу данных с файлами данных и журналов, указывающими на существующие файлы в службе хранилища Azure, используя параметр FOR ATTACH. В окне запроса введите следующую инструкцию:
--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.
Обратите внимание, что зашифрованная база данных была передана в другой вычислительный экземпляр без перемещения данных.
Чтобы создать базу данных с файлами данных и журналов, указывающими на существующие файлы в службе хранилища Azure, с помощью SQL Server Management Studio пользовательского интерфейса, выполните следующие действия.
В обозревателе объектовподключитесь к экземпляру компонента SQL Server Database Engine и разверните его.
Щелкните правой кнопкой мыши элемент Базы данных, а затем выберите пункт Создать базу данных. Затем щелкните правой кнопкой мыши TestDB1. Щелкните «Задачи» и выберите команду «Отсоединить». В диалоговом окне отсоединения установите флажок «Удалить соединения». Нажмите кнопку ОК.
Подключитесь к целевому компьютеру, на котором установлен SQL Server 2014 CTP2 или более поздняя версия. Чтобы подготовить целевой компьютер, на нем необходимо создать учетные данные SQL Server, которые указывают на тот же контейнер, размещенный в TestDB1. Если вы собираетесь повторно присоединить базу данных на том же компьютере, то нет необходимости создавать другие учетные данные.
В обозреватель объектов щелкните правой кнопкой мыши Базы данных и выберите команду Присоединить.
В диалоговом окне Присоединение баз данных нажмите кнопку Добавить, чтобы указать базу данных для подключения. В диалоговом окне Поиск файлов базы данных :
В поле Расположение файла данных базы данных введите :
https://teststorageaccnt.blob.core.windows.net/testcontainer/
.В поле Имя файла введите :
TestDB1Data.mdf
.Нажмите кнопку ОК.
Следующее занятие: