У цій статті розглядаються сценарії міграції бази даних SQL Server від локальної (локальної) інфраструктури до хмарної бази Azure SQL.
Зміст:
- Ми створюємо базу даних SQL Azure
- Міграція в SQL Azure за допомогою студії управління SQL Server Management
- Міграція в SQL Azure за допомогою пакету даних (пакет DAC-пакет Data-Tier)
- Імпорт бази даних в SQL Azure за допомогою утиліти SQLPackage
- Міграція в SQL Azure за допомогою PowerShell
Використання SQL Azure відповідно до моделі PAS дозволяє отримати власний хмарний екземпляр SQL без розширення віртуальних серверів у хмарі.
Як корисно SQL Azure?
- База даних хмар може бути використана без зміни програми та збереження локальної інфраструктури у формі, в якій вона була до міграції
- Простота масштабування та висока швидкість доступу до даних у різних регіонах/континентах
- Просте та швидке відновлення, наявність знімків (особливо важливо для розробників)
- Оптимально для стартів дозволяє отримати всі можливості SQL, які доступні для великих проектів за доступною ціною.
Ми створюємо базу даних SQL Azure
Перш ніж розгорнути базу даних у хмарі, необхідно створити сервер бази даних у Microsoft Azure.
Для цього вам потрібно виконати такі дії:
- Перейти на портал Azure;
- У панелі пошуку введіть сервери SQL, виберіть SQL -сервери;
- Якщо у вашої підписки немає серверів SQL, натисніть кнопку Створіть SQL Server;
- На екрані з’явиться форма створення сервера SQL. У цій формі необхідно заповнити всі поля, позначені знаками *. Якщо ви не створили групу ресурсів для SQL Server, ви можете зробити це на цьому кроці, натиснувши кнопку Створити новий;
- Наступним кроком стане налаштування мережевого підключення до Cloud SQL Server. Ми дозволимо створити правило Brandmauer для доступу до SQL -сервера з Інтернету;
- На наступному кроці можна підключити службу Azure Defender для служби SQL до сервера - це пакет для захисту SQL Server. Ви можете побачити більше про можливості захисника Azure на сторінці документації Microsoft;
- Наступний крок можна заповнити тегами для нового сервера. Теги корисні, якщо вам потрібно шукати наш сервер у сценаріях;
- Ми підтверджуємо створення SQL -сервера, натиснувши кнопку Створювати. Після натискання кнопки створення буде створена група ресурсів для нашого сервера та самого сервера SQL;
- Ми переходимо до розділу "Брандмауери та віртуальні мережі", натиснувши на посилання "Показати налаштування брандмауера";
- Клацніть на "Додати клієнт IP", у полі "Клієнт IP -адреса" Поточне підключення до хмари Azure SQL відображається.
- Обов’язково натисніть кнопку Зберегти
Ви можете створити хмарний сервер SQL за допомогою PowerShell. Перш ніж використовувати PowerShell, спочатку потрібно встановити кілька модулів.
Спочатку завантажте модуль Аз За допомогою команди
Встановити -Module -Name AZ -allowClobber
Тоді ми завантажуємо модуль Аз.Ресурси команда
Імпорт-модуль AZ.Ресурси
Та автентифікація в Microsoft Azure:
Connect-Azaccount
Перший крок, який ми створюємо групу ресурсів Azure з іменем ResourceGroup1:
AzureSourceGroup -Name "ResourceGroup1" -Location "Northeurope"
Наступним кроком є створення сервера та налаштування брандмауера. У сценарії ми вказуємо створену групу ресурсів, розташування, вхід та пароль адміністратора, а також встановлюємо параметр брандмауера, що дозволяє нам підключитися до сервера з Інтернету.
Напишіть-господар "Створення первинного сервера ..."
$ resourcegroupname = "ResourceGroup1"
$ location = "Northeurope"
$ adminlogin = "sqladmin"
$ password = "Azure1345678!Що
$ Servername = "Mysqlserver-1558185950"
$ startip = "0.0.0.0
$ endip = "0.0.0.0
Напишіть-господар "Створення первинного сервера ..."
$ Server = new -azzerver -resourcegroupname $ resourcegroupname -sername $ servername $ location -sqladministorcralytions $ (new -Object -Object -TypEname System.Управління.Автоматизація.Pscredential -argumentList $ adminlogin, $ (convertto -securestring $ password -asplaintext -force))))))
$ сервер
Запис-господар "Налаштування правила брандмауера сервера ..."
Echo $ resourcegroupname
$ Serverfirewallrule = new -azzerverwerwallrule $ resourcegroupname $ servernarname -servernalrulename -servernedips $ startddddddddones -
$ serverfirewallrule
Створюючи групу ресурсів та SQL Server, ви можете перейти до міграції.
Міграція в SQL Azure за допомогою студії управління SQL Server Management
Найпростіший спосіб перенести базу даних на сервері SQL On-Prem в Azure SQL-це використання інструментів студії SQL Management.
- У студії управління SQL Server виберіть базу даних, яку ми хочемо перенести в хмару, а потім у контекстному меню, яке ми вибираємо "Розгорнути дані в базу даних Microsoft Azure SQLЩо. Майстер міграції відкриється;
- Ми підключимося до SQL Azure. Щоб підключитися до Azure SQL, ми використовуємо рядок "ім'я сервера", який можна скопіювати зі сторінки ресурсу нашої бази даних. Виберіть тип автентифікації "автентифікація SQL Server", і вкажіть вхід та пароль адміністратора, який ми вказали під час створення сервера бази даних.
- На наступній сторінці майстра вкажіть назву бази даних, яка буде створена в SQL Azure, рівнях обслуговування, обсягу бази даних та рівня обслуговування.
- Майстер виконає всі необхідні кроки для міграції
- Нова база даних з’явиться в SQL Azure.
Передача бази даних у хмару завершується.
Міграція в SQL Azure за допомогою пакету даних (пакет DAC-пакет Data-Tier)
Додаток DAGS DAC -додаток. Розробники створюють базу даних у проекті бази даних інструментів даних SQL Server, а потім передають пакет DAC до адміністратора бази даних. Адміністратори бази даних розгортають програму DAC на тестову або продуктивну копію SQL Server або використовують пакет DAC для оновлення раніше розгорнутої бази даних. У разі змін у програмі, що призводять до зміни схеми бази даних, адміністратори також можуть витягувати базу даних до пакету DAC та передавати цей пакет розробникам.
Пакет DAC - це файл розширення DACPAC. Такий файл складається з багатьох XML-склянок, в яких є програми та бази даних метаданих, а також дані, що зберігаються в базі даних.Якщо життєвий цикл бази даних включає міграцію в хмару Azure, ви можете використовувати наступні інструкції.
- Переконайтесь, що ваша остання версія студії управління SQL Server була встановлена.
- Відкрийте студію управління SQL Server та виберіть базу даних, яку потрібно передати.
- У контекстному меню в спостерігачах об'єктів виберіть завдання та натисніть кнопку Експорт додатка до даних.
- Клацніть Далі, щоб пропустити налаштування за замовчуванням.
- Давайте перевіримо базу даних на сумісність. Для цього натисніть на вкладку Просунутий І вийміть прапор Вибрати все.
- На сторінці «Експорт налаштувань» ми виберемо параметр Збережіть до Microsoft Azure, Щоб зберегти файл резервного копіювання в об'єктах Azure Blob.
- Давайте перейдемо до порталу Azure, щоб отримати інформацію про рахунок зберігання.
- Виберіть обліковий запис зберігання та скопіюйте ключ доступу. Вставте ключ до студії управління SQL Server та натисніть Connect.
- Тепер ми отримали доступ до об'єктів Azure Blob.
- Виберіть вкладку Просунутий. Тут ви можете вибрати об'єкти, які ми перевіримо на сумісність. Після натискання кнопки та кнопки закінчення, майстер експорту перевірить сумісність бази даних. Якщо будуть знайдені якісь проблеми, вони з’являться після перевірки схеми.
- Якщо помилок немає, база даних сумісна та готова до міграції. Якщо з’являються помилки, вони повинні бути виправлені перед продовженням процесу міграції.
- У майстер -експорті виберіть збереження файлів рюкзаків на локальному диску та натисніть кнопку Далі.
- Тепер, коли у нас є файл BACPAC, ми можемо зробити його імпорт. Підключіться до порталу Azure і відкрийте сторінку бази даних SQL. Перейдіть до групи ресурсів та створіть нову копію бази Azure.
- Оберіть Імпортувати базу даних На панелі інструментів.
- Знайдіть обліковий запис зберігання об'єктів BLOB та виберіть відповідний контейнер для файлу BACPAC.
- Введіть назву нової бази даних, виберіть підписку та розмір зберігання та введіть облікові дані адміністратора SQL.
- Клацніть ОК, Azure запустить імпорт файлу BACPAC у нову базу даних.
Microsoft рекомендує цей метод, якщо розмір бази даних не перевищує 150 ГБ.
Імпорт бази даних в SQL Azure за допомогою утиліти SQLPackage
Якщо у вас велика база даних, а її розмір перевищує 150 ГБ, то Microsoft рекомендує використовувати утиліту Sqlpackage
.
Sqlpackage.EXE /A: Імпорт /TCS: "Джерело даних =.База даних.Вікна.Net; початковий каталог =; ідентифікатор користувача =; пароль = " /sf: AdventureWorks2016.BACPAC /P: BATEABASEEDITION = FEER /P: BATIRASESESVICEOBjective = S0
Ця команда імпортує базу даних AdventureWorks2016 в Azure SQL назвав MymigratedAtabase з рівнем безкоштовних послуг та рівнем обслуговування S0.
Детальна інформація про утиліту SQLPackage.Exe можна прочитати на веб -сайті документації Microsoft: https: // docs.Microsoft.Com/ru-ru/sql/tools/sqlpackage/sqlpackage?Переглянути = SQL-Server-Rer15Міграція в SQL Azure за допомогою PowerShell
Для міграції бази даних в SQL Azure ви можете використовувати команду New-AzqldabaseImport
. Перед використанням цього командира необхідно зберегти файл BACPAC у сховищі Azure.
Приклад команди імпорту:
New -азсклдатабасеймпорт -resourcegroupname "rg01" -servername "server01" -databasename "database01" -storagekeytype "storageacecskey" -storageKey "StorageKey01" -storageUri "http: // account01".Крапка.Ядро.Консозо.NET/BACPACS/DATABASE01.Bacpac "-administratorlogin" користувач "-administratorloginpassword $ securestring -Edition -standard -Service -Divename S0 -Databasemaxibytes 50000000
Параметри команди:
- AdminizationLoginPassword - Секрет доступу до бази даних
- Ім'я ресурсів - назва групи ресурсів
- Ім'я сервера - ім'я сервера
- StorageKey - секретна лінія
- StorageKeyType - тип ключа доступу, може бути Storageaccesskey або SharedAccesskey.
- StorageUri - URI для файлу BACPAC
- ServiceObjectIname - Рівень обслуговування
- Databasemaxsizietes - Максимальний обсяг бази даних
Командир допоможе побачити процес міграції Get-azsqldabaseimportexportatus
. Командир повертає статус операції: безперервно або досяг успіху.
Ви можете скасувати операцію за допомогою командира STOP-азвклдабасаактивіта
. Приклад використання в сценарії:
Функція Скасувати-азвкммпортекспортепроводу
Параметр
(
[Параметр (mordator = $ true)] [рядок] $ resourcegroupname
,[Параметр (мандатор = $ true)] [рядок] $ servername
,[Параметр (mordator = $ true)] [String] $ databasEname
)
$ Operation = get -AzqldabaseActivity -ResorceGroupName $ resourcegroupname -Servername $ databasEname $ databasEname | Що -Object ($ _.Операція -eq "експорту даних" -or $ _.Операція -eq "importDatabase") -і $ _.State -eq "unprogress"
якщо (-not [рядок] :: isNullorempty ($ операція))
робити
Напишіть -host -foregroundColor Cyan ("операція" + $ операція.Операція + "з операцією:" + $ операція.OperationID + "зараз" + $ операція.Держава)
$ UserInput = read -host -prompt "shoup i скасовую цю операцію? (Y/n) "
While ($ userInput -ne "y" -і $ userInput -ne "n")
if ($ userInput -eq "y")
"Скасування операції"
Зупинка -AzzsqldabaseActivity -ResorceGroupName $ ResourceGroupName -Sername $ servername $ databasenam -OperationId $ Операція.Операція
Інакше
"Вихід без скасування операції"
Інакше
"Наразі імпорту чи експорту не працює"
Приклад дзвінка сценарію, який зупиняє міграцію бази даних, зробленої попередньою командою:
Скасувати -AzsqlimportExportoPretion -ResorceGroupName RG01 -SERNAME Server01 -Databaseename Database01
Після міграції бази даних необхідно забезпечити безпеку бази даних. Захист баз даних SQL Azure включає такі операції:
- Обмеження доступу за допомогою правил брандмауера;
- Налаштування Azure Active Directory (Azure AD);
- Контроль доступу до користувачів за допомогою автентифікації AD SQL або Azure та безпечні лінії з'єднання;
- Включення таких функцій, як аудит, маска даних та шифрування.
Наступна наша стаття буде присвячена безпеці в SQL Azure.
Як ми бачимо, утиліти та інші можливості забезпечують великий вибір інструментів для переміщення даних у Microsoft Azure, і адміністратор залишається для вибору правильної утиліти чи сценарію.
Автор статті Олег Астахов За підтримки каналу Azure Ru Community https: // t.Я/azurerumunity