Czym różni się proces od wątku - zilustrowane w 10 minut: https://youtu.be/bxi3tDmFZdE
Najważniejsze różnice:
Przy okazji: dlaczego na Windows koszt powstania procesu jest wyższy.
Keywords: #database #oracle #programming #sql #plsql #backend #coding #development #mysql #postgresql #sqlserver #linux #unix #windows #process #thread #dba4dev #marcinbadtke
@MuadibAtrides: Nic się nie zmieniło :-) Wg mnie najważniejszość zależy od perspektywy.
Funkcja #Oracle na dziś:
ADD_MONTHS(date, integer) - zwraca datę typu DATE o wartości date do której dodano integer miesięcy. Integer określający ilość miesięcy może być liczbą ujemną.
select ADD_MONTHS(sysdate,1), ADD_MONTHS(sysdate,-1) from dual;
Do czego jej używasz ?
#database #programming #sql #plsql #backend #coding #development #mysql #postgresql #sqlserver #dba4dev #marcinbadtke
Merytoryczny wpis mógłby dotyczyć konkretnego problemu i jego rozwiązania np. klauzula IN
dla kilku tysięcy wartości. Można tu omówić czemu Oracle ma takie ograniczenie (1000 wartości w klauzuli in), jak je obejść i jak na wydajność wpłynie porównywanie krotek i list. Tabelka z czasami wykonania też byłaby mile widziana.
Dzięki @PerlMonk i @superdurszlak :-) Bardzo wartościowe, dla mnie, wypowiedzi. W internetach jest dużo przepisów jak coś zrobić - zainstalować, naprawić, skonfigurować. Mało, natomiast materiałów omawiających, a najlepiej ilustrujących jak coś działa. Jaki mechanizm stoi na funkcją, którą używamy. Co sądzicie o zapotrzebowaniu na takie materiały ? W moim przypadku był to np.: . Jeśli wola to oczywiście gorąco powitam rozbudowaną wiadomość prywatną :-)
RMAN - backup na taśmę czy do chmury - o czym warto pamiętać ?
Bazy danych są niesamowicie dobre w komunikowaniu się z dyskami. Co do tego nikt nie ma chyba wątpliwości :-) Gdy przychodzi jednak do wykonania backup'u na taśmę pojawia się problem. Jest wielu dostawców napędów taśmowych i wielu dostawców scentralizowanych systemów backup'owych. Utrzymanie możliwości obsługi wszystkich typów napędów byłoby kłopotliwe dla producentów baz danych. Różni producenci poradzili sobie na różne sposoby. Bazy danych MySQL i PostgreSQL cedują to zadanie na narzędzia systemu operacyjnego. Również baza danych Oracle, backup'owana klasyczną metodą, wymaga użycia narzędzi zewnętrznych aby zapisać backup na taśmach.
Sprawa wygląda zupełnie inaczej gdy użyty zostanie RMAN - Recovery MANager. Utworzenie bazy danych Oracle, z włączonym trybem ARCHIVELOG, pozwala na użycie produktu RMAN i natychmiastowe wykonywanie backup'u na dysk podczas normalnej pracy bazy danych. Aby RMAN mógł zapisywać backup bezpośrednio na taśmę niezbędne jest wskazanie instancji Oracle lokalizacji biblioteki pozwalającej na obsługę konkretnego napędu taśmowego. Na systemach Unix/Linux jest to link do biblioteki libobk.so
utworzony w $ORACLE_HOME/lib
. Na Windows umieszczenie biblioteki o nazwie orasbt.dll
w systemowej ścieżce wyszukiwania - %PATH%
. Biblioteki instalowane są razem z oprogramowaniem systemu backp'owego. Warto zwrócić uwagę aby użytkownik, na którym pracuje instancja bazy danych, miał prawo do wykonywania biblioteki. Dostępność tej biblioteki jest oczywiście, również niezbędna podczas odtwarzania backup'u.
Dla najprostszych rozwiązań taśmowych - jeden napęd podłączony bezpośrednio do hosta z instancją bazy danych (nie dotyczy RAC) - Oracle przygotował darmową wersję swojego produktu: Oracle Secure Backup Express. OSB w pełni integruje się z bazą danych, RMAN, Oracle Cloud, Exadata czy Oracle Enterprise Manager i Grid Control. A dzięki Oracle Secure Backup Cloud Module potrafi wykonać backup bezpośrednio do Amazon S3. Płatnymi rozwiązaniami firm trzecich są np. Veritas NetBackup (dawniej Symantec NetBackup) czy EMC NetWorker (dawniej Legato NetWorker).
Aby testować skrypty RMAN'a, nie mając dostępu do napędu taśmowego, Oracle udostępnia bibliotekę testową pozwalającą na symulowanie takowego napędu na dysku. Można jej użyć wykonując poniższy skrypt z poziomu rman'a podłączonego do bazy danych np. komendą 'rman target /
':
run {
allocate channel t1 type 'sbt_tape' PARMS="SBT_LIBRARY=oracle.disksbt, ENV=(BACKUP_DIR=/ora_backup)";
backup database;
}
Katalog /ora_backup
musi istnieć, a użytkownik na którym pracuje instancja bazy danych musi mieć do niego prawo zapisu. W logu rman'a będzie można zobaczyć wpis: "WARNING: Oracle Test Disk API".
Kanał, tworzony komendą 'allocate channel
', jest nowym procesem (na Windows wątkiem) powstającym na hoście na którym pracuje instancja bazy danych. Proces ten przesyła strumień danych z plików bazodanowych do napędu taśmowego wykorzystując bibliotekę libobk.so
(na Windows orasbt.dll
). Oracle steruje biblioteką ustawiając zmienne środowiskowe dla procesu kanału opcją PARMS
. W powyższym przykładzie w ten sposób został wskazany katalog, w którym ma być zapisany backup.
UWAGA: nie należy używać biblioteki testowej do wykonywania backup'ów produkcyjnych. Ma małą wydajność gdyż jest optymalizowana dla taśm, a nie dysków.
Do pełnego testowania wszystkich warstw oprogramowania potrzebnego do wykonania backup'u na taśmę służy narzędzie sbttest. Wywoływane jest z linii komend i dostępne tylko dla systemów Unix/Linux. Dokonuje zapisu na taśmę aby później ten zapis odczytać. Dzięki temu można sprawdzić czy RMAN oraz oprogramowanie klienta backup'u jest skonfigurowane poprawnie i czy nadane są odpowiednie uprawnienia. Dla systemu Windows istnieje narzędzie loadsbt.exe, ale o mniejszej funkcjonalności.
Podczas diagnozowania problemów z backupem na taśmę warto zwrócić uwagę na 2 błędy:
ORA-19511 - komunikat dla tego błędu nie pochodzi z Oracle tylko z oprogramowania obsługującego taśmy. Problemów nie należy, więc szukać po stronie Oracle.
ORA-27206 - komunikat Oracle dla tego błędu: 'requested file not found in media management catalog' wskazuje wyraźnie, że problemów należy szukać po stronie oprogramowania obsługującego taśmy.
Linki:
O architekturze RMAN -
O zaletach dostępu blokowego RMAN'a -
O tym jak działają kanały RMAN'a -
Oracle Secure Backup - https://www.oracle.com/database/technologies/high-availability/secure-backup.html
Veritas NetBackup - https://www.veritas.com/protection/netbackup
EMC NetWorker - https://www.delltechnologies.com/pl-pl/data-protection/data-protection-suite/networker-data-protection-software.htm
#database #oracle #programming #sql #plsql #backend #coding #development #rman #backup #restore #recovery #osb #networker #netbackup #mysql #postgresql #dba4dev #marcinbadtke
@PerlMonk: Interesujące, w telekomach, jest jeszcze to, że NIE WOLNO im trzymać danych starszych niż 12 miesięcy. Podobne ograniczenia mają firmy obsługujące płatności elektroniczne.
Termin #database na dziś:
view - widok - dostosowana do potrzeb prezentacja danych z jednej lub więcej tabel. Nie przechowuje danych lecz za każdym użyciem widoku dane zostają pobrane z tabel na których widok zbudowano. Mowa o view tu: .
Do czego Ty wykorzystujesz widoki (view) ?
Keywords: #oracle #programming #sql #plsql #backend #coding #development #mysql #postgresql #sqlserver #dba4dev #marcinbadtke
@Marcin Badtke: tak jak wyglądały w określonym punkcie w czasie
coś na kształt snapshotów......
@Anna Lisik: Dokładnie tak :-) Z możliwością odświeżania 'on commit' lub 'on demand'.
Termin #database na dziś:
UUID - Universal Unique Identified - 128bitowy numer używany do jednoznacznej identyfikacji obiektu w internecie. W #Oracle można wygenerować jego odpowiednik - GUID - używając funkcji SYS_GUID(). A w #PostgreSQL można użyć funkcji: uuid_generate_v4(). Przydatne do nadawania globalnie unikalnych wartości klucza głównego (primary key). Mowa o tym w: .
Jak Ty generujesz wartości dla klucza głównego (primary key) ?
Keywords: #programming #sql #plsql #backend #coding #development #mysql #sqlserver #dba4dev #marcinbadtke
@Anna Lisik: Proszę :-) Jest darmowy z https://pixabay.com/pl/illustrations/p%C5%82atki-%C5%9Bniegu-%C5%9Bnieg-opady-%C5%9Bniegu-554635/ - dostępny w różnych rozdzielczościach.
Mnie uczyli, że najważniejsza różnica to, że wątki współdzielą zasoby między sobą, a procesy mają niezależny przydział - coś się zmieniło w tym temacie?