Як скопіювати свою базу даних SQL Azure в локальний екземпляр SQL Server?


12

У мене є база даних OLTP, розміщена в екземплярі SQL Azure. Я хочу витягнути копію бази даних з хмари, щоб я міг запускати проти неї деякі важкі витяги та запити у стилі OLAP, не впливаючи на вихідну базу даних.

Як відтягнути копію бази даних до локального екземпляра SQL Server?

Відповіді:


9

Використовуйте майстер міграції SQL Azure :

Майстер міграції SQL Azure (SQLAzureMW) надає вам можливість аналізу, створення сценаріїв та міграції даних (через BCP) з:

  1. Від SQL Server до SQL Azure
  2. SQL Azure на SQL Server
  3. SQL Azure в SQL Azure

Схоже, це не працює з LocalDB, у мене є помилка, яка говорить про те, що "Шифрування не підтримується" на кроці, коли ви вибираєте базу даних призначення. Інструмент не в змозі підключитися до мого локального екземпляра
tobiak777

@ red2nb - я не знаю нічого про LocalDB, але, можливо, оскільки помилка говорить про те, що це не проблема з LocalDB, а проблема із зашифрованою базою даних призначення.
Нік Чаммас

4

Створіть bcpсценарій, який експортує вміст усіх ваших таблиць у локальні файли.

Почніть з написання запиту, який видасть bcpкоманду для експорту кожної таблиці у вашій цільовій базі даних до шляху на вашій цільовій машині:

SELECT 
      'bcp '
    + SCHEMA_NAME(schema_id) + '.' + name
    + ' out '
    + ' D:\local_backup_directory\' + SCHEMA_NAME(schema_id) + '.' + name + '.txt'
    + ' -c '
    + ' -S servername.database.windows.net '
    + ' -d database_name '
    + ' -U username '
    + ' -P password'
FROM sys.tables;

Виконайте цей запит, використовуючи bcpвашу базу даних SQL Azure з машини, на яку потрібно скопіювати та зберегти результати у cmdфайл. Виконайте цей cmdфайл, щоб експортувати кожну таблицю в текстовий файл.

C:\> REM ask bcp to save the results of the above query to a file
C:\> bcp "SELECT      'bcp '    + SCHEMA_NAME(schema_id) + '.' + name   + ' out '   + ' D:\backup_directory\' + SCHEMA_NAME(schema_id) + '.' + name + '.txt'    + ' -c '    + ' -S servername.database.windows.net '    + ' -d database_name '  + ' -U username '   + ' -P password' FROM sys.tables;" queryout output_path\bcp_script.cmd -c -S servername.database.windows.net -d database_name -U username -P password

C:\> REM execute the bcp commands saved to file
C:\> output_path\bcp_script.cmd

Це швидкий і брудний підхід і не підходить для великих баз даних або складних схем.



2

Я помітив, що в цьому списку є новий інструмент, це резервне копіювання бази даних Azure SQL Idera . Це безкоштовно, і вони зазвичай роблять хороші інструменти, тому варто спробувати.

Інший спосіб експорту баз даних (але цього разу лише схема, без даних) до Azure - це використання пакетів DAC (файли .dacpac, витягнуті з Management Studio або Visual Studio 2010). Це працює тільки з SQL 2008 R2 SP1 +.

Детальну інформацію про додатки рівня даних ви можете прочитати тут:


0

можна скористатися майстром імпорту даних SSMS. Ось хороший пост про це в блозі , із зображеннями. Ключовим моментом є вибір постачальника даних .NET для вихідної бази даних. У мене було багато проблем, намагаючись змусити його працювати з іншими (і за замовчуванням - рідними) постачальниками.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.