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

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

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1246
  • Reputacja +46/-1
  • Wersja programu: Navireo
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #15 dnia: Luty 14, 2019, 10:05:10 »
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. :-)

Raczej odwrotnie było wcześniejsze Expressy miały ograniczenie rozmiaru bazy do 4GB, chyba od 2008R2 jest 10GB. Do 2008R2 jeśli dobrze kojarzę ograniczenie na proca było do jednego CPU z dowolną ilością rdzeni (nie jestem pewien tego) a od 2012 max 1 CPU lub 4 rdzenie.

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17040
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #16 dnia: Luty 14, 2019, 10:17:58 »
@yemet, to podstawy podstaw, nie zgaduj, zajrzyj to tabelek...
Daniel, Białystok.

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1246
  • Reputacja +46/-1
  • Wersja programu: Navireo
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #17 dnia: Luty 14, 2019, 10:24:25 »
@dkozlowski - zajrzałem ale tak na szybko, na pierwsze lepsze w necie.

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17040
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #18 dnia: Luty 14, 2019, 11:51:53 »
@dkozlowski - zajrzałem ale tak na szybko, na pierwsze lepsze w necie.
Dobrze, źle przeczytałem odpowiedź, mój błąd.
Daniel, Białystok.

Offline micha

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1028
  • Reputacja +9/-0
  • Wersja programu: Sub+Rew GT [najnowsze]
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #19 dnia: Luty 14, 2019, 13:51:09 »
No Express... Daje się, że w 2008R2 było tych ograniczeń mniej niż później. :-)
Raczej odwrotnie było wcześniejsze Expressy miały ograniczenie rozmiaru bazy do 4GB, chyba od 2008R2 jest 10GB. Do 2008R2 jeśli dobrze kojarzę ograniczenie na proca było do jednego CPU z dowolną ilością rdzeni (nie jestem pewien tego) a od 2012 max 1 CPU lub 4 rdzenie.
No właśnie. A jako że mam ośmiordzeniowy proc, to stoję przy 2008R2...

Offline micha

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1028
  • Reputacja +9/-0
  • Wersja programu: Sub+Rew GT [najnowsze]
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #20 dnia: Luty 14, 2019, 19:05:15 »
Z ciekawości uruchomiłem sobie testowy kontener lxd z Ubuntu Server 16.04 i mssql. Może komuś się przyda:

wget -qO- https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
sudo add-apt-repository "$(wget -qO- https://packages.microsoft.com/config/ubuntu/16.04/mssql-server-2017.list)"
sudo apt update
sudo apt install mssql-server
sudo /opt/mssql/bin/mssql-conf setup
sudo systemctl stop mssql-server
sudo /opt/mssql/bin/mssql-conf set-collation
#Podać: Polish_CI_AS
sudo systemctl start mssql-server

I to tyle. Działa z wyjątkiem archiwizacji.

A jak ktoś dodatkowo chce działającą archiwizację:

sudo apt install samba
sudo mkdir /srv/tmp
sudo chown msssql:mssql /srv/tmp
sudo ln -s /srv/tmp /var/opt/mssql/.system/profiles/(nazwa-windowsowego-usera)/tmp

Udostępnić folder /srv/tmp przez Sambę, np. tak:

[tmp]
    comment = SQL Tmp Folder
    path = /srv/tmp
    read only = no
    browsable = yes
    guest only = yes
    public = yes
    writeable = yes
    force user = mssql
    force group = mssql
    create mask = 0660
    directory mask = 0770

Oczywiście w miarę potrzeb dopasować i zrestartować usługę smb.

Po stronie Windowsa dodać link do folderu roboczego (jako administrator):

mklink /d C:\Users\(nazwa-windowsowego-usera)\tmp \\(adres-linksowego-serwera)\tmp

Wskazać archiwizatorowi folder roboczy C:\Users\(nazwa-windowsowego-usera)\tmp i cieszyć się. :-)
Nie wykluczam, że coś w powyższym pomieszałem, bo to głównie z pamięci jest...


(Eksperymenty fajne, ale i tak zostaję przy serwerze produkcyjnym na Windows...)
« Ostatnia zmiana: Luty 14, 2019, 19:10:01 wysłana przez micha »

Offline micha

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1028
  • Reputacja +9/-0
  • Wersja programu: Sub+Rew GT [najnowsze]
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #21 dnia: Luty 14, 2019, 19:06:28 »
Acha, konwersja bazy przy aktualizacji Subiekta zdaje się działać bardzo ładnie...
« Ostatnia zmiana: Luty 14, 2019, 19:09:10 wysłana przez micha »

Offline yemet

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1246
  • Reputacja +46/-1
  • Wersja programu: Navireo
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #22 dnia: Luty 14, 2019, 19:12:13 »
offtop: konwersje Subiekta to pikuś, powinieneś zobaczyć ile trwa aktualizacja Navireo jak narobisz sobie własnych kompozycji :)

Offline lublinkermi

  • Nowy użytkownik
  • *
  • Wiadomości: 39
  • Reputacja +1/-0
  • Wersja programu: Sugiekt GT 1.25
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #23 dnia: Luty 26, 2019, 17:34:46 »
Po długim czasie jako ten który zaczął wątek opisuję wyniki wydajności. Biuro - 135 podmiotów, łącznie bazy zajmują 35 GB. Przebolałem i sprawdziłem wydajność na tym samym komputerze, na tym samym MS SQL Express 2017. Wyniki są następujące:

Windows - aktualizacja zaczęła się w piątek o godz. 18, skończyła się w sobotę o godz. 20
Linux        - aktualizacja zaczęła się w piątek o godz. 18 skończyła się w sobotę o 8 rano

Sytuacja jest dokładnie taka sama - wykonałem obraz systemu i na nim "trenowałem" wydajność, stąd ta sama ilość danych.
Nie mniej ważną cechą jest to, że jak w Linuxie ustawie wszystkie parametry to będzie działać, dopóki sam czegoś nie skopię lub skończy się dysk twardy.

W windowsie po paru aktualizacjach przestała działać automatyczna kopia bezpieczeństwa, zostały zablokowane programy sieciowe, został zablokowany serwer Firebird.
Trzeba było paru godzin na odnalezienie i rozwiązanie problemu i dużo odpowiedzi na pytanie, dlaczego nie działa, skoro nikt nic nie ruszał.
Stąd nawet jeśliby nie było wzrostu wydajności to przy linuxie jak postawię serwer i wszystko ustawie to mam spokój święty i anielski.

PS. Archiwizator działa pod Windows i nagrywa kopie na systemie Windows, a nie na Linuxie




Offline micha

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1028
  • Reputacja +9/-0
  • Wersja programu: Sub+Rew GT [najnowsze]
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #24 dnia: Luty 26, 2019, 18:50:17 »
Jak już wspominałem - żeby porównanie prędkości było sensowne warto by użyć Windows Core Server jako systemu. W dodatku raczej nie będzie problemów z „zapominaniem” konfiguracji... Trudno jest zepsuć Core...

Offline Artwi

  • Aktywny użytkownik
  • ***
  • Wiadomości: 187
  • Reputacja +3/-0
  • Wersja programu: Insert GT aktualny
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #25 dnia: Luty 27, 2019, 11:10:43 »
Takie moje mniemania:


Taki serwer na Linuksie może w pewnych przypadkach działać szybciej.

Otóż Microsoft w desktopowej Windzie, bodaj od XP SP2 wprowadził sztuczne ograniczenie równoczesnych połączeń TCP do 20, 10 czy nawet 5 (zależnie od wersji Windy i czy Home czy Pro). Jeśli MS SQL nie był postawiony na Windows Server (a często w małych firmach  nie jest), tylko na desktopowej Windzie, to może być zauważalne spowolnienie wynikające z tego limitu już przy kilku użytkownikach (przecież połączenia z bazą nie są jedyne). Linux takich sztucznych ograniczeń nie wprowadza. Jeśli ktoś ma ten serwer postawiony na Windzie serwerowej, to pewnie zysku z Linuksa nie zauważy. Do tego są jakieś mikroskopijne zyski ze schedulera procesora (desktopowa Winda preferuje częste przerywanie pracy wątków procka celem np. odpytywania myszki, klawiatury itp. w celu większej responsywności kompa na działanie użytkownika, w Linuksie można to ustawiać i w roli serwerowej przerwy takie są rzadsze i wątki pracują dłużej i są rzadziej przełączane).

Drugą denerwującą rzeczą, było wprowadzenie rok temu w Windows 10 włączania z opóźnieniem usługi MS SQL (tylko tej darmowej), przez co "szybki" użytkownik dostawał komunikat, że nie można się połączyć z bazą danych, a jeszcze bardziej i to naprawdę denerwujące było, to wprowadzenie (też w "trosce o użytkownika") automatycznego wyłączania w desktopowej wersji Windy usługi MS SQL przy dłuższym stanie bezczynności (też tylko w tej darmowej wersji, płatna tak się nie zachowuje, bo można to ustawić). To już naprawdę wk.... było, bo wymagało przerobienia aplikacji, by przy braku połączenia z bazą, próbowały zdalnie uruchomić usługę MS SQL i to działa, ale ze sporym opóźnieniem wynikającym z ponownego startu usługi MS SQL. Niestety starsze aplikacje, które tego nie robią, w takim przypadku się nie połączą, bo użytkownik musi ręcznie uruchomić zatrzymaną usługę MS SQL (ilu zwykłych użytkowników to potrafi?). Mniemam (nie bawiłem się z MS SQL na Linuksie, ale w przyszłym miesiącu zacznę), że na Linuksie takiego wyłączania MS SQL przy bezczynności nie ma, a jak jest, to pewnie, jak to na Linuksie, da się to obejść/wyłączyć.

Trzecią sprawą jest sposób pracy darmowej wersji MS SQL Expressa, która "w trosce o użytkownika" często zrzuca bazę z RAM w celu uwolnienia pamięci i nie da się tego, jak na pełnej wersji wyłączyć (na desktopie ma to sens, gdy jest równocześnie używany do innych zadań, ale MS pewnie bardziej kierował się przy tym "zachętą" dla firm do zakupu płatnej wersji). Nie wiem czy na Linuksie też się tak zachowuje, być może nie.

Podsumowując: moim zdaniem zauważalny zysk będzie jak ktoś MS SQL postawi na Linuksie, zamiast desktopowej wersji Windy, natomiast w porównaniu z wersją serwerową Windy, to "potrzebne będą specjalistyczne pomiary" by zauważyć różnicę.
Mając na uwadze, że ewentualna krytyka może być, tak musimy zrobić, żeby tej krytyki nie było, tylko aplauz i zaakceptowanie.

Offline lurk

  • Nowy użytkownik
  • *
  • Wiadomości: 6
  • Reputacja +1/-0
  • Wersja programu: Rewizor GT
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #26 dnia: Lipiec 02, 2019, 10:44:16 »
Problem Archiwizatora Inserta wydaje się byc nie do przejścia w przypadku biur rachunkowych i wielu baz. Otóż podpięcie bazy za pomocą Studio Managera, lub innego nieinsertowskiego narzędzia owocuje nie działającym Crystal Reports, a jedynym sposobem w tym momencie jest archiwizacja bazy i dearchiwizacja jej spowrotem archiwizatorem insertowskim, lub Biuro GT. Te zaś nie działają gdy baza siedzi na Linux.
Czy może ma ktoś was pomysł jak:
1. Rozwiązać problem Crystal Reports inaczej niż poprzez arch/dearch by INSERT
2. Obejść problem inaczej. Może tak żeby standardowy archiwizator przyjął linuxowe ścieżki i zadziałał.
3. Czy ktoś zna odpowiedź, co takiego robi derarchiwizator na koniec pracy, że Crystal Report zaczyna poprawnie działać ? Może można zrobić to "ręcznie" ?
Szkoda, że INSERT nie chce zmodernizować swojego archiwizatora, tak żeby brał pod uwagę wariant taki, że baza stoi na Linux.
Nie testowałem jeszcze wyniku dearchiwiacji za pomocą wystawionego tu programu. Zrobię to w tym tygodniu.

Do autora cyt.  posta: Czy masz może podobną wersję archiwizatora/dearchiwizatora dla baz osadzonych na Windows ?
Ta masowa archiwizacja wszystkich baz (a mam ich 250) jest bezcenna.
Pozdrawiam.


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.

Offline micha

  • Zaawansowany użytkownik
  • ****
  • Wiadomości: 1028
  • Reputacja +9/-0
  • Wersja programu: Sub+Rew GT [najnowsze]
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #27 dnia: Lipiec 02, 2019, 11:03:38 »
Co wy się wszyscy czepiacie tego Archiwizatora... U mnie działa. Post 20 w tym wątku.

Offline lurk

  • Nowy użytkownik
  • *
  • Wiadomości: 6
  • Reputacja +1/-0
  • Wersja programu: Rewizor GT
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #28 dnia: Lipiec 02, 2019, 11:09:49 »
Czy Cristal Reports działa na podmiotach dearchiwizowanych twoim archiwizatorem ? Podłączenie baz za pomocą Studio Managment owocuje nie działającym Cristalem. A wg INSERT jedyną drogą na usunięcie problemu jest zarchiwizowanie i zdearchiwizowanie bazy ich narzędziem. Podobny kłopot jest przy BiuroGT - nie działa masowa dearchiwizacja, czyli problem przy migracji wielu baz (biura rachunkowe) z WIN na Linux. To można obejść podłączając masowo bazy do SQL za pomocą skryptu lub programu SQL_Server_attach_multiple_databases, albo twojego dearchiwizatora, ale Cristal wtedy nie działa.
Czy może macie pomysł jak to obejść?

Offline dkozlowski

  • Ekspert
  • *****
  • Wiadomości: 17040
  • Reputacja +798/-27
  • Wersja programu: GT/Navireo/nexo
Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #29 dnia: Lipiec 02, 2019, 11:12:39 »
Nie słuchaj bzdur "Insertu" (jakiegoś niedouczonego konsultanta) tylko poczytaj forum, gdzie rozwiązanie było podawane wiele razy... Lub na logikę - sprawdź co robi program i zrób to samo...
Daniel, Białystok.

Forum Użytkownikow Subiekt GT

Odp: Opis działającej instalacji MSSQL LINUX [CENTOS 7]
« Odpowiedź #29 dnia: Lipiec 02, 2019, 11:12:39 »