Autor Wątek: Opis działającej instalacji MSSQL LINUX [CENTOS 7]  (Przeczytany 655 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Offline lublinkermi

  • Nowy użytkownik
  • *
  • Wiadomości: 38
  • Reputacja +0/-0
    • Zobacz profil
  • Wersja programu: Sugiekt GT 1.25
Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« dnia: Luty 12, 2019, 08:26:34 »
Witam, od dłuższego czasu szukałem działającego rozwiązania do MSSQL pod Linuxem. Powód jest oczywisty - wydajność. W Windows system generuje setki procesów, szuka wiatru na dysku etc. etc.  Poświęciłem na to trochę czasu, ale się opłaciło. Sprawdzone zostało wszystko poza Biuro GT, ale myślę, że też będzie działać.

Opis instalacji dotyczy dystrybucji CENTOS 7, ale myślę, że na innych będzie też działać.

[INSTALACJA CENTOS 7]
1. Przy instalacji trzeba ustawić: IP komputera na stałe;
2. Nazwa komputera [host w ustawieniach sieci] nie może mieć kropki, ani polskich znaków. Domyślnie instalator przyjmuje nazwę localhost.localdomain. W mojej instalacji zmieniłem to na MSSQLSRV;
3. Przy tworzeniu pierwszego użytkownika należy zaznaczyć opcję 'ADMINISTRATOR';

Po zainstalowaniu systemu i zaakceptowaniu umowy licencyjnej logujemy się i jako root instalujemy repozytoria epel release.

Następnie można wykonać skrypt:
# /bin/bash

yum install system-config-users
yum install -y -q p7zip p7zip-plugins


curl https://packages.microsoft.com/config/rhel/7/mssql-server-2017.repo -o /etc/yum.repos.d/mssql-server-2017.repo
curl https://packages.microsoft.com/config/rhel/7/prod.repo -o /etc/yum.repos.d/msprod.repo
yum -y install mssql-server mssql-tools unixODBC-devel

echo 'export PATH=$PATH:/opt/mssql-tools/bin' > /etc/profile.d/mssql.sh
source /etc/profile.d/mssql.sh


/opt/mssql/bin/mssql-conf setup

mkdir /data
mkdir /mssqldb
mkdir /mssqldb/backup
mkdir /mssqldb/data

chown mssql:mssql /mssqldb -R
chmod 777 /data



/opt/mssql/bin/mssql-conf set filelocation.defaultbackupdir /mssqldb/backup
/opt/mssql/bin/mssql-conf set filelocation.defaultdatadir /mssqldb/data
systemctl stop mssql-server
echo 'Wpisz Polish_CI_AS'
/opt/mssql/bin/mssql-conf set-collation

firewall-cmd --add-port=1433/tcp --permanent
firewall-cmd --permanent --zone=public --add-services=samba
firewall-cmd --permanent --zone=public --add-service=samba
firewall-cmd --reload

systemctl enable smb.service
systemctl enable nmb.service
service smb start
service nmb start
service mssql-server start
useradd  mssqldb -G mssql, wheel -m -p mssqldb 
echo 'mssqldb ALL=(ALL) ALL' >>/etc/sudoers

Trzeba koniecznie wykonać operację
echo 'Wpisz Polish_CI_AS'
/opt/mssql/bin/mssql-conf set-collation
przed podłączeniem jakiejkolwiek bazy - inaczej ani Rachmistrz, ani Rewizor nie zaktualizują się.

Ponadto w instalacji ('gotowiec') plik /opt/mssql/mssql.conf ma wyglądać tak:
[sqlagent]
enabled = false

[EULA]
accepteula = Y

[language]
lcid = 1033

[filelocation]
defaultbackupdir = /mssqldb/backup/
defaultdatadir =   /mssqldb/data/
defaultdumpdir =   /mssqldb/data/
defaultlogdir =    /mssqldb/data/

 

Ustawienie katalogu tymczasowego dla potrzeb aktualizacji:
Trzeba  w katalogu na kliencie utworzyć katalog TEMP:

 c:\users\[nazwa_uzytkownika_w_windows]\TEMP

Standardowy archiwizator nie będzie działać, dlatego napisałem swój i jest dostępny pod adresem:


https://drive.google.com/file/d/1CWWwUIFQIrnWoP4uNu8Tk821rP0oew25/view?usp=sharing

Umożliwia on archiwizację "ręczną" jak i automatyczną. Jest napisany do współpracy z Linuxem.
Wymaga użytkownika linuxa, który przez 'sudo' może zmienić atrybuty plików w systemie linux.

W załącznikach instalka mssql servera i plik konfiguracyjny mssql. Oczywiście po zapisaniu na linuxie muszą one mieć atrybuty 777.

Nie gwarantuję, że będzie działać na Waszej instalacji, nie sposób wszystko przewidzieć, ale u mnie na 'świeżo' postawionym systemie zadziałało.


Forum Użytkownikow Subiekt GT

Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« dnia: Luty 12, 2019, 08:26:34 »

Offline birds22

  • Ekspert
  • *****
  • Wiadomości: 8374
  • Reputacja +1276/-19
    • Zobacz profil
  • Wersja programu: Najnowsza
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #1 dnia: Luty 12, 2019, 09:00:37 »
U mnie standardowy archiwizator zadziałał.
Sławek, Zduńska Wola

Offline micha

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 817
  • Reputacja +4/-0
    • Zobacz profil
  • Wersja programu: Subiekt GT 1.56
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #2 dnia: Luty 12, 2019, 15:23:59 »
Witam, od dłuższego czasu szukałem działającego rozwiązania do MSSQL pod Linuxem. Powód jest oczywisty - wydajność.
1. Czy rzeczywiście "widać" różnicę w wydajności? Robiłeś jakieś testy?

2. Zasadniczo żeby porównać faktyczną wydajność "gołego" Linuksa z Windowsem należałby użyć do porównania Windows Core, a nie pełnego systemu (który "szuka wiatru na dysku"...). Próbowałeś?

Offline lublinkermi

  • Nowy użytkownik
  • *
  • Wiadomości: 38
  • Reputacja +0/-0
    • Zobacz profil
  • Wersja programu: Sugiekt GT 1.25
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #3 dnia: Luty 13, 2019, 07:05:14 »
"Goły" linux nie jest całkiem goły (nie pisałem o gołym linuxie tylko o świeżej instalacji) - funkcjonalnie odpowiada SQL Serwer 2012, uruchamiany jest w trybie graficznym etc. etc., ma możliwość zdalnego ustawiania wszystkich parametrów systemu. Co do testów... Od tego są odpowiednie instytucje posiadające odpowiednią wiedzę. Mnie wystarczyło posadzenie linuxa z bazami na tym samym komputerze w biurze rachunkowym (120 podmiotów, 10 stanowisk pracy) i odpowiedź pań księgowych, że pracuje się dużo szybciej i nie muszą czekać, szczególnie przy zmianie podmiotu.
Ale nie to jest przedmiotem mojego postu - nie będę się dalej wdawać w dyskusje nie na temat. 

Post jest przeznaczony dla ludzi, którzy chcą mieć mssql na linuxie, a nie działa im standardowy archwizator -  daję gotowy darmowy program, który tworzy takie archiwum, potrafi je odtworzyć, może przenieść bazę z systemu windows (pod warunkiem, że nie jest skompresowana - rozszerzenie .bak).

Jeśli ktoś chce skorzystać ma tu gotowe, działające, sprawdzone , DARMOWE rozwiązanie. I tyle w tym temacie

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 13480
  • Reputacja +747/-22
    • Zobacz profil
  • Wersja programu: GT - najnowsze
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #4 dnia: Luty 13, 2019, 09:15:44 »
Witam, od dłuższego czasu szukałem działającego rozwiązania do MSSQL pod Linuxem. Powód jest oczywisty - wydajność.

Ale nie to jest przedmiotem mojego postu - nie będę się dalej wdawać w dyskusje nie na temat.

Sam zaznaczyłeś, że powodem zmian była wydajność, a teraz nie chcesz o tym dyskutować ? :o Poza tym nikt nie chce dyskutować tylko zobaczyć jakikolwiek potwierdzenie tej tezy, gdyż na razie to wygląda dokładnie tak samo jak byś napisał, że przemalowałeś samochód na kolor czerwony z palety Ferrari (kosztowało to czas i pieniądze) i teraz jest szybszy...

Ostatnio optymalizowałem bazę danych u jednego z moich klientów (stary serwer z Windows), czas wykonania zgłaszanej operacji spadł z kilku do kilkunastu sekund do sekundy, specjalnie nie powiedziałem kiedy wprowadziłem zmiany, po wprowadzeniu wycofałem je na kilka dni, później znowu wprowadziłem, po kolejnych kilku dniach spytałem czy zostały zauważone zmiany, a jeśli tak to kiedy - otrzymałem odpowiedź, że nikt nic nie zauważył - takie są subiektywne opinie użytkowników - ja mierzyłem czasy wykonania zapytań...

Natomiast chciałbym skupić się w tym momencie na jednym aspekcie - jaki jest czas konwersji tych 120 baz danych (na takim samym sprzęcie), kiedy bazy danych są umieszczone na na serwerze z linuxem i kiedy znajdują się na serwerze Windows (i naturalnie program jest uruchomiony na serwerze) ?
Daniel, Białystok

Offline micha

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 817
  • Reputacja +4/-0
    • Zobacz profil
  • Wersja programu: Subiekt GT 1.56
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #5 dnia: Luty 13, 2019, 10:57:34 »
Myślałem, że wątek jest o zwiększeniu wydajności serwera poprzez zmianę wersji systemu... :-)
I naprawdę jestem ciekaw.

Jestem w stanie przyjąć na wiarę, że na tym samym sprzęcie Linux+SQL2017 będzie działał szybciej niż np. Win7+SQL2016. Ale już wcale nie jest takie oczywiste jak się to będzie mieć np. kombinacji Core/Nano+SQL2008R2.

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 13480
  • Reputacja +747/-22
    • Zobacz profil
  • Wersja programu: GT - najnowsze
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #6 dnia: Luty 13, 2019, 12:06:27 »
Ale co z tego, że będzie wydajniej, jeśli będzie wydajniej o powiedzmy 1% ? Nikt tego w praktyce nie zauważy... Jeśli nie padają żadne, konkretne wartości to nic to do tematu nie wnosi.
Daniel, Białystok

Offline lublinkermi

  • Nowy użytkownik
  • *
  • Wiadomości: 38
  • Reputacja +0/-0
    • Zobacz profil
  • Wersja programu: Sugiekt GT 1.25
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #7 dnia: Luty 13, 2019, 18:20:29 »
Jest okazja... właśnie się przymierzam do aktualizacji... Opiszę wyniki.

Offline micha

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 817
  • Reputacja +4/-0
    • Zobacz profil
  • Wersja programu: Subiekt GT 1.56
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #8 dnia: Luty 13, 2019, 21:54:06 »
Odpowiednikiem jakiej windowsowej wersji jest linuksowy SQL2017?
Baza Subiekta przeniesiona na Linuksa ze starego sql'a (np. 2008R2, 2012) zostanie przekonwertowana do wersji 2017. Załóżmy, że potem coś się kompletnie posypie i trzeba będzie szybko wrócić do Windows. Downgrade bazy nie jest normalnie "od ręki" możliwy, więc trzeba będzie użyć nowszego sqla. Którego?

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 13480
  • Reputacja +747/-22
    • Zobacz profil
  • Wersja programu: GT - najnowsze
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #9 dnia: Luty 13, 2019, 22:00:00 »
Pytanie retoryczne ? Takie samego.
Daniel, Białystok

Offline micha

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 817
  • Reputacja +4/-0
    • Zobacz profil
  • Wersja programu: Subiekt GT 1.56
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #10 dnia: Luty 13, 2019, 22:08:38 »
Pytanie retoryczne ? Takie samego.
Ha! Jakoś wydawało mi się, że nie ma wersji 2017 dla Windows... :-)

Offline yemet

  • Aktywny użytkownik
  • ***
  • Wiadomości: 372
  • Reputacja +22/-0
    • Zobacz profil
  • Wersja programu: Navireo
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #11 dnia: Luty 13, 2019, 23:27:02 »
Pytanie retoryczne ? Takie samego.
Ha! Jakoś wydawało mi się, że nie ma wersji 2017 dla Windows... :-)
Jest już nawet 2019 :)

Offline micha

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 817
  • Reputacja +4/-0
    • Zobacz profil
  • Wersja programu: Subiekt GT 1.56
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #12 dnia: Luty 14, 2019, 06:53:34 »
Jest już nawet 2019 :)
Widać nie jestem na bierząco. :-)
A czy nadal „najbardziej właściwą” do użytku jest 2008R2 ze względu na ograniczenia wydajnościowe?

Offline yemet

  • Aktywny użytkownik
  • ***
  • Wiadomości: 372
  • Reputacja +22/-0
    • Zobacz profil
  • Wersja programu: Navireo
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #13 dnia: Luty 14, 2019, 09:37:26 »
Jest już nawet 2019 :)
Widać nie jestem na bierząco. :-)
A czy nadal „najbardziej właściwą” do użytku jest 2008R2 ze względu na ograniczenia wydajnościowe?
Mowa o edycji Express czy Standard ;)? Express od dawien dawna ma miliard ograniczeń wydajnościowych. Bodaj od 2012 zaczęli wprowadzać na Standarda ograniczenia w ilości RAMu i gniazd/rdzeni, które SQL może wykorzystać (16 rdzeni 64GB RAM zdaje się). Potem to podnieśli do 4 gniazd/24 rdzeni i 128GB RAM.


PS. W 2019 jest jedna rzecz, która bardzo mnie ciekawi:
https://www.brentozar.com/archive/2018/11/sql-server-2019-faster-functions/

Będę na dniach ćwiczył sobie na testowej wersji czy to działa tak ładnie jak to opisują.
« Ostatnia zmiana: Luty 14, 2019, 09:59:10 wysłana przez yemet »

Offline micha

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 817
  • Reputacja +4/-0
    • Zobacz profil
  • Wersja programu: Subiekt GT 1.56
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #14 dnia: Luty 14, 2019, 09:56:21 »
Mowa o edycji Express czy Standard ;)? Express od dawien dawna ma miliard ograniczeń wydajnościowych.
No Express... Daje się, że w 2008R2 było tych ograniczeń mniej niż później. :-)