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

от admin

Разворачиваем MySQL: установка и настройка

MySQL на сегодняшний день является одной из наиболее распространенных в мире. Достаточно сказать, что по рейтингам 2021 года данная СУБД лишь немного уступала Oracle.

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

Начнем с рассмотрения редакций СУБД MySQL.

Ванильная сборка

Классическая версия MySQL от Oracle это свободная реляционная система управления базами данных. На сегодняшний день разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Такая несколько сложная «пищевая цепочка» не помешала данной БД получить широкое распространение. Далее, когда мы будем рассматривать практические примеры развертывания, будет использоваться именно классическая редакция MySQL.

MariaDB

СУБД MariaDB — ответвление MySQL, разрабатываемое сообществом под лицензией GNU GPL. Разработку и поддержку MariaDB осуществляет компания MariaDB Corporation Ab и фонд MariaDB Foundation. При этом СУБД MariaDB совместима с MySQL до версии 5.6.

Движки MySQL

База данных может работать с несколькими типами движков (engines). В таблице ниже приведены основные характеристики каждого из них.

Name

Vendor

License

Under active development

MySQL versions

MariaDB versions

Sphinx Technologies Inc.

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

MyISAM

MyISAM это базовый тип хранилища MySQL. Однако, в нем отсутствуют блокировки на строки и нет транзакций. Как можно понять из названия, движок основывается на принципах ISAM и обладает в сравнении с ним рядом полезных дополнений. Так, он имеет возможности по сжатию данных, по созданию полнотекстовых индексов. Но при этом СУБД не является устойчивой к сбоям и не выполняет требования ACID.

Поддерживается с версий MySQL 3.x, до версий MySQL 5.5, являлась системой хранения по умолчанию.

ISAM (Indexed Sequential Access Methodиндексно-последовательный метод доступа) — способ хранения данных с возможностью быстрого доступа к ним, является наиболее популярным методом индексирования.

ACID (atomicity, consistency, isolation, durability) — набор требований к транзакционной СУБД, обеспечивающий наиболее надёжную и предсказуемую её работу — атомарность, согласованность, изоляцию и устойчивость.

Атомарность гарантирует, что никакая транзакция не будет зафиксирована в системе частично. Будут либо выполнены все её подоперации, либо не выполнено ни одной.

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

Изоляция — во время выполнения транзакции параллельные транзакции не должны оказывать влияния на её результат.

Устойчивость — независимо от проблем с питанием или сбоях в оборудовании изменения, сделанные успешно завершённой транзакцией, должны остаться сохранёнными после возвращения системы в работу.

InnoDB

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

Преимуществами InnoDB является возможность блокировки на уровне таблиц (читаем, если нет блокировки на запись, пишем, если нет блокировок), поддержка восстановления по времени (binary log), репликаций и конкурентного INSERT.

Установка MySQL

Теперь перейдем непосредственно к установке СУБД. Процесс не должен вызвать особых сложностей:

sudo apt update && sudo apt upgrade -y && sudo apt-get install -y mysql-server

После установки необходимо выполнить харденинг, то есть указать настройки безопасности:

• Удалить анонимных пользователей? (Нажмите y | Y для Yes, любую другую клавишу для No): y

• Запретить вход в систему удаленно? (Нажмите y | Y для Yes, любую другую клавишу для No): y

• Удалить тестовую базу данных и получить доступ к ней? (Нажмите y | Y для Yes, любую другую клавишу для No): y

• Обновить таблицы привилегий сейчас? (Нажмите y | Y для Yes, любую другую клавишу для No): y

Далее перезапустим MySQL:

sudo systemctl status mysql

sudo systemctl enable mysql

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

Архитектура MySQL

Прежде, чем выполнять какие-либо настройки и запросы в СУБД давайте посмотрим, из чего состоит MySQL.

Давайте посмотрим, как это устроено в процессах:

$ ps ax | grep mysqld

$ ps –eLf | grep mysqld

Как мы видим, процесс /usr/sbin/mysqld после успешного запуска порождает множество подпроцессов, которые использует СУБД в своей работе.

На файловом уровне MySQL хранит все данные в каталоге /var/lib/mysql:

$ sudo ls -l /var/lib/mysql

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

Основной конфигурационный файл находится в /etc/mysql/mysql.conf.d/:

Для тестовой инсталляции как правило вносить изменения в этот файл не нужно.

Работаем с таблицами

Далее выполним sudo mysql и перейдем непосредственно в командную среду СУБД.

Структура таблиц после установки имеет следующий вид

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

Создадим свою базу Otus_test:

CREATE DATABASE IF NOT EXISTS Otus_test;

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

Перейдем в созданную БД:

Далее давайте создадим тестовую таблицу в которой будет три столбца: id, name, address. Первичным ключом будет id. В качестве движка явно укажем InnoDB.

CREATE TABLE Otus_table

id int NOT NULL AUTO_INCREMENT,

name char(20) NOT NULL,

address char(20) NULL,

Добавим пару записей в таблицу:

INSERT Otus_table(Name, Address) VALUES (‘Admin’, ‘Moscow’);

INSERT Otus_table(Name, Address) VALUES (‘User’, ‘N/A’);

И сделаем выборку по таблице:

SELECT * FROM Otus_table;

Как видно все записи успешно добавлены в таблицу.

Немного о кодировках

Для промышленного использования СУБД необходимо, чтобы данные в кириллице хранились и отображались корректно. Кодировка (characher set) — набор используемых символов. Представление (collation) — набор правил для сравнения символов в наборе. Символьная кодировка может быть задана для сервера, базы данных, таблицы и колонок в таблице.

В качестве примера настроим кодировку UTF8 в качестве кодировки по-умолчанию. Для этого откроем уже известный нам файл конфигураций mysqld.cnf

и добавим в него следующее:

init_connect=‘SET collation_connection = utf8_unicode_ci’

Далее перезапустим БД

systemctl restart mysql

Проверим корректность работы с кириллицей:

INSERT Otus_table(Name, Address) VALUES (‘Пользователь’, ‘N/A’);

SELECT * FROM Otus_table;

Как видно, русскоязычные данные корректно сохранены.

Заключение

В этой статье мы рассмотрели основы работы с CУБД MySQL, установку и базовую настройку. Далее мы будем говорить о репликации, построении отказоустойчивых конфигураций, партиционировании и бэкапах.

Так как данный материал подготовлен в рамках запуска курса «Базы данных», хочу порекомендовать всем читателям бесплатный урок по PostgreSQL 15. В рамках урока обсудим новый функционал, деплой в Яндекс Облаке и настройку защищенного подключения. Варианты обновления с предыдущих версий PostgreSQL и их особенности. Подводные камни при обновлении версий.

Microsoft SQL Server — особенности и установка СУБД MS SQL

Microsoft SQL Server — это РСУБД (система управления реляционными базами данных), которая разработана специалистами из Microsoft. В качестве основного языка запросов используется Transact-SQL (совместная разработка Microsoft и Sybase). При этом Transact-SQL — это реализация стандарта ANSI/ISO по SQL (структурированному языку запросов), но имеющая некоторые расширения. Сегодня СУБД MS SQL широко применяется при работе с базами данных (БД) самых разных размеров, начиная от персональных, заканчивая крупными БД масштаба предприятия.

Немного теории: о СУБД и БД

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

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

Сервер предоставляет данные, а клиенты их запрашивают, что происходит путём отправки клиентом SQL-запроса серверу. Сервер, в свою очередь, выполняет обработку запроса, возвращая запрошенные данные клиенту. Т. к. запрос реализуется на специальном языке SQL, он хорошо понятен и серверу, и пользователю.

Тут следует заметить, что серверы бывают разные и различаются тем, как они: • предоставляют доступ; • хранят данные; • предоставляют данные пользователю.

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

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

Задачи СУБД: • извлечение данных с диска и сохранение данных на диск; • работа с данными в оперативной памяти сервера; • логирование (журналирование, запись истории изменения БД); • поддержка запросов пользователя в целях определения и манипуляции данными на структурированном языке SQL.

Читать:
Как сделать ворд во весь экран

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

Кроме того, по способу доступа к БД системы бывают клиент-серверные, файл-серверные и встраиваемые.

Что касается СУБД SQL Server, то она является реляционной и клиент-серверной. Эта СУБД довольно популярна на системах, построенных на базе ОС Windows. Давайте установим и настроим её, взяв для примера SQL Server 2016 Enterprise.

Устанавливаем ПО для работы

В первую очередь, нужно скачать установочный пакет SQL Server 2016 Enterprise, перейдя на официальную страницу. Скачанная вами версия будет бесплатна в течении 180 дней. Также, если вы имеете подписку MSDN, можете использовать SQL Server 2016 Developer Edition.

Итак, софт скачан. Однако прежде, чем запускать установщик, надо создать учётную запись — она позволит авторизоваться на сервере с клиентского ПК. Так как в нашем случае это будет один и тот же компьютер, SQL Server будет аторизовываться через Management Studio, однако его скачаем несколько позже.

Создаём учетную запись

Чтобы создать учетную запись в Windows: 1. Кликаем правой кнопкой мышки значок «Мой компьютер» на рабочем столе, выбираем из списка пункт «Управление». 2. В открывшемся окне «Управление компьютером» выбираем пункт «локальные пользователи», потом выделяем пункт «пользователи». Окно станет такого вида: 20171014152342_image001_1-20219-b1182b.jpg3. Кликаем правой кнопкой мыши на пустое пространство папки либо по названию папки, потом выбираем пункт «новый пользователь», открывается окно: 20171014152458_image002_1-20219-21635c.jpg4. Указываем имя пользователя и пароль, нажимаем «Создать». Лучше всего применять латиницу.

Устанавливаем SQL Server

Алгоритм действий следующий: 1. Запускаем ранее скачанный пакет установки. Должен открыться SQL Server Installation Server: 20171014152545_image003_2-20219-f1b42e.png2. Выбираем пункт «Установка». 3. После изменения экрана кликаем «Новая установка изолированного экземпляра SQL Server». Произойдёт запуск установки. Жмём «Далее». 20171014152629_image004_2-20219-b9f08d.jpg4. Обратите внимание, чтобы на этапе «правил установки» в окне отсутствовали красные крестики. В обратном случае нажимайте на выделенные строки предупреждений и следуйте инструкциям, чтобы их устранить. Потом жмём «Далее», окно установки опять поменяется: 20171014152731_image005_2-20219-24f63d.jpg5. Выбираем «Выполнить новую установку SQL Server 2016», открывается окно регистрации продукта: 20171014152818_image006_2-20219-91720a.jpg6. Вводим лицензионный ключ продукта при наличии. В обратном случае выбираем Evaluation, что активирует 180-дневную копию. 7. Принимаем лицензионное соглашение. 8. Открывается окно компонентов. Устанавливаем галочки напротив: — службы ядра СУБД; — соединение с клиентскими средствами; — компоненты документации. Снова нажимаем «Далее». 20171014153014_image007_2-20219-0cd962.jpg9. Если есть установленная копия SQL Server, выбираем «экземпляр по умолчанию», если нет (устанавливаете впервые) — именованный экземпляр. Вводим в поле имя Экземпляра, жмём «Далее». 2017101415322_image008_2-20219-9ef0f2.jpg10. Проверяем, хватает ли места на диске. Если не хватает, освобождаем его и жмём «Далее». 11. На этапе «Настройка Ядра СУБД» убеждаемся, что выбрали строку «Проверка подлинности Windows». Если не выбрали, выбираем. Потом добавляем в нижнее поле пользователя, которого мы создавали перед установкой (либо добавляем текущего соответствующей кнопкой). Жмём «Далее». 20171014153230_image009_2-20219-36f76a.png12. Перепроверяем все настройки установки системы управления БД SQL Server. 13. Наблюдаем за установкой до её завершения.

Устанавливаем и настраиваем MS SQL Server Management Studio

Итак, сервер к работе готов, теперь надо настроить клиент. Система управления БД MS SQL Server Management Studio предоставляет нам визуальный интерфейс, предназначенный для клиента. Это повышает удобство разработки и отправки запросов.

ПО самостоятельно определит, где у вас находится сервер — достаточно просто следовать инструкциям.

Настраиваем работу в Management Studio

Алгоритм следующий: 1. Находим Management Studio в меню «ПУСК», запускаем. 2. Открывается окно соединения с сервером SQL Server, где выбираем: — Ядро СУБД в поле «Тип сервера»; – имя сервера, указанное вами при установке в поле имя сервера; — Проверка подлинности Windows в поле «Проверка подлинности». 20171014153321_image010_2-20219-c64197.jpg3. Нажимаем «Соединить». В результате Management Studio подключится к SQL Server, и произойдет открытие основного окна программы. Обязательно изучите такой элемент, как «Обозреватель объектов» — он даёт возможность работать со всеми структурными элементами БД на сервере посредством интерфейса, похожего на проводник Windows.

2017101415340_image011_2-20219-f7d4ba.jpg

Чтобы создать новый запрос, кликаем по кнопке «Создать запрос». Запрос сформируется для текущей таблицы, указанной в выпадающем списке сверху (в нашем случае — master).

Кликнув «Создать запрос» несколько раз, мы откроем несколько вкладок. При этом мы можем менять текущую таблицу, используя выпадающий список.

Под полем редактора запросов находится поле результатов. Там показываются результаты выполнения запроса:

20171012142542_12_2-20219-9da21d.jpg

Пожалуй, это всё, что можно рассказать во вводной статье про систему управления базами данных MS SQL SQL. Всему остальному можно научиться во время работы. Или у нас на курсе.

Как развернуть и использовать Docker-контейнер с MySQL

Большое количество веб-приложений и сервисов зависят от баз данных. И скорее всего, ваш бизнес зависит от веб-приложений и сервисов. Если вы не хотите выделять отдельный сервер, чтобы разместить на нем базу данных, всегда можно воспользоваться контейнерами. И хотя для приложений enterprise-масштаба, это может быть не лучшей идей, но для инстансов небольшого или среднего размера это может хорошим решением. Особенно, если нет доступного железа, чтобы выделить его под сервер для баз данных.

Дабы облегчить вашу участь, я покажу процесс развертывания Docker-контейнера с MySQL, чтобы к нему можно было подключиться из другого контейнера или приложения. Допустим, у вас уже установлен Docker (инструкции по установке можно найти на сайте Docker). Я буду использовать Ubuntu 16.10 Server, но шаги будут одинаковы вне зависимости от ОС.

Пулим образ

Прежде всего, надо спулить правильный образ. Мне нужна последняя версия MySQL. Если нужна какая-то конкретная версия, то надо надо заменить тег latest, на нужную версию (5.5, 5.6, 5.7, 8.0). Вводим команду: docker pull mysql/mysql-server:latest

Разворачиваем контейнер

Поскольку у вас есть образ MySQL на машине, можно разворачивать контейнер. Делается это командой: docker run —name=mysql01 -d mysql/mysql-server:latest

В этом примере мы называем контейнер mysql01, вы можете назвать так, как вам хочется.

Теперь можно ввести docker ps , чтобы убедиться, что контейнер с MySQL запущен.

Пароль для MySQL

После установки MySQL на Linux вам будет предложено создать админский пароль базы данных. Но мы уже развернули docker-контейнер, в котором уже установлена и запущена БД. Но какой от нее смысл без пароля? К счастью, во время развертывания был установлен случайный пароль. Чтобы увидеть пароль, воспользуйтесь командой docker logs *имя_контейнера*

Логин на сервер MySQL

Теперь надо зайти на контейнеризованный сервер. Сделать это можно с помощью команды docker exec -it mysql01 mysql -uroot -p. Вас спросят пароль, используйте пароль полученный в предыдущем шаге. Уже на сервере можно поменять пароль командой: ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘newpassword’;

Теперь команду exit , чтобы выйти из интерпретатора MySQL. И можно использовать базу данных MySQL в контейнере.

Заключение

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

Развернуть базу данных 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 .

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

Авторизируйтесь в Microsoft SQL Server Management Studio как пользователь с ролью ”sysadmin”.

Нажмите правой клавишей мыши по каталогу Databases и в контекстном меню выберите команду Restore Database ( Рис. 1 ).

scr_setup_restore_database.png

В окне Restore Database :

В поле Database введите название базы данных;

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

\db с исполняемыми файлами Creatio ( Рис. 2 ).

scr_setup_restore_database_data.png

Укажите папку на сервере, в которой будет храниться развернутая база данных. Необходимо заранее создать папку, которая будет указываться для восстановления файлов базы данных, т.к. SQL сервер не имеет прав на создание директорий.

Перейдите на вкладку Files .

В области Restore the database files as установите признак Relocate all files and folders .

Укажите пути к папкам, в которые будут сохранены файлы базы данных TS_Data.mdf и TS_Log.ldf ( Рис. 3 ).

scr_setup_restore_database_options.png

Нажмите на кнопку OK и дождитесь завершения процесса восстановления базы данных.

Настройте для восстановленной базы возможность подключения пользователя MS SQL с ролью ”public”, от имени которого приложение Creatio будет подключаться к базе данных:

В MS SQL Server Managment Studio найдите восстановленную базу данных Creatio.

Откройте вкладку Security выбранной базы данных.

В списке пользователей Users добавьте созданного ранее пользователя.

На вкладке Membership укажите роль ”db_owner” — таким образом пользователю будет предоставлен неограниченный доступ к восстановленной базе.

Похожие статьи