Как развернуть бд на сервере
Перейти к содержимому

Как развернуть бд на сервере

  • автор:

Практическое руководство. Создание и развертывание в локальной базе данных

SQL Server предоставляет локальный экземпляр сервера по запросу с именем SQL Server Express Local Database Runtime (LocalDB), который активируется при отладке проекта базы данных SQL Server. Этот экземпляр локального сервера можно использовать в качестве песочницы для создания, тестирования и отладки проекта.

Он не зависит от любого установленного экземпляра SQL Server и недоступен за пределами SQL Server Data Tools (SSDT). Такое соглашение идеально подходит для разработчиков с ограниченным доступом к рабочим базам данных, но хотелось бы протестировать свои проекты локально, прежде чем авторизованный персонал развертывает их в рабочей среде. Кроме того, при разработке решения базы данных для SQL Azure вы можете использовать удобство, предоставленное этим локальным сервером для разработки и тестирования проекта базы данных локально, прежде чем развертывать его в облаке.

Ограничения

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

В следующих процедурах используются сущности, созданные с помощью процедур, которые описывались ранее в разделах Connected Database Development (Разработка подключенной базы данных) и Project-Oriented Offline Database Development (Разработка базы данных вне сети с учетом проекта).

Использование локальной базы данных

  1. В обозреватель объектов SQL Server под узлом SQL Server появится новый узел с именем Local. Это локальный экземпляр базы данных.
  2. Разверните узлы Локально и Базы данных. Обратите внимание на внешний вид базы данных с тем же именем, что у проекта TradeDev. Разверните узлы в этой базе данных. В окне Операции инструментальных средств для обработки данных отображается состояние операций расширения или импорта, выполняющихся в любой базе данных узла Локальные. Они не содержат таблиц и сущностей, созданных в предыдущих процедурах.
  3. Нажмите клавишу F5 для отладки проекта базы данных TradeDev. По умолчанию SSDT использует экземпляр локального сервера базы данных для отладки проектов базы данных. В этом случае SSDT сначала пытается создать проект, и если нет ошибок, проект (и его сущности) развертываются в локальной базе данных. При отладке того же проекта ssdT обнаруживает изменения с момента последнего сеанса отладки и развертывает только эти изменения в локальной базе данных.
  4. Снова разверните узлы TradeDev в локальном сервере базы данных. На этот раз обратите внимание, что таблицы, представления и функции были развернуты на локальном сервере базы данных.
  5. Щелкните узел правой TradeDev кнопкой мыши и выберите новый запрос.
  6. В области скриптов вставьте этот код и нажмите кнопку «Выполнить запрос «, чтобы запустить запрос.
SELECT * FROM dbo.GetProductsBySupplier(1); 

Репликация реальных данных в локальную базу данных

  1. В обозреватель объектов SQL Server разверните подключенный TradeDev экземпляр SQL Server и найдите базу данных. Щелкните правой кнопкой мыши таблицу Suppliers и выберите «Просмотреть данные«.
  2. Нажмите кнопку «Скрипт» (вторая кнопка справа) в верхней части редактора данных. Скопируйте инструкции INSERT из скрипта.
  3. Разверните экземпляр локального сервера и щелкните узел правой TradeDev кнопкой мыши и выберите новый запрос.
  4. Вставьте инструкции INSERT в окно запроса и запустите запрос.
  5. Повторите описанные выше действия, чтобы реплика te данные из Products и Fruits таблиц в подключенной TradeDev базе данных к локальной TradeDev базе данных.
  6. Щелкните правой кнопкой мыши экземпляр сервера Local и выберите Обновить. Просмотрите таблицы с помощью данных представления, чтобы убедиться, что локальная база данных заполнена.
  7. Щелкните правой кнопкой мыши TradeDev узел экземпляра локального сервера и выберите новый запрос.
  8. В области скриптов вставьте этот код и нажмите кнопку «Выполнить запрос «, чтобы запустить запрос.
SELECT * FROM dbo.GetProductsBySupplier(1); 

Обратная связь

Были ли сведения на этой странице полезными?

Развернуть базу данных MS SQL

Для работы с базой данных на сервере БД требуется установить Microsoft SQL Server Management Studio. Ознакомиться с описанием программы и скачать установочные файлы можно в документации Microsoft .

На заметку. Развертывание Creatio с отказоустойчивостью на MS SQL успешно тестировалось. Для развертывания системы с высокой доступностью рекомендуется использовать группы доступности MS SQL Always On. Подробнее о технологии MS SQL Always On читайте в документации Microsoft .

После установки Microsoft SQL Server Management Studio вам необходимо создать пользователей базы данных.

  • Пользователь с ролью ”sysadmin” и неограниченными полномочиями на уровне сервера базы данных — нужен для восстановления базы данных и настройки доступа к ней.
  • Пользователь с ролью ”public” и ограниченными полномочиями — используется для настройки безопасного подключения Creatio к базе данных через аутентификацию средствами MS SQL Server.

Подробно о создании пользователей и настройке прав читайте в документации Microsoft .

Для восстановления базы данных:

  1. Авторизируйтесь в Microsoft SQL Server Management Studio как пользователь с ролью ”sysadmin”.
  2. Нажмите правой клавишей мыши по каталогу Databases и в контекстном меню выберите команду Restore Database ( Рис. 1 ).

Рис. 1 — Выбор команды восстановления базы данных

scr_setup_restore_database.png

  1. В поле Database введите название базы данных;
  2. Выберите переключатель Device и укажите путь к файлу резервной копии базы данных. По умолчанию данный файл находится в директории ~\db с исполняемыми файлами Creatio ( Рис. 2 ).

Рис. 2 — Выбор резервной копии базы данных

scr_setup_restore_database_data.png

Рис. 3 — Указание названий файлов и путей размещения файлов TS_Data.mdf и TS_Log.ldf.

scr_setup_restore_database_options.png

  1. В MS SQL Server Managment Studio найдите восстановленную базу данных Creatio.
  2. Откройте вкладку Security выбранной базы данных.
  3. В списке пользователей Users добавьте созданного ранее пользователя.
  4. На вкладке Membership укажите роль ”db_owner” — таким образом пользователю будет предоставлен неограниченный доступ к восстановленной базе.

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

Используйте мастер развертывания базы данных в базе данных SQL Microsoft Azure для развертывания базы данных между экземпляром ядра СУБД и сервером базы данных SQL Azure или между двумя серверами базы данных SQL Azure.

Перед началом

Мастер использует архивный файл приложения уровня данных (DAC) BACPAC для развертывания как данных, так и определений объектов базы данных. Он выполняет операцию экспорта приложения уровня данных из базы данных-источника и импорт приложения уровня данных в место назначения.

настройка параметров баз данных

По умолчанию база данных, созданная при развертывании, получит все параметры по умолчанию из инструкции CREATE DATABASE. Исключением являются параметры сортировки и уровень совместимости базы данных, которые устанавливаются в значения из базы данных-источника.

Некоторые параметры баз данных, например TRUSTWORTHY, DB_CHAINING и HONOR_BROKER_PRIORITY, нельзя изменить в рамках процедуры развертывания. Физические свойства, например количество файловых групп или количество и размер файлов, нельзя изменять в рамках процедуры развертывания. После завершения развертывания можно использовать инструкцию ALTER DATABASE, SQL Server Management Studio или SQL Server PowerShell для настройки базы данных.

Ограничения

Мастер Развертывание базы данных поддерживает развертывание базы данных:

  • Из экземпляра ядра СУБД в базу данных SQL Azure.
  • Из базы данных SQL Azure в экземпляр ядра СУБД.
  • Между двумя серверами базы данных SQL Azure.

Мастер не поддерживает развертывание баз данных между двумя экземплярами ядра СУБД.

Экземпляр ядра СУБД должен работать под управлением SQL Server 2005 (9.x) с пакетом обновления 4 (SP4) или более поздней версии, чтобы работать с мастером. Если база данных на экземпляре ядра СУБД содержит объекты, которые не поддерживаются в Базе данных SQL Azure, вы не можете использовать мастер для развертывания базы данных в Базе данных SQL Azure. Если база данных в базе данных SQL Azure содержит объекты, которые не поддерживаются SQL Server, вы не можете использовать мастер для развертывания базы данных в экземплярах SQL Server.

Безопасность

В целях повышения безопасности имена входа в SQL Server хранятся в файле экспорта приложения уровня данных BACPAC без пароля. При импорте файла BACPAC имя входа создается как отключенное имя входа с созданным паролем. Чтобы включить имена входа, войдите в систему под учетной записью, имеющей разрешение ALTER ANY LOGIN и с помощью команды ALTER LOGIN включите имя входа и присвойте ему новый пароль, который можно передать пользователю. Это не требуется для имен входа, использующих проверку подлинности Windows, поскольку SQL Server не управляет их паролями.

Разрешения

Мастеру необходимы разрешения на экспорт приложения уровня данных в базе данных-источнике. Для имени входа необходимы как минимум разрешения ALTER ANY LOGIN и VIEW DEFINITION на уровне базы данных, а также разрешение SELECT для представления каталога sys.sql_expression_dependencies. Экспорт приложения уровня данных может выполняться членами предопределенной роли сервера securityadmin, которые также входят в предопределенную роль базы данных database_owner для базы данных, из которой экспортируется приложение уровня данных. Экспортировать приложение уровня данных могут также члены предопределенной роли сервера sysadmin или встроенной роли системного администратора SQL Server с названием sa .

Мастеру необходимы разрешения на импорт приложения уровня данных на экземпляре или сервере назначения. Имя входа должно быть членом предопределенных ролей сервера sysadmin или serveradmin либо членом предопределенной роли сервера dbcreator с разрешениями ALTER ANY LOGIN. Встроенная учетная запись системного администратора SQL Server с именем sa также может импортировать DAC. Для импорта DAC с именами входа в базу данных SQL требуется членство в ролях loginmanager или serveradmin. Для импорта DAC без входа в базу данных SQL требуется членство в ролях dbmanager или serveradmin.

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

Перенос базы данных с помощью мастера развертывания баз данных

  1. Подключитесь к расположению базы данных, которую необходимо развернуть. Можно указать экземпляр ядра СУБД или сервер базы данных SQL Azure.
  2. В обозревателе объектовразверните узел экземпляра, содержащего базу данных.
  3. Разверните узел Базы данных .
  4. Щелкните правой кнопкой мыши базу данных, которую вы хотите развернуть, выберите «Задачи» и выберите » Развернуть базу данных в Базе данных SQL Microsoft Azure»
  5. Выполните шаги в диалоговых окнах мастера.
    • Вводная страница
    • Параметры развертывания
    • Страница «Сводка»
    • Ход выполнения
    • Результаты

Вводная страница

На этой странице описываются шаги мастера развертывания баз данных .

Options (Параметры)

  • Больше не показывать эту страницу. — установите этот флажок, чтобы предотвратить отображение страницы «Введение» в будущем.
  • Далее — осуществляет переход на страницу Параметры развертывания .
  • Отмена — отмена операции и закрытие мастера.

Страница «Параметры развертывания»

На этой странице указываются целевой сервер и подробные сведения о новой базе данных.

Локальный узел:

  • Соединение с сервером — укажите сведения о соединении с сервером и нажмите кнопку Подключить для проверки соединения.
  • Задание имени новой базы данных — укажите имя новой базы данных.

Параметры базы данных SQL:

  • Выпуск Базы данных SQL. Выберите выпуск базы данных SQL в раскрывающемся меню.
  • Максимальный размер базы данных — выберите максимальный размер базы данных в раскрывающемся меню.

Другие параметры:

  • Укажите локальный каталог для временного файла (архивного файла BACPAC). Не забывайте, что файл будет создан в указанном месте и останется там после завершения операции.

Страница «Сводка»

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

Страница «Ход выполнения»

На этой странице отображается индикатор выполнения, который определяет состояние операции. Чтобы просмотреть подробности состояния, выберите параметр Просмотр сведений .

Страница результатов

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

Чтобы завершить работу мастера, нажмите кнопку Готово .

Использование приложения .NET Framework

Развертывание базы данных с помощью методов DacStore Export() и Import() в приложении .NET Framework.

  1. Создайте объект SMO и настройте его на работу с экземпляром или сервером, содержащим базу данных, подлежащую развертыванию.
  2. Откройте объект ServerConnection и подключитесь к тому же экземпляру.
  3. Используйте метод Export типа Microsoft.SqlServer.Management.Dac.DacStore для экспорта базы данных в файл BACPAC. Укажите имя экспортируемой базы данных и путь к папке, в которой будет размещен файл BACPAC.
  4. Создайте объект SMO Server и задайте для него целевой экземпляр или сервер.
  5. Откройте объект ServerConnection и подключитесь к тому же экземпляру.
  6. Вызовите метод Import типа Microsoft.SqlServer.Management.Dac.DacStore для импорта BACPAC. Укажите файл BACPAC, созданный при экспорте.

Развернуть базу данных PostgreSQL (Linux)

Для установки Creatio вы можете использовать следующие конфигурации баз данных:

  • удаленная СУБД (рекомендуется);
  • локальный сервер PostgreSQL.

Если у вас уже настроен сервер PostgreSQL, то шаг I можно пропустить.

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

I. Установить PostgreSQL

PostgreSQL недоступен в большинстве стандартных репозиториев. Чтобы установить PostgreSQL на Linux:

    Войдите в систему как администратор (root):

sudo su
echo -e "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -sc)-pgdg main" > /etc/apt/sources.list.d/pgdg.list
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add -
apt-get update
apt-get install -y postgresql-12
exit

На заметку. Подробнее о возможности создания кластеров читайте в документации PostgreSQL .

II. Создать пользователя PostgreSQL

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

Рекомендуется создать следующих пользователей PostgreSQL:

  • Пользователь с ролью ”admin” и неограниченными полномочиями на уровне сервера базы данных — нужен для восстановления базы данных и настройки доступа к ней.
  • Обычный пользователь с ограниченными правами на уровне сервера. используется для настройки безопасного подключения Creatio к базе данных через аутентификацию средствами PostgreSQL.

Если у вас в PostgreSQL уже есть администратор и пользователь с ограниченными правами на уровне сервера базы данных, то данный шаг можно пропустить.

Чтобы создать пользователя PostgreSQL:

sudo su - postgres
psql
CREATE USER pg_sysadmin;
ALTER ROLE pg_sysadmin WITH SUPERUSER;

В качестве альтернативы вы также можете предоставить ему только наиболее важные привилегии вместо прав администратора.

GRANT CREATE DATABASE TO pg_sysadmin; GRANT ALTER DATABASE TO pg_sysadmin;

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

ALTER ROLE pg_sysadmin WITH LOGIN;
ALTER ROLE pg_sysadmin WITH PASSWORD 'pg_syspassword';
CREATE USER pg_user;
ALTER ROLE pg_user WITH LOGIN;
ALTER ROLE pg_user WITH PASSWORD 'pg_password';
exit

III. Восстановить из бэкапа базу данных PostgreSQL

Для восстановления базы данных из резервной копии необходимы утилиты psql и pg_restore. Они входят в пакет postgresql-client-common.

Если вы устанавливаете локально postgresql-12 с использованием apt-get, то APT установит postgresql-client-common как зависимость postgresql-12.

Если вы планируете использовать удаленную базу данных PostgreSQL, не устанавливая СУБД PostgreSQL на вашем сервере, то установите пакет postgresql-client-common вручную:

sudo apt-get install postgresql-client-common

Чтобы развернуть базу данных из бэкапа:

    Установите пароль подключения к серверу БД в переменную окружения:

export PGPASSWORD=pg_syspassword
psql --host pg_server_address --port pg_server_port --username=pg_sysadmin --dbname=pg_dbname -–command "CREATE DATABASE pg_dbname_ceatio WITH OWNER = pg_user ENCODING = 'UTF8' CONNECTION LIMIT = -1"

pg_server_address — укажите адрес сервера PostgreSQL.
pg_server_port — укажите порт сервера PostgreSQL.
pg_sysadmin — укажите имя пользователя postgres для подключения к серверу PostgreSQL. Пользователь должен являться системным администратором (Superuser) или иметь права на создание базы данных (команда «CREATE DATABASE»).
pg_user — псевдоним, который необходимо заменить именем пользователя с ограниченными правами на уровне сервера базы данных. Нужен для подключения к базе данных Creatio. Вы можете использовать для этого любого пользователя, не имеющего прав администратора на уровне сервера. Чтобы изменить пользователя, от имени которого выполняется подключение, следуйте инструкциям, изложенным в шаге IV данного руководства.
pg_dbname — укажите имя базы данных PostgreSQL, к которой необходимо подключиться для выполнения команды. Для корректного выполнения команды необходимо указать имя существующей базы данных.

На заметку. Если вы еще не создали базу данных или попытка подключения завершается ошибкой “FATAL: database «pg_dbname» does not exist”, то воспользуйтесь БД “template1”, которая создается в PostgreSQL по умолчанию.

  1. Скачайте скрипт ChangeTypesOwner.sql .
  2. Замените в скрипте значение “postgres” на актуальное имя пользователя Postgres.
  3. Выполните обновленный скрипт ChangeTypesOwner.sql.
cd /path/to/application/directory/
cd db

pg_restore —host pg_server_address —port pg_server_port —username=pg_sysadmin —dbname=pg_dbname_creatio —no-owner —no-privileges /path/to/db.backup

psql --host=pg_server_address --port=pg_server_port --username=pg_sysadmin --dbname=pg_dbname_creatio --file=/path/to/CreateTypeCastsPostgreSql.sql

В результате база данных Creatio будет восстановлена из резервной копии.

IV. Изменить владельца базы данных (опционально)

В Creatio существует возможность при восстановлении из резервной копии заменить владельца БД и ее объектов на пользователя, не являющегося системным администратором (не Superuser). Вам потребуется скрипт ChangeDbObjectsOwner. Для Postgres версии 10 и ниже: Скачать скрипт. Для Postgres 11 и выше: Скачать скрипт.

Чтобы восстановить БД от имени пользователя, не являющегося администратором:

    Замените владельца БД:

psql --host pg_server_address --port pg_server_port --username=pg_sysadmin --dbname=pg_dbname –-command "ALTER DATABASE pg_dbname_creatio OWNER TO pg_user"
psql --host pg_server_address --port pg_server_port --username=pg_sysadmin --dbname=pg_dbname_creatio --file=/path/to/ChangeDbObjectsOwner.sql --variable owner=pg_user --variable ON_ERROR_STOP=1

Вы можете пропустить этот шаг, и в таком случае владельцем БД и ее объектов останется пользователь, от имени которого запускалась команда pg_restore. Обычно это пользователь postgres.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *