1 - Установка MSSQL
SQL server – это система управления базами данных, в работе с которой используется язык программирования SQL.
=================================
СУБД SQL server используются для создания, размещения, хранения и управления реляционными (табличными) базами данных на специальных серверах или в облаке. Они работают через настольные приложения и web-сайты. К основным преимуществам их функционирования относятся:
- высокоскоростной доступ к данным, обеспечиваемый надежной клиент-серверной архитектурой СУБД;
- простота работы и администрирования, обусловленные понятной структурой языка программирования SQL;
- безопасность хранения информации в БД - благодаря возможности шифрования данных и резервного копирования.
- Специфика работы сервера базы данных SQL server заключается в транзакционной обработке данных. Это означает, что по каждому запросу от СУБД обрабатывается и сохраняется небольшое количество информации.
- Применение SQL server позволяет автоматизировать решение различных бизнес-задач, поддерживать проведение аналитики данных в режиме онлайн, отслеживать направление ресурсов СУБД, управлять транзакциями (операциями по обработке данных).
---------------------------------------------------------------------------
MS SQL server
– многопользовательский программный продукт, разработанный компанией Microsoft, обладающий высокой производительностью и отказоустойчивостью, тесно интегрированный с ОС Windows, а также с возможностью работы в ОС Ubuntu. Этот сервер поддерживает удаленные подключения, работает с многими популярными типами данных, дает возможность создавать триггеры и хранимые данные, имеет практичные и удобные утилиты для настройки.
---------------------------------------------------------------------------
wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
!!! Результатом должно стать слово OK в терминале !!!
-----------------------------------------------------------------------------------
sudo apt-get update
sudo apt-get install software-properties-common -y
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/20.04/mssql-server-2019.list)"
sudo apt-get update
sudo apt-get install -y mssql-server
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
!!! Скачается несколько сотен мегабайт для установки !!!
--------------------------------------------------------------------------------------
sudo /opt/mssql/bin/mssql-conf setup
...................................................................................
Для завершения установки будет предложено выполнить команду:
sudo /opt/mssql/bin/mssql-conf setup
..................................................................................
Необходимо выбрать версию сервера: web (если на компьютер есть лицензия) или express (бесплатная, но ограниченная по размеру базы (не более 10 Гб) версия)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
!!! Для версии Express нужно выбрать цифру 3 !!!
-------------------------------------------------------------------------------------
!!! Потом надо будет выбрать порядковый номер языка !!!
--------------------------------------------------------------------------------------
Придумать пароль для системного администратора (UbuntuUbuntu123! - по политике паролей точно подойдет)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
!!! Имеется ввиду, что на сам пароль копировать, а
что можно использовать в пароле строчные и прописные
буквы, цифры и знаки препинания !!!
--------------------------------------------------------------------------------------
!!! Далее потребуется повторить пароль !!!
--------------------------------------------------------------------------------------
Если надо работать локально, инструменты командной строки:
apt install curl
!!! curl уже установлен !!!
------------------------------------------------------------------------------------------------------------------
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
curl https://packages.microsoft.com/config/ubuntu/20.04/prod.list | sudo tee /etc/apt/sources.list.d/msprod.list
sudo apt-get update
sudo apt-get install mssql-tools unixodbc-dev -y # !!! Могут возникнуть проблемы с библиотеками !!!
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
!!! Эти инструменты можно сразу установить, не помешают !!!
------------------------------------------------------------------------------------------------
# !!! А эти команды на случай проблем с зависимостями msodbcsql17 (< 17.4.0.0) и unixodbc (>= 2.3.1) !!!
# >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
curl https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
echo "deb [arch=amd64] https://packages.microsoft.com/ubuntu/20.04/prod focal main" | sudo tee /etc/apt/sources.list.d/mssql-release.list
sudo apt update
sudo apt search msodbcsql* # (Проверяем какие есть версии)
sudo apt install msodbcsql18 # (Ставим пока 18-ю версию)
Всё равно потом попросит разобраться с unixodbc (>= 2.3.1)
# Поэтому далее (в одной из библиотек если попросит настройку - можно отказаться):
sudo apt-get install -y libodbc1
sudo apt update
sudo apt install unixodbc
sudo apt install msodbcsql18 # (снова попытка установить 18 версию)
sudo apt-get install mssql-tools unixodbc-dev # (опять устанавливаем инструменты)
Опять просит msodbcsql17 (>= 17.3.0.0)
# Делаем так:
sudo apt --fix-broken install msodbcsql17
sudo apt-get install mssql-tools unixodbc-dev # (на этот раз скажет что всё уже установлено)
======================================
# А это, чтобы их видно было из любых поддиректорий:
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile
echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc
source ~/.bashrc
На машине с Ubuntu создать папку для БД. В ней создать папки DATA, LOG, BACKUP
................................................................................
Скопировать в папку BACKUP тестовую базу из https://nbics.net/SiteResurses/BaseProject/TestDB.zip (https://nbics.net/SiteResurses/BaseProject/school-sample.nbics.net.zip)
................................................................................
Разархивировать.
................................................................................
Дать права пользователю на папку DB(Data Base – База Данных):
sudo chown -R mssql:mssql /home/ok/db/
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
!!! Внимание! SQL Server Management Studio только для удалённого
подключения к базе. И работает только под Windows.
Для локального подключения и пр работе в Linux лучше использовать
Azure Data Studio. Поэтому инструкцию про SQL Server Management Studio
игнорируем. !!!
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
>> Далее работаем из SQL Server Management Studio (у компьютера, на >>котором развернут SQL-сервер должен быть статический IP адрес), как >> обычно (восстанавливаем базу данных с устройства – оттуда, куда)
...............................................................................
>> При помощи SQL Server Management Studio восстановить тестовую БД в >> папку DB/DATA, логи – в папку DB/LOG
...............................................................................
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
!!! Инструкцию про SQL Server Management Studio игнорируем !!!
-------------------------------------------------------------------------------------------------------------
===============================================
УСТАНОВКА AZURE DATA STUDIO (https://info-comp.ru/install-azure-data-studio-on-linux-ubuntu):
---------------------------------------------------------
Скачать Azure с официального сайта:
https://docs.microsoft.com/ru-ru/sql/azure-data-studio/download-azure-data-studio?view=sql-server-ver16
После скачивания deb-файл перемещаем в Домашнюю папку. Потом удалим.
................................................................
cd ~
sudo dpkg -i <Название скачанного файла вместе с расширением>
(azuredatastudio-linux-1.38.0.deb) - на момент написания дополнения
................................................................
После установки программы удалить файл azuredatastudio-linux-1.38.0.deb
................................................................
Русификация Azure:
Нужно зайти в раздел «Расширения», ввести в поиск «Russian» и установить найденное расширение, нажав кнопку «Install».
В итоге расширение установится, и чтобы увидеть изменения, необходимо перезапустить приложение.
..................................................................
==========================================
!!! РАБОТАЕМ В ТЕРМИНАЛЕ !!!
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Для локальной работы с сервером Базы Данных вводим в терминале:
sqlcmd -S localhost -U sa -P 'UbuntuUbuntu123!'
где UbuntuUbuntu123! - это придуманный ранее пароль, если был другой пароль, вписываем его.
Появится приглашение:
1>
При добавлении каждой новой команды порядковый номер будет увеличиваться.
Для применения команд в строках в новом приглашении вводим команду GO
Чтобы завершить сеанс sqlcmd в новом приглашении вводим команду QUIT
Подробности по ссылке (https://docs-microsoft-com.translate.goog/en-us/sql/linux/quickstart-install-connect-ubuntu?view=sql-server-ver16&_x_tr_sl=en&_x_tr_tl=ru&_x_tr_hl=ru&_x_tr_pto=wapp)
-------------------------------------------------------
В открытом сеансе sqlcmd:
..............
Добавить пользователя wcf, придумать пароль (Ubuntu123!)
Не забываем про
alter user wcf with login = wcf:
CREATE LOGIN wcf WITH PASSWORD = '340$Uuxwp7Mcxo7Khy';
>> CREATE USER wcf FOR LOGIN wcf
ALTER USER wcf WITH LOGIN = wcf (консоль ругается при этой строке, как
исправить - пока не знаю.
Нашёл способ - добавить перед этой
строкой строчку после знака >>)
==================================
==================================
!!! ДОПОЛНЕНИЯ !!!
==================================
==================================
Про команду
sudo apt-get install software-properties-common -y
Как описано в apt-show software-properties-common
................
Это программное обеспечение обеспечивает абстракцию используемых репозиториев apt. Это позволяет вам легко управлять своими дистрибутивами и независимыми поставщиками программного обеспечения.
.................
На практике это означает, что он предоставляет некоторые полезные скрипты для добавления и удаления PPA:
dpkg -L software-properties-common | grep 'bin/'
/usr/bin/add-apt-repository
/usr/bin/apt-add-repository
плюс резервные копии DBUS, чтобы сделать то же самое с помощью программного обеспечения и обновлений GUI.
Без него вам нужно будет добавлять и удалять репозитории (например, PPA) вручную путем редактирования /etc/apt/sources.list и / или любых вспомогательных файлов в /etc/apt/sources.list.d
----------------------------------------------------------------
=============================================
sqlcmd -S localhost -U sa -P 'UbuntuUbuntu123!'
sqlcmd -S <имя сервера > -U <имя пользователя > -P <пароль>
sqlcmd -S varpc -U wcf -P 340$Uuxwp7Mcxo7Khy
EXEC sp_addsrvrolemember 'wcf', 'dbcreator'
GO
EXEC sp_addrolemember 'db_owner','wcf'
GO
RESTORE DATABASE TestDB FROM DISK = '/home/var/db/BACKUP/TestDB.bak' WITH REPLACE,
MOVE 'VSM_Gusev1_Web' TO '/home/var/db/DATA/ExtraSql/TestDB.mdf',
MOVE 'VSM_Gusev1_Web_MSGS' TO 'home/var/db/DATA/ExtraSql/TestDB.ndf',
MOVE 'VSM_Gusev1_Web_1' TO 'home/var/db/LOG/ExtraSql/TestDB_1.ldf';
GO
..............................................................................
USE [master]
RESTORE DATABASE [TestDB] FROM DISK = N'/home/ok/db/BACKUP/TestDB.bak' WITH FILE = 1,
MOVE N'VSM_Gusev1_Web' TO N'/home/ok/db/DATA/ExtraSql/TestDB.mdf',
MOVE N'VSM_Gusev1_Web_MSGS' TO N'/home/ok/db/DATA/ExtraSql/TestDB.ndf',
MOVE N'VSM_Gusev1_Web_1' TO N'/home/ok/db/LOG/ExtraSql/TestDB_1.ldf', NOUNLOAD, STATS = 5
...............................................................................
Если доступ запрещён - выйти (QUIT) из sqlcmd и дать права пользователю на папку с базой данных:
sudo chown -R mssql:mssql /home/var/db/
/home/var/db/ (это у меня там база. Может быть в любом другом каталоге)
========================================
--------------------------------------------------------------------------------------------------------------
!!! После стольких нервотрёпок с кодом, снова возвращаюсь к Azure Data Studio !!!
--------------------------------------------------------------------------------------------------------------
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Нужно создать подключение к серверу MSSQL
Название сервера соответствует имени компьютера (не пользователя, а компьютера). Имя компьютера проверяется так:
Открывается командная строка, и смотрим приглашение.
Там примерно так написано:
имя_пользователя@имя_компьютера:~$
Там где имя_компьютера после знака @ - это и есть то, что нужно.
.........................................................................
В Azure вверху слева в строке Серверы выбираем кнопку "Новое подключение".
Вводим в поле "имя пользователя" заданное имя для сервера базы данных, в данном случае wcf.
Также пароль (в поле "Пароль"). У нас он 340$Uuxwp7Mcxo7Khy
В поле "Имя (необязательно)" я тоже ввёл имя wcf.
Можно также поставить галочку "Запомнить пароль".
Нажать внизу кнопку "Подключиться".
..........................................................................
Дважды щёлкнуть в разделе Серверы по нашему новому подключению "wcf".
Появилась справа вкладка с названием подключения. В разделе Домашняя страница справа выбрать вкладку "Восстановить".
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
!!! Но! Перед этим нужно включить "Предварительные версии функций" !!!
----------------------------------------------------------------------------------------------------------------
Делается это следующим образом:
В нижнем углу слева нажимаем на шестерёнку и в открывшемся меню выбираем "Параметры". Откроется большая вкладка "Параметры" в рабочей области программы.
В поисковой строке вводим фразу "enable preview features" и в разделе
"Workbench: включить предварительные версии функций" ставим галочку.
Теперь можно переходить на вкладку "Восстановить".
Появится поле восстановления баз данных с именем нашего сервера (аналогичного имени компьютера).
Во вкладке "Общие":
В поле "Восстановить из" выбираем пункт "Файл резервной копии".
В поле "Путь к файлу резервной копии" вручную пишем путь до TestDB.bak
У меня это /home/var/db/BACKUP/TestDB.bak
Сразу в полях "База данных" и " Целевая база данных" автоматически появится название TestDB
...............................
Переходим на вкладку "Файлы".
Там теперь отображается внизу содержимое нашей тестовой базы - три файла. В столбце "Исходное имя" - путь до каталогов на компьютере создателей этой тестовой базы.
В поле "Восстановить как" - путь до каталога по умолчанию.
Каталог по умолчанию - /var/opt/mssql/data
Нам нужен путь до нашего каталога, где находится резервный файл.
Поэтому ставлю галочку "relocate all files" (пока не был выбран резервный файл - её нельзя было поставить).
Теперь в поле "Data file folder" прописываем путь до папки /home/var/db/DATA/ExtraSql/
В поле "Log file folder" - /home/var/db/LOG/ExtraSql/
---------------------------------------
Пройдёмся ещё раз по вкладкам "Общие" и "Файлы".
Внизу жмём кнопку "Восстановить".
В раздеде Задачи внизу появится прогресс восстановления.
По завершении - база будет восстановлена в нужные каталоги. (Нужно проверить потом)
LubuntuLubuntu321
====================================================
Команды:
Список всех баз данных
EXEC sp_Database
Переключиться на базу данных
USE имя_бд
-- Текущая БД (БД, в контексте которой выполняется запрос)
Select DB_NAME() AS CurrentDB_Name;
-- Имена сервера и экземпляра
Select @@SERVERNAME as [Server\Instance];
Список всех БД:
EXEC sp_helpdb; или EXEC sp_Databases;