Skip to main content

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;