Sybase
- Wyświetlanie ilości aktywnych sesji per Baza danych
- Sprawdzenie wolnego miejsca w SyBase
- Logowanie do iSQL z poziomu CLI
- Powiększenie baz danych na plikach
- Powiększenie plików (DEVICE)
- Ustawienie flag na bazie
- Wykonanie punktu zapisu (checkpoint)
- Restore bazy danych z backupu
- Wylistowanie tabel w aktualnie używanej bazie danych
- Generowanie licencji SYBASE dla systemu na VM, gdzie dla HOSTID ma być to MAC
- Sprawdzanie stanu licencji
- Zarządzanie userami w Sybase
- Komendy i procedury diagnostyczne
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:
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ć
- 'S' – tabele systemowe
- 'V' – widoki
- 'P' – procedury składowane
- 'TR' – wyzwalacze (triggery)
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
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:
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 :
Otworzy nam się taki panel :
Wybieramy licencję którą chcemy wymienić:
Potwierdzamy hosta na którym chcemy zmienić plik:
Wyświetli nam się aktualny, ostatnio wygenerowany plik licencyjny:
By go wymienić klikamy "Check In":
I potwierdzamy:
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.
Klikamy na "EDIT" na dole strony, po czym otworzy się okno z informacjami do potwierdzenia:
W momencie w którym klikniemy continue, będziemy mogli przejść do wygenerowania nowej licencji:
Klikamy w "Generate", po czym otworzy się okno wyboru licencji. Wybieramy Unserved license, ponieważ wygeneruje to plik który możemy wgrać na hosta.
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)
Wypełniamy następująco:
Dla mojego przykładu będzie to:
Po kliknięciu generate otrzymujemy plik licencji który albo możemy skopiować, albo pobrać:
Wgrywanie licencji
Plik wgrywamy do katalogu licencji:
/opt/sybase/SYSAM-2_0/licenses
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\
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
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/
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
Weryfikacja wgranej licencji
Interesuje nas czy SyBase pomyślnie się zalicencjonował, jeżeli tak:
Logujemy się do bazy oraz wyłączamy ją by wykonać start "normalny" przez usługę.
1> shutdown
2> go
systemctl start sybase
systemctl status sybase
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
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
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
Wylistowanie locków na bazie
sp_locks
Inna wersja powyższej komendy wraz z filtrowaniem:
SELECT * FROM master..monLocks
WHERE DBName LIKE '%Megaz%'
go
Sprawdzenie plików "device"
sp_helpdevice
go
Wyświetlanie informacji o bazach danych:
sp_helpdb
go
Wyświetlanie zajętości aktualnie używanej bazy danych
Najpierw wybieramy bazę danych:
use NazwaBazy
go
Później wykonujemy komendę:
sp_spaceused
go
Weryfikacja aktualnie używanych zasobów:
sp_monitor
go
Weryfikacja wydajności silnika bazy danych przez określony czas:
sp_sysmon "00:01:00"
go
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



























