Как можно обеспечить преобразование базы данных из версии файлового сервера в версию клиент-сервер

Обновлено: 30.06.2024

При подключении из ArcGIS Desktop, ArcGIS Pro или другого клиента ArcGIS к многопользовательской базе геоданных, созданной в SQL Server, появляется одно из следующих сообщений об ошибке:

Причина

Эти ошибки могут возникать, если драйверы клиента SQL Server не установлены на ПК или версии используемых драйверов не поддерживаются версией SQL Server, к которой подключается пользователь. Драйверы должны быть такими же или более новыми, чем выпуск SQL Server. Например, Microsoft ODBC Driver 17 для SQL Server поддерживается SQL Server 2019 и должен использоваться при подключении к экземпляру SQL Server 2019 из ArcGIS.

Хотя и драйверы собственного клиента SQL Server, и драйверы ODBC часто имеют обратную совместимость с более ранними выпусками, они не обязательно совместимы с предыдущими версиями. Нет гарантии, что старые/неподдерживаемые клиенты будут работать без проблем. При обновлении среды необходимо также обновить клиентские драйверы SQL Server. Это необходимо для обеспечения поддержки новых функций, представленных в ArcGIS.

Решение или обходной путь

Убедитесь, что на клиентском ПК установлен драйвер. Если есть, убедитесь, что он подключается к той же или более новой версии, чем выпуск SQL Server.

Драйверы Microsoft ODBC для SQL Server и собственного клиента SQL Server можно загрузить с веб-сайта Microsoft. Копии также можно найти в My Esri. Чтобы скачать эти копии:

  1. Войдите в My Esri.
  2. Перейдите в Мои организации >Загрузки >Продукты.
  1. Выделите ArcGIS Enterprise и щелкните Просмотр загрузок.
  2. Прокрутите до пункта «Файлы поддержки баз данных» и нажмите «Загрузить» для соответствующей версии драйвера Microsoft ODBC.

Версия устанавливаемого файла клиента зависит от версии SQL Server. См. ArcGIS Desktop: требования к базе данных Microsoft SQL Server для ArcGIS 10.8.x и ArcGIS Pro 2.5, 2.6 и 2.7, чтобы получить полный актуальный список поддерживаемых версий баз данных, операционных систем и программного обеспечения, необходимого для подключения к SQL Server.

Дополнительная информация

Последняя публикация: 17.11.2021

Идентификатор статьи: 000010759

У всех нас есть ограничения, и база данных Access не является исключением. Например, размер базы данных Access ограничен 2 ГБ и не может поддерживать более 255 одновременных пользователей. Поэтому, когда придет время для вашей базы данных Access перейти на следующий уровень, вы можете перейти на SQL Server. SQL Server (будь то локально или в облаке Azure) поддерживает большие объемы данных, больше одновременных пользователей и обладает большей емкостью, чем ядро ​​базы данных JET/ACE. Это руководство обеспечит плавное начало вашего пути к SQL Server, поможет сохранить созданные вами интерфейсные решения Access и, надеюсь, побудит вас использовать Access для будущих решений для баз данных. Мастер увеличения был удален из Access в Access 2013, поэтому теперь вы можете использовать Помощник по миграции Microsoft SQL Server (SSMA). Чтобы успешно выполнить миграцию, выполните следующие действия.

Прежде чем начать

В следующих разделах представлена ​​справочная и другая информация, которая поможет вам начать работу.

О разделенных базах данных

Все объекты базы данных Access могут находиться либо в одном файле базы данных, либо в двух файлах базы данных: интерфейсной базе данных и внутренней базе данных. Это называется разделением базы данных и предназначено для облегчения совместного использования в сетевой среде. Файл внутренней базы данных должен содержать только таблицы и связи. Интерфейсный файл должен содержать только все остальные объекты, включая формы, отчеты, запросы, макросы, модули VBA и таблицы, связанные с серверной базой данных. Когда вы переносите базу данных Access, она похожа на разделенную базу данных, поскольку SQL Server выступает в качестве новой серверной части для данных, которые теперь находятся на сервере.

В результате вы по-прежнему можете поддерживать интерфейсную базу данных Access со связанными таблицами с таблицами SQL Server. По сути, вы можете воспользоваться преимуществами быстрой разработки приложений, предоставляемой базой данных Access, наряду с масштабируемостью SQL Server.

Преимущества SQL Server

Все еще нужны убеждения для перехода на SQL Server? Вот некоторые дополнительные преимущества, о которых стоит подумать:

Больше одновременных пользователей SQL Server может обрабатывать гораздо больше одновременных пользователей, чем Access, и сводит к минимуму требования к памяти при добавлении большего количества пользователей.

Повышенная доступность SQL Server позволяет выполнять динамическое резервное копирование (добавочное или полное) базы данных во время ее использования. Следовательно, вам не нужно заставлять пользователей выходить из базы данных для резервного копирования данных.

Высокая производительность и масштабируемость База данных SQL Server обычно работает лучше, чем база данных Access, особенно с большой базой данных размером в терабайт.Кроме того, SQL Server обрабатывает запросы намного быстрее и эффективнее, обрабатывая запросы параллельно, используя несколько собственных потоков в рамках одного процесса для обработки запросов пользователей.

Улучшенная безопасность Используя доверенное соединение, SQL Server интегрируется с системной безопасностью Windows, чтобы обеспечить единый интегрированный доступ к сети и базе данных, используя лучшее из обеих систем безопасности. Это значительно упрощает администрирование сложных схем безопасности. SQL Server — идеальное хранилище для конфиденциальной информации, такой как номера социального страхования, данные кредитных карт и адреса, которые являются конфиденциальными.

Немедленное восстановление. В случае сбоя операционной системы или отключения питания SQL Server может автоматически восстановить базу данных до согласованного состояния за считанные минуты и без вмешательства администратора базы данных.

Использование VPN-доступа и виртуальных частных сетей (VPN) несовместимы. Но с SQL Server удаленные пользователи могут по-прежнему использовать интерфейсную базу данных Access на рабочем столе и серверную часть SQL Server, расположенную за брандмауэром VPN.

Azure SQL Server В дополнение к преимуществам SQL Server предлагает динамическую масштабируемость без простоев, интеллектуальную оптимизацию, глобальную масштабируемость и доступность, устранение затрат на оборудование и упрощение администрирования.

Выберите лучший вариант Azure SQL Server

Если вы переходите на Azure SQL Server, вы можете выбрать один из трех вариантов, каждый из которых имеет свои преимущества:

Одна база данных/эластичные пулы Этот вариант имеет собственный набор ресурсов, управляемых через сервер базы данных SQL. Отдельная база данных похожа на автономную базу данных в SQL Server. Вы также можете добавить эластичный пул, который представляет собой набор баз данных с общим набором ресурсов, управляемых через сервер базы данных SQL. Доступны наиболее часто используемые функции SQL Server со встроенными функциями резервного копирования, исправления и восстановления. Но нет гарантированного точного времени обслуживания, и миграция с SQL Server может быть затруднена.

Управляемый экземпляр Этот вариант представляет собой набор системных и пользовательских баз данных с общим набором ресурсов. Управляемый экземпляр подобен экземпляру базы данных SQL Server, который хорошо совместим с локальным SQL Server. Управляемый экземпляр имеет встроенные средства резервного копирования, исправления, восстановления и легко мигрирует с SQL Server. Однако некоторые функции SQL Server недоступны, и точное время их обслуживания не гарантируется.

Виртуальная машина Azure. Этот параметр позволяет запускать SQL Server внутри виртуальной машины в облаке Azure. У вас есть полный контроль над ядром SQL Server и простой путь миграции. Но вам нужно управлять своими резервными копиями, исправлениями и восстановлением.

Первые шаги

Есть несколько проблем, которые вы можете решить заранее, чтобы упростить процесс миграции до запуска SSMA:

Добавьте индексы таблиц и первичные ключи Убедитесь, что каждая таблица Access имеет индекс и первичный ключ. SQL Server требует, чтобы все таблицы имели хотя бы один индекс, а связанная таблица должна иметь первичный ключ, если таблицу можно обновить.

Проверьте отношения между первичным и внешним ключами. Убедитесь, что эти отношения основаны на полях с согласованными типами и размерами данных. SQL Server не поддерживает объединенные столбцы с разными типами данных и размерами в ограничениях внешнего ключа.

Удалить столбец вложения SSMA не переносит таблицы, содержащие столбец вложения.

Перед запуском SSMA выполните следующие первые шаги.

Закройте базу данных Access.

Убедитесь, что текущие пользователи, подключенные к базе данных, также закрывают базу данных.

Совет. Рассмотрите возможность установки на настольный компьютер версии Microsoft SQL Server Express, которая поддерживает до 10 ГБ. Это бесплатный и простой способ запустить и проверить миграцию. При подключении используйте LocalDB в качестве экземпляра базы данных.

Совет. Если возможно, используйте автономную версию Access. Если вы можете использовать только Microsoft 365, используйте ядро ​​базы данных Access 2010 для переноса базы данных Access при использовании SSMA. Дополнительные сведения см. в разделе Распространяемый компонент Microsoft Access Database Engine 2010.

Запустить SSMA

Корпорация Майкрософт предоставляет Помощник по миграции Microsoft SQL Server (SSMA), упрощающий миграцию. SSMA в основном переносит таблицы и выбирает запросы без параметров. Формы, отчеты, макросы и модули VBA не конвертируются. В обозревателе метаданных SQL Server отображаются объекты базы данных Access и объекты SQL Server, что позволяет просматривать текущее содержимое обеих баз данных. Эти два соединения сохраняются в вашем файле миграции, если вы решите перенести дополнительные объекты в будущем.

Примечание. Процесс переноса может занять некоторое время в зависимости от размера объектов вашей базы данных и объема данных, которые необходимо перенести.

Чтобы перенести базу данных с помощью SSMA, сначала загрузите и установите программное обеспечение, дважды щелкнув загруженный файл MSI.Убедитесь, что вы установили подходящую 32- или 64-разрядную версию для вашего компьютера.

После установки SSMA откройте его на рабочем столе, желательно с компьютера с файлом базы данных Access.

Его также можно открыть на компьютере, имеющем доступ к базе данных Access из сети в общей папке.

Следуйте начальным инструкциям в SSMA, чтобы предоставить базовую информацию, такую ​​как местоположение SQL Server, базу данных Access и объекты для переноса, информацию о подключении и необходимость создания связанных таблиц.

Если вы переходите на SQL Server 2016 или более позднюю версию и хотите обновить связанную таблицу, добавьте столбец rowversion, выбрав Инструменты проверки > Настройки проекта > Общие.

Поле rowversion помогает избежать конфликтов записей. Access использует это поле rowversion в связанной таблице SQL Server, чтобы определить, когда запись была обновлена ​​в последний раз. Кроме того, если добавить в запрос поле rowversion, Access использует его для повторного выбора строки после операции обновления. Это повышает эффективность, помогая избежать ошибок конфликта записи и сценариев удаления записи, которые могут произойти, когда Access обнаружит результаты, отличные от исходной отправки, например, может произойти с типами данных с числами с плавающей запятой и триггерами, которые изменяют столбцы. Однако избегайте использования поля rowversion в формах, отчетах или коде VBA. Дополнительную информацию см. в разделе rowversion.

Примечание Не путайте версию строки с меткой времени. Хотя отметка времени ключевого слова является синонимом версии строки в SQL Server, вы не можете использовать версию строки как способ поставить отметку времени записи данных.

Чтобы задать точные типы данных, выберите Инструменты просмотра > Настройки проекта > Сопоставление типов. Например, если вы храните только текст на английском языке, вы можете использовать тип данных varchar, а не nvarchar.

Преобразовать объекты

SSMA преобразует объекты Access в объекты SQL Server, но не копирует объекты сразу. SSMA предоставляет список следующих объектов для переноса, чтобы вы могли решить, хотите ли вы переместить их в базу данных SQL Server:

Таблицы и столбцы

Выберите Запросы без параметров.

Первичный и внешний ключи

Индексы и значения по умолчанию

Проверить ограничения (разрешить свойство столбца нулевой длины, правило проверки столбца, проверку таблицы)

Рекомендуется использовать отчет об оценке SSMA, в котором показаны результаты преобразования, включая ошибки, предупреждения, информационные сообщения, расчетное время выполнения миграции и отдельные действия по исправлению ошибок, которые необходимо выполнить перед фактическим перемещением объектов.< /p>

Преобразование объектов базы данных берет определения объектов из метаданных Access, преобразует их в эквивалентный синтаксис Transact-SQL (T-SQL), а затем загружает эту информацию в проект. Затем вы можете просматривать объекты SQL Server или SQL Azure и их свойства с помощью SQL Server или обозревателя метаданных SQL Azure.

Чтобы преобразовать, загрузить и перенести объекты в SQL Server, следуйте этому руководству.

Совет. После успешного переноса базы данных Access сохраните файл проекта для последующего использования, чтобы можно было снова перенести данные для тестирования или окончательного переноса.

Связать таблицы

Рассмотрите возможность установки последней версии драйверов OLE DB и ODBC для SQL Server вместо использования собственных драйверов SQL Server, поставляемых с Windows. Новые драйверы не только быстрее, но и поддерживают новые функции Azure SQL, которых нет в предыдущих драйверах. Вы можете установить драйверы на каждый компьютер, где используется преобразованная база данных. Дополнительные сведения см. в разделах Драйвер Microsoft OLE DB 18 для SQL Server и Драйвер Microsoft ODBC 17 для SQL Server.

После переноса таблиц Access вы можете связать их с таблицами в SQL Server, где теперь хранятся ваши данные. Связывание напрямую из Access также предоставляет более простой способ просмотра данных, чем использование более сложных инструментов управления SQL Server. Вы можете запрашивать и редактировать связанные данные в зависимости от разрешений, установленных вашим администратором базы данных SQL Server.

Примечание. Если вы создаете DSN ODBC при связывании с базой данных SQL Server в процессе связывания, либо создайте один и тот же DSN на всех компьютерах, использующих новое приложение, либо программно используйте строку подключения, хранящуюся в файле DSN.

Совет. Не забывайте использовать Диспетчер связанных таблиц в Access для удобного обновления и пересвязывания таблиц. Дополнительные сведения см. в разделе Управление связанными таблицами.

Тестировать и исправлять

В следующих разделах описаны распространенные проблемы, с которыми вы можете столкнуться во время миграции, и способы их решения.

Запросы

Преобразуются только избранные запросы; другие запросы, в том числе выборочные запросы, которые принимают параметры, не поддерживаются. Некоторые запросы могут быть преобразованы не полностью, и SSMA сообщает об ошибках запросов в процессе преобразования. Вы можете вручную редактировать объекты, которые не преобразуются, используя синтаксис T-SQL. Синтаксические ошибки также могут потребовать ручного преобразования функций и типов данных, характерных для Access, в функции и типы данных SQL Server.Дополнительные сведения см. в разделе Сравнение Access SQL с SQL Server TSQL.

Типы данных

Access и SQL Server имеют схожие типы данных, но имейте в виду следующие потенциальные проблемы.

Большое число Тип данных «Большое число» хранит неденежное числовое значение и совместим с типом данных SQL bigint. Этот тип данных можно использовать для эффективного вычисления больших чисел, но он требует использования формата файла базы данных Access 16 (16.0.7812 или более поздней версии) .accdb и лучше работает с 64-разрядной версией Access. Дополнительные сведения см. в разделах Использование типа данных «Большие числа» и Выбор между 64-разрядной или 32-разрядной версией Office.

Да/Нет По умолчанию столбец "Да/Нет" доступа преобразуется в битовое поле SQL Server. Чтобы избежать блокировки записи, убедитесь, что в битовом поле запрещено значение NULL. В SSMA вы можете выбрать битовый столбец, чтобы задать для свойства Allow Nulls значение NO. В TSQL используйте инструкции CREATE TABLE или ALTER TABLE.

Дата и время Существует несколько соображений относительно даты и времени:

Используйте тип данных Access Date/Time для сопоставления с типом данных datetime. Используйте расширенный тип данных Access Date/Time для сопоставления с типом данных datetime2, который имеет более широкий диапазон дат и времени. Дополнительные сведения см. в разделе Использование расширенного типа данных Date/Time.

При запросе дат в SQL Server учитывайте не только дату, но и время. Например:

Дата заказа между 01.01.19 и 31.01.19 может включать не все заказы.

DateOrdered между 01.01.19 00:00:00 и 31.01.19 23:59:59 включает все заказы.

Attachment Тип данных Attachment сохраняет файл в базе данных Access. В SQL Server у вас есть несколько вариантов для рассмотрения. Вы можете извлечь файлы из базы данных Access, а затем рассмотреть возможность сохранения ссылок на файлы в базе данных SQL Server. Кроме того, вы можете использовать FILESTREAM, FileTables или удаленное хранилище больших двоичных объектов (RBS) для хранения вложений в базе данных SQL Server.

В таблицах доступа к гиперссылкам есть столбцы гиперссылок, которые SQL Server не поддерживает. По умолчанию эти столбцы будут преобразованы в столбцы nvarchar(max) в SQL Server, но вы можете настроить сопоставление, чтобы выбрать меньший тип данных. В решении Access вы по-прежнему можете использовать поведение гиперссылки в формах и отчетах, если для свойства Hyperlink элемента управления установлено значение true.

Многозначное поле Многозначное поле Access преобразуется в SQL Server как текстовое поле, содержащее набор значений с разделителями. Поскольку SQL Server не поддерживает многозначный тип данных, который моделирует отношения "многие ко многим", может потребоваться дополнительная работа по проектированию и преобразованию.

Дополнительную информацию о сопоставлении типов данных Access и SQL Server см. в разделе Сравнение типов данных.

Примечание. Многозначные поля не преобразуются и больше не поддерживаются в Access 2010.

Визуальный базовый

Хотя VBA не поддерживается SQL Server, обратите внимание на следующие возможные проблемы:

Функции VBA в запросах Запросы доступа поддерживают функции VBA для данных в столбце запроса. Но запросы Access, использующие функции VBA, не могут выполняться на SQL Server, поэтому все запрошенные данные передаются в Microsoft Access для обработки. В большинстве случаев эти запросы следует преобразовать в сквозные запросы.

Определяемые пользователем функции в запросах Запросы Microsoft Access поддерживают использование функций, определенных в модулях VBA, для обработки переданных им данных. Запросы могут быть автономными запросами, операторами SQL в источниках записей форм/отчетов, источниками данных полей со списком и списков в формах, отчетах и ​​полях таблиц, а также выражениями правил по умолчанию или проверки. SQL Server не может выполнять эти определяемые пользователем функции. Возможно, вам придется вручную перепроектировать эти функции и преобразовать их в хранимые процедуры на SQL Server.

Оптимизация производительности

Безусловно, самый важный способ оптимизировать производительность вашего нового серверного SQL Server – решить, когда использовать локальные или удаленные запросы. Когда вы переносите свои данные на SQL Server, вы также переходите от файлового сервера к модели вычислений базы данных клиент-сервер. Следуйте этим общим рекомендациям:

Выполняйте небольшие запросы только для чтения на клиенте для быстрого доступа.

Выполняйте длинные запросы на чтение/запись на сервере, чтобы воспользоваться большей вычислительной мощностью.

Минимизируйте сетевой трафик с помощью фильтров и агрегирования, чтобы передавать только те данные, которые вам нужны.

Ниже приведены дополнительные рекомендуемые рекомендации.

Размещение логики на сервере Ваше приложение также может использовать представления, пользовательские функции, хранимые процедуры, вычисляемые поля и триггеры для централизации и совместного использования логики приложения, бизнес-правил и политик, сложных запросов, проверки данных и кода ссылочной целостности. на сервере, а не на клиенте. Спросите себя, можно ли этот запрос или задачу выполнить на сервере лучше и быстрее? Наконец, проверьте каждый запрос, чтобы обеспечить оптимальную производительность.

Использование представлений в формах и отчетах В Access выполните следующие действия:

Для форм используйте представление SQL для формы только для чтения и индексированное представление SQL для формы для чтения и записи в качестве источника записи.

Для отчетов используйте представление SQL в качестве источника записей. Однако создайте отдельное представление для каждого отчета, чтобы вам было проще обновлять конкретный отчет, не затрагивая другие отчеты.

Сведите к минимуму загрузку данных в форму или отчет. Не отображайте данные, пока пользователь не запросит их. Например, оставьте свойство источника записи пустым, попросите пользователей выбрать фильтр в вашей форме, а затем заполните свойство источника записи вашим фильтром. Или используйте предложение where DoCmd.OpenForm и DoCmd.OpenReport, чтобы отобразить точные записи, необходимые пользователю. Попробуйте отключить навигацию по записям.

Будьте осторожны с разнородными запросами. Избегайте выполнения запросов, сочетающих локальную таблицу Access и связанную таблицу SQL Server, которые иногда называют гибридными запросами. Этот тип запроса по-прежнему требует, чтобы Access загрузил все данные SQL Server на локальный компьютер, а затем выполнил запрос, он не запускает запрос в SQL Server.

Когда использовать локальные таблицы Рассмотрите возможность использования локальных таблиц для данных, которые редко изменяются, например для списка штатов или провинций в стране или регионе. Статические таблицы часто используются для фильтрации и могут лучше работать в интерфейсе Access.

Prashanth Jayaram

В этой статье мы обсудим и поймем метод переноса локальной базы данных SQL Server в базу данных Azure SQL.

В этой статье будут рассмотрены способы модернизации и преобразования приложений и инфраструктуры с использованием гибкости и гибкости облака.

База данных Azure SQL в настоящее время находится примерно в 50 центрах обработки данных по всему миру, и все больше центров обработки данных регулярно подключаются к сети, что позволяет запускать базу данных в ближайшем к вам центре обработки данных. С таким количеством локальных реализаций на сайтах клиентов, как перейти от традиционной локальной реализации SQL Server к современным технологиям базы данных SQL Azure и извлечь выгоду из того, что могут предложить облачные службы баз данных?

В этой статье описаны процесс и действия, необходимые для переноса рабочих нагрузок базы данных из локальной среды в облачные службы на основе Azure.

Введение

Цифровая трансформация играет ключевую роль в будущем каждой организации. Зависимость от устаревших систем и разрозненных процессов является основным препятствием на пути к цифровому преобразованию.

Для многих организаций предстоящее прекращение поддержки Microsoft (EOS) для Windows Server, SQL Server 2008 и SQL Server 2008 R2 создает проблемы с точки зрения инноваций, стоимости, безопасности и соответствия нормативным требованиям. Многие традиционные организации находятся под огромным давлением необходимости обновить свои системы до более поздних версий Windows и SQL Server.

Однако, если посмотреть на более светлую сторону, это отличная возможность для организаций восполнить упущенные в прошлом возможности миграции, модернизации и переопределения своей основной деятельности, чтобы повысить производительность, улучшить качество обслуживания клиентов и получить конкурентное преимущество. . Один из доступных вариантов — модернизация путем переноса устаревших объектов в базу данных SQL Azure.

Почему нам может потребоваться перенести локальную базу данных SQL Server в базу данных SQL Azure (PaaS — платформа как услуга)?

Поддерживающие функции и облачные предложения Microsoft имеют много преимуществ при использовании базы данных SQL Azure, которая работает как PaaS. Например, на высоком уровне вам не нужно создавать виртуальные машины или устанавливать операционную систему Windows Server или SQL Server. Все они просто доступны для использования. Все, что вам нужно сделать, это войти на портал Azure и выбрать размер и конфигурацию, которые соответствуют вашим потребностям.

Примечание. Предложение PaaS от Microsoft предоставляет вам все необходимое для поддержки служб баз данных. Microsoft несет более половины накладных расходов на администрирование, включая установку исправлений, обновление программного обеспечения, обслуживание системы и т. д. Однако важно понимать основные последствия этой модели для служб баз данных. База данных SQL Azure не имеет собственного полного функционала по сравнению с локальными версиями базы данных SQL Server, такими как SQL Server 2014, SQL Server 2016 и SQL Server 2017

Некоторые из основных заметных упущений, включая Database Mail, тип данных FILESTREAM и интеграцию CLR с SQL Server. Дополнительные сведения о функциях, которые поддерживаются и не поддерживаются предложением SQL PaaS, см. в документации Microsoft

Как проверить, совместима ли ваша база данных с базой данных SQL Azure?

Это можно проверить несколькими способами:

  1. Создайте файл BACPAC. Если вы можете создать файл BACPAC из своей базы данных, это означает, что вашу базу данных можно перенести в базу данных SQL Azure.
  2. Использование сценария: создайте схему локальных баз данных и создайте ее в среде Azure SQL.

Какие существуют способы переноса данных?

Существует несколько способов переноса данных. Ниже приведены некоторые методы, которые можно использовать для переноса данных:

  1. Создавайте файлы BACPAC и экспортируйте их.
  2. Используйте SQL Server Management Studio; создавать скрипты и использовать методы импорта/экспорта данных
  3. Использование помощника по переносу данных
  4. Используйте репликацию транзакций для переноса данных в облако
  5. Используйте PowerShell и SQLPackage.exe, инструмент SSDT
  • Примечание. Вам необходимо изучить свою ситуацию и применить любой из вышеупомянутых методов в зависимости от ваших требований и текущей среды. Трудно сказать, какой из этих методов будет лучше для вас, пока вы не поймете процесс миграции. В большинстве случаев помощь при переносе данных и/или репликация лучше всего подходят для переноса данных

В этом руководстве я расскажу о первом методе переноса базы данных в базу данных SQL Azure.

Экспорт базы данных с помощью приложения уровня данных экспорта

Чтобы перенести локальную базу данных SQL Server в базу данных SQL Azure с помощью приложения уровня данных экспорта:

Создание файлов BACPAC с помощью Management Studio

Убедитесь, что у вас установлена ​​последняя версия SQL Server Management Studio. Новые версии Management Studio обновляются ежемесячно, чтобы синхронизироваться с обновлениями на портале Azure

Примечание. Рекомендуется всегда использовать последнюю версию Management Studio для синхронизации с обновлениями Microsoft Azure и базы данных SQL. Обновите SQL Server Management Studio

Щелкните правой кнопкой мыши базу данных AdventureWorks2016 в обозревателе объектов, выберите «Задачи» и нажмите «Экспортировать приложение уровня данных…»

Перенос локальной базы данных SQL Server в базу данных SQL Azure с помощью приложения уровня экспорта данных...

На вкладке "Параметры экспорта" настройте экспорт для сохранения файла BACPAC на локальный диск или в хранилище BLOB-объектов Azure, а затем нажмите "Далее".

Примечание. Файл BACPAC будет сохранен только в том случае, если у вас нет проблем с совместимостью базы данных. При наличии проблем с совместимостью в консоли будет отображаться сообщение об ошибке

На вкладке

Затем перейдите на портал Azure, чтобы получить сведения об учетной записи хранения. В данном случае dbmigratestg — это учетная запись хранения, созданная для этого упражнения

В этом случае dbmigratestg — это учетная запись хранения, созданная для этого упражнения

Выберите учетную запись хранения и скопируйте ключ доступа. Вставьте ключ в SQL Server Management Studio и нажмите Подключить

 Подключиться к хранилищу Microsoft Azure

Теперь вы можете получить доступ к хранилищу BLOB-объектов Azure

Доступ к хранилищу блогов базы данных SQL Azure — Экспорт данных для многоуровневого приложения — Экспорт настроек

Нажмите «Дополнительно». На этой панели вы можете выбрать предполагаемые объекты, которые будут частью переноса

SQL Server — экспорт данных для многоуровневого приложения

Прежде чем вы нажмете кнопку "Готово", давайте подробно проверим сводку

SQL Server — экспорт данных для многоуровневого приложения — проверка сводки

Мастер экспорта выполняет проверку совместимости базы данных. Если обнаружены какие-либо проблемы, они появятся после того, как мастер проверит схему

SQL Server — экспорт данных для многоуровневого приложения — см. результаты

Импорт файла с использованием параметра «Импортировать базу данных»

В процессе переноса локальной базы данных SQL Server в базу данных SQL Azure мы теперь импортируем файл .bacpac.

Импорт файла BACPAC в Azure

Теперь, когда у нас есть готовый файл BACPAC, мы можем использовать его для переноса данных в Azure. Этот файл BACPAC можно хранить локально или в хранилище BLOB-объектов Azure (стандартно).

На данный момент портал Azure позволяет создать только одну базу данных в базе данных SQL Azure, и это можно сделать только из файла BACPAC. Выполните следующие действия, чтобы импортировать сохраненный файл BACPAC.

    Подключитесь к порталу Azure и откройте страницу базы данных SQL. Перейдите в свою группу ресурсов и создайте новый экземпляр базы данных Azure (это выходит за рамки этой статьи). Предполагается, что база данных SQL Azure PaaS доступна

Далее выберите базу данных Импорт на панели инструментов

Чтобы перенести локальную базу данных SQL Server в базу данных SQL Azure, импортируйте BACPAC в базу данных SQL Azure

Затем найдите учетную запись хранилища BLOB-объектов и соответствующий контейнер для файла BACPAC

База данных SQL Azure. Найдите учетную запись хранилища BLOB-объектов Azure и соответствующий контейнер для файла BACPAC

Введите новое имя базы данных, размер и учетные данные администратора SQL


  • Примечание.Я рекомендую использовать более высокий DTU; более высокий DTU приводит к более высокой скорости работы. После того как вы настроите базу данных Azure, масштабирование базы данных до более высокого уровня служб будет довольно простым. После завершения импорта вы даже можете перейти на более низкий уровень в соответствии со своими потребностями

На этом пока все…

Обзор

В этом посте мы рассмотрели один из способов переноса локальной базы данных SQL Server в базу данных SQL Azure. Мы подробно обсудили один из методов — миграцию с использованием BACPAC-файла. Я расскажу больше о других вариантах в моих следующих статьях. Следите за обновлениями. Оставляйте свои отзывы и вопросы в разделе комментариев ниже.

Я технолог по базам данных, имею богатый практический опыт работы с технологиями баз данных более 11 лет. Я сертифицированный специалист Microsoft и имею степень магистра компьютерных приложений.

Я специализируюсь на разработке и внедрении решений высокой доступности и межплатформенной миграции БД. В настоящее время разрабатываются следующие технологии: SQL Server, PowerShell, Oracle и MongoDB.

  • Основные сведения о Stairway to SQL — 7 апреля 2021 г.
  • Краткий обзор аудита баз данных в SQL — 28 января 2021 г.
  • Как настроить Azure Data Sync между базами данных SQL Azure и локальным SQL Server — 20 января 2021 г.

Похожие сообщения:

О Прашант Джаярам

Я технолог по базам данных, имею богатый практический опыт работы с технологиями баз данных более 11 лет. Я сертифицированный специалист Microsoft и имею степень магистра компьютерных приложений. Моя специальность заключается в разработке и внедрении решений высокой доступности и межплатформенной миграции БД. В настоящее время работают над такими технологиями, как SQL Server, PowerShell, Oracle и MongoDB. Просмотреть все сообщения Прашанта Джаярама

Amazon RDS поддерживает инстансы БД с несколькими версиями и выпусками Microsoft SQL Server. Ниже вы можете найти самую последнюю поддерживаемую версию каждой основной версии. Полный список поддерживаемых версий, выпусков и версий ядра RDS см. в разделе Версии Microsoft SQL Server на Amazon RDS.

SQL Server 2019 CU12 15.00.4153.1, выпущенный для KB5004524 4 августа 2021 г.

SQL Server 2017 CU25 14.00.3401.7, выпущенный для KB5003830 12 июля 2021 г.

SQL Server 2016 SP2 CU16 13.00.5882.1, выпущенный для KB5000645 11 февраля 2021 г.

SQL Server 2014 SP3 CU4 12.00.6329.1, выпущенный для KB4500181 29 июля 2019 г.

SQL Server 2012 SP4 GDR 11.0.7493.4, выпущенный в соответствии с KB4532098 11 февраля 2020 г.

SQL Server 2008: больше невозможно создавать новые экземпляры ни в одном регионе. Amazon RDS активно переносит существующие экземпляры этой версии.

Информацию о лицензировании SQL Server см. в разделе Лицензирование Microsoft SQL Server в Amazon RDS. Сведения о сборках SQL Server см. в этой статье службы поддержки Microsoft о последних сборках SQL Server.

С помощью Amazon RDS вы можете создавать инстансы БД и моментальные снимки БД, выполнять восстановление на определенный момент времени, а также создавать резервные копии автоматически или вручную. Экземпляры БД под управлением SQL Server можно использовать внутри VPC. Вы также можете использовать Secure Sockets Layer (SSL) для подключения к экземпляру БД, на котором запущен SQL Server, и вы можете использовать прозрачное шифрование данных (TDE) для шифрования данных в состоянии покоя.В настоящее время Amazon RDS поддерживает развертывание SQL Server в нескольких зонах доступности с использованием зеркального отображения базы данных SQL Server (DBM) или групп Always On Availability Group (AG) в качестве решения для обеспечения высокой доступности и аварийного переключения.

Для предоставления управляемых услуг Amazon RDS не предоставляет доступ к инстансам БД через оболочку и ограничивает доступ к определенным системным процедурам и таблицам, требующим расширенных прав. Amazon RDS поддерживает доступ к базам данных в инстансе БД с помощью любого стандартного клиентского приложения SQL, например Microsoft SQL Server Management Studio. Amazon RDS не разрешает прямой доступ хоста к инстансу БД через Telnet, Secure Shell (SSH) или подключение к удаленному рабочему столу Windows. При создании экземпляра БД главному пользователю назначается роль db_owner для всех пользовательских баз данных в этом экземпляре, и он имеет все разрешения на уровне базы данных, кроме тех, которые используются для резервного копирования. Amazon RDS управляет резервным копированием вместо вас.

Перед созданием первого экземпляра БД необходимо выполнить действия, описанные в разделе настройки этого руководства. Дополнительную информацию см. в разделе Настройка Amazon RDS.

Общие задачи управления для Microsoft SQL Server в Amazon RDS

Ниже приведены общие задачи управления, которые вы выполняете с экземпляром БД Amazon RDS для SQL Server, со ссылками на соответствующую документацию для каждой задачи.

Классы экземпляров, хранилище и PIOPS

Если вы создаете инстанс БД для производственных целей, вы должны понимать, как классы инстансов, типы хранилищ и Provisioned IOPS работают в Amazon RDS.

Развертывание в нескольких зонах доступности

Рабочий экземпляр БД должен использовать развертывание в нескольких зонах доступности. Развертывания в нескольких зонах доступности обеспечивают повышенную доступность, надежность данных и отказоустойчивость инстансов БД. Развертывания SQL Server в нескольких зонах доступности реализуются с использованием собственной технологии SQL Server DBM или AG.

Виртуальное частное облако Amazon (VPC)

Если в вашем аккаунте AWS есть VPC по умолчанию, ваш экземпляр БД автоматически создается внутри VPC по умолчанию. Если в вашей учетной записи нет VPC по умолчанию, и вы хотите, чтобы экземпляр БД был в облаке VPC, вы должны создать группы VPC и подсети перед созданием экземпляра БД.

Группы безопасности

По умолчанию экземпляры БД создаются с брандмауэром, который запрещает доступ к ним. Поэтому для доступа к экземпляру БД необходимо создать группу безопасности с правильными IP-адресами и конфигурацией сети. Создаваемая вами группа безопасности зависит от того, на какой платформе Amazon EC2 работает ваш инстанс БД, а также от того, будете ли вы получать доступ к инстансу БД из инстанса Amazon EC2.

Как правило, если ваш экземпляр БД находится на платформе EC2-Classic, вам потребуется создать группу безопасности БД; если ваш экземпляр БД находится на платформе EC2-VPC, вам потребуется создать группу безопасности VPC.

Группы параметров

Если для вашего экземпляра БД потребуются определенные параметры базы данных, вам следует создать группу параметров перед созданием экземпляра БД.

Группы опций

Если для вашего экземпляра БД потребуются определенные параметры базы данных, вам следует создать группу параметров перед созданием экземпляра БД.

Подключение к вашему экземпляру БД

После создания группы безопасности и связывания ее с экземпляром БД вы можете подключиться к экземпляру БД с помощью любого стандартного клиентского приложения SQL, такого как Microsoft SQL Server Management Studio.

Резервное копирование и восстановление

При создании экземпляра БД вы можете настроить его для автоматического резервного копирования. Вы также можете создавать резервные копии и восстанавливать свои базы данных вручную, используя файлы полной резервной копии (файлы .bak).

Вы можете контролировать свой экземпляр БД SQL Server, используя метрики CloudWatch Amazon RDS, события и расширенный мониторинг.

Вы можете получить доступ к файлам журналов для вашего экземпляра БД SQL Server.

Есть также расширенные административные задачи для работы с экземплярами БД SQL Server. Дополнительные сведения см. в следующей документации:

Ограничения для экземпляров БД Microsoft SQL Server

Внедрение Microsoft SQL Server в Amazon RDS на инстансе БД имеет некоторые ограничения, о которых вам следует знать:

Максимальное количество баз данных, поддерживаемых в экземпляре БД, зависит от типа класса экземпляра и режима доступности — в одной зоне доступности, зеркалировании базы данных в нескольких зонах доступности (DBM) или группах доступности (AG) в нескольких зонах доступности. Системные базы данных Microsoft SQL Server не учитываются при этом ограничении.

В следующей таблице показано максимальное количество поддерживаемых баз данных для каждого типа класса экземпляра и режима доступности. Используйте эту таблицу, чтобы решить, можете ли вы перейти от одного типа класса экземпляра к другому или от одного режима доступности к другому. Если ваш исходный экземпляр БД имеет больше баз данных, чем может поддерживать тип класса целевого экземпляра или режим доступности, изменение экземпляра БД не удастся. Статус вашего запроса можно увидеть на панели событий.

< td>Нет данных

* Представляет различные типы классов экземпляров.

Например, предположим, что ваш экземпляр БД работает на db.*.16xlarge с одной зоной доступности и содержит 76 баз данных. Вы изменяете экземпляр БД для обновления до использования групп доступности Always On в нескольких зонах доступности. Это обновление завершается ошибкой, так как ваш экземпляр БД содержит больше баз данных, чем может поддерживать ваша целевая конфигурация. Если вместо этого вы обновите тип класса экземпляра до db.*.24xlarge, модификация пройдет успешно.

В случае сбоя обновления вы увидите события и сообщения, подобные приведенным ниже:

Невозможно изменить класс экземпляра базы данных. Экземпляр имеет 76 баз данных, но после преобразования он будет поддерживать только 75.

Невозможно преобразовать экземпляр БД в мультизональную зону доступности: экземпляр имеет 76 баз данных, но после преобразования он будет поддерживать только 75.

Если восстановление на момент времени или восстановление моментального снимка завершается сбоем, вы видите события и сообщения, подобные следующим:

Экземпляр базы данных помещен в режим несовместимого восстановления. Экземпляр имеет 76 баз данных, но после преобразования он будет поддерживать только 75.

Некоторые порты зарезервированы для Amazon RDS, и вы не можете использовать их при создании инстанса БД.

Подключения клиентов с IP-адресов в диапазоне 169.254.0.0/16 не разрешены. Это диапазон автоматической частной IP-адресации (APIPA), который используется для локальной адресации.

SQL Server Standard Edition использует только подмножество доступных процессоров, если количество процессоров экземпляра БД превышает ограничения программного обеспечения (24 ядра, 4 сокета и 128 ГБ ОЗУ). Примерами этого являются классы экземпляров db.m5.24xlarge и db.r5.24xlarge.

Amazon RDS для SQL Server не поддерживает импорт данных в базу данных msdb.

Вы не можете переименовывать базы данных в экземпляре БД в развертывании SQL Server в нескольких зонах доступности.

Убедитесь, что вы используете эти рекомендации при настройке следующих параметров БД в RDS для SQL Server:

максимальная память сервера (МБ) >= 256 МБ

максимальное количество рабочих потоков >= (количество логических ЦП * 7)

Дополнительную информацию о настройке параметров БД см. в разделе Работа с группами параметров.

Максимальный размер хранилища для экземпляров БД SQL Server следующий:

Накопитель общего назначения (SSD) — 16 ТиБ для всех выпусков

Выделенное хранилище IOPS — 16 ТиБ для всех выпусков

Магнитное хранилище — 1 ТиБ для всех выпусков

Если у вас есть сценарий, требующий большего объема хранилища, вы можете использовать сегментирование нескольких экземпляров БД, чтобы обойти это ограничение. Этот подход требует логики маршрутизации, зависящей от данных, в приложениях, которые подключаются к сегментированной системе. Вы можете использовать существующую структуру сегментирования или написать собственный код для включения сегментирования. Если вы используете существующую платформу, она не сможет установить какие-либо компоненты на том же сервере, что и экземпляр БД.

Минимальный размер хранилища для экземпляров БД SQL Server следующий:

Хранилище общего назначения (SSD) — 20 ГиБ для Enterprise, Standard, Web и Express Edition

Выделенное хранилище IOPS — 20 ГиБ для Enterprise, Standard, Web и Express Edition

Магнитное хранилище — 20 ГиБ для Enterprise, Standard, Web и Express Edition

Amazon RDS не поддерживает запуск этих служб на том же сервере, что и ваш экземпляр БД RDS:

Службы качества данных

Службы основных данных

Чтобы использовать эти функции, мы рекомендуем установить SQL Server на экземпляр Amazon EC2 или использовать локальный экземпляр SQL Server. В этих случаях экземпляр EC2 или SQL Server действует как сервер Master Data Services для вашего экземпляра БД SQL Server в Amazon RDS. Вы можете установить SQL Server на экземпляр Amazon EC2 с хранилищем Amazon EBS в соответствии с политиками лицензирования Microsoft.

Из-за ограничений Microsoft SQL Server восстановление до момента времени, предшествующего успешному запуску DROP DATABASE, может не отражать состояние этой базы данных в этот момент времени. Например, отброшенная база данных обычно восстанавливается до своего состояния за 5 минут до того, как была выполнена команда DROP DATABASE. Этот тип восстановления означает, что вы не можете восстановить транзакции, сделанные в течение этих нескольких минут в удаленной базе данных. Чтобы обойти это, вы можете повторно ввести команду DROP DATABASE после завершения операции восстановления. При удалении базы данных удаляются журналы транзакций для этой базы данных.

Для SQL Server базы данных создаются после создания экземпляра БД. Имена баз данных соответствуют обычным правилам именования SQL Server со следующими отличиями:

Имена баз данных не могут начинаться с rdsadmin .

Они не могут начинаться или заканчиваться пробелом или табуляцией.

Они не могут содержать символы, создающие новую строку.

Они не могут содержать одинарную кавычку ( ' ).

Поддержка класса экземпляра БД для Microsoft SQL Server

Вычислительный объем и объем памяти экземпляра БД определяются его классом экземпляра БД. Класс инстанса БД, который вам нужен, зависит от вашей вычислительной мощности и требований к памяти. Дополнительные сведения см. в разделе Классы экземпляров БД.

Читайте также:

Тип класса экземпляра Одна зона доступности Несколько зон доступности с DBM Несколько зон доступности с Always On AG
db.*.micro в db.*.medium 30 Н/Д
db.*.large 30 30 30
db.*.xlarge в db.*.16xlarge 100 50 75
db.*.24xlarge 100 50 100