Sybase

Wyświetlanie ilości aktywnych sesji per Baza danych

Wykonujemy zalogowani do iSQL

SELECT COUNT(DISTINCT spid) AS Liczba_Sesji 
FROM master..sysprocesses 
WHERE dbid = DB_ID('Nazwa_Bazy_Danych') 

Sprawdzenie wolnego miejsca w SyBase

Wykonujemy zalogowani do iSQL

Dla wszystkich baz

use [NazwaBazy]
go

sp_spaceused
go

 Bardzie dokładne query

set nocount on 
go 

select str(ceiling(sum(convert(float, (case when u.segmap != 4 then curunreservedpgs(u.dbid, u.lstart, u.unreservedpgs) end))) * @@maxpagesize / 1048576), 16, 2) + ' MB' 
from master..sysdatabases d, master..sysusages u  
where u.dbid = d.dbid and d.status != 256 and d.name = 'NAZWA-BAZY'  
group by d.dbid 
go 

 Przykładowy wynik

 

Logowanie do iSQL z poziomu CLI

isql -S[NazwaSerwer] -U sa -P 'hasło' -w999 

Powiększenie baz danych na plikach

Wykonujemy zalogowani do iSQL 

Najpierw sprawdzamy konkretne wielkość plików (tak zwane device w sybase)

sp_helpdevice
go 
 sp_helpdb [NazwaBazy]
 go 

Uwaga, rozszerzamy o ile ma być więcej 

use master 
go 
alter database NazwaBazy on NazwaDevice1='5000M' 
alter database NazwaBazy on NazwaDevice2='5000M' 
alter database NazwaBazy on NazwaDevice3='5000M' 
alter database NazwaBazy on NazwaDevice4='5000M' 
go 

Przykładowy, poprawny wynik:

 

Powiększenie plików (DEVICE)

Wykonujemy zalogowani do iSQL

use master
go

disk resize name = 'NazwaDevice1' , size = 'ILOSCM' 
disk resize name = 'NazwaDevice2' , size = 'ILOSCM' 
disk resize name = 'NazwaDevice3' , size = 'ILOSCM' 
disk resize name = 'NazwaDevice4' , size = 'ILOSCM' 
go 

Przykładowy wynik:

Ustawienie flag na bazie

Wykonujemy zalogowani do iSQL

Sprawdzamy aktualnie używane flagi na bazie:

sp_helpdb '[NazwaBazy]'
go

Przykładowy wynik:

image.png

W tym momencie możemy dodać / usunąć flagi używając sp_dboption. Przykładowe flagi:

sp_dboption '[NazwaBazy]', 'select into/bulkcopy/pllsort', true 
go 
sp_dboption 'NazwaBazy', 'trunc log on chkpt', true 
go 
sp_dboption '[NazwaBazy]', 'full logging for all', true 
go 

 Przykładowy wynik:

use '[NazwaBazy]' 
checkpoint 
go 

 

 

Wykonanie punktu zapisu (checkpoint)

Wykonujemy zalogowani do iSQL

use '[NazwaBazy]' 
checkpoint 
go 

 

Restore bazy danych z backupu

Wykonujemy zalogowani do iSQL

Baza o danej nazwie musi istnieć i mieć wystarczająco dużo miejsca

load database'[NazwaBazy]' from '/sciezka/do/plikuBackupu.bac' 
go

Jednak może się zdarzyć że chcemy odtworzyć aktualnie używaną bazę danych, wtedy należy sprawdzić aktualne sesję połączone do DB 

SELECT spid, suid, status, loginame, hostname, dbid, cmd 
FROM master..sysprocesses 
WHERE dbid = DB_ID('[NazwaBazy]');
go

bądź:

SELECT DISTINCT loginame 
FROM master..sysprocesses 
WHERE dbid = DB_ID('[NazwaBazy]');
go

bądź:

EXEC sp_who '[NazwaBazy]';
go

 

Wyświetli się lista połączeń więc przed odtworzeniem musimy najpierw wykonać ubicie procesów poprzez kill SPID  (SPID to numer procesu)

kill SPID
go 

Wylistowanie tabel w aktualnie używanej bazie danych

Wykonujemy zalogowani do iSQL oraz z aktywną wymaganą bazą danych

SELECT name 
FROM sysobjects 
WHERE type = 'U' 
ORDER BY name;
go

Zamiast filtru "U", można także użyć

Generowanie licencji SYBASE dla systemu na VM, gdzie dla HOSTID ma być to MAC

W razie wygaśnięcia licencji na aktualizację SYBASE, Należy ponownie wygenerować klucz licencyjny dla silnika SyBase ASE.

Weryfikacja licencji

image.png

Interesują nas dwie informacje - INCREMENT ASE_SE_CH SYBASE XXXX.XXXXX gdzie tutaj dla przykładu wyświetliłem starą licencję która pozwala na zainstalowanie patchy nie nowszych niż 30 kwietnia 2022.

Drugą informacją jest PE=SE;LT=CH HOSTID=XXXXXXXXXXXX gdzie HOSTID to powinien być aktualny, ręcznie ustawiony MAC głównej karty sieciowej dla hosta z poziomu vCenter:

To jest błędne: 

image.png

MAC się nie zgadza + automatycznie zmieni się przy operacjach na maszynie!

Generowanie licencji

Jeżeli mamy statyczny, manualny mac na maszynie, jest on zgodny z tym co widzimy na systemie, możemy przystąpić do wygenerowania dwóch rzeczy:

Pliku Licencji

Zmiennej środowiskowej z poziomu EXSI, która potwierdzi silnikowai prawdziwość danych.

Dla pliku licencji wchodzimy na : 

SAP for Me

image.png

Otworzy nam się taki panel :

image.png

Wybieramy licencję którą chcemy wymienić:

image.png

Potwierdzamy hosta na którym chcemy zmienić plik:

image.png

Wyświetli nam się aktualny, ostatnio wygenerowany plik licencyjny:

image.png

By go wymienić klikamy "Check In":

image.png

I potwierdzamy:

image.png

Plik licencyjny został zwolniony. Ale nie oznacza to że bazy na tym pliku przestaną od razu działać. Możemy zamknąć okno i przejść do generowania pliku.

image.png

Klikamy na "EDIT" na dole strony, po czym otworzy się okno z informacjami do potwierdzenia:

image.png

image.png

W momencie w którym klikniemy continue, będziemy mogli przejść do wygenerowania nowej licencji:

image.png

Klikamy w "Generate", po czym otworzy się okno wyboru licencji. Wybieramy Unserved license, ponieważ wygeneruje to plik który możemy wgrać na hosta.

image.png

Klikamy next i wpisujemy liczbę maszyn, na których licencja ma działać. W tym przypadku dla EWE015, jest to jedna maszyna, ale dwie licencję (PRD plus mechanizm Backup servera)

image.png

Wypełniamy następująco:

image.png

Dla mojego przykładu będzie to:

image.png

Po kliknięciu generate otrzymujemy plik licencji który albo możemy skopiować, albo pobrać:

image.png

Wgrywanie licencji

Plik wgrywamy do katalogu licencji: 

/opt/sybase/SYSAM-2_0/licenses

image.png

Licencja została wygenerowana i podmieniona. Jeżeli maszyna nie była zmigrowana, nie zmienił się jej adres MAC ani nie nastąpiły z nią żadne większe zmiany, wystarczy zrestartować silnik DB.

Jeżeli powyższe zmiany z maszyną wirtualną, potrzebujemy wygenerować  odpowiednie zmienne środowiskowe po stronie EXSI, na którym maszyna aktualnie przebywa. Do tego potrzebne jest nam narzędzie SYSAMCAP, który jest dołączany do patchy silnika.

Zmienne środowiskowe może przekazać nam zespół Inf.Ops, jednakże muszą oni wrzucić plik wykonywalny na hosta EXSI, na którym maszyna się znajduje. SYSAMCAP sprawdza ilość przydzielonych zasobów, oraz przypisany adres MAC maszyny, dlatego ważne jest by MAC był statyczny, manualnie ustawiony, zgodny z tym co jest po stronie OS!

By przekazać plik, pobieramy patch, do którego chcemy zaktualizować bazę, bądź wersję która aktualnie jest wgrana.

Używamy do tego instrukcji: Aktualizacja silnika S... | All For One Poland Bookstack (vm.local)

Po pobraniu, wypakowujemy z archiwum tgz, plik, który w archiwum znajduje się w :

NRpatcha\sysam_utilities\bin\

image.png

Ten plik wysyłamy konsultantowi inf.ops, który po wrzuceniu na EXSI, najlepiej do folderu /tmp musi najpierw dać prawa do wykonywania 

chmod +x sysamcap

Po czym wykonać dwie komendy:

./sysamcap DEFAULT
./sysamcap MACHINE

image.png

Głównie interesuje nas zmienna DEFAULT. Tutaj przykładowy output:

[root@srv106:/tmp] ./sysamcap DEFAULT

Set the following environment variable prior to starting the product. This only needs to be done once for each instance of the product that will run.

SYBASE_SAM_CAPACITY=DEFAULT:93287A8444B2B1A3ED38F17F26611A274EA48E79523FB8AF90E5D66EBE65E71D84BA401596C5513CDF16DC937A5E400804140397D272189EC71F6CF1320C61C360CEF442FBB25FC89D237329FE43A98A53575F688021935AF261DE693F8C219E57B27D30C4B8DEB927C047390F87AADCAAA0B7B997E1C04FB6DA419BB7BC16EFDC324582C63E4CEC0BA9C477D5314D621D51F6C8806841755897FFFF4935920D51746C341826B18929F0404F09CC62D6D4A63E0BA2E7916D2FC91C6FADC43DDE0961DE693F8C219E57017E8B03C2E25E9F6C1D5F99880F8B220784AD1BD2EA4BAA3BCF24FC87D82C6AF496D855EEE92C1FDAFD399F3CCEC74CB3269C9BC4F58C6897FFFF4935920D5179FBACD9B356247B614F7647C087B64C7A7198A159275FE2C55F941ADBF319F261DE693F8C219E574E7BBD7362140F668F1DF05CA677DB742A9E7FC52A7564D4B0108B072638424DF496D855EEE92C1F82BD4B496321849809037F41B77E4DC3

Processor counts and host-id information are not reported by 'sysamcap' because it is not clear whether this is the environment where the product will run.

To obtain processor counts and host-id information set the SYBASE_SAM_CAPACITY environment variable and execute 'cpuinfo' in the environment that will be used by the product.

Tą zmienną możemy zaimportować na dwa sposoby:

Zmieniając plik parametrów w:

/opt/sybase/ASE-16_0/sysam/

image.png

Exportując do zmiennych środowiskowych roota i wykonując ręcznie start serwera np:

export SYBASE_SAM_CAPACITY=DEFAULT:93287A8444B2B1A3ED38F17F26611A274EA48E79523FB8AF90E5D66EBE65E71D84BA401596C5513CDF16DC937A5E400804140397D272189EC71F6CF1320C61C360CEF442FBB25FC89D237329FE43A98A53575F688021935AF261DE693F8C219E57B27D30C4B8DEB927C047390F87AADCAAA0B7B997E1C04FB6DA419BB7BC16EFDC324582C63E4CEC0BA9C477D5314D621D51F6C8806841755897FFFF4935920D51746C341826B18929F0404F09CC62D6D4A63E0BA2E7916D2FC91C6FADC43DDE0961DE693F8C219E57017E8B03C2E25E9F6C1D5F99880F8B220784AD1BD2EA4BAA3BCF24FC87D82C6AF496D855EEE92C1FDAFD399F3CCEC74CB3269C9BC4F58C6897FFFF4935920D5179FBACD9B356247B614F7647C087B64C7A7198A159275FE2C55F941ADBF319F261DE693F8C219E574E7BBD7362140F668F1DF05CA677DB742A9E7FC52A7564D4B0108B072638424DF496D855EEE92C1F82BD4B496321849809037F41B77E4DC3
/opt/sybase/ASE-16_0/install/RUN_EWE015

image.png

image.png

Weryfikacja wgranej licencji

Interesuje nas czy SyBase pomyślnie się zalicencjonował, jeżeli tak:

image.png

Logujemy się do bazy oraz wyłączamy ją by wykonać start "normalny" przez usługę.

1> shutdown
2> go

image.png

systemctl start sybase
systemctl status sybase


image.png


Po zalogwaniu się do bazy (przy pomocy isql) możemy wywołać zapytanie, które zwróci nam informacje o stanie licencji

sp_lmconfig
go

image.png

Sprawdzanie stanu licencji


Po zalogowaniu się do bazy (przy pomocy iSQL) możemy wywołać zapytanie, które zwróci nam informacje o stanie licencji

sp_lmconfig
go

image.png

Zarządzanie userami w Sybase

Wylistowanie wszystkich userów:
sp_helpuser
go
Utworzenie Użytkownika

Aby dodać użytkownika najpierw tworzymy login:

sp_addlogin NazwaUżytkownika, 'TrudneHasło';
go

Utworzenie użytkownika:

sp_adduser NazwaUżytkownika;
go
Dodanie ról użytkownikowi:

Wylistowanie wszystkich ról:

sp_displayroles
go

Dodanie roli

grant role NazwaRoli to NazwaUżytkownika
go
Zmiana hasła użytkownikowi
ALTER LOGIN NazwaUżytkownika WITH PASSWORD = 'NoweTrudneHasło'
go

Wymuszenie zmiany hasła po zalogowaniu:

ALTER LOGIN NazwaUżytkownika WITH PASSWORD = 'NoweTrudneHasło'  MUST_CHANGE 
go
Usunięcie użytkownika
sp_dropuser NazwaUżytkownika
go
Usunięcie roli użytkownikowi
revoke role NazwaRoli from NazwaUżytkownika
go
Usunięcie loginu
sp_droplogin NazwaLoginu
go

Komendy i procedury diagnostyczne

Wykonujemy zalogowani do iSQL bez wybranej żadnej bazy

Wylistowanie aktywnych sesji:
sp_who

image.png

Wylistowanie locków na bazie
sp_locks

image.png

Inna wersja powyższej komendy wraz z filtrowaniem:

SELECT * FROM master..monLocks
WHERE DBName LIKE '%Megaz%'
go
Sprawdzenie plików "device" 
sp_helpdevice
go

image.png

Wyświetlanie informacji o bazach danych:
sp_helpdb
go

image.png

Wyświetlanie zajętości aktualnie używanej bazy danych

Najpierw wybieramy bazę danych:

use NazwaBazy
go

Później wykonujemy komendę:

sp_spaceused
go

image.png

Weryfikacja aktualnie używanych zasobów:
sp_monitor
go

image.png

Weryfikacja wydajności silnika bazy danych przez określony czas:
sp_sysmon "00:01:00"
go

image.png

Sprawdzenie statusu licencji


Po zalogowaniu się do bazy (przy pomocy iSQL) możemy wywołać zapytanie, które zwróci nam informacje o stanie licencji

sp_lmconfig
go

image.png