administracja bazami danych
Transkrypt
administracja bazami danych
SPIS TREĝCI -2- SPIS TREĝCI ADMINISTRACJA BAZAMI DANYCH Rozdziaáy 1-13 1. ROLA ADMINISTRATORA ................................................................................................................................................................................... 4 § 1.1. Rodzaje uĪytkowników................................................................................................................................................................................... 4 § 1.2. Zadania administratora ................................................................................................................................................................................... 5 2. ARCHITEKTURA SYSTEMU ZARZĄDZANIA BAZĄ DANYCH ORACLE ................................................................................................... 6 § 2.1. PojĊcie instancji .............................................................................................................................................................................................. 6 § 2.2. Struktura pamiĊci SGA ................................................................................................................................................................................... 8 § 2.3. Proces Globar Area ......................................................................................................................................................................................... 9 3. PLIKI SYSTEMU ORACLE .................................................................................................................................................................................. 10 4. POàĄCZENIE Z INSTANCJĄ .............................................................................................................................................................................. 15 § 4.1. Sposób áączenia siĊ z instancją ..................................................................................................................................................................... 15 § 4.2. Klient Oracle ................................................................................................................................................................................................. 17 § 4.3. Rodzaje serwerów baz danych Oracle.......................................................................................................................................................... 18 5. PROCESY BAZY DANYCH ................................................................................................................................................................................. 22 § 5.1. Rodzaje procesów ......................................................................................................................................................................................... 22 § 5.2. Procesy drugoplanowe.................................................................................................................................................................................. 22 § 5.3. Procesy usáugowe i procesy uĪytkowników................................................................................................................................................. 25 6. URUCHAMIANIE I ZAMYKANIE INSTANCJI................................................................................................................................................. 26 § 6.1. Uruchamianie i zatrzymywanie serwisu nasáuchowego............................................................................................................................... 26 § 6.2. Uruchamianie i zatrzymywanie serwisu i instancji ...................................................................................................................................... 27 § 6.3. Otwieranie serwisu instancji przy pomocy programu Oradim..................................................................................................................... 27 § 6.4. Otwieranie instancji przy pomocy programu Oradim .................................................................................................................................. 27 § 6.5. Zatrzymywanie serwisu instancji i instancji................................................................................................................................................. 28 § 6.6. Otwieranie instancji przy pomocy SQL*Plus .............................................................................................................................................. 28 § 6.7. Zamykanie instancji ...................................................................................................................................................................................... 32 § 6.8. Przykáady uruchamiania i zamykania instancji ............................................................................................................................................ 33 Rok akademicki – 2007/2008 Notatki do wykáadów z przedmiotu „Administracja bazami danych” 7. PARAMETRY BAZY DANYCH ORACLE ......................................................................................................................................................... 37 § 7.1. Zmiany parametrów ...................................................................................................................................................................................... 37 § 7.2. Plik init<SID>.ora......................................................................................................................................................................................... 38 8. STRUKTURA PRZECHOWYWANIA ................................................................................................................................................................. 41 § 8.1. Warstwa fizyczna i logiczna przechowywania danych ................................................................................................................................ 41 § 8.2. Segmenty danych .......................................................................................................................................................................................... 50 § 8.3. Segmenty wycofania..................................................................................................................................................................................... 58 Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” SPIS TREĝCI § 8.4. Automatyczne zarządzanie wycofywaniem transakcji................................................................................................................................. 68 § 8.5. Zarządzanie przestrzeniami tabel i plikami danych ..................................................................................................................................... 68 § 8.6. Zarządzanie przestrzeniami tymczasowymi i automatycznego wycofywania ............................................................................................ 81 8.6.1. Zarządzanie przestrzeniami tymczasowymi........................................................................................................................................ 81 8.6.2. Zarządzanie przestrzeniami automatycznego wycofywania ............................................................................................................... 81 9. OBIEKTY BAZY DANYCH (POWTÓRZENIE) ................................................................................................................................................. 83 § 9.1. Tabela............................................................................................................................................................................................................ 83 § 9.2. Indeksy .......................................................................................................................................................................................................... 84 § 9.3. Perspektywy .................................................................................................................................................................................................. 85 § 9.4. Synonimy ...................................................................................................................................................................................................... 86 10. ZARZĄDZANIE BEZPIECZEēSTWEM ........................................................................................................................................................... 87 § 10.1. Autoryzacja przez plik haseá....................................................................................................................................................................... 87 § 10.2. UĪytkownicy ............................................................................................................................................................................................... 89 § 10.3. Przykáady .................................................................................................................................................................................................... 93 § 10.4. ZakoĔczenie sesji uĪytkownika .................................................................................................................................................................. 95 § 10.5. Profile.......................................................................................................................................................................................................... 97 § 10.6. Przykáady związane z zarządzaniem hasáami z poziomu profili.............................................................................................................. 103 § 10.7. Weryfikacja hasáa...................................................................................................................................................................................... 111 11. UPRAWNIENIA ................................................................................................................................................................................................. 115 § 11.1. Przykáadowe uprawnienia systemowe...................................................................................................................................................... 115 § 11.2. Przykáady .................................................................................................................................................................................................. 120 § 11.3. Uprawnienia obiektowe ............................................................................................................................................................................ 123 12. ROLE ................................................................................................................................................................................................................... 128 § 12.1. Tworzenie roli ........................................................................................................................................................................................... 128 § 12.2. Przyznawanie uprawnieĔ systemowych i ról ........................................................................................................................................... 132 § 12.3. Przyznawanie uprawnieĔ obiektowych .................................................................................................................................................... 134 13. PLIK PARAMETRÓW SPFILE<SID>.ORA .................................................................................................................................................... 136 Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” -3- 1. ROLA ADMINISTRATORA 1. ROLA ADMINISTRATORA § 1.1. Rodzaje uĪytkowników x UĪytkownik koĔcowy x x x Projektant/Programista x x x Korzysta z wczeĞniej przygotowanych interfejsów. Posiada uprawnienia do odczytywania i modyfikowania wybranych danych. Korzysta z narzĊdzi do projektowania aplikacji. Posiada uprawnienia do tworzenia bazy, tabel, … Administrator x x x x x x Opiekuje siĊ gotowymi aplikacjami, instaluje je. Zarządza uĪytkownikami, nadaje im uprawnienia. Odpowiada za ciągáoĞü pracy. Odpowiada za wydajnoĞü. Tworzy kopie bezpieczeĔstwa. … Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” -4- 1. ROLA ADMINISTRATORA -5– 2. ARCHITEKTURA SYSTEMU ZARZĄDZANIA BAZĄ DANYCH ORACLE -6- 2. ARCHITEKTURA SYSTEMU ZARZĄDZANIA BAZĄ DANYCH ORACLE § 1.2. Zadania administratora § 2.1. PojĊcie instancji x Instalacja systemu x Zapewnienie ciągáej pracy aplikacji. x Startowanie bazy. x Tworzenie kopii zapasowych. x Zapewnienie optymalnych warunków dostĊpu do bazy. x Dbanie o wydajnoĞü systemu. x Monitorowanie systemu. NaleĪy rozróĪniü pojĊcie bazy danych (pliki do przechowywania danych) od pojĊcia instancji. PojĊcie instancji bazy danych moĪna zilustrowaü nastĊpująco: x Zapewnienie dostĊpu do bazy na zasadach bezpieczeĔstwa okreĞlonych odpowiednią polityką x Zakáadanie lub kasowanie uĪytkowników. x Nadawanie lub odbieranie uprawnieĔ uĪytkownikom. x Przywracanie bazy po awarii. (tajnoĞü danych, zgodnoĞü z ustawami, …). x Baza danych – komplet plików przechowujących dane i zarządzanej przez specjalną aplikacjĊ. x Instancja – uruchomiona aplikacja do zarządzania bazą danych skáadająca siĊ ze wspólnej pamiĊci SGA oraz zestawu procesów drugoplanowych. DostĊp do danych odbywa siĊ poprzez instancjĊ. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 2. ARCHITEKTURA SYSTEMU ZARZĄDZANIA BAZĄ DANYCH ORACLE -7- 2. ARCHITEKTURA SYSTEMU ZARZĄDZANIA BAZĄ DANYCH ORACLE -8- § 2.2. Struktura pamiĊci SGA U1 U2 Un Procesy uĪytkowników Obszar SGA (System Globar Area) jest tworzony w pamiĊci RAM w momencie startu instancji. MoĪna go zilustrowaü nastĊpująco: … P1 P2 Pn Shared pool - Obszar wspóádzielony Procesy usáugowe Database buffers Bufor danych Globalny obszar systemowy SGA Shared SQL Area Redo buffers Bufor dziennika powtórzeĔ Wspóádzielony obszar poleceĔ SQL Instancja bazy danych Dictionary cache Bufor sáownika danych Procesy drugoplanowe Inne Rysunek 2.2.1. Globalny obszar systemowy SGA. Pliki bazy danych Rysunek 2.1.1. PojĊcie instancji Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” gdzie x Bufor danych - przechowuje dane odczytane z dysku; x Bufor dziennika powtórzeĔ - przechowuje informacje o zmianach wprowadzonych do bazy danych; Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 2. ARCHITEKTURA SYSTEMU ZARZĄDZANIA BAZĄ DANYCH ORACLE x -9- Obszar wspóádzielony - przeznaczony do obsáugi poleceĔ SQL i PL/SQL; x System Zarządzania Bazą Danych Oracle wykorzystuje pliki kodu i bazy danych, tj. pliki danych, uĪytkowników ( np. ich optymalizacjĊ ) Bufor sáownika danych - przechowuje informacje ze sáownika danych. x … dziennika powtórzeĔ, kontrolne, konfiguracyjne, haseá i rejestrujące sposób pracy bazy danych. x Total System Global Area Fixed Size Variable Size Database Buffers Redo Buffers 285212672 1287016 100666520 180355072 2904064 - 10 - 3. PLIKI SYSTEMU ORACLE Wspóádzielony obszar poleceĔ SQL - przechowuje informacje o poleceniach SQL x 3. PLIKI SYSTEMU ORACLE Pliki kodu (oracle code files) zawierają oprogramowanie systemu zarządzania bazą danych, programy usáugowe i skrypty z poleceniami SQL wykorzystywane m.in. do administrowania bytes bytes ....... /* Inne */ bytes /* Shared pool */ bytes bytes systemem, tworzenia bazy danych i róĪnego rodzaju dodatkowych obiektów systemowych. Pliki kodu znajdują siĊ w nastĊpujących podkatalogach katalogu domowego Oracle: bin, rdbms. Dane te moĪna otrzymaü z perspektywy dynamicznej V$SGA poleceniem: x SQL> SELECT * FROM v$sga; Pliki danych (data files) sáuĪą do przechowywania danych systemowych i danych wprowadzanych lub poleceniem edytora sqlplus: przez uĪytkownika. SQL> SHOW sga Zgodnie z konwencją pliki bazy danych posiadają rozszerzenie dbf. § 2.3. Proces Globar Area KaĪdy proces usáugowy i drugoplanowy ma przydzielony obszar pamiĊci operacyjnej zwany pamiĊcią procesu. Obszary te tworzą obszar pamiĊci nazywanym PGA – Proces Global Area, którego maksymalny rozmiar jest zgodny z parametrem instancji PGA_AGGREGATE_TARGET. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 3. PLIKI SYSTEMU ORACLE x Pliki kontrolne (control files) zawierają informacje o bazie danych, m.in. nazwy i poáoĪenie plików danych, plików dziennika powtórzeĔ, informacje o dostĊpnoĞci poszczególnych plików oraz dane wykorzystywane w czasie odtwarzania bazy danych po awarii. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 11 - 3. PLIKI SYSTEMU ORACLE - 12 - Przyjmuje siĊ, Īe pliki te posiadają rozszerzenia ctl lub dbf. Rysunek 3.1.2. Pliki dziennika powtórzeĔ. x Pliki kontrolne (control files) zawierają informacje o bazie danych, m.in. nazwy i poáoĪenie plików danych, plików dziennika powtórzeĔ, informacje o dostĊpnoĞci poszczególnych plików oraz dane Rysunek 3.1.1. Pliki kontrolne, danych i wycofywania. x Pliki dziennika powtórzeĔ (redo log files) rejestrują wszystkie operacje wykonywane na bazie danych. Pliki te są wykorzystywane m.in. do odtwarzania bazy danych po awarii. wykorzystywane w czasie odtwarzania bazy danych po awarii. Przyjmuje siĊ, Īe pliki te posiadają rozszerzenia ctl lub dbf. WyróĪnia siĊ dwa rodzaje plików dziennika powtórzeĔ: aktywne (online redo log files) i zarchiwizowane (archived redo log files). Zgodnie z konwencją aktywne pliki dziennika powtórzeĔ posiadają rozszerzenia log, a zarchiwizowane arc. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 3. PLIKI SYSTEMU ORACLE - 13 - 3. PLIKI SYSTEMU ORACLE - 14 - Rysunek 3.1.4. Pliki konfiguracyjne bazy. x x Pliki zawierają parametry konfiguracyjne sieci. Są one wykorzystywane przy poáączeniach z instancją. Są to pliki np. tnsnames.ora, listener.ora, sqlnet.ora …. Rysunek 3.1.3. Pliki kontrolne, danych i wycofywania. Pliki konfiguracyjne (init files) zawierają parametry konfiguracyjne bazy danych. Są one odczytywane przez system w czasie uruchamiania bazy danych. Pliki te posiadają nazwy init<SID>.ora, pwd<SID>.ora lub spfile<SID>.ora, gdzie <SID> oznacza nazwĊ instancji bazy danych, np. initXE.ora, pwdXE.ora lub spfileXE.ora. Rysunek 3.1.5. Sieciowe pliki konfiguracyjne. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 4. POàĄCZENIE Z INSTANCJĄ Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 15 - 5. PROCESY BAZY DANYCH - 16 - 4. POàĄCZENIE Z INSTANCJĄ § 4.1. Sposób áączenia siĊ z instancją # TNSNAMES.ORA Network Configuration File: #..............\network\admin\tnsnames.ora # Generated by Oracle configuration tools. # LISTENER.ORA Network Configuration File: # ………..\network\admin\listener.ora # Generated by Oracle configuration tools. XXXX = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = localhost)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = xxxx) /*nazwa LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = localhost)(PORT = 1521)) instancji*/ ) ) TEST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (HOST = localhost)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) /*nazwa (SERVICE_NAME = test) ) ) ) SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = test) (ORACLE_HOME = C:\oraclexe\app\oracle \product\10.2.0\server) (SID_NAME = test) x Na serwerze jest zainstalowany serwer Oracle i uruchomiony jest proces nasáuchowy Listener. x UĪytkownik áączy siĊ podając nazwĊ uĪytkownika, hasáo i identyfikator poáączenia. x NarzĊdzie klienckie odczytuje parametry poáączenia z lokalnego pliku tnsnames.ora. x Sygnaá idzie do programu nasáuchującego, który sprawdza: ) (SID_DESC = (GLOBAL_DBNAME = xxxx) (ORACLE_HOME = C:\oraclexe\app\oracle \product\10.2.0\server) (SID_NAME = xxxx) instancji*/ ) ) ) Rysunek 4.1.1. Proces nasáuchowy (Listener). x Na stacji roboczej musi byü zainstalowany klient Oracle. ) Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” o Czy instancja serwera jest uruchomiona? o Czy identyfikator uĪytkownika i hasáo jest poprawne? x Proces nasáuchowy tworzy proces serwera odpowiedzialny za realizacjĊ ĪądaĔ uĪytkownika. x Do uĪytkownika zwracany jest adres i port (TCP/IP) tak utworzonego procesu. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 5. PROCESY BAZY DANYCH - 17 - Uwaga. Instancji korzystających z tych samych plików danych moĪe byü wiele. UmoĪliwia to równomierne rozáoĪenie obciąĪeĔ ĪądaĔ wielu uĪytkowników. § 4.2. Klient Oracle Podamy teraz przykáad instalacji najprostszego klienta Oracle. W zasadzie kaĪde narzĊdzie firmy Oracle zawiera klienta. Z http://www.oracle.com/technology//software/index.html Instant Client moĪna pobraü pliki 5. PROCESY BAZY DANYCH - 18 - BAZA = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = ZYSKNT.MATH.UNI.LODZ.PL)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = baza) ) ) Po takiej instalacji dostĊpny jest z linii poleceĔ program sqlplus. Poza tym moĪna wykorzystywaü wszystkie programy, które wymagają klienta Oracle. Instantclient-basic-win32-10.2.0.1-20050930.zip InstantClientPackage-SQL*Plus. § 4.3. Rodzaje serwerów baz danych Oracle x Pliki te naleĪy rozpakowaü np. do katalogu c:\instantclient x Serwer dedykowany x W Mój Komputer->WáaĞciwoĞci->Zaawansowane->Zmienne Ğrodowiskowe Zmienne Ğrodowiskowe: o Konfiguracja dla 1-100 uĪytkowników. x Edytujemy ĞcieĪkĊ PATH i na początku dodajemy: c:\instantclient; o Dla kaĪdego uĪytkownika tworzony jest oddzielny proces serwera wraz z oddzielnym obszarem x Dodajemy nową: SQLPATH o wartoĞci c:\instantclient; pamiĊci (PGA). x Dodajemy nową: TNS_ADMIN o wartoĞci c:\instantclient; x Dodajemy nową: NLS_LANG o wartoĞci POLISH_POLAND.WE8MSWIN1252 x Plik tekstowy tnsnames.ora umieszczamy w katalogu c:\instantclient Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 5. PROCESY BAZY DANYCH Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 19 - 5. PROCESY BAZY DANYCH Instancja - 20 - Instancja Do kolejki Rysunek 4.3.1. Serwer dedykowany. x Serwer wielokanaáowy o Konfiguracja dla 100-300 uĪytkowników. o Przy uruchamianiu systemu tworzona jest staáa liczba procesów serwera. ĩądanie uĪytkownika Rysunek 4.3.2. Serwer wielokanaáowy. x Serwer wieloinstancyjny o Dla jednego zbioru plików danych tworzonych jest kilka instancji. przydzielane jest do wolnego procesu lub ustawiane jest w kolejkĊ. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 5. PROCESY BAZY DANYCH - 21 - 5. PROCESY BAZY DANYCH - 22 - 5. PROCESY BAZY DANYCH § 5.1. Rodzaje procesów Instancja_1 System Oracle wykorzystuje nastĊpujące trzy rodzaje procesów: x Drugoplanowe. x Usáugowe. x UĪytkowników. Instancja_2 § 5.2. Procesy drugoplanowe KaĪda instancja bazy danych moĪe posiadaü od … do … róĪnych procesów zwanych drugoplanowymi (backgroup processes). Ich liczba jest zaleĪna od konfiguracji, w jakiej pracuje baza danych. Instancja Oracle skáada siĊ miĊdzy innymi z nastĊpujących procesów drugoplanowych: x Proces monitorowania procesów (ang. process monitor process – PMON). Dokonuje on porządkowania po nieprawidáowym zakoĔczeniu procesu uĪytkownika. Wycofuje pozostawione niezatwierdzone transakcje i zwalnia zasoby zajĊte przez nieistniejący juĪ proces. Rysunek 4.3.3. Serwer wieloinstancyjny. x Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 5. PROCESY BAZY DANYCH Proces zapisujący do baz danych (ang. database writer process – DBWR). Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 23 - Dla zapewnienia wydajnego i równoczesnego operowania na danych, Oracle nie zezwala procesowi 5. PROCESY BAZY DANYCH x - 24 - Proces archiwizujący ( ang. archiver process – ARCH). uĪytkownika na bezpoĞrednie modyfikowanie bloku danych na dysku. Bloki, które muszą byü Proces ten jest uruchamiany, gdy baza danych znajduje siĊ w trybie archiwizowania rejestru zmodyfikowane lub te, do których wstawiane są dane, są najpierw przenoszone do wspólnego banku i wáączone jest automatyczne archiwizowanie. Kopiuje ostatnio zapeániony plik rejestru w miejsce buforów zwanego cache bufor ( ang. buffer cache). Bloki te są nastĊpnie zapisywane partiami na przydzielone na kopiĊ zapasową. dysk przez proces drugoplanowy DBWR. x Tak, wiĊc DBWR jest jedynym procesem, który ma prawa zapisu do plików Oracle. x Proces monitorujący system ( ang. system monitor process – SMON). Ten proces drugoplanowy wykonuje operacje takie, jak zwalnianie miejsca i scalanie przylegáych Proces zapisujący do rejestru ( ang. log writer process – LGWR). wolnych obszarów w jeden duĪy obszar. SMON jest równieĪ odpowiedzialny za odtwarzanie Za kaĪdym razem, gdy proces Oracle modyfikuje blok danych, zapisuje równieĪ zmiany do buforów transakcji podczas odtwarzania instancji ( w czasie uruchamiania instancji po awarii lub po rejestrów. Proces LGWR odpowiedzialny jest za zapisywanie buforów rejestrów do bezpoĞredniego zamkniĊciu w trybie przerwania - ABORT). pliku rejestru. Proces ten odczytuje partiami zawartoĞü buforów rejestrów i zapisuje je sekwencyjnie do bezpoĞredniego pliku rejestrowego. NaleĪy mieü na uwadze to, Īe LGWR jest jedynym procesem zapisującym do plików rejestrowych. Algorytm zatwierdzania transakcji Oracle zapewnia x Proces kontrolny ( ang. checkpoint process – CKPT). W momencie kontrolnym proces DBWR zapisuje wszystkie zmodyfikowane bloki na dysk. x …… przeniesienie zawartoĞci buforów rejestrów do bezpoĞredniego pliku rejestrowego za kaĪdym razem, gdy transakcja zostaje potwierdzona. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 5. PROCESY BAZY DANYCH - 25 - § 5.3. Procesy usáugowe i procesy uĪytkowników 7. PARAMETRY BAZY DANYCH ORACLE - 26 - 6. URUCHAMIANIE I ZAMYKANIE INSTANCJI UĪytkownik komunikuje siĊ z instancją za pomocą procesu tworzonego w momencie uruchomienia aplikacji. § 6.1. Uruchamianie i zatrzymywanie serwisu nasáuchowego Uruchamianie i zatrzymywanie serwisu nasáuchowego (Listener) moĪna w Ğrodowisku Windows dokonaü Dla kaĪdego procesu uĪytkownika tworzony jest jeden proces usáugowy, który wykonuje nastĊpujące operacje: w nastĊpujący sposób: Uruchamianie: x Analizuje i optymalizuje skáadniĊ poleceĔ SQL. c:\lsnrctl.exe x Wykonuje polecenia SQL. LSNRCTL> start x Odczytuje Īądane dane z dysku. lub x Przekazuje wyniki poleceĔ SQL do procesów uĪytkowników. c:\net start nazwa_serwisu_listenera Zatrzymywanie: KaĪdy proces usáugowy ma przydzielony obszar pamiĊci operacyjnej w PGA – Proces Global Area. c:\lsnrctl.exe LSNRCTL> stop lub c:\net stop nazwa_serwisu_listenera Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 6. URUCHAMIANIE I ZAMYKANIE INSTANCJI Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 27 - § 6.2. Uruchamianie i zatrzymywanie serwisu i instancji Do uruchamiania serwisu instancji i instancji moĪna uĪyü programu Oradim z parametrami: C:\oradim -STARTUP -SID sid [-STARTTYPE srvc | inst | srvc,inst] [-PFILE filename | SPFILE] gdzie: sid filename - nazwa instancji, - nazwa pliku konfiguracyjnego init<SID>.ora. W przypadku braku parametru -PFILE FILENAME lub SPFILE pliki konfiguracyjne szukane są 6. URUCHAMIANIE I ZAMYKANIE INSTANCJI - 28 - lub jednoczeĞnie z serwisem: c:\oradim -STARTUP -SID xe -STARTTYPE srvc,inst lub jeszcze dodatkowo ze wskazaniem pliku z parametrami c:\oradim -STARTUP -SID xe -STARTTYPE srvc,inst -PFILE c:\initxe.ora § 6.5. Zatrzymywanie serwisu instancji i instancji Ztrzymanie serwisu instancji i samej instancji moĪna wykonaü nastĊpująco: w katalogach domyĞlnych, najpierw plik z parametrami typu SPFILE a w przypadku jego braku plik typu c:\oradim -SHUTDOWN -SID xe -SHUTTYPE srvc,inst PFILE. § 6.6. Otwieranie instancji przy pomocy SQL*Plus Otwieranie samej instancji realizuje siĊ za pomocą polecenia STARTUP lub STARTUP OPEN. § 6.3. Otwieranie serwisu instancji przy pomocy programu Oradim Sam serwis instancji moĪna uruchomiü nastĊpująco: PoniĪsza sekwencja poleceĔ prowadzi do otwarcia instancji (musi byü uruchomiony proces nasáuchowy i serwis instancji): c:\oradim -STARTUP -SID xe -STARTTYPE srvc § 6.4. Otwieranie instancji przy pomocy programu Oradim Samą instancjĊ moĪna uruchomiü nastĊpująco: x Wywoáanie programu SQL*Plus z opcją /nolog. c:\sqlplus /nolog c:\oradim -STARTUP -SID xe -STARTTYPE inst Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 6. URUCHAMIANIE I ZAMYKANIE INSTANCJI x - 29 - 6. URUCHAMIANIE I ZAMYKANIE INSTANCJI - 30 - Doáączenie siĊ do instancji jako uĪytkownik SYS lub SYSTEM z uprawnieniami SYSOPER lub OPEN SYSDBA – predefiniowany administrator bazy danych. MOUNT SQL> CONNECT system/password@nazwa_instancji AS SYSDBA lub NOMOUNT SQL> CONNECT system AS SYSDBA x Zatrzymana Otwarcie instancji: Rysunek 6.6.1. Etapy uruchamiania instancji Tryb NOMOUNT jest wykorzystywany m.in. do tworzeni bazy danych i plików kontrolnych. SQL> STARTUP lub W tym trybie Oracle: SQL> STARTUP OPEN x Odczytuje Instancja ORACLE zostaáa uruchomiona. Baza danych zostaáa zamontowana. Baza danych zostaáa otwarta. pliki parametrów konfiguracyjnych instancji init<SID>.ora lub spfile<SID>.ora. W szczególnoĞci znajduje nazwy i lokalizacje plików kontrolnych. W wyniku wydania polecenia startup open lub startup instancja przechodzi przez trzy tryby x Tworzy i inicjuje obszar pamiĊci SGA. x Uruchamia procesy drugoplanowe. pracy: NOMOUNT, MOUNT i OPEN. x …. Administrator bazy danych moĪe ją równieĪ uruchomiü w trybie NOMOUNT i MOUNT. Do uruchomienia instancji w trybie NOMOUNT sáuĪy polecenie: SQL> STARTUP NOUMOUNT Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 6. URUCHAMIANIE I ZAMYKANIE INSTANCJI Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 31 - Tryb MOUNT jest wykorzystywany m.in. do zmiany poáoĪenia plików danych, zmiany poáoĪenia, tworzenia nowych i usuwania istniejących plików dziennika powtórzeĔ, odtwarzania bazy danych. W tym trybie Oracle: 6. URUCHAMIANIE I ZAMYKANIE INSTANCJI - 32 - SQL> ALTER DATABASE OPEN § 6.7. Zamykanie instancji Zamykanie instancji przebiega w trzech fazach. W fazie pierwszej są zamykane pliki danych i pliki x Odczytuje plik kontrolny w celu zlokalizowania plików danych i dziennika powtórzeĔ. dziennika powtórzeĔ, w drugiej instancja odáącza te pliki i zamyka pliki kontrolne. W fazie trzeciej są x Przyáącza pliki danych i pliki dziennika powtórzeĔ. usuwane procesy bazy danych i zwalniana jest pamiĊü zaalokowana dla obszaru SGA. Do uruchomienia instancji z bazą danych w trybie MOUNT sáuĪy polecenie SQL> STARTUP MOUNT lub z trybu NOMOUNT poleceniem SQL> ALTER DATABASE MOUNT W trybie OPEN są otwierane pliki danych i pliki dziennika powtórzeĔ, co powoduje, Īe baza danych staje siĊ dostĊpna dla uĪytkowników. Tryb ten jest równieĪ wykorzystywany do odtwarzania czĊĞci bazy danych po awarii. Do uruchomienia instancji z bazą danych w trybie OPEN sáuĪy polecenie InstancjĊ moĪna zamknąü w czterech trybach: NORMAL, TRANSACTIONAL, IMMEDIATE, ABORT. x ZamkniĊcie instancji w trybie NORMAL wykonuje siĊ za pomocą polecenia SHUTDOWN lub SHUTDOWN NORMAL. ZamkniĊcie w tym trybie czeka na zakoĔczenie wszystkich sesji (blokuje otwarcie nowych sesji). x ZamkniĊcie instancji w trybie TRANSACTIONAL wykonuje siĊ za pomocą polecenia SHUTDOWN TRANSACTIONAL. ZamkniĊcie w tym trybie czeka na zakoĔczenie wszystkich aktualnych transakcji uĪytkownika (blokuje otwarcie nowych sesji) i odáącza go. x Do zamkniĊcia instancji w trybie IMMEDIATE sáuĪy polecenie SHUTDOWN IMMEDIATE. Tryb ten SQL> STARTUP [OPEN] lub gdy baza jest w trybie MOUNT poleceniem róĪni siĊ od trybu NORMAL tym, Īe aktualnie wykonywane polecenia są przerywane i wszystkie aktywne transakcje są natychmiast wycofywane (blokuje otwarcie nowych sesji). Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 6. URUCHAMIANIE I ZAMYKANIE INSTANCJI - 33 - x W trybie ABORT instancjĊ zamyka siĊ za pomocą polecenia SHUTDOWN ABORT. Polecenie to 6. URUCHAMIANIE I ZAMYKANIE INSTANCJI - 34 - SQL> STARTUP ORACLE instance started. stosuje siĊ, gdy instancji nie moĪna zamknąü ani w trybie NORMAL ani IMMEDIATE. W wyniku wykonania polecenia SHUTDOWN ABORT wszystkie aktualnie wykonywane polecenia są Po zamkniĊciu w tym trybie mogą wystąpiü problemy przy ponownym otwarciu. MoĪe byü bytes bytes bytes bytes bytes - Baza danych zostaáa zamontowana. - Baza danych zostaáa otwarta. SQL> SHUTDOWN Database closed. Database dismounted. ORACLE instance shut down. potrzebne wykonanie polecenia RECOVERY …. - Baza danych zostaáa zamkniĊta. - Baza danych zostaáa zdemontowana. - Instancja ORACLE zostaáa zamkniĊta. SQL> STARTUP RESTRICT § 6.8. Przykáady uruchamiania i zamykania instancji ORACLE instance started. Instancja ma nazwĊ xe. Total System Global Area ... Redo Buffers c:\sqlplus /nolog 2904064 bytes - Baza danych zostaáa zamontowana. - Baza danych zostaáa otwarta. SQL> CONNECT hr/hr@xe SQL> CONNECT sys@xe AS SYSDBA ERROR: ORA-XXXXX: ORACLE only available to users with RESTRICTED SESSION privilege - ProszĊ podaü hasáo: ****** - Poáączono SQL> CONNECT sys@xe AS SYSDBA Enter password:****** Connected. SQL> SHUTDOWN Database closed. Database dismounted. ORACLE instance shut down. - Instancja ORACLE zostaáa uruchomiona. 285212672 bytes Database mounted. Database opened. SQL*Plus: Release 10.2.0.1.0 - Production on N Mar 11 18:18:17 2007 Copyright (c) 1982, 2005, Oracle. All rights reserved. - Baza danych zostaáa zamkniĊta. - Baza danych zostaáa zdemontowana. - Instancja ORACLE zostaáa zamkniĊta. - ProszĊ podaü hasáo: ****** - Poáączono SQL> GRANT RESTRICTED SESSION TO hr; - Przyznanie uprawnieĔ zakoĔczone powodzeniem. Grant succeeded. SQL> desc all_users SQL> CONNECT hr/hr@xe ERROR: ORA-...: ORACLE not available 6. URUCHAMIANIE I ZAMYKANIE INSTANCJI Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 35 - SQL> CONNECT sys@xe AS SYSDBA - ProszĊ podaü hasáo: ****** - Poáączono SQL> REVOKE RESTRICTED SESSION FROM hr; - Pozbawienie uprawnieĔ zakoĔczone powodzeniem. Revoke succeeded. - Poáączono. Connected. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Enter password:****** Connected. - Instancja ORACLE zostaáa uruchomiona. 285212672 1287016 100666520 180355072 2904064 Database mounted. Database opened. natychmiast przerywane, ale transakcje nie są wycofywane. Enter password:****** Connected. Total System Global Area Fixed Size Variable Size Database Buffers Redo Buffers 6. URUCHAMIANIE I ZAMYKANIE INSTANCJI SQL> SHUTDOWN ORA- XXXXX: baza danych nie jest zamontowana Instancja ORACLE zostaáa zamkniĊta. SQL> STARTUP NOMOUNT ORACLE instance started. SQL> SHUTDOWN Database closed. Database dismounted. ORACLE instance shut down. - Baza danych zostaáa zamkniĊta. - Baza danych zostaáa zdemontowana. - Instancja ORACLE zostaáa zamkniĊta. - 36 - ORA-XXXXX: nie moĪna startowaü juĪ aktywnej ORACLE - naleĪy ja najpierw zamknąü Total System Global Area ... Redo Buffers - Instancja ORACLE zostaáa uruchomiona. 285212672 bytes 2904064 bytes Z poziomu MOUNT moĪna przejĞü do poziomu OPEN otwarcia poleceniem: SQL> STARTUP OPEN ORACLE instance started. Total System Global Area ... Redo Buffers - Instancja ORACLE zostaáa uruchomiona. 285212672 bytes Database altered. 2904064 bytes Database mounted. Database opened. - Baza danych zostaáa zamontowana. - Baza danych zostaáa otwarta. SQL> SHUTDOWN IMMEDIATE Database closed. Database dismounted. ORACLE instance shut down. - Baza danych zostaáa zamkniĊta. - Baza danych zostaáa zdemontowana. - Instancja ORACLE zostaáa zamkniĊta. ORACLE instance started. Database mounted. Z poziomu NOMOUNT nie moĪna tym poleceniem przejĞü do poziomu OPEN. MoĪna jednak wykonaü nastĊpujące polecenia: SQL> ALTER DATABASE MOUNT; Database altered. SQL> ALTER DATABASE OPEN; SQL> STARTUP MOUNT Total System Global Area ... Redo Buffers SQL> ALTER DATABASE OPEN; - Instancja ORACLE zostaáa uruchomiona. 285212672 bytes Database altered. Uwaga. Poleceniem ALTER DATABASE nie moĪna obniĪaü poziomu otwarcia. 2904064 bytes - Baza danych zostaáa zamontowana. SQL> STARTUP ORA-XXXXX: cannot start already-running ORACLE-shut it down first Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 7. PARAMETRY BAZY DANYCH ORACLE - 37 - 7. PARAMETRY BAZY DANYCH ORACLE - 38 - Ustawienia obowiązują dopiero po restarcie systemu. 7. PARAMETRY BAZY DANYCH ORACLE SQL> ALTER SYSTEM SET open_cursors =400 SCOPE=BOTH; § 7.1. Zmiany parametrów System altered. W najnowszych wersjach Oracle uruchamiany system korzysta z binarnego piku parametrów spfile<SID>.ora. Jest moĪliwoĞü wystartowania z parametrami z odpowiednika, pliku tekstowego init<SID>.ora. W pliku binarnym SPFILE moĪemy zmieniaü wartoĞü parametrów z poziomu SQL. W pliku tekstowym PFILE jest to niemoĪliwe. Ustawienia obowiązują natychmiast i po restarcie. § 7.2. Plik init<SID>.ora W pliku init<SID>.ora (spfile<SID>.ora) ustawiane są miĊdzy innymi nastĊpujące parametry: DB_NAME - CONTROL_FILES OPEN_CURSORS DB_BLOCK_SIZE SHARED_POOL_SIZE BACKGROUND_DUMP_DEST USER_DUM_DEST COMPATIBILE LOG_ARCHIVE_START LOG_ARCHIVE_FORMAT LOG_ARCHIVE_DEST UNDO_MANAGEMENT PROCESSES HASH_JOIN_ENABLED … - Sposoby tworzenia tych plików pokazują nastĊpujące przykáady: ( z uprawnieniami SYSDBA) SQL> CREATE SPFILE='c:\spfilexe.ora' FROM PFILE='c:\initxe.ora'; SQL> CREATE PFILE='c:\initxe.ora' FROM SPFILE; Sposób zmiany pewnych parametrów z poziomu SQL pokazują nastĊpujące przykáady: SQL> ALTER SYSTEM SET resource_limit=TRUE SCOPE=MEMORY; System altered. Po restarcie systemu obowiązuje poprzednia wartoĞü. SQL> ALTER SYSTEM SET open_cursors =400 SCOPE=SPFILE; - Identyfikator bazy danych (maks. 8 znaków). Aby zmieniü nazwĊ istniejącej bazy danych, naleĪy uĪyü wyraĪenia CREATE CONTROLFILE w celu odtworzenia plików sterujących i okreĞliü nową nazwĊ. Nazwy plików sterujących. IloĞü jednoczeĞnie otwartych kursorów w czasie sesji. Rozmiar bloku bazy danych w bajtach. Rozmiar wspóádzielonej puli w bajtach. Miejsce, w którym przechowywane bĊdą pliki do Ğledzenia procesów drugoplanowych. Miejsce, w którym przechowywane bĊdą pliki do Ğledzenia procesów uĪytkownika. Wersja serwera, z którą zgodna jest instancja. Automatyczne archiwizowanie. Format nazwy plików archiwum. Miejsce archiwizowania plików rejestru. Metoda zarządzania wycofywaniem transakcji. Maksymalna iloĞü procesów chcących poáączyü siĊ z instancją. DostĊp do metody Hash Join w optymalizatorze zapytaĔ. … System altered. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 7. PARAMETRY BAZY DANYCH ORACLE Przykáadowy plik initxe.ora ( wersja z instalacji Expres Edition). db_cache_size=180355072 java_pool_size=4194304 large_pool_size=8388608 shared_pool_size=88080384 streams_pool_size=0 audit_file_dest='c:\oraclexe\app\oracle\admin\xe\adump' background_dump_dest='c:\oraclexe\app\oracle\admin\xe\bdump' compatible='10.2.0.1.0' control_files='c:\oraclexe\oradata\xe\control.dbf' core_dump_dest='c:\oraclexe\app\oracle\admin\xe\cdump' db_name='XE' DB_RECOVERY_FILE_DEST_SIZE=10G DB_RECOVERY_FILE_DEST='c:\oraclexe\app\oracle\flash_recovery_area' dispatchers='(PROTOCOL=TCP) (SERVICE=xeXDB)' job_queue_processes=4 open_cursors=300 os_authent_prefix='' pga_aggregate_target=90M remote_login_passwordfile='EXCLUSIVE' sessions=20 sga_target=270M shared_servers=4 undo_management='AUTO' undo_tablespace='UNDO' user_dump_dest='c:\oraclexe\app\oracle\admin\xe\udump' Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 39 - 7. PARAMETRY BAZY DANYCH ORACLE - 40 - WartoĞü wszystkich parametrów moĪna odczytaü z dynamicznej perspektywy V$PARAMETER juĪ od stanu NOMOUNT. SQL> SELECT name, value FROM v$parameter; WartoĞci parametrów nie wystĊpujących w pliku init<SID>.ora lub spfile<SID>.ora przyjmują wartoĞci domyĞlne. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA - 41 - 8. STRUKTURA PRZECHOWYWANIA - 42 - Rozdzielenie warstw fizycznej i logicznej uelastycznia zarządzanie systemem. 8. STRUKTURA PRZECHOWYWANIA Fizycznie baza skáada siĊ z plików danych. § 8.1. Warstwa fizyczna i logiczna przechowywania danych StrukturĊ przechowywania bazy danych ORACLE moĪna podzieliü na fizyczną i logiczną. Logicznie baza skáada siĊ z przestrzeni tabel (tablespace). Dla danej przestrzeni tabel musi istnieü, co najmniej jeden plik danych. Rysunek 8.1.2. Przestrzenie danych. Rysunek 8.1.1. Warstwa logiczna i fizyczna danych. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 43 - 8. STRUKTURA PRZECHOWYWANIA - 44 - KaĪdy plik danych jest logicznie podzielony na mniejsze jednostki. Tablespace Dane Najmniejszą jednostką logiczną pliku danych jest blok. Dane01.dbf Dane02.dbf Z bloków stanowiących ciągáy obszar zbudowane są rozszerzenia (extent). Segment to zbiór rozszerzeĔ. Rozszerzenie 1 Jednej tabeli przydzielany jest jeden i tylko jeden segment. Do jednego segmentu przydzielana jest jedna tabela. Rozszerzenie 3 Rozszerzenie 2 Segment Rozszerzenie 1 Rozszerzenie 2 Rozszerzenie 3 Rysunek 8.1.3. Rozszerzenia i segment. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA - 45 - NastĊpny rysunek ilustruje budowĊ segmentu (parametry bĊdą omówione póĪniej). 8. STRUKTURA PRZECHOWYWANIA Blok moĪna podzieliü na: x Nagáówek. x Wolną przestrzeĔ. x PrzestrzeĔ danych. - 46 Blok np. 8192 B Nagáówek bloku Wolna przestrzeĔ Dane Rysunek 8.1.5. Budowa bloku Nagáówek bloku (ang. block header) przechowuje miĊdzy innymi: x informacje o typie segmentu, w skáad, którego wchodzi, oraz adres bloku, x dane o transakcjach, w których blok jest uĪywany. x … Wolna przestrzeĔ bloku znajduje siĊ pomiĊdzy nagáówkiem i przestrzenią danych. Konstrukcja taka Rysunek 8.1.4. Budowa segmentu. Blok jest najmniejszą jednostką alokacji przestrzeni dyskowej dla bazy Oracle, skáadający siĊ z jednego pozwala na rozrastanie siĊ nagáówka, jak i przestrzeni danych. Początkowo wolna przestrzeĔ jest spójnym obszarem jednak operacje wstawiania i aktualizacji mogą byü przyczyną fragmentacji wolnej przestrzeni. lub wielu bloków systemu operacyjnego. Defragmentacja wolnej przestrzeni jest przeprowadzana przez system automatycznie. Rozmiar bloku jest ustawiany podczas tworzenia bazy przez parametr DB_BLOCK_SIZE. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 47 - Klauzula przechowywania (ang. storage clause) moĪe byü okreĞlona na poziomie przestrzeni tabel lub segmentu (tabeli). JeĪeli parametry przechowywania nie są jawnie ustawione na poziomie segmentu, to stosowane są parametry jego przestrzeni tabel (poza MINIMUM EXTENT). JeĪeli przestrzeĔ tabel nie ma jawnie okreĞlonych parametrów przechowywania przyjmowane są wartoĞci domyĞlne systemu. Po zmianie parametru przechowywania, nowa wartoĞü jest stosowana jedynie dla nowo przydzielanych 8. STRUKTURA PRZECHOWYWANIA - 48 - Po utworzeniu przestrzeni tabel plik danych skáada siĊ z bloku nagáówka, który jest pierwszym blokiem pliku oraz z wolnego zakresu bĊdącego pozostaáą czĊĞcią pliku danych. Podczas tworzenia segmentów, przydzielana jest im przestrzeĔ naleĪąca do wolnych zakresów. Zakresy zwalniane przez segmenty są dodawane do puli wolnych zakresów w przestrzeni tabel. Spójny fragment przestrzeni wykorzystywany przez segment nazywany jest wykorzystanym zakresem (ang. used extent). CzĊste przydzielanie i zwalnianie zakresów moĪe prowadziü do fragmentacji przestrzeni w pliku danych. W przestrzeni tabel moĪe powstaü ciągáy obszar wolnej przestrzeni záoĪonej z kilku zakresów, który zakresów. Nowe zakresy są przydzielane, gdy segment jest: x tworzony, x rozszerzany, x zmieniany. Zakresy są zwalniane, gdy segment jest: x x x x usuwany, zmieniany, obcinany, automatycznie zmniejszany (tylko segment wycofania). Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” moĪna záączyü (ang. coalesed) w jeden zakres. Takie záączenie w jeden zakres nastĊpuje, gdy: x SMON zainicjuje transakcjĊ przestrzeni (ang. space transaction), x system próbuje przydzieliü zakres, który potrzebuje wiĊcej przestrzeni niĪ przestrzeĔ jednego z sąsiednich zakresów, x wydane zostanie polecenie SQL> ALTER TABLESPACE nazwa_przestrzeni_tabel COALESCE; Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA - 49 - Proces SMON áączy zakresy w przestrzeniach tabel, w których PCTINCREASE > 0, zatem, aby záączenia nastĊpowaáy automatycznie w przestrzeniach zawierających obiekty uĪytkowników naleĪy 8. STRUKTURA PRZECHOWYWANIA - 50 - § 8.2. Segmenty danych Segmenty to obiekty bazy danych, które zajmują jej przestrzeĔ. Tabele są podstawowymi obiektami relacyjnych baz danych. Dane tabel są przechowywane w segmentach danych. w domyĞlnej klauzuli przechowywania przestrzeni tabel ustawiü PCTINCREASE = 1. PoniĪsze zapytanie pokazuje jak sprawdziü, które przestrzenie zawierają zakresy mogące podlegaü Dane wierszy są przechowywane w bazie w rekordach zmiennej dáugoĞci. Kolumny wiersza są zazwyczaj záączeniu. przechowywane w takim porządku, w jakim wystĊpują kolumny w tabeli. KaĪdy wiersz tabeli posiada: SQL> SELECT tablespace_name, total_extents, percent_extents_coalesced FROM dba_free_space_coalesced WHERE percent_extents_coalesced != 100; x Nagáówek wiersza – wykorzystywany do przechowywania liczby kolumn wiersza, oraz informacji o áaĔcuchu i statusie blokady wiersza. TABLESPACE_NAME TOTAL_EXTENTS PERCENT_EXTENTS_COALESCED USERS 7 42,857142857 x Dane wiersza – zawierające: dáugoĞci kolumn, wartoĞci kolumn. Na przechowanie dáugoĞci kolumny nieprzekraczającej 250 bajtów potrzebny jest 1 bajt, natomiast dla Jak widaü moĪemy záączyü zakresy w przestrzeni USERS. SQL> ALTER TABLESPACE users COALESCE; RóĪne typy segmentów mają róĪną skáonnoĞü do fragmentacji, dlatego zalecane jest umieszczanie ich w osobnych przestrzeniach tabel. dáuĪszych kolumn wymagane są 3 bajty. Dane znakowe mogą byü przechowywane w bazie jako áaĔcuchy staáej lub zmiennej dáugoĞci. Typy znakowe staáej dáugoĞci (CHAR, NCHAR) są przechowywane w zadeklarowanej dáugoĞci. Typy znakowe zmiennej dáugoĞci (VARCHAR2, NVARCHAR2) wykorzystują tylko przestrzeĔ potrzebną do zapisania bieĪącej wartoĞci kolumny. Wiersze tej samej kolumny mogą róĪniü siĊ dáugoĞcią. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 51 - Liczby w bazie danych ORACLE są zawsze (bez wzglĊdu na definicjĊ) przechowywane jako dane 8. STRUKTURA PRZECHOWYWANIA - 52 - x Nie jest jawnie przechowywana jak inne wartoĞci kolumn, zmiennej dáugoĞci. Mogą one mieü 38 cyfr znaczących. Liczbowy typ danych wymaga: jednego bajta na x Zapewnia najszybszą metodĊ dostĊpu do wiersza, wykáadnik, jednego bajta na kaĪde dwie cyfry znaczące mantysy, dodatkowo jednego bajta dla liczb x Jest wykorzystywana w indeksach do wyszukiwania wiersza z okreĞloną wartoĞcią klucza. ujemnych, jeĞli liczba cyfr znaczących jest mniejsza niĪ 38. Typ danych DATE jest siedmiobajtowym typem staáej dáugoĞci przechowującym datĊ i czas. Baza ORACLE udostĊpnia nastĊpujące typy danych do przechowywania wielkich obiektów (LOB - Large Object): x CLOB - przeznaczony do przechowywania duĪych iloĞci danych z zestawem znaków staáej szerokoĞci, x NCLOB - przeznaczony do przechowywania duĪej iloĞci danych znakowych staáej szerokoĞci, x BLOB - przeznaczony do przechowywania danych bez struktury, x BFILE - przeznaczony do przechowywania danych w plikach systemu operacyjnego. Przykáadowy ROWID mógáby skáadaü siĊ z nastĊpujących czĊĞci (w zaleĪnoĞci od wersji Oracle): x Numeru obiektu danych (ang. Data Object Number), który jest unikalnym w caáej bazie numerem przypisanym do kaĪdego obiektu danych, x WzglĊdnego numeru pliku (ang. Relative File Number), który jest unikalnym numer pliku w ramach przestrzeni tabel, x Numeru bloku (ang. Block Number), który reprezentuje pozycjĊ bloku zawierającego dany wiersz w pliku danych, x Numeru wiersza (ang. Row Number), który identyfikuje numer pozycji wiersza w katalogu wierszy nagáówka bloku. ROWID W bazie ORACLE istnieje specjalny typ danych dla identyfikatorów wierszy – ROWID. ROWID jest pseudokolumną typu ROWID, posiadającą nastĊpujące wáaĞciwoĞci: x Jest unikalnym identyfikatorem kaĪdego wiersza w caáej bazie danych, Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Nr obiektu danych WzglĊdny numer pliku Numer bloku Rysunek 8.2.1. Budowa ROWID Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Numer wiersza 8. STRUKTURA PRZECHOWYWANIA - 53 - PoniĪsze zapytanie wybiera z tabeli osoby kolumny ROWID i id. 8. STRUKTURA PRZECHOWYWANIA - 54 - x Po zlokalizowaniu bloku, znając numer wiersza w katalogu wierszy umieszczonym w nagáówku bloku, moĪna odczytaü pozycjĊ wiersza w bloku. SQL> SELECT ROWID, id FROM osoby; ROWID ID AAABo6AADAAAAL7AAA 1 AAABo6AADAAAAL7AAB 2 Parametry skáadowania INITRANS i MAXTRANS oznaczają odpowiednio początkową i maksymalną liczbĊ obszarów transakcji tworzonych w bloku. Obszary transakcji przechowują informacje o wszystkich Jak widzimy dla wybranych wierszy x numer obiektu danych to AAABo6, x wzglĊdny numer pliku to AAD x numer bloku to AAAAL7 Natomiast wiersz o id = 1 ma numer wiersza w katalogu wierszy równy AAA. transakcjach dokonujących w danym momencie zmian w bloku. Dla kaĪdej transakcji przeznaczony jest ĝcieĪka lokalizacji wiersza przez ROWID: domyĞlna parametru MAXTRANS wynosi 255. Niska wartoĞü MAXTRANS ogranicza wykorzystywanie tylko jeden obszar, bez wzglĊdu na to ile wierszy modyfikuje. WartoĞü domyĞlna parametru INITRANS dla segmentów danych wynosi 1. Parametr MAXTRANS ustala limit wspóábieĪnych transakcji dokonujących zmian w bloku. WartoĞü x Na podstawie numeru obiektu danych system moĪe okreĞliü przestrzeĔ tabel, poniewaĪ segment moĪe byü umieszczony tylko w jednej przestrzeni tabel. wolnej przestrzeni na obszary transakcji i w ten sposób zwiĊksza przestrzeĔ przeznaczoną dla danych. Parametr PCTFREE okreĞla procentowo (w stosunku do rozmiaru bloku pomniejszonego o nagáówek) x Znając przestrzeĔ tabel i wzglĊdny numer pliku danych w przestrzeni tabel moĪna okreĞliü plik wielkoĞü obszaru zarezerwowanego dla aktualizacji wierszy juĪ znajdujących siĊ w bloku. JeĪeli wartoĞü parametru PCTFREE nie jest ustawiona przyjmowana jest wartoĞü domyĞlna. danych. x Dalej, znając plik danych i numer bloku, moĪna odszukaü blok zawierający wiersz. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA - 55 Blok np. 8192 B 8. STRUKTURA PRZECHOWYWANIA - 56 - Wysoki wspóáczynnik PCTFREE: Nagáówek bloku Wolna przestrzeĔ Dane PCTFREE Np. 20 PCTUSED Np. 40 x Powoduje rezerwowanie duĪej przestrzeni dla aktualizacji wierszy, x Zmniejsza wykorzystanie przestrzeni, x MoĪe zmniejszyü koszt przetwarzania (np. przy operacji UPDATE). DuĪą wartoĞü PCTFREE naleĪy ustawiaü, jeĪeli tabela zawiera wiersze, które w wyniku aktualizacji bĊdą zwiĊkszaáy rozmiar. Rysunek 8.2.2. Parametry PCTFREE i PCTUSED Wstawianie rekordów do bloku moĪe nastĊpowaü dopóty, dopóki parametr PCTFREE nie zostanie przekroczony. Niski wspóáczynnik PCTFREE: x Powoduje rezerwowanie maáej iloĞci miejsca na aktualizacjĊ wierszy, x Zapewnia lepsze wypeánienie bloku, x MoĪe powodowaü wysoki koszt przetwarzania (np. przy operacji UPDATE moĪe zabraknąü miejsca na nowe wartoĞci). Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Maáą wartoĞü PCTFREE naleĪy ustawiaü, jeĪeli tabela zawiera wiersze, które nie bĊdą zmieniane. Parametr PCTUSED jest podawany procentowo i okreĞla minimalny procent wykorzystanej przestrzeni, jaki system stara siĊ zachowaü w kaĪdym bloku. Blok jest ponownie umieszczany na liĞcie bloków wolnych, kiedy wykorzystana w nim przestrzeĔ spadnie poniĪej PCTUSED, czyli wtedy, gdy istnieje wystarczająca przestrzeĔ na wstawienie Ğredniej wielkoĞci wiersza. Lista bloków wolnych w segmencie, to lista bloków gotowych do przyjĊcia kolejnych wierszy. JeĪeli wartoĞü parametru PCTUSED nie jest ustawiona przyjmowana jest wartoĞü domyĞlna. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA - 57 - Przy wstawieniu wiersza system przegląda kolejne bloki z listy wolnych i szuka bloku z wystarczającą przestrzenią. Poprawne ustawienie PCTUSED powoduje, Īe system szybko znajduje blok mający wystarczająco duĪo wolnej przestrzeni dla wstawianego wiersza. Segment wycofania (rollback segment) przechowuje dane sprzed ich zmodyfikowaniem przez Segment ten (o nazwie SYSTEM) jest tzw. systemowym segmentem wycofania. Segment ten jest wykorzystywany m.in. przez transakcje zapisujące informacje do sáownika bazy danych. Powoduje gorsze wykorzystanie przestrzeni, x Zmniejsza koszt operacji UPDATE i DELETE, przez rzadkie przenoszenie bloku na listĊ wolnych. x Zmniejsza koszt operacji INSERT bo szybciej znajduje bloki dostĊpne do wstawiania. Oracle zaleca, aby kaĪda baza danych posiadaáa dodatkowe – niesystemowe segmenty wycofania. KaĪdy taki segment jest tworzony w okreĞlonej przestrzeni tabel, podanej w poleceniu tworzącym segment wycofania. Wysoki wspóáczynnik PCTUSED Zadania segmentów wycofania: x Powoduje lepsze wykorzystanie przestrzeni, x Wycofywanie transakcji – Kiedy transakcja dokonuje modyfikacji wiersza tabeli poprzednie wartoĞci x ZwiĊksza koszt np. operacji INSERT (wzrasta czas znalezienia bloku, do którego moĪe byü wstawiany wiersz). tego wiersza są przechowywane w segmencie wycofania, aĪ do zakoĔczenia transakcji. W przypadku wycofywania transakcji nastĊpuje przywrócenie wartoĞci wiersza na podstawie danych zapisanych JeĪeli wiersz jest tak duĪy, Īe nie mieĞci siĊ w jednym bloku, to system dzieli taki wiersz na mniejsze czĊĞci zwane elementami wiersza. KaĪdy element wiersza jest przechowywany w osobnym bloku wraz ze wskaĨnikiem do nastĊpnej czĊĞci wiersza. Wiersz taki nazywany jest wierszem w áaĔcuchu. w segmencie wycofania. x Odtwarzanie transakcji – Po awarii systemu z rozpoczĊtymi transakcjami przy ponownym otwieraniu bazy serwer musi wycofaü niezatwierdzone transakcje. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA - 58 - § 8.3. Segmenty wycofania niezatwierdzoną transakcjĊ. KaĪda baza danych musi posiadaü przynajmniej jeden segment wycofania. Niski wspóáczynnik PCTUSED x 8. STRUKTURA PRZECHOWYWANIA Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 59 - 8. STRUKTURA PRZECHOWYWANIA WyróĪnia siĊ nastĊpujące typy segmentów wycofania: ( [INITIAL rozmiar [K|M]] [NEXT rozmiar [K|M]] [MINEXTENTS liczba] [MAXEXTENTS liczba] [OPTIMAL rozmiar [K|M]| NULL] ); x Systemowy (SYSTEM) – tworzony podczas tworzenia bazy danych w przestrzeni tabel SYSTEM, moĪe byü wykorzystywany tylko przy zmianach obiektów z tej przestrzeni tabel. x Niesystemowe prywatne – wykorzystywane tylko przez jedną instancjĊ. x … KaĪda transakcja musi mieü przydzielony segment wycofania. JeĪeli nie wystąpi jawne Īądanie - 60 - STORAGE gdzie: okreĞlonego segmentu np. OPTIMAL SQL> SET TRANSACTION USE ROLLBACK SEGMENT nazwa_segmentu NAME nazwa_transakcji; serwer przydzieli segment z najmniejszą liczbą transakcji. OPTIMAL NULL - Pozwala wyspecyfikowaü optymalny rozmiar segmentu wycofania. System automatycznie dba o zmniejszanie segmentu do podanej wielkoĞci. - Opcja ta powoduje, Īe system nie bĊdzie automatycznie zmniejszaá rozmiaru segmentu. Przykáadowo poniĪsze polecenie tworzy segment wycofania o nazwie rb01 w przestrzeni tabel users. Rozmiar pierwszego rozszerzenia wynosi 256KB. Rozmiar drugiego i kaĪdego nastĊpnego rozszerzenia Segmenty wycofania tworzy siĊ poleceniem CREATE ROLLBACK SEGMENT. równieĪ wynosi 256KB. Minimalna liczba rozszerzeĔ zostaáa okreĞlona jako 2, a maksymalna na 20. Do wykonywania tego polecenia wymagane jest posiadanie uprawnienia systemowego o tej samej Oznacza to, Īe maksymalny rozmiar segmentu wycofania moĪe osiągnąü wartoĞü 20*256KB=5120KB. nazwie. Segmenty wycofania są tworzone przy pomocy polecenia o nastĊpującej skáadni: SQL> CREATE [PUBLIC] ROLLBACK SEGMENT nazwa_segmentu TABLESPACE nazwa_przestrzeni Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” SQL> CREATE ROLLBACK SEGMENT rb01 TABLESPACE users STORAGE ( INITIAL 256K Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA - 61 - 8. STRUKTURA PRZECHOWYWANIA - 62 - NEXT 256K MINEXTENTS 2 MAXEXTENTS 20 OPTIMAL 512K ); Po utworzeniu segment wycofania jest nieaktywny, tj. posiada status offline. W celu jego uaktywnienia (wáączenia) stosuje siĊ polecenie: SQL> ALTER ROLLBACK SEGMENT nazwa_segmentu ONLINE; Do wyáączenia segmentu wycofania sáuĪy polecenie: SQL> ALTER ROLLBACK SEGMENT nazwa_segmentu OFFLINE; Opis utworzonych segmentów wycofania moĪna uzyskaü wydając zapytania do perspektyw systemowych: Rysunek 8.3.1. Rollback segment DBA_SEGMENTS i DBA_ROLLBACK_SEGS. Transakcje wykorzystują zakresy segmentu wycofania w sposób cykliczny. W momencie zapeánienia Kiedy ostatni dostĊpny zakres jest zapeániony, wskaĨnik moĪe zostaü przeniesiony na początek pierwszego zakresu tylko wtedy, gdy jest on wolny. aktualnego segmentu wycofania wskaĨnik zapisów jest przesuwany na nastĊpny zakres. WskaĨnik nie moĪe przeskoczyü zajĊtego zakresu i przenieĞü siĊ na pierwszy wolny. JeĪeli po wypeánieniu aktualnego zakresu nastĊpny jest zajĊty, to nastĊpuje rozszerzenie segmentu Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 63 - wycofania, przez dodanie dodatkowego zakresu. Segment wycofania moĪe tak rosnąü aĪ do uzyskania maksymalnej liczby zakresów, wyspecyfikowanej w parametrze MAXEXTENTS. Dla segmentów wycofania moĪna podaü parametr przechowywania OPTIMAL, który okreĞla w bajtach rozmiar, do którego segment powinien powróciü, gdy bĊdzie to moĪliwe. Powrót rozszerzonego segmentu do rozmiaru podanego w parametrze OPTIMAL nastĊpuje, gdy istnieją spójne nieaktywne zakresy. System próbuje zmniejszaü segment wycofania dopóty, dopóki jego rozmiar nie jest optymalny. W Ğrodowisku bazy transakcyjnej, w którym zwykle mają miejsce krótkie transakcje, zalecanych jest istnienie wielu maáych segmentów wycofania (np. jeden segment wycofania na 4 wspóábieĪne transakcje). DuĪa liczba segmentów wycofania zapobiega rywalizacji o nagáówek segmentu wycofania. W przypadku Ğrodowiska, w który wykonuje siĊ gáównie przetwarzania wsadowe dokonujące wielu zmian przy maáej liczbie wspóábieĪnych transakcji, zalecane jest utworzenie maáej liczby duĪych segmentów wycofania, które powinny byü umieszczone w duĪych przestrzeniach tabel, aby umoĪliwiü im rozrastanie siĊ. Rozmiar segmentu wycofania zaleĪy od: x Typu wykonywanych instrukcji (wstawianie, modyfikacja, usuwanie). x Rozmiaru przetwarzanych rekordów. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA - 64 - Wstawienie rekordu do tabeli generuje mniej danych wycofania, niĪ usuniĊcie tego samego rekordu. Dzieje siĊ tak, dlatego, Īe usuniĊcie wymaga zapisania w segmencie wycofania caáego wiersza, natomiast wstawienie zapisuje tylko identyfikator ROWID. Uwagi. x Po utworzeniu segmentu wycofania jest on w trybie OFFLINE. x Segmentu utworzonego jako publiczny nie moĪna zmieniü na prywatny i odwrotnie. x Dla segmentu wycofania parametr MINEXTENTS musi byü wiĊkszy lub równy 2. x WartoĞü parametru OPTIMAL musi wynosiü przynajmniej tyle, co inicjalny rozmiar segmentu wyznaczony przez parametry INITIAL, NEXT i MINEXTENTS. x Dla segmentów wycofania wskazane jest, aby rozmiar wszystkich zakresów byá równy, czyli wartoĞü parametru INITIAL powinna byü równa wartoĞci parametru NEXT. x NaleĪy unikaü ustawiania parametru MAXEXTENTS na UNLIMITED, poniewaĪ moĪe to powodowaü nadmierny wzrost segmentów wycofania i plików danych w przypadku wystąpienia báĊdów aplikacji. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA - 65 - x W celu minimalizowania rywalizacji i fragmentacji naleĪy umieszczaü segmenty wycofania w specjalnie dla nich wydzielonej przestrzeni tabel. 8. STRUKTURA PRZECHOWYWANIA - 66 - Do usuwania segmentów wycofania sáuĪy polecenie DROP ROLLBACK SEGMENT. Jego uĪycie wymaga posiadania uprawnienia DROP ROLLBACK SEGMENT. Do zmiany segmentu wycofania sáuĪy polecenie ALTER ROLLBACK SEGMENT. Skáadnia polecenia DROP ROLLBACK SEGMENT: Skáadnia polecenia ALTER ROLLBACK SEGMENT: SQL> DROP ROLLBACK SEGMENT nazwa_segmentu; Przed usuniĊciem segmentu wycofania naleĪy go wyáączyü poleceniem ALTER ROLLBACK SEGMENT. SQL> ALTER ROLLBACK SEGMENT nazwa_segmentu { ONLINE|OFFLINE |STORAGE storage_clause |SHRINK [TO liczba [K|M] ] }; gdzie: Utwórzmy segment wycofania rb02. wáączone przez instancjĊ jest ustalana parametrem MAX_ROLLBACK_SEGMENT. Zaleca siĊ ustawiaü go na SQL> CREATE ROLLBACK SEGMENT rb02 TABLESPACE users STORAGE ( INITIAL 100K NEXT 100K OPTIMAL 4M MINEXTENTS 20 MAXEXTENTS 100 ); PoniĪsze zapytanie pokazuje, Īe zostaá utworzony segment wycofania rb02 i jest on w trybie OFFLINE. liczbĊ o jeden wiĊkszą od liczby wymaganych w instancji niesystemowych segmentów wycofania. SQL> SELECT segment_name, status FROM dba_rollback_segs; SHRINK - Powoduje zmniejszenie rozmiaru segmentu do wskazanego rozmiaru, lub rozmiaru podanego w parametrze OPTIMAL w przypadku, gdy rozmiar nie zostaá podany. Aby segment wycofania byá automatycznie wáączany przez instancjĊ musi byü wyspecyfikowany w pliku parametrów, przez parametr ROLLBACK_SEGMENTS. Liczba segmentów wycofania, które mogą byü W momencie otwierania bazy danych segmenty wycofania są przydzielane instancji. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 67 SEGMENT_NAME SYSTEM … RB02 STATUS ONLINE … OFFLINE UdostĊpnimy go teraz transakcjom, przeáączając go w tryb ONLINE. SQL> ALTER ROLLBACK SEGMENT rb02 ONLINE; SQL> SELECT segment_name,status FROM dba_rollback_segs WHERE segment_name='RB02'; SEGMENT_NAME RB02 STATUS ONLINE JeĪeli chcemy, aby nasz nowo utworzony segment rb02 byá dostĊpny po starcie systemu musimy wyspecyfikowaü je w parametrze ROLLBACK_SEGMENTS pliku init<sid>.ora. ROLLBACK_SEGMENTS = (rb02) UsuĔmy segment wycofania rb02. SQL> DROP ROLLBACK SEGMENT rb02; BàĄD w linii 1: ORA-XXXXX: wyspecyfikowany segment wycofania 'RB02' nie jest dostĊpny 8. STRUKTURA PRZECHOWYWANIA Segment wycofania zostaá zmieniony. SQL> DROP ROLLBACK SEGMENT rb02; Segment wycofania zostaá usuniĊty. § 8.4. Automatyczne zarządzanie wycofywaniem transakcji Od wersji 9i wprowadzono moĪliwoĞü automatycznego sposóbu wycofywania transakcji Undo Management. W pliku init<SID>.ora lub w spfile<SID>.ora musi znajdowaü siĊ wtedy wpis: undo_management=AUTO undo_retention=10800 undo_tablespace=undotbs01 System w przestrzeni tabel UNDOTBS01 tworzy kilka segmentów wycofywania i sam nimi zarządza. Uwaga. Przy tworzeniu bazy danych nazwa przestrzeni tabel wycofywania musi byü zgodna z nazwą w pliku init<SID>.ora lub w spfile<SID>.ora tzn. w naszym przykáadzie UNDOTBS01. Jak widaü polecenie spowodowaáo wyjątek, który oznacza brak moĪliwoĞci usuniĊcia wáączonego segmentu wycofania. Wyáączenie i usuniĊcie segmentu wycofania rb02. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 68 - SQL> ALTER ROLLBACK SEGMENT rb02 OFFLINE; § 8.5. Zarządzanie przestrzeniami tabel i plikami danych WáaĞciwoĞci przestrzeni tabel: Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA - 69 - 8. STRUKTURA PRZECHOWYWANIA - 70 - x NaleĪy tylko do jednej bazy. Do tworzenia przestrzeni tabel sáuĪy polecenie CREATE TABLESPACE o nastĊpującej skáadni: x Skáada siĊ z jednego lub wielu plików systemu operacyjnego. SQL> CREATE TABLESPACE nazwa_przestrzeni_tabel DATAFILE ’plik’ SIZE rozmiar [K|M] [ AUTOEXTEND ON NEXT rozmiar [K|M] [MAXSIZE rozmiar [K|M]] ] [ONLINE|OFFLINE] DEFAULT STORAGE ( [INITIAL rozmiar [K|M]] [NEXT rozmiar [K|M]] [MINEXTENTS liczba] [MAXEXTENTS liczba] [PCTINCREASE liczba] ); x MoĪe byü przyáączona i odáączona do bazy w trakcie jej pracy (poza przestrzenią SYSTEM). x MoĪe mieü status READ ONLY - „tylko odczyt” lub READ WRITE - „odczyt i zapis”, który moĪna zmieniaü podczas pracy bazy. Mechanizm przestrzeni tabel umoĪliwia miĊdzy innymi: x Rozmieszczenie przechowywanych danych na róĪnych urządzeniach fizycznych, co zwiĊksza wydajnoĞci operacji zapisu i odczytu przez zmniejszenie rywalizacji dostĊpu do dysku. x Dokonanie czĊĞciowych archiwizacji oraz czĊĞciowego odtworzenia archiwum. gdzie: x Przechowywanie statycznych danych na urządzeniach „tylko do odczytu”. Baza danych zawsze zawiera przestrzeĔ tabel SYSTEM, która przechowuje sáownik danych oraz segment wycofania SYSTEM. plik rozmiar ONLINE OFFLINE - oznacza nazwĊ pliku wraz z peánią ĞcieĪką dostĊpu oznacza rozmiar pliku podany w bajtach, kilobajtach (K) lub megabajtach (M) powoduje utworzenie aktywnej przestrzeni tabel powoduje utworzenie nieaktywnej przestrzeni tabel Utwórzmy przestrzeĔ table dane. Do tworzenia przestrzeni tabel sáuĪy polecenie CREATE TABLESPACE. Do jego uĪycia potrzebne jest uprawnienie systemowe CREATE TABLESPACE. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 71 - ( INITIAL 512K NEXT 512K PCTINCREASE 20 MINEXTENTS 2 MAXEXTENTS 20 ); PoniĪsza instrukcja tworzy przestrzeĔ tabel baza skáadającą siĊ z dwóch plików danych. SQL> CREATE TABLESPACE baza DATAFILE 'c:\oraclexe\oradata\xe\baza_1_live.dbf' SIZE 1M AUTOEXTEND ON NEXT 1M MAXSIZE 50M, 'c:\oraclexe\oradata\xe\baza_2_live.dbf' SIZE 1M AUTOEXTEND ON NEXT 1M MAXSIZE 50M DEFAULT STORAGE ( INITIAL 10K NEXT 50K MINEXTENTS 1 MAXEXTENTS 999 PCTINCREASE 10 ) ONLINE; SQL> CREATE TABLESPACE dane DATAFILE 'c:\oraclexe\oradata\xe\dane.dbf' SIZE 5M DEFAULT STORAGE 8. STRUKTURA PRZECHOWYWANIA - 72 - Przestrzenie tabel moĪna zmieniaü poleceniem ALTER TABLESPACE. Skáadnia polecenia ALTER TABLESPACE: SQL> ALTER TABLESPACE nazwa_przestrzeni_tabel { ADD DATAFILE 'plik' [autoextend_clause] [ , 'plik' [autoextend_clause] ] | RENAME DATAFILE 'plik' [,'plik'] TO 'plik' [,'plik'] | COALESCE | DEFAULT STORAGE storage_clause }; PrzestrzeĔ tabel moĪna usunąü z bazy poleceniem DROP TABLESPACE. Skáadnia polecenia DROP TABLESPACE: SQL> DROP TABLESPACE nazwa_przestrzeni_tabel [INCLUDING CONTENTS [CASCADE CONSTRAINTS] ]; gdzie: INCLUDING CONTENTS CASCADE CONSTRAINTS - Powoduje usuniĊcie wszystkich segmentów (tabel z danymi) przed jej usuniĊciem. - Powoduje usuniĊcie wiĊzów spójnoĞci referencyjnej z tabel przechowywanych w innych przestrzeniach, które odwoáują siĊ do tabel usuwanej przestrzeni. Rozmiar przestrzeni tabel moĪna zwiĊkszyü przez: x Dodanie nowego pliku danych (ALTER TABLESPACE), x ZwiĊkszenie rozmiaru juĪ istniejącego pliku. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA - 73 - Zmiana rozmiaru pliku danych moĪe nastĊpowaü w wyniku: - 74 - Skáadnia klauzuli autoextend_clause: AUTOEXTEND {OFF |ON [NEXT liczba [K|M]] [MAXSIZE {UNLIMITED|liczba [K|M]}]} Przykáad 8.5.1. Zobaczmy, jakie pliki danych przestrzeni tabel baza mogą ulegaü automatycznemu rozszerzeniu. x Wydania polecenia ALTER DATABASE (tzw. rĊczna zmiana rozmiaru pliku), x Automatycznego rozszerzenia. PoniĪsze polecenie zwiĊksza rozmiar dwóch plików danych przestrzeni baza. SQL> ALTER DATABASE DATAFILE 'c:\oraclexe\oradata\xe\baza_1_live.dbf', 'c:\oraclexe\oradata\xe\baza_2_live.dbf' RESIZE 2M; Automatyczne zwiĊkszenie rozmiaru pliku danych moĪe nastĊpowaü, jeĪeli opcja pliku danych AUTOEXTEND jest wáączona, co moĪe byü spowodowane uĪyciem nastĊpujących poleceĔ zawierających klauzulĊ autoextend_clause: x x x x 8. STRUKTURA PRZECHOWYWANIA SQL> SELECT file_name, autoextensible FROM dba_data_files WHERE tablespace_name = 'BAZA'; FILE_NAME C:\ORACLEXE\ORADATA\XE\BAZA_1_LIVE.DBF C:\ORACLEXE\ORADATA\XE\BAZA_2_LIVE.DBF AUTOEXTENSIBLE YES YES Jak widaü wszystkie mogą byü rozszerzane automatycznie przez system. Odáączmy tĊ wáaĞciwoĞü. SQL> ALTER DATABASE DATAFILE 'c:\oraclexe\oradata\xe\baza_2_live.dbf', 'c:\oraclexe\oradata\xe\baza_1_live.dbf' AUTOEXTEND OFF; CREATE DATABASE (dla tworzonych plików danych), ALTER DATABASE (dla istniejących plików danych), CREATE TABLESPACE (dla tworzonych plików danych), ALTER TABLESPACE (dla istniejących plików danych). SQL> SELECT file_name, autoextensible FROM dba_data_files WHERE tablespace_name = 'BAZA'; Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA FILE_NAME C:\ORACLEXE\ORADATA\XE\BAZA_1_LIVE.DBF C:\ORACLEXE\ORADATA\XE\BAZA_2_LIVE.DBF - 75 AUTOEXTENSIBLE NO NO PrzestrzeĔ tabel moĪe mieü ustawiony nastĊpujący status: x ONLINE x READ ONLY x READ WRITE x OFFLINE Do przestrzeni tabel, która ma status OFFLINE, uĪytkownicy nie mają dostĊpu (tzn. nie mają dostĊpu do juĪ istniejących obiektów oraz nie mogą tworzyü w niej nowych obiektów). Podczas przeáączania przestrzeni w stan OFFLINE system wykonuje punkt kontrolny (bĊdzie o nim mowa w dalszej czĊĞci) na wszystkich plikach bazy oraz odnotowuje to zdarzenie w sáowniku danych i w pliku kontrolnym. ZamkniĊcie i uruchomienie bazy nie zmienia stanów przestrzeni tabel. 8. STRUKTURA PRZECHOWYWANIA - 76 TABLESPACE_NAME USERS STATUS ONLINE Przykáad 8.5.3. Przeáączmy teraz przestrzeĔ tabel users w stan OFFLINE. SQL> ALTER TABLESPACE users OFFLINE; SQL> SELECT tablespace_name, status FROM dba_tablespaces WHERE tablespace_name = 'BAZA'; TABLESPACE_NAME USERS STATUS OFFLINE Przykáad 8.5.4. PoniĪsze polecenie pokazuje, Īe w odáączonej przestrzeni tabel nie moĪna tworzyü obiektów. SQL> CREATE TABLE t1 (id NUMBER) TABLESPACE users; BàĄD w linii 1: ORA-XXXXX: przestrzeĔ tabel 'USERS' jest offline, nie moĪna przydzieliü w niej miejsca PrzestrzeĔ tabel ze statusem READ ONLY jest niedostĊpna dla operacji modyfikujących jej pliki danych. Przykáad 8.5.2. SprawdĨmy status przestrzeni tabel baza. System ORACLE nigdy nie modyfikuje plików danych przestrzeni READ ONLY, co pozwala umieĞciü je na SQL> SELECT tablespace_name, status FROM dba_tablespaces WHERE tablespace_name = 'USERS'; urządzeniach tylko do odczytu np. CD-ROM. Aby moĪliwe byáo przeáączenie przestrzeni tabel w tryb READ ONLY musi ona speániaü nastĊpujące warunki: Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA - 77 - 8. STRUKTURA PRZECHOWYWANIA - 78 - Przykáad 8.5.5. Przykáad zmiany poáoĪenia plików danych. Utwórzmy tabelĊ w przestrzeni tabel baza, x musi byü wáączona (ONLINE), aby po zakoĔczeniu przeniesienia móc zaprezentowaü poprawnoĞü operacji. x nie mogą byü z nią związane Īadne aktywne transakcje, x nie moĪe zawieraü aktywnego segmentu wycofania, x nie moĪe podlegaü w tym momencie gorącej archiwizacji (bĊdzie opisane póĪniej). Zalecanym sposobem przeáączenia przestrzeni tabel w tryb READ ONLY jest uruchomienie instancji w trybie ograniczonego dostĊpu (RESTRICT). Przeáączenie przestrzeni tabel w tryb READ ONLY skutkuje wykonaniem punktów kontrolnych na SQL> CREATE TABLE t(k NUMBER) TABLESPACE baza; SQL> INSERT INTO t (k) VALUES (1); SQL> COMMIT; PoniĪsze zapytanie pokazuje, Īe istnieją dwa pliki danych przestrzeni baza. SQL> SELECT file_name, status FROM dba_data_files WHERE tablespace_name = 'BAZA'; FILE_NAME C:\ORACLEXE\ORADATA\XE\BAZA_1_LIVE.DBF C:\ORACLEXE\ORADATA\XE\BAZA_2_LIVE.DBF plikach danych tej przestrzeni. Przy przechodzeniu przestrzeni ze stanu READ ONLY w tryb pozwalający na zapis, muszą byü wáączone wszystkie pliki danych tej przestrzeni. PrzejĞcie do stanu peánego dostĊpu wykonuje siĊ poleceniem: STATUS AVAILABLE AVAILABLE Przeáączmy przestrzeĔ baza w tryb tylko do odczytu. SQL> ALTER TABLESPACE baza READ ONLY; SQL> ALTER TABLESPACE nazwa_przestrzeni_tabel READ WRITE; Do przeniesienia plików danych moĪna wykorzystaü polecenia: ALTER TABLESPACE lub ALTER DATABASE. SQL> SELECT tablespace_name, status FROM dba_tablespaces WHERE tablespace_name = 'BAZA'; TABLESPACE_NAME BAZA Polecenia te faktycznie sprawdzają tylko istnienie plików docelowych, przed ich wykonaniem naleĪy STATUS READ ONLY utworzyü pliki docelowe przez skopiowanie plików Ĩródáowych. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 79 - Dalej wykorzystamy narzĊdzie SQL*Plus, aby zatrzymaü, a nastĊpnie wystartowaü bazĊ w trybie RESTRICT (z bazą mogą áączyü siĊ tylko uĪytkownicy posiadający uprawnienie RESTRICTED SESSION). 8. STRUKTURA PRZECHOWYWANIA - 80 - TO 'c:\baza\baza_1_live.dbf', 'c:\baza\baza_2_live.dbf'; Instrukcja przetworzona. Przeáączamy przestrzeĔ w tryb ONLINE i ponownie restartujemy bazĊ. SQL> CONNECT system@xe AS SYSDBA Hasáo: Poáączony. SQL> SHUTDOWN Baza danych zamkniĊta. Baza danych zdemontowana. Instancja ORACLE zamkniĊta. SQL> STARTUP RESTRICT Instancja ORACLE wystartowaáa. Baza danych zamontowana. Baza danych otwarta. SQL> ALTER TABLESPACE baza ONLINE; Instrukcja przetworzona. SQL> SHUTDOWN Baza danych zamkniĊta. Baza danych zdemontowana. Instancja ORACLE zamkniĊta. SQL> STARTUP Instancja ORACLE wystartowaáa. Baza danych zamontowana. Baza danych otwarta. Przeáączamy przestrzeĔ w tryb OFFLINE. PoniĪsze zapytanie pokazuje, Īe pliki zostaáy przeniesione i obiekty przestrzeni są dostĊpne. SQL> ALTER TABLESPACE baza OFFLINE; SQL> SELECT file_name, status FROM dba_data_files WHERE tablespace_name = 'BAZA'; Instrukcja przetworzona. Kopiujemy plik przestrzeni tabel do katalogu C:\baza\ oraz wykonujemy poniĪsze polecenie. SQL> ALTER TABLESPACE baza RENAME DATAFILE 'c:\oraclexe\oradata\xe\baza_1_live.dbf', 'c:\oraclexe\oradata\xe\baza_2_live.dbf' Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” FILE_NAME C:\BAZA\BAZA_1_LIVE.DBF C:\BAZA\BAZA_2_LIVE.DBF STATUS AVAILABLE AVAILABLE SQL> SELECT * FROM t; Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 8. STRUKTURA PRZECHOWYWANIA - 81 - § 8.6. Zarządzanie przestrzeniami tymczasowymi i automatycznego wycofywania 8.6.1. Zarządzanie przestrzeniami tymczasowymi - 82 - SIZE 5M AUTOEXTEND ON RETENTION GUARANTEE; Muszą byü zmienione wartoĞci pewnych parametrów. DROP TABLESPACE bazatmp; ALTER SYSTEM SET undo_management='auto' scope=spfile; ALTER SYSTEM SET rollback_segments='' scope=spfile; ALTER SYSTEM SET undo_tablespace='undoxe' scope=spfile; CREATE TEMPORARY TABLESPACE bazatmp TEMPFILE 'c:\oraclexe\bazatmp01.dbf' SIZE 5 M EXTENT MANAGEMENT LOCAL; ALTER ALTER 8. STRUKTURA PRZECHOWYWANIA TABLESPACE bazatmp TEMPFILE OFFLINE; TABLESPACE bazatmp TEMPFILE ONLINE; ALTER DATABASE TEMPFILE 'c:\oraclexe\bazatmp01.dbf' RESIZE 8M; ALTER USER hr TEMPORARY TABLESPACE bazatmp; 8.6.2. Zarządzanie przestrzeniami automatycznego wycofywania DROP TABLESPACE undoxe; CREATE UNDO TABLESPACE UNDOXE DATAFILE 'c:\oraclexe\undoxe01.dbf' Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 9. OBIEKTY BAZY DANYCH (POWTÓRZENIE) Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 83 - 9. OBIEKTY BAZY DANYCH (POWTÓRZENIE) § 9.1. Tabela Tabela bazodanowa jest to obiekt, w którym logicznie przechowywane są dane. Polecenie tworzące tabele wygląda nastĊpująco: SQL> CREATE TABLE nazwa_tabeli (atrybut typ (DEFAULT wyraĪenie] [,..]) [PCTFREE liczba] [PCTUSED liczba] [INITRANS liczba] [MAXTRANS liczba] [TABLESPACE przestrzen_tabel] [STORAGE ( [INITIAL liczba [K/M]] [NEXT liczba [K/M] [PCTINCREAE liczba] [MINEXTENTS liczba] [MAXEXTENTS liczba] )]; gdzie: PCTFREE liczba PCTUSED liczba przestrzen_tabel INITIAL liczba - IloĞü wolnej przestrzeni pozostawionej w blokach. Procent wypeánienia bloku, poniĪej którego blok traktowany jest za dostĊpny. Nazwa przestrzeni tabel, w której skáadowane bĊdą dane. Rozmiar pierwszego rozszerzenia, jakie zostanie przydzielony tabeli. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 9. OBIEKTY BAZY DANYCH NEXT liczba PCTINCREASE liczba MINEXTENTS liczba MAXEXTENTS liczba - 84 - Rozmiar drugiego rozszerzenia. Procentowy przyrost rozmiaru kaĪdego kolejnego rozszerzenia. Liczba rozszerzeĔ, jakie zostaną przydzielone w chwili tworzenia. Maksymalna liczba rozszerzeĔ, z jakich moĪe skáadaü siĊ tabela. W przypadku braku któregoĞ parametru przyjmowana jest wartoĞü domyĞlna. Usuwanie tabeli: SQL> DROP TABLE nazwa_tabeli [CASCADE CONSTRAINTS]; Informacje o istniejących tabelach moĪna znaleĨü w perspektywach: DBA_TABLES, ALL_TABLES, USER_TABLES § 9.2. Indeksy Są to struktury fizyczne tworzone na Īądanie uĪytkownika, sáuĪą one do skrócenia czasu wyszukiwania rekordów speániających warunki selekcji okreĞlone w zapytaniu. SQL> CREATE INDEX nazwa_indeksu ON tabela(atrybut [,…]) [PCTFREE liczba] [PCTUSED liczba] [INITRANS liczba] [MAXTRANS liczba] [TABLESPACE przestrzen_tabel] [STORAGE ( [INITIAL liczba [K|M]] [NEXT liczba [K|M]] Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 9. OBIEKTY BAZY DANYCH - 85 - [PCTINCREAE liczba] [MINEXTENTS liczba] [MAXEXTENTS liczba] )]; 9. OBIEKTY BAZY DANYCH - 86 - x Uproszczenia zapytaĔ w stosunku do zapytaĔ kierowanych bezpoĞrednio do tabel. x …. SQL> CREATE [OR REPLACE] VIEW nazwa_perspektywy AS SELECT … [WITH CHECK OPTION]; gdzie: Usuwanie indeksów: Klauzula WITH CHECK OPTION powoduje, Īe w trakcie wstawiania i modyfikacji danych za pomocą SQL> DROP INDEX nazwa_indeksu; Informacje o istniejących indeksach moĪna znaleĨü w perspektywach: DBA_INDEXES, ALL_INDEXES, USER_INDEXES, DBA_IND_COLUMNS, perspektywy sprawdzane są warunki naáoĪone na nią i nie ma moĪliwoĞci wstawienia niepasujących danych. Usuwanie perspektyw: ALL_IND_COLUMNS USER_IND_COLUMNS SQL> DROP VIEW nazwa_perspektywy; § 9.4. Synonimy § 9.3. Perspektywy Struktury ograniczające zakres dostĊpnych danych do atrybutów krotek okreĞlonych w definicji; są definiowane na bazie, co najmniej jednej relacji lub innej perspektywy; jest pamiĊtana wyáącznie w postaci Synonimy są to obiekty pozwalające zastąpiü nazwy obiektów bazy danych innymi nazwami. SQL> CREATE [PUBLIC] SYNONIM nazwa FOR obiekt; definicji. Perspektywy stosowane są w celu: x Ograniczenia dostĊpu do tabel bazy danych. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 10. ZARZĄDZANIE BEZPIECZEēSTWEM Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 87 - 10. ZARZĄDZANIE BEZPIECZEēSTWEM Zapewnienie bezpieczeĔstwa systemu jest jednym z najwaĪniejszych zadaĔ stawianych przed administratorem bazy danych. § 10.1. Autoryzacja przez plik haseá UĪytkownicy w Oracle standardowo autoryzowani są przez bazĊ danych. W pewnych sytuacjach moĪna skorzystaü z autoryzacji przez plik haseá. Autoryzacja przez plik haseá dostĊpna jest dla uĪytkowników posiadających uprawnienia SYSOPER lub SYSDBA. Uprawnienia te dają uĪytkownikowi moĪliwoĞü wykonywania miĊdzy innymi nastĊpujących operacji: SYSDBA x Wykonywanie poleceĔ STARTUP i SHUTDOWN. x Wykonywanie polecenia ALTER DATABASE z klauzulami: OPEN, MOUNT, BACKUP. x Wykonywanie polecenia CREATE DATABASE. x Wykonywanie poleceĔ ARCHIVELOG oraz RECOVERY. x Tworzenie binarnego pliku parametrów poleceniem CREATE SPFILE. x Zawierają uprawnienie RESTRICTED SESSION. SYSOPER x Wykonywanie poleceĔ STARTUP i SHUTDOWN. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 10. ZARZĄDZANIE BEZPIECZEēSTWEM - 88 - x Wykonywanie polecenia ALTER DATABASE z klauzulami: OPEN, MOUNT, BACKUP. x Wykonywanie poleceĔ ARCHIVELOG oraz RECOVERY. x Tworzenie binarnego pliku parametrów poleceniem CREATE SPFILE. x Zawierają uprawnienie RESTRICTED SESSION. Plik haseá znajduje siĊ w katalogu: ...\database\pwd<SID>.ora Nowy plik haseá moĪna utworzyü programem orapwd z systemowej linii poleceĔ: c:\orapwd FILE=plik PASSWORD=hasáo ENTRIES= liczba gdzie: plik hasáo liczba - Parametr powinien zawieraü peáną ĞcieĪkĊ do nowego pliku haseá wraz z jego nazwą. - Hasáo, które bĊdzie obowiązywaáo uĪytkownika SYS do autoryzacji poza bazą danych. - IloĞü wpisów zarezerwowanych dla uĪytkowników z uprawnieniami SYSOPER oraz SYSDBA. Po osiągniĊciu limitu konieczne jest wygenerowanie nowego pliku. Uwaga. Przed utworzeniem nowego pliku haseá naleĪy zamknąü bazĊ danych i zatrzymaü usáugĊ, która uruchamia bazĊ danych w Ğrodowisku Windows. W celu skorzystania z autoryzacji przez plik haseá naleĪy poáączyü siĊ jako uĪytkownik z klauzulą AS SYSOPER lub AS SYSDBA, np. SQL> CONNECT sys AS SYSOPER; Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 10. ZARZĄDZANIE BEZPIECZEēSTWEM - 89 - Uwaga. Podczas instalacji Oracle w systemie operacyjnym Windows tworzona jest grupa uĪytkowników ORA_DBA. UĪytkownicy systemu operacyjnego dopisani do tej grupy, którzy posiadają uprawnienie SYSOPER lub SYSDBA nie są proszeni o podawanie hasáa podczas autoryzacji przez plik haseá. Uwaga. Informacje, którzy uĪytkownicy posiadają uprawnienia SYSDBA lub SYSOPER moĪna znaleĨü w perspektywie V_$PWFILE_USERS. SQL> desc v_$pwfile_users SQL> ALTER USER nazwa_uĪytkownika IDENTIFIED BY hasáo [DEFAULT TABLESPACE nazwa_przestrzeni] [TEMPORARY TABLESPACE nazwa_przestrzeni] [QUOTA {liczba [K | M] | UNLIMITED} ON nazwa_przestrzeni]... [PROFILE nazwa_profilu] [PASSWORD EXPIRE] [ACCOUNT { LOCK | UNLOCK }] SQL> SELECT * FROM v_$pwfile_users; SYSDB ----TRUE TRUE SYSOPER ------TRUE FALSE gdzie: § 10.2. UĪytkownicy nazwa_uĪytkownika Konta uĪytkowników tworzy siĊ poleceniem CREATE USER. Skáadnia polecenia CREATE USER: hasáo Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 10. ZARZĄDZANIE BEZPIECZEēSTWEM DEFAULT TABLESPACE TEMPORARY TABLESPACE QUOTA nazwa_profilu PASSWORD EXPIRE ACCOUNT - 90 - SQL> CREATE USER nazwa_uĪytkownika IDENTIFIED BY hasáo [DEFAULT TABLESPACE nazwa_przestrzeni] [TEMPORARY TABLESPACE nazwa_przestrzeni] [QUOTA {liczba [K | M] | UNLIMITED} ON nazwa_przestrzeni]... [PROFILE nazwa_profilu] [PASSWORD EXPIRE] [ACCOUNT { LOCK | UNLOCK }] Do zmiany parametrów uĪytkownika bazy sáuĪy polecenie ALTER USER. Skáadnia polecenia ALTER USER: NAME NULL? TYPE --------- --------- ------------USERNAME VARCHAR2(30) SYSDBA VARCHAR2(5) SYSOPER VARCHAR2(5) USERNAME -----------------------------SYS SYSTEM 10. ZARZĄDZANIE BEZPIECZEēSTWEM Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 91 - - Skáada siĊ maksymalnie z 30 znaków, w których wielkoĞü liter nie jest istotna. Przechowywane w postaci zaszyfrowanej w kolumnie PASSWORD tabeli SYS.USER$, jest równieĪ udostĊpniane przez kolumnĊ PASSWORD perspektywy DBA_USERS. - OkreĞla domyĞlną przestrzeĔ tabel, w której bĊdą tworzone obiekty uĪytkownika, jeĪeli nie wyspecyfikuje on jawnie przestrzeni skáadowania. W przypadku pominiĊcia tego parametru domyĞlną przestrzenią tabel dla uĪytkownika bĊdzie SYSTEM. Parametr ten nie ogranicza moĪliwoĞci tworzenia obiektów w innych przestrzeniach tabel. - OkreĞla tymczasową przestrzeĔ tabel, w której powstają segmenty tymczasowe uĪytkownika wykorzystywane podczas operacji sortowania duĪej iloĞci danych. - Pozwala okreĞliü limit miejsca dostĊpnego dla uĪytkownika w podanej przestrzeni tabel, wyraĪony w bajtach (domyĞlnie), kilobajtach K, megabajtach M. UĪycie sáowa UNLIMITED powoduje przyznanie nieograniczonego limitu. - Przypisuje uĪytkownikowi profil. PominiĊcie tej klauzuli powoduje przyznanie profilu DEFALUT. - Ustawia status konta oznaczający wygaĞniĊcie hasáa. - Blokuje (LOCK) lub odblokowuje (UNLOCK) konto uĪytkownika (zmienia status konta). Uwagi. x UĪytkownik, który tworzy uĪytkowników musi posiadaü uprawnienie systemowe CREATE USER. x Do zmiany uĪytkowników wymagane jest posiadanie uprawnienia ALTER USER. x UĪytkownik nieposiadający przyznanego uprawnienia ALTER USER moĪe jednak zmieniü swoje hasáo poleceniem ALTER USER. ALTER USER hr IDENTIFIED BY hr; Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - Nazwa tworzonego (zmienianego) uĪytkownika, skáadająca siĊ z maksymalnie 30 znaków, których wielkoĞü liter nie jest istotna. - Hasáo podawane w przypadku uwierzytelniania poprzez system zarządzania bazą danych. 10. ZARZĄDZANIE BEZPIECZEēSTWEM x - 92 - W poleceniu CREATE USER parametry DEFAULT TABLESPACE, TEMPORARY TABLESPACE są opcjonalne, jednak zaleca siĊ ich uĪywaü i przypisywaü inne przestrzenie tabel niĪ domyĞlna SYSTEM. x W momencie tworzenia uĪytkownika tworzony jest jednoczeĞnie schemat uĪytkownika o tej samej nazwie. x Schemat to nazwany zestaw obiektów takich jak: tabele, indeksy, ograniczenia, wyzwalacze, perspektywy, pakiety, procedury, funkcje, sekwencje. Schemat jest ĞciĞle związany z uĪytkownikiem, dlatego czĊsto siĊ go z nim utoĪsamia. x Usuwanie uĪytkowników wykonuje siĊ poleceniem DROP USER, do jego wykonywania wymagane jest uprawnienie systemowe DROP USER. Skáadnia polecenia DROP USER: SQL> DROP USER nazwa_uĪytkownika [CASCADE]; gdzie: nazwa_uĪytkownika - Nazwa usuwanego uĪytkownika CASCADE - UĪycie tej opcji powoduje usuniĊcie wszystkich obiektów uĪytkownika przed usuniĊciem jego samego. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 10. ZARZĄDZANIE BEZPIECZEēSTWEM - 93 - 10. ZARZĄDZANIE BEZPIECZEēSTWEM - 94 - odczytywania perspektywy DBA_USERS. ZaáóĪmy, Īe chcemy poáączyü siĊ jako uĪytkownik u2. § 10.3. Przykáady Przykáad 10.3.1. PoniĪsze polecenie tworzy uĪytkownika kowalski_jan z hasáem q1s#k45, który bĊdzie miaá przypisany domyĞlną przestrzeĔ tabel users oraz tymczasową temp. UĪytkownik ten bĊdzie mógá tworzyü obiekty (po przyznaniu odpowiednich uprawnieĔ systemowych) w przestrzeniach users Korzystając z perspektywy DBA_USERS sprawdzamy zakodowane hasáo uĪytkownika. SQL> SELECT password FROM dba_users WHERE username = 'U2'; i indx, iloĞü zajĊtej przez niego przestrzeni nie moĪe przekroczyü 1 MB, w kaĪdej z nich. PASSWORD E9F77666F376A74B SQL> CREATE USER kowalski_jan IDENTIFIED BY q1s#k45 DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 1M ON users QUOTA 1M ON indx; Zmieniamy hasáo uĪytkownika u2 i áączymy siĊ jako u2 z nowym hasáem. SQL> ALTER USER u2 IDENTIFIED BY nowe_hasáo; UĪytkownik zostaá zmieniony. SQL> CONNECT u2/nowe_hasáo; Poáączony. JeĪeli w schemacie kowalski_jan nie istnieją Īadne obiekty, to poleceniem A teraz korzystając z nieudokumentowanej opcji IDENTIFIED BY VALUES przywracamy poprzednie SQL> DROP USER kowalski_jan; UĪytkownik zostanie usuniĊty, w przeciwnym razie zostanie zgáoszony báąd: hasáo uĪytkownika. ORA-01922: potrzebna specyfikacja CASCADE, aby usunąü 'KOWALSKI_JAN'. jego hasáa. Aby tego dokonaü trzeba posiadaü uprawnienie systemowe ALTER USER oraz prawo SQL> ALTER USER u2 IDENTIFIED BY VALUES 'E9F77666F376A74B'; Perspektywa DBA_USERS pokazuje to samo zakodowane hasáo, a uĪytkownik moĪe siĊ áączyü przy uĪyciu swojego starego hasáa. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Przykáad 10.3.2. Przykáad ten pokazuje jak moĪna poáączyü siĊ jako dowolny uĪytkownik nie znając 10. ZARZĄDZANIE BEZPIECZEēSTWEM - 95 - SQL> SELECT password FROM dba_users WHERE username = 'U2'; 10. ZARZĄDZANIE BEZPIECZEēSTWEM - 96 - SesjĊ uĪytkownika koĔczy siĊ wydając polecenie PASSWORD E9F77666F376A74B SQL> CONNECT u2/stare_hasáo Poáączony. § 10.4. ZakoĔczenie sesji uĪytkownika ZakoĔczenia sesji uĪytkownika podáączonego do bazy danych: x UniemoĪliwia uĪytkownikowi wykonanie dalszych poleceĔ w bazie. x Zwalnia zablokowane zasoby. x WyĞwietli uĪytkownikowi komunikat. x Wymaga uprawnienia ALTER SYSTEM. SesjĊ uĪytkownika naleĪy zakoĔczyü gdy: x UĪytkownik przetrzymuje zasoby pilnie potrzebne innemu uĪytkownikowi. x DBA musi zamknąü bazĊ danych. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” SQL> ALTER SYSTEM KILL SESSION ’sid, serial#’; gdzie: sid - okreĞla nr sesji uĪytkownika (SESSION ID) serial# - okreĞla nr seryjny uĪytkownika Polecenie ALTER SYSTEM KILL SESSION x Wycofuje aktualną transakcjĊ uĪytkownika. x Zwalnia wszystkie aktualnie posiadane przez uĪytkownika blokady na tabelach i wierszach. x Zwalnia wszystkie zasoby zarezerwowane dla uĪytkownika. JeĞli sesja uĪytkownika oczekuje na zakoĔczenie transakcji, Serwer Oracle czeka, aĪ dziaáania to zakoĔczy siĊ. Nr identyfikacyjny sesji i nr seryjny sesji uĪytkownika moĪe odszukaü w perspektywie V$SESSION. Przykáad 10.4.1. Wykonanie kroków potrzebnych do zakoĔczenia sesji uĪytkownika hr. SQL> SELECT sid, serial#, username FROM v$session WHERE username=’HR’; SID 8 SERIAL# 103 USERNAME HR Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 10. ZARZĄDZANIE BEZPIECZEēSTWEM - 97 - SQL> ALTER SYSTEM KILL SESSION ’8,103’; 10. ZARZĄDZANIE BEZPIECZEēSTWEM § 10.5. Profile Profile są nazwanymi zbiorami limitów, dostarczającymi mechanizmu pozwalającego: x Ograniczyü przydzielone zasoby systemu (np. liczba jednoczesnych sesji uĪytkownika). x Prowadziü pewną politykĊ zarządzania hasáami. Aby kontrola limitów zdefiniowanych przez profile byá dokonywana, wymagane jest wáączenie jej poleceniem SQL> ALTER SYSTEM SET RESOURCE_LIMIT = TRUE; lub ustawienie wartoĞci parametru inicjalizacji (w pliku init<SID>.ora) RESOURCE_LIMIT = TRUE co zapewnia jej automatyczne wáączenie równieĪ przy kolejnym uruchomieniu bazy. Do tworzenia profili sáuĪy polecenie CREATE PROFILE. Aby je wykonywaü wymagane jest posiadanie CREATE PROFILE profile LIMIT [SESSIONS_PER_USER {liczba | UNLIMITED | DEFAULT}] [CPU_PER_SESSION {liczba | UNLIMITED | DEFAULT}] [CPU_PER_CALL {liczba | UNLIMITED | DEFAULT}] [CONNECT_TIME {liczba | UNLIMITED | DEFAULT}] [IDLE_TIME {liczba | UNLIMITED | DEFAULT}] [LOGICAL_READS_PER_SESSION {liczba | UNLIMITED | DEFAULT}] [LOGICAL_READS_PER_CALL {liczba | UNLIMITED | DEFAULT}] [COMPOSITE_LIMIT {liczba | UNLIMITED | DEFAULT}] [PRIVATE_SGA {liczba [K|M]| UNLIMITED | DEFAULT}}] [FAILED_LOGIN_ATTEMPTS {liczba | UNLIMITED | DEFAULT}] [PASSWORD_LIFE_TIME {liczba | UNLIMITED | DEFAULT}] [{PASSWORD_REUSE_TIME | PASSWORD_REUSE_MAX} { liczba | UNLIMITED | DEFAULT}] [PASSWORD_LOCK_TIME { liczba | UNLIMITED | DEFAULT}] [PASSWORD_GRACE_TIME { liczba | UNLIMITED | DEFAULT}] [PASSWORD_VERIFY_FUNCTION {function | NULL | DEFAULT}]; Profile moĪna zmieniaü poleceniem ALTER PROFILE wymagającego uprawnienia systemowego uprawnienia systemowego CREATE PROFILE. ALTER PROFILE. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 10. ZARZĄDZANIE BEZPIECZEēSTWEM - 99 - Skáadnia polecenia ALTER PROFILE: ALTER PROFILE profile LIMIT [SESSIONS_PER_USER {liczba | UNLIMITED | DEFAULT}] [CPU_PER_SESSION {liczba | UNLIMITED | DEFAULT}] [CPU_PER_CALL {liczba | UNLIMITED | DEFAULT}] [CONNECT_TIME {liczba | UNLIMITED | DEFAULT}] [IDLE_TIME {liczba | UNLIMITED | DEFAULT}] [LOGICAL_READS_PER_SESSION {liczba | UNLIMITED | DEFAULT}] [LOGICAL_READS_PER_CALL {liczba | UNLIMITED | DEFAULT}] [COMPOSITE_LIMIT {liczba | UNLIMITED | DEFAULT}] [PRIVATE_SGA {liczba [K|M]| UNLIMITED | DEFAULT}}] [FAILED_LOGIN_ATTEMPTS {liczba | UNLIMITED | DEFAULT}] [PASSWORD_LIFE_TIME {liczba | UNLIMITED | DEFAULT}] [{PASSWORD_REUSE_TIME | PASSWORD_REUSE_MAX} { liczba | UNLIMITED | DEFAULT}] [PASSWORD_LOCK_TIME { liczba | UNLIMITED | DEFAULT}] [PASSWORD_GRACE_TIME { liczba | UNLIMITED | DEFAULT}] [PASSWORD_VERIFY_FUNCTION {function | NULL | DEFAULT}]; gdzie: profile SESSIONS_PER_USER CPU_PER_SESSION CPU_PER_CALL CONNECT_TIME -Nazwa tworzonego / zmienianego profilu. -Ogranicza liczbĊ równoczeĞnie otwartych sesji uĪytkownika. -Ogranicza czas procesora dla sesji, podany w setnych czĊĞciach sekundy. -Ogranicza czas procesora dla wywoáania (parse, execute, fetch), podany w setnych czĊĞciach sekundy. -Ogranicza czas trwania sesji, podany w minutach. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 98 - Skáadnia polecenia CREATE PROFILE: 10. ZARZĄDZANIE BEZPIECZEēSTWEM - 100 - -Ogranicza okres ciągáej bezczynnoĞci podczas sesji, podany w minutach. Dáugotrwaáe operacje (np. zapytania) nie są brane pod uwagĊ przy ustalaniu czasu bezczynnoĞci, nawet, jeĞli aplikacja nie wykonuje Īadnych operacji. LOGICAL_READS_PER_SESSION-Ogranicza liczbĊ odczytanych bloków danych w sesji. Pod uwagĊ brane są bloki odczytane, z dysku jak i z pamiĊci operacyjnej. LOGICAL_READS_PER_CALL -Ogranicza liczbĊ odczytanych bloków (z dysku i z pamiĊci) podczas jednego wywoáania polecenia SQL. COMPOSITE_LIMIT -Ogranicza wykorzystanie caákowitego kosztu zasobów dla sesji. System oblicza caákowity koszt zasobów jako sumĊ waĪoną wartoĞci: x CPU_PER_SESSION, x CONNECT_TIME, x LOGICAL_READS_PER_SESSION, x PRIVATE_SGA, którą moĪna okreĞliü poleceniem ALTER RESOURCE COST. PRIVATE_SGA -Ogranicza iloĞü prywatnej przestrzeni sesji przydzielonej w SHARED POOL obszaru SGA. WielkoĞü podana w bajtach, kilobajtach (K), lub megabajtach (M). Ograniczenie ma sens jedynie w przypadku serwera wielowątkowego. FAILED_LOGIN_ATTEMPTS -OkreĞla iloĞü nieudanych prób logowania na konto uĪytkownika, po których nastąpi zablokowanie konta na czas zaleĪny od wartoĞci PASSWORD_LOCK_TIME. PASSWORD_LIFETIME -Ograniczają okres waĪnoĞci hasáa. PASSWORD_GRACE_TIME -Po upáyniĊciu PASSWORD_LIFETIME dni od ostatniej zmiany hasáa, przy pierwszym logowaniu zaczyna byü obliczany okres PASSWORD_GRACE_TIME, po którym hasáo wygasa. JednoczeĞnie w okresie PASSWORD_GRACE_TIME, uĪytkownik jest informowany o liczbie dni pozostaáych do wygaĞniĊcia. PASSWORD_REUSE_TIME -OkreĞla liczbĊ dni, przez jaką hasáo nie moĪe byü ponownie wykorzystane podczas zmiany hasáa przez uĪytkownika. JeĪeli wartoĞü PASSWORD_REUSE_TIME ma wartoĞü liczbową, to wartoĞü PASSWORD_REUSE_MAX musi byü ustalona na UNLIMITED. IDLE_TIME Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 10. ZARZĄDZANIE BEZPIECZEēSTWEM - 101 - -OkreĞla liczbĊ zmian haseá, po której hasáo moĪe byü ponownie wykorzystane podczas zmiany hasáa przez uĪytkownika. JeĪeli wartoĞü PASSWORD_REUSE_MAX ma wartoĞü liczbową, to wartoĞü PASSWORD_REUSE_TIME musi byü ustalona na UNLIMITED. PASSWORD_LOCK_TIME -OkreĞla liczbĊ dni, przez jakie konto bĊdzie zablokowane po okreĞlonej przez FAILED_LOGIN_ATTEMPTS nieudanych próbach logowania. PASSWORD_VERIFY_FUNCTION -Nazwa funkcji weryfikacji hasáa. Funkcja ta musi byü umieszczona w schemacie uĪytkownika SYS i posiadaü definicjĊ nastĊpującej postaci: FUNCTION nazwa_funkcji ( nazwa_uĪytkownika IN VARCHAR2, hasáo IN VARCHAR2, poprzednie_hasáo IN VARCHAR2 ) RETURN BOOLEAN; 10. ZARZĄDZANIE BEZPIECZEēSTWEM Uwaga. Zmiany dokonane poleceniem ALTER PROFILE nie wpáywają na juĪ rozpoczĊte sesje. - 102 Pierwsze logowanie po upáywie PASSWORD_REUSE_MAX Zmiana hasáa Zmiana hasáa PASSWORD LIFE TIME PASSWORD LIFE TIME PASSWORD GRACE TIME EXPIRES Rysunek 10.5.1. Znaczenie parametrów PASSWORD_LIFETIME i PASSWORD_GRACE_TIME Do usuwania profili sáuĪy polecenie DROP PROFILE, do wykonywania, którego wymagane jest posiadanie uprawnienia systemowego DROP PROFILE. Skáadnia polecenia DROP PROFILE: SQL> DROP PROFILE nazwa_profilu [CASCADE]; gdzie: Rysunek poniĪej przedstawia znaczenie parametrów: PASSWORD_LIFETIME i PASSWORD_GRACE_TIME. nazwa_profilu - Nazwa usuwanego profilu. CASCADE - Pozwala usunąü profil, do którego są przypisani uĪytkownicy. Przed usuniĊciem profilu uĪytkownicy są przypisywani automatycznie do profilu DEFAULT. Uwaga. Nie moĪna usunąü profilu DEFAULT. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 10. ZARZĄDZANIE BEZPIECZEēSTWEM Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 103 - § 10.6. Przykáady związane z zarządzaniem hasáami z poziomu profili Przykáad 10.6.1. Utwórzmy 23 wrzeĞnia 2001 (data ta jest oczywiĞcie przypadkowa istotne jest tylko czas, jaki upáywa pomiĊdzy kolejnymi operacjami) profil p1 z parametrem PASSWORD_LIFE_TIME=1, a nastĊpnie przypiszmy uĪytkownika u1 do utworzonego profilu. SQL> CREATE PROFILE p1 LIMIT PASSWORD_LIFE_TIME 1; 10. ZARZĄDZANIE BEZPIECZEēSTWEM - 104 - PASSWORD_GRACE_TIME 1; Poáączeniu 26 wrzeĞnia 2001 towarzyszy komunikat wskazujący, Īe zmiana profilu nie zostaáa wziĊta pod uwagĊ. SQL> CONNECT u1/u1 BàĄD: ORA-XXXXX: hasáo wygaĞnie w ciągu 24854 dni Poáączony. OczywiĞcie po zmianie hasáa przy, ponownym poáączeniu, komunikat o wygaĞniĊciu hasáa przestaje siĊ SQL> ALTER USER u1 PROFILE p1; Dnia 25 wrzeĞnia 2001 uĪytkownik loguje siĊ do bazy. SQL> CONNECT u1/u1 pojawiaü. SQL> ALTER USER u1 IDENTIFIED BY u1; UĪytkownik zostaá zmieniony. BàĄD: ORA-XXXXX: hasáo wygaĞnie w ciągu 24855 dni Poáączony. Jak widaü uĪytkownik otrzymuje komunikat, Īe hasáo wygaĞnie w ciągu 24855 dni, poniewaĪ parametr PASSWORD_GRACE_TIME nie zostaá wyspecyfikowany i ma wartoĞü UNLIMITED. Ustawmy, zatem wartoĞü tego parametru dla profilu p1 na 1. SQL> ALTER PROFILE p1 LIMIT PASSWORD_LIFE_TIME 1 Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” SQL> CONNECT u1/u1 Poáączony. 28 wrzeĞnia, 2001 czyli 2 dni od zmiany hasáa i ostatniego poáączenia uĪytkownik áączy siĊ z bazą i jest informowany o wygaĞniĊciu hasáa w ciągu 1 dnia. SQL> CONNECT u1/u1 BàĄD: ORA-28002: hasáo wygaĞnie w ciągu 1 dni Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 10. ZARZĄDZANIE BEZPIECZEēSTWEM - 105 - 10. ZARZĄDZANIE BEZPIECZEēSTWEM DEFAULT DEFAULT DEFAULT DEFAULT Po kolejnych 2 dniach, 30 wrzeĞnia, uĪytkownik u1 próbuje siĊ poáączyü z bazą i jest zmuszony do zmiany hasáa. SQL> CONNECT u1/u1 PASSWORD PASSWORD PASSWORD PASSWORD UNLIMITED UNLIMITED UNLIMITED UNLIMITED Data wygaĞniĊcia konta u3 ma wartoĞü NULL. BàĄD: ORA-28001: hasáo wygasáo Zmiana hasáa dla u1 Stare hasáo: .... SQL> SELECT username, expiry_date, profile FROM dba_users WHERE username = 'U3'; USERNAME U3 Przykáad 10.6.2. 9 wrzeĞnia 2001 tworzymy uĪytkownika u3 nie przypisując mu jawnie profilu, czyli przypisując mu profil DEFAULT, którego wszystkie wartoĞci są domyĞlne, co pokazuje poniĪsze zapytanie. SQL> SELECT * FROM dba_profiles WHERE profile = 'DEFAULT' PROFILE DEFAULT DEFAULT DEFAULT DEFAULT DEFAULT DEFAULT DEFAULT DEFAULT DEFAULT DEFAULT DEFAULT DEFAULT - 106 - PASSWORD_REUSE_MAX PASSWORD_VERIFY_FUNCTION PASSWORD_LOCK_TIME PASSWORD_GRACE_TIME RESOURCE_NAME COMPOSITE_LIMIT SESSIONS_PER_USER CPU_PER_SESSION CPU_PER_CALL LOGICAL_READS_PER_SESSION LOGICAL_READS_PER_CALL IDLE_TIME CONNECT_TIME PRIVATE_SGA FAILED_LOGIN_ATTEMPTS PASSWORD_LIFE_TIME PASSWORD_REUSE_TIME RESOURCE_TYPE KERNEL KERNEL KERNEL KERNEL KERNEL KERNEL KERNEL KERNEL KERNEL PASSWORD PASSWORD PASSWORD EXPIRY_DATE 2001-09-19 Utwórzmy profil o nazwie p2, a nastĊpnie przypiszmy go uĪytkownikowi u3. SQL> ALTER USER u3 PROFILE p2; Po tych operacjach, perspektywa DBA_USERS, pokazuje, Īe data wygaĞniĊcia konta u3 zostaáa zmieniona. SQL> SELECT username, expiry_date, profile FROM dba_users WHERE username = 'U3'; Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 107 USERNAME U3 PROFILE P2 10. ZARZĄDZANIE BEZPIECZEēSTWEM SYSDATE+10 2001-09-19 22:39:02 PoniĪej zwiĊkszamy, a nastĊpnie zmniejszamy wartoĞü parametru PASSWORD_LIFE_TIME i widzimy, USERNAME U3 EXPIRY_DATE 2001-09-19 PROFILE P2 Dopiero 17 listopada 2001 nastĊpuje pierwsze logowanie od czasu przypisania profilu i jednoczeĞnie, (co istotne) jest to pierwsze logowanie od czasu upáyniĊcia okresu PASSWORD_LIFE_TIME. SQL> CONNECT u3/u3 BàĄD: ORA-XXXXX: hasáo wygaĞnie w ciągu 1000 dni Poáączony. SQL> ALTER PROFILE p2 LIMIT PASSWORD_LIFE_TIME 1000 PASSWORD_GRACE_TIME 1000; SQL> SELECT username, expiry_date, profile FROM dba_users WHERE username = 'U3'; USERNAME U3 - 108 - FROM dba_users WHERE username = 'U3'; SQL> SELECT SYSDATE + 10 FROM DUAL; Īe wartoĞü kolumny EXPIRY_DATE równieĪ ulegáa zmianom. PROFILE DEFAULT SQL> CREATE PROFILE p2 LIMIT PASSWORD_LIFE_TIME 10 PASSWORD_GRACE_TIME 1000; LIMIT UNLIMITED UNLIMITED UNLIMITED UNLIMITED UNLIMITED UNLIMITED UNLIMITED UNLIMITED UNLIMITED UNLIMITED UNLIMITED UNLIMITED Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 10. ZARZĄDZANIE BEZPIECZEēSTWEM EXPIRY_DATE EXPIRY_DATE 2004-06-05 PROFILE P2 SQL> ALTER PROFILE p2 LIMIT PASSWORD_LIFE_TIME 10 PASSWORD_GRACE_TIME 1000; SQL> SELECT username, expiry_date, profile Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” SQL> SELECT username, expiry_date, profile FROM dba_users WHERE username = 'U3'; USERNAME U3 EXPIRY_DATE 2004-08-13 23:43:56 PROFILE P2 PoniewaĪ SYSDATE + PASSWORD_GRACE_TIME = SYSDATE + 1000 = 2004-08-13 to data EXPIRY_DATE podczas logowania zostaje ustawiona na 2004-08-13. SQL> SELECT SYSDATE + 1000 FROM DUAL; SYSDATE+1000 2004-08-13 23:47:11 Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 10. ZARZĄDZANIE BEZPIECZEēSTWEM - 109 - PoniĪsze instrukcje pokazują, Īe zmiana profilu nie wpáywa juĪ na wartoĞü EXPIRY_DATE. - 110 - A teraz sprawdĨmy, do jakiego profilu jest przypisany uĪytkownik, który byá przypisany do profilu usuniĊtego z opcją CASCADE. SQL> ALTER PROFILE p2 LIMIT PASSWORD_LIFE_TIME 1000 PASSWORD_GRACE_TIME 1000; SQL> SELECT username, profile FROM dba_users WHERE username = 'KOWALSKI_JAN'; USERNAME KOWALSKI_JAN SQL> SELECT username, expiry_date, profile FROM dba_users WHERE username = 'U3'; USERNAME U3 10. ZARZĄDZANIE BEZPIECZEēSTWEM PROFILE DEFAULT Przykáad 10.6.3. CzĊsto, tworząc nowe konto dla uĪytkownika chcemy, wymusiü zmianĊ hasáa przy EXPIRY_DATE 2004-08-13 23:43:56 PROFILE P2 pierwszym logowaniu. MoĪemy to zrobiü uĪywając parametru PASSWORD EXPIRE, co pokazują poniĪsze instrukcje. Spróbujmy usunąü profil p3. SQL> DROP PROFILE P3; BàĄD w linii 1: ORA-02382: profil P3 ma przypisanego uĪytkownika, nie moĪna go usunąü bez CASCADE PoniĪszym zapytaniem moĪemy sprawdziü, jacy uĪytkownicy mają przypisany profil p3. SQL> SELECT username FROM dba_users WHERE profile = 'P3'; USERNAME KOWALSKI_JAN SQL> CREATE USER kowalski_jan IDENTIFIED BY q1s#k45 DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 1M ON users QUOTA 1M ON indx PASSWORD EXPIRE; SQL> GRANT create session TO kowalski_jan; Aplikacje powinny Īądaü zmiany hasáa przy pierwszym logowaniu. SQL> DROP PROFILE p3 CASCADE; Profil zostaá usuniĊty. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 10. ZARZĄDZANIE BEZPIECZEēSTWEM Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 111 - § 10.7. Weryfikacja hasáa 10. ZARZĄDZANIE BEZPIECZEēSTWEM IF System ORACLE dostarcza bardzo elastyczny system weryfikacji trudnoĞci hasáa. MoĪliwoĞci są wáaĞciwie nieograniczone. MoĪna np. sprawdziü czy uĪytkownicy nie uĪywają w swoich hasáach danych ogólnie dostĊpnych jak numery telefonu itp. Przykáadowa funkcja weryfikacji hasáa (dla zainteresowanych). v_rozne_od_nazwy AND password = username THEN raise_application_error( v_zglaszany_dbms_error, 'Hasáo jest áatwe do odgadniĊcia (nazwa uĪytkownika i hasáo są identyczne).'); END IF; IF v_nie_zawiera_starego AND INSTR(password, old_password) != 0 THEN raise_application_error( v_zglaszany_dbms_error, 'Nowe hasáo nie moĪe zwieraü poprzedniego hasáa.'); END IF; IF CREATE OR REPLACE FUNCTION czy_haslo_trudne( username IN VARCHAR2, password IN VARCHAR2, old_password IN VARCHAR2 ) RETURN BOOLEAN IS v_zglaszany_dbms_error CONSTANT INTEGER NOT v_cyfry CONSTANT VARCHAR2(10) v_litery CONSTANT VARCHAR2(35) := 'qwertyuiopasdfghjklzxcvbnmĊóąĞáĪĨüĔ'; v_symbole CONSTANT VARCHAR2(31) v_min_dlugosc CONSTANT PLS_INTEGER v_wymaga_cyfr CONSTANT BOOLEAN v_wymaga_liter CONSTANT BOOLEAN v_wymaga_symboli CONSTANT BOOLEAN v_rozne_od_nazwy CONSTANT BOOLEAN v_nie_zawiera_starego CONSTANT BOOLEAN v_nie_jest_czescia_starego CONSTANT BOOLEAN v_nie_wystepuje_w_slowniku CONSTANT BOOLEAN v_nie_jest_czescia_starego AND INSTR(old_password, password) != 0 THEN raise_application_error( v_zglaszany_dbms_error, 'Nowe hasáo nie moĪe byü wycinkiem poprzedniego hasáa.'); END IF; IF NULL := -20997; NOT NULL := '0123456789'; NOT NULL NOT NULL := := NOT NULL := NOT NULL := NOT NULL := NOT NULL := NOT NULL := NOT NULL := NOT NULL := '~`!@#$%^&*()-_=+[{]};:"\|,<.>/?'; 5; TRUE; TRUE; TRUE; TRUE; TRUE; TRUE; TRUE; BEGIN IF LENGTH(password) < v_min_dlugosc THEN raise_application_error( v_zglaszany_dbms_error, Hasáo musi skáadaü siĊ z co najmniej ' || v_min_dlugosc || ' znaków.'); END IF; Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” v_wymaga_cyfr AND LENGTH(password)!=LENGTH(TRANSLATE(password, 'X' || v_cyfry, 'X')) THEN raise_application_error( v_zglaszany_dbms_error, 'Hasáo musi zawieraü cyfrĊ.'); END IF; IF v_wymaga_symboli AND LENGTH(password)!=LENGTH(TRANSLATE(password, 'X' || v_symbole, 'X') ) THEN raise_application_error( v_zglaszany_dbms_error, 'Hasáo musi zawieraü jeden z symboli: ' || v_symbole ); END IF; IF v_wymaga_liter AND LENGTH(NLS_LOWER(password) ) != LENGTH(TRANSLATE(password, 'X' || v_litery, 'X') ) THEN raise_application_error( v_zglaszany_dbms_error, 'Hasáo musi zawieraü literĊ'); END IF; IF v_nie_wystepuje_w_slowniku THEN DECLARE v_haslo VARCHAR2(30); BEGIN SELECT s.haslo INTO v_haslo Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 112 - 10. ZARZĄDZANIE BEZPIECZEēSTWEM - 113 - FROM sl_hasel s WHERE s.haslo = NLS_UPPER(password); raise_application_error( v_zglaszany_dbms_error, 'Hasáo jest áatwe do odgadniĊcia (znajduje siĊ w sáowniku niedozwolonych haseá).' ); EXCEPTION WHEN NO_DATA_FOUND THEN NULL; END; END IF; 10. ZARZĄDZANIE BEZPIECZEēSTWEM - 114 - RETURN (TRUE); END; / Modyfikacja profilu. ALTER PROFILE default LIMIT PASSWORD_VERIFY_FUNCTION verify_function; Przykáad 10.7.2. Modyfikacja uĪytkownika (o ile miaá inny profil). RETURN TRUE; END czy_haslo_trudne; / ALTER USER hr PROFILE default ; Przykáadowa funkcja tworzona jest przez skrypt utlpwdmg.sql, który znajduje siĊ w katalogu Spróbowaü zmieniü hasáo nie speániające warunku z funkcji verify_function. ...\RDBMS\ADMIN. Przykáad 10.7.1. Prosta funkcja weryfikacji hasáa. CREATE OR REPLACE FUNCTION verify_function (username VARCHAR2,password VARCHAR2, old_password VARCHAR2) RETURN BOOLEAN IS BEGIN IF LENGTH(password) < 5 THEN RAISE_APPLICATION_ERROR (-20001, ‘Hasáo musi posiadaü co najmniej 5 znaków’); END IF; Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 11. UPRAWNIENIA Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 115 - 11. UPRAWNIENIA To, jakie operacje mogą wykonywaü uĪytkownicy jest regulowane poprzez nadane im uprawnienia. Nowo utworzony uĪytkownik nie posiada Īadnych uprawnieĔ, czyli nawet nie moĪe uzyskaü poáączenia z bazą (utworzyü sesji). Rodzaje uprawnieĔ: x Uprawnienia systemowe. x Uprawnienia obiektowe. § 11.1. Przykáadowe uprawnienia systemowe Uprawnienia i role GRANT ANY PRIVILEGE - Pozwala przyznawaü i odbieraü dowolne uprawnienie systemowe (nie istnieje analogiczne uprawnienie obiektowe, czyli uĪytkownik A nie moĪe przyznaü bezpoĞrednio uprawnieĔ do obiektów uĪytkownika B, jeĪeli nie posiada do nich uprawnienia obiektowego z opcją GRANT). - Pozwala tworzyü rolĊ. - Pozwala zmieniaü dowolną rolĊ. - Pozwala zmieniaü dowolną rolĊ. - Pozwala przyznawaü dowolną rolĊ. CREATE ROLE ALTER ANY ROLE DROP ANY ROLE GRANT ANY ROLE UĪytkownicy CREATE USER - Pozwala tworzyü uĪytkowników. ALTER USER - Pozwala zmieniaü uĪytkowników. UĪytkownik nieposiadający tego uprawnienia moĪe wykonaü Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 11. UPRAWNIENIA - 116 - polecenie ALTER USER, aby zmieniü swoje hasáo. DROP USER - Pozwala usuwaü uĪytkowników. Profile uĪytkowników CREATE PROFILE - Pozwala tworzyü profile uĪytkowników. ALTER PROFILE - Pozwala zmieniaü profile uĪytkowników. DROP PROFILE - Pozwala usuwaü profile uĪytkowników. ALTER RESOURCE COST - Pozwala zmieniaü koszty zasobów systemowych dla wszystkich sesji uĪytkowników. Tabele, indeksy, ograniczenia CREATE TABLE - Pozwala tworzyü, usuwaü, zmieniaü tabele i widoki we wáasnym schemacie oraz związane z nimi indeksy i ograniczenia. CREATE ANY TABLE - Pozwala tworzyü tabele w dowolnym schemacie oraz związane z nimi indeksy i ograniczenia. ALTER ANY TABLE - Pozwala zmieniaü tabele i kompilowaü widoki z dowolnego schematu oraz związane z nimi indeksy i ograniczenia. BACKUP ANY TABLE - Pozwala uĪyü narzĊdzi eksportu dla tabel z dowolnego schematu. DROP ANY TABLE - Pozwala usuwaü i obcinaü tabele z dowolnego schematu. LOCK ANY TABLE - Pozwala blokowaü dowolną tabelĊ lub widok w bazie. COMMENT ANY TABLE - Pozwala tworzyü komentarz dla dowolnej tabeli lub widoku w bazie. SELECT ANY TABLE - Pozwala zadaü zapytania do dowolnej tabeli, widoku, migawki. INSERT ANY TABLE - Pozwala wstawiaü wiersze do dowolnej tabeli lub widoku. UPDATE ANY TABLE - Pozwala zmieniaü wiersze w dowolnej tabeli lub widoku. DELETE ANY TABLE - Pozwala usuwaü dowolną tabelĊ lub widok. CREATE ANY INDEX - Pozwala tworzyü indeks w dowolnym schemacie dla dowolnej tabeli. ALTER ANY INDEX - Pozwala zmieniaü dowolny indeks w bazie. DROP ANY INDEX - Pozwala usunąü dowolny indeks w bazie. WYZWALACZE CREATE TRIGGER - Pozwala tworzyü, zmieniaü i usuwaü wyzwalacze we wáasnym schemacie. CREATE ANY TRIGGER - Pozwala tworzyü wyzwalacze w dowolnym schemacie. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 11. UPRAWNIENIA ALTER ANY TRIGGER DROP ANY TRIGGER PERSPEKTYWY CREATE VIEW CREATE ANY VIEW DROP ANY VIEW Migawki CREATE SNAPSHOT - 117 - Pozwala zmieniaü wyzwalacze w dowolnym schemacie (wáączaü, wyáączaü, kompilowaü). - Pozwala usuwaü wyzwalacze znajdujące siĊ w dowolnym schemacie. - Pozwala tworzyü, zmieniaü i usuwaü widoki we wáasnym schemacie. - Pozwala tworzyü widoki w dowolnym schemacie. Dodatkowo wymagane jest posiadanie uprawnieĔ do obiektów wykorzystywanych przez tworzony widok. - Pozwala usuwaü widoki z kaĪdego schematu. - Pozwala tworzyü migawki we wáasnym schemacie (wymagane jest równieĪ posiadanie uprawnienia CREATE TABLE). CREATE ANY SNAPSHOT - Pozwala tworzyü migawki w dowolny schemacie (dodatkowo wymagane jest uprawnienie CREATE ANY TABLE). ALTER SNAPSHOT - Pozwala zmieniaü migawki wáasnego schematu. DROP ANY SNAPSHOT - Pozwala usuwaü migawki ze wszystkich schematów. Klastry CREATE CLUSTER - Pozwala tworzyü, zmieniaü i usuwaü klaster we wáasnym schemacie. CREATE ANY CLUSTER - Pozwala tworzyü klaster w dowolnym schemacie. ALTER ANY CLUSTER - Pozwala zmieniaü dowolny klaster w bazie. DROP ANY CLUSTER - Pozwala usuwaü dowolny klaster w bazie. SEKWENCJE CREATE SEQUENCE - Pozwala tworzy, zmieniaü i usuwaü sekwencje we wáasnym schemacie. CREATE ANY SEQUENCE - Pozwala tworzyü sekwencje w dowolnym schemacie. ALTER ANY SEQUENCE - Pozwala zmieniaü sekwencje znajdujące siĊ w dowolnym schemacie. DROP ANY SEQUENCE - Pozwala usuwaü sekwencje z dowolnego schematu. SELECT ANY SEQUENCE - Pozwala korzystaü z sekwencji znajdującej siĊ w dowolnym schemacie. PROCEDURY, FUNKCJE, PAKIETY CREATE PROCEDURE - Pozwala tworzyü, zmieniaü, usuwaü procedury, funkcje, pakiety we wáasnym schemacie. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 11. UPRAWNIENIA ALTER SESSION RESTRICTED SESSION BAZA DANYCH ALTER DATABASE PRZESTRZENIE TABEL CREATE TABLESPACE ALTER TABLESPACE MANAGE TABLESPACE DROP TABLESPACE UNLIMITED TABLESPACE - 119 - - Pozwala zmieniaü cechy bazy danych, dodawaü pliki z poziomu bazy, bez wzglĊdu na posiadane uprawnienia w systemie operacyjnym. - Pozwala tworzyü przestrzenie tabel. - Pozwala zmieniaü przestrzenie tabel. - Pozwala przeáączaü przestrzenie tabel w tryb ONLINE/OFLINE oraz wykonywaü backup przestrzeni tabel. - Pozwala usuwaü przestrzenie tabel. - Pozwala na zapisywanie we wszystkich przestrzeniach tabel. Uprawnienie to jest nadrzĊdne w stosunku do „quota” naáoĪonych na uĪytkowników i moĪe byü przyznawane tylko bezpoĞrednio uĪytkownikowi (bez poĞrednictwa roli). Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” CREATE ANY PROCEDURE ALTER ANY PROCEDURE DROP ANY PROCEDURE EXECUTE ANY PROCEDURE - 118 - Pozwala tworzyü procedury, funkcje i pakiety w dowolnym schemacie (Wymagane jest, aby uĪytkownik posiadaá równieĪ uprawnienia ALTER ANY TABLE, BACKUP ANY TABLE, DROP ANY TABLE, SELECT ANY TABLE, INSERT ANY TABLE, UPDATE ANY TABLE, DELETE ANY TABLE). - Pozwala kompilowaü dowolną procedurĊ, funkcjĊ, pakiet z dowolnego schematu. - Pozwala usuwaü dowolną procedurĊ, funkcjĊ, pakiet z dowolnego schematu. - Pozwala wywoáywaü procedurĊ, funkcjĊ (samodzielną lub znajdującą siĊ w pakiecie) oraz korzystaü z publicznych zmiennych pakietów. LINKI BAZODANOWE CREATE DATABASE LINK - Pozwala usuwaü i tworzyü prywatne linki do innych baz wáasnym schemacie. - Pozwala tworzyü publiczne linki do innych baz danych. - Pozwala usuwaü publiczne linki do innych baz danych. CREATE PUBLIC DATABASE LINK DROP PUBLIC DATABASE LINK SYNONIMY CREATE PUBLIC SYNONYM - Pozwala tworzyü publiczne synonimy do obiektów. DROP PUBLIC SYNONYM - Pozwala usuwaü publiczne synonimy. CREATE SYNONYM - Pozwala tworzyü i usuwaü synonimy prywatne we wáasnym schemacie. CREATE ANY SYNONYM - Pozwala tworzyü synonimy prywatne w dowolnym schemacie. DROP ANY SYNONYM - Pozwala usuwaü synonimy prywatne z dowolnego schematu. BIBLIOTEKI ZEWNĉTRZNE CREATE LIBRARY - Pozwala utworzyü bibliotekĊ (doáączyü zewnĊtrzny program, bibliotekĊ systemu operacyjnego) we wáasnym schemacie. CREATE ANY LIBRARY - Pozwala utworzyü bibliotekĊ (doáączyü zewnĊtrzny program, bibliotekĊ systemu operacyjnego) w dowolnym schemacie. DROP LIBRARY - Pozwala usunąü bibliotekĊ z wáasnego schematu. DROP ANY LIBRARY - Pozwala usunąü bibliotekĊ z dowolnego schematu. SESJE CREATE SESSION - Pozwala utworzyü sesjĊ, czyli poáączyü siĊ z bazą danych. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - Pozwala wywoáywaü polecenie ALTER SESSION. - Pozwala poáączyü siĊ z bazą, gdy zostaáa ona uruchomiona przy uĪyciu polecenia STARTUP RESTRICT. SEGMENTY WYCOFANIA CREATE ROLLBACK SEGMENT - Pozwala tworzyü segmenty wycofania. ALTER ROLLBACK SEGMENT - Pozwala zmieniaü segmenty wycofania. DROP ROLLBACK SEGMENT - Pozwala usuwaü segmenty wycofania. SYSTEM ALTER SYSTEM - Pozwala wywoáywaü polecenie ALTER SYSTEM. ANALIZOWANIE ANALYZE ANY - Pozwala analizowaü (wykonaü polecenia ANALYZE) dowolną tabelĊ, indeks lub klaster. ĝLEDZENIE AUDIT ANY - Pozwala wáączaü i wyáączaü Ğledzenie dowolnego obiektu. AUDIT SYSTEM - Pozwala wáączaü i wyáączaü Ğledzenie poleceĔ i uprawnieĔ. TRANSAKCJE FORCE TRANSACTION - Pozwala na zatwierdzenie lub wycofanie wáasnych zawieszonych 11. UPRAWNIENIA 11. UPRAWNIENIA FORCE ANY TRANSACTION - 120 rozproszonych w lokalnej bazie danych. - Pozwala na zatwierdzenie lub wycofanie dowolnych zawieszonych transakcji rozproszonych w lokalnej bazie danych § 11.2. Przykáady Przykáad 11.2.1. Utwórzmy uĪytkownika u5 z hasáem i z uprawnieniami create session, create table oraz z prawem do tworzenia obiektów w przestrzeniach users i system. SQL> CREATE USER u5 IDENTIFIED BY u5 DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 1m ON users QUOTA 1m ON system; SQL> GRANT create session, create table TO u5; Jako nowo utworzony uĪytkownik utwórzmy tabelĊ, indeks, zmieĔmy tabelĊ a nastĊpnie usuĔmy utworzone obiekty. SQL> CREATE TABLE t1(k1 NUMBER); Tabela zostaáa utworzona. SQL> CREATE INDEX t1_k1_i ON t1(k1) TABLESPACE users; transakcji Indeks zostaá utworzony. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 11. UPRAWNIENIA - 121 - SQL> DROP TABLE t1; Tabela zostaáa usuniĊta. Jak widaü uprawnienie create table pozwala nie tylko tworzyü tabele, ale równieĪ je usuwaü oraz tworzyü i usuwaü indeksy i ograniczenia. Przykáad 11.2.2. Utwórzmy uĪytkownika u_baza w bazie danych poleceniem SQL> CREATE USER u_baza IDENTIFIED BY u_baza DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp; - 122 - SQL> GRANT create session, create table, create view, create trigger, create procedure, create sequence TO u_baza; Spróbujmy poáączyü siĊ jako uĪytkownik u_baza, a nastĊpnie utworzyü prostą tabelĊ. SQL> CONNECT u_baza/u_baza Spróbujmy teraz poáączyü siĊ z bazą jako uĪytkownik u_baza. Poáączony. SQL> CONNECT u_baza/u_baza SQL> CREATE TABLE t1 (k1 NUMBER); BàĄD: ORA-XXXX: uĪytkownik u_baza nie ma uprawnienia CREATE SESSION; odmowa rejestracji Próba nie powiodáa siĊ, poniewaĪ nie przyznaliĞmy uĪytkownikowi uprawnienia systemowego create session. BàĄD w linii 1: ORA-XXXXX: brak uprawnieĔ na przestrzeni tabel 'USERS' Jak widaü próba poáączenia zakoĔczyáa siĊ sukcesem, natomiast nie udaáo siĊ utworzyü tabeli w domyĞlnej przestrzeni tabel. UĪytkownikowi u_baza powinniĞmy nadaü uprawnienia do przestrzeni PoniewaĪ uĪytkownik u_baza ma byü uĪytkownikiem, który bĊdzie wáaĞcicielem aplikacji, zatem poza uprawnieniem pozwalającym na poáączenie z systemem, musi mieü uprawnienia pozwalające mu na tworzenie obiektów w jego schemacie. Przyznajmy mu uprawnienia do tworzenia tabel, perspektyw, wyzwalaczy, procedur, funkcji, pakietów, sekwencji. users (baza_i przestrzeĔ tabel przeznaczona dla indeksów). SQL> ALTER USER u_baza QUOTA UNLIMITED ON baza QUOTA UNLIMITED ON baza_i; UĪytkownik zostaá zmieniony. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 11. UPRAWNIENIA 11. UPRAWNIENIA Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 123 - 11. UPRAWNIENIA - 124 - Teraz jako uĪytkownik u_baza moĪemy spróbowaü utworzyü tabelĊ przechowywaną w domyĞlnej przestrzeni tabel z indeksem w przestrzeni baza_i. Typ obiektu SELECT INSERT UPDATE DELETE ALTER EXECUTE INDEX REFERENCES SQL> CREATE TABLE t1 ( id NUMBER(4) PRIMARY KEY USING INDEX TABLESPACE baza_i, k1 VARCHAR2(100) ); Tabela zostaáa utworzona. A teraz spróbujmy utworzyü tabelĊ w przestrzeni tabel SYSTEM. SQL> CREATE TABLE t2(k1 VARCHAR2(100)) TABLESPACE system; BàĄD w linii 1: ORA-XXXXX: brak uprawnieĔ na przestrzeni tabel 'SYSTEM' Jak widaü dopóki nie przyznamy uprawnienia do przestrzeni tabel, uĪytkownik nie moĪe tworzyü w niej obiektów. § 11.3. Uprawnienia obiektowe UĪytkownik nieposiadający uprawnieĔ systemowych typu ANY moĪe wykonywaü operacje na obiekcie innego schematu tylko wtedy, gdy posiada do tego obiektu odpowiednie uprawnienie obiektowe. To, jakie TABELA Uprawnienie obiektowe x x x x x PERSPEKTYWA x x x x x x x x x Rysunek 11.3.1. Uprawnienia obiektowe Uprawnienie INDEX, REFERENCES nie mogą byü przyznane roli. Skrót ALL (lub ALL PRIVILEGES) zastĊpuje wszystkie dostĊpne dla danego obiektu uprawnienia obiektowe. ALL nie jest uprawnieniem, a jedynie mechanizmem pozwalającym przydzielaü wszystkie dozwolone uprawnienia obiektowe. Przykáad 11.3.2. Utwórzmy dwóch uĪytkowników u1, u2 i nadajmy im uprawnienia systemowe CREATE SESSION i CREATE TABLE oraz uprawnienia do tworzenia obiektów w przestrzeni tabel users i user_i. uprawnienia moĪna przyznaü do obiektu, jest uzaleĪnione od typu obiektu. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” SEKWENCJA PROCEDURA FUNKCJA PAKIET Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 11. UPRAWNIENIA - 125 - SQL> CREATE USER u1 IDENTIFIED BY u1 DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 1M ON users QUOTA 1M ON users_i; 11. UPRAWNIENIA SQL> INSERT INTO t1 (id, k1) VALUES (1, 'a'); SQL> GRANT REFERENCES ON t1 TO u2; SQL> GRANT create session, create table TO u1; Jako uĪytkownik u2 utwórzmy tabelĊ t2 związaną z tabelą u1.t1 obowiązkowym kluczem obcym z opcją usuwania kaskadowego, a nastĊpnie wstawmy do niej wiersz. SQL> CREATE USER u2 IDENTIFIED BY u2 DEFAULT TABLESPACE users TEMPORARY TABLESPACE temp QUOTA 1M ON users QUOTA 1M ON users_i; SQL> CREATE TABLE t2 ( id NUMBER CONSTRAINT t2_pk PRIMARY KEY USING INDEX TABLESPACE users, k1 VARCHAR2(100), u1_t1_id NUMBER CONSTRAINT t2_u1_t1_fk REFERENCES u1.t1(id) ON DELETE CASCADE ); SQL> GRANT connect, create table TO u2; Jako uĪytkownik u1 utwórzmy tabelĊ t1 wstawmy do niej wiersz oraz przyznajmy do niej uprawnienie obiektowe REFERENCES uĪytkownikowi u2. SQL> INSERT INTO t2 (id, k1, u1_t1_id) VALUES (1, 'b', 1); SQL> CREATE TABLE t1 ( id NUMBER CONSTRAINT t1_pk PRIMARY KEY USING INDEX TABLESPACE users, SQL> COMMIT; Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 11. UPRAWNIENIA - 126 - k1 VARCHAR2(100) ); Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 127 - Jak widaü udaáo siĊ wstawiü wiersz podrzĊdny, mimo Īe uĪytkownik u2 nie posiada uprawnieĔ do wybierania z tabeli u1.t1. Próba wykonania polecenia SELECT z tabeli u1.t1 powoduje zgáoszenie wyjątku ORA-…..: niewystarczające uprawnienia. Gdyby uĪytkownik u2 nie posiadaá Īadnych uprawnieĔ do tabeli u1.t1, próba pobrania z niej wierszy zakoĔczyáaby siĊ báĊdem ORA-…..: tabela lub perspektywa nie istnieje. Spróbujmy teraz jako uĪytkownik u1 usunąü wiersz z tabeli t1, dla którego istnieje wiersz podrzĊdny w tabeli u2.t2. SQL> DELETE FROM t1 WHERE id = 1; 12. ROLE - 128 - 12. ROLE Mechanizm ról pozwala w áatwy i kontrolowany sposób zarządzaü uprawnieniami systemowymi i objektowymi. Role są nazwanymi grupami powiązanych uprawnieĔ. Roli moĪna przyznaü: x inne role, x dowolne uprawnienie systemowe poza UNLIMITED TABLESPACE, x uprawnienie do obiektów poza INDEX, REFERENCES. RolĊ moĪna przyznaü uĪytkownikowi lub innej roli. 1 wiersz zostaá usuniĊty. SQL> COMMIT; Jak widzimy zostaá usuniĊty wiersz z tabeli u1.t1 oraz kaskadowo wiersz z tabeli u2.t2, do której usuwający uĪytkownik nie ma Īadnych uprawnieĔ, a próba wykonania przez niego polecenia SELECT dla tej tabeli koĔczy siĊ báĊdem ORA-……: tabela lub perspektywa nie istnieje. § 12.1. Tworzenie roli Do tworzenia roli sáuĪy polecenie CREATE ROLE. Aby utworzyü rolĊ trzeba posiadaü uprawnienie systemowe CREATE ROLE. SQL> CREATE ROLE nazwa_roli; SQL> CREATE ROLE test; Podczas tworzenia roli system nadaje ją z opcją ADMIN tworzącemu. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 12. ROLE - 129 - 12. ROLE Do usuwania ról sáuĪy polecenie DROP ROLE. UĪytkownik usuwający rolĊ musi posiadaü ją z opcją ADMIN OPTION lub posiadaü uprawnienie systemowe DROP ANY ROLE. SQL> DROP ROLE nazwa_roli; Uwaga. W momencie usuwania roli system automatycznie odbiera ją wszystkim uĪytkownikom. Podczas instalacji systemu tworzone są specjalne role: x OSOPER, ALTER DATABASE OPEN/MOUNT, x ALTER DATABASE BACKUP CONTROLFILE, x ALTER TABLESPACE BEGIN/END BACKUP, x ARCHIVE LOG, x RECOVER. Rola OSDBA posiada rolĊ OSOPER z opcją ADMIN. Jest ona rolą wykorzystywaną podczas tworzenia x OSDBA. bazy danych. Są one potrzebne do wykonywania operacji na bazie, która nie jest zamontowana, czyli wtedy, kiedy sáownik danych nie jest dostĊpny. Role te są uĪywane przy poáączeniu typu AS - 130 - x SYSDBA i AS SYSOPER. Role OSDBA i OSOPER posiadają przywilej systemowy RESTRICTED SESSION. Podczas tworzenia bazy danych tworzone są miĊdzy innymi role: Uprawnienia przypisane SYSDBA odpowiadają uprawnieniom OSDBA, zaĞ uprawnienia przypisane SYSOPER odpowiadają uprawnieniom OSOPER. Rola OSOPER uprawnia do wykonywania nastĊpujących poleceĔ na bazie danych: x STARTUP, x SHUTDOWN, x CONNECT, x RESOURCE, x DBA. Role te są rolami definiowanym dla zachowania zgodnoĞci z wczeĞniejszymi wersjami i mogą byü dowolnie modyfikowane. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 12. ROLE Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 131 - Rola CONNECT ma nastĊpujące uprawnienia systemowe: 12. ROLE - 132 - Przy tworzeniu bazy tworzone są role: x CREATE SESSION, x EXP_FULL_DATABASE, x ..., x IMP_FULL_DATABASE. Rola RESOURCE posiada nastĊpujące uprawnienia systemowe x CREATE CLUSTER, x CREATE PROCEDURE, x CREATE SEQUENCE, x CREATE TABLE, x CREATE VIEW, x CREATE TRIGGER. Rola DBA obejmuje wszystkie uprawnienia systemowe. UWAGA! Podczas nadawania uĪytkownikowi roli RESOURCE lub DBA przyznawane jest równieĪ uprawnienie UNLIMITED TABLESPACE. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Są to role pozwalające na wykonywanie peánego importu i eksportu bazy danych narzĊdziami Imp, Exp. § 12.2. Przyznawanie uprawnieĔ systemowych i ról UĪytkownik przyznający rolĊ musi posiadaü przyznawaną rolĊ z opcją ADMIN lub posiadaü uprawnienie systemowe GRANT ANY ROLE. Roli nie moĪna przyznaü jej samej. UĪytkownik przyznający uprawnienie systemowe musi posiadaü je z opcją ADMIN lub mieü przyznane uprawnienie systemowe GRANT ANY PRIVILEGE. SQL> GRANT {system_priv | role} [, { system_priv | role}] TO {user | role* | PUBLIC} [, { user | role* | PUBLIC}] [WITH ADMIN OPTION]; gdzie: Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 12. ROLE system_priv role user role* PUBLIC WITH ADMIN OPTION - 133 - Przyznawane uprawnienie systemowe. Przyznawana rola. Nazwa uĪytkownika, któremu przyznawane są uprawnienia. Nazwa roli, której przyznawane są uprawnienia. Powoduje, Īe uprawnienia zostają przyznane wszystkim uĪytkownikom. Przyznaje uprawnienia z opcją administracyjną, która pozwala przyznaü lub odebraü otrzymane uprawnienie innym uĪytkownikom lub rolom. Rola przyznana z tą opcją moĪe zostaü zmieniona lub usuniĊta przez otrzymującego uprawnienie. Aby odebraü opcjĊ ADMIN naleĪy odebraü uprawnienie lub rolĊ, a nastĊpnie przyznaü je bez opcji ADMIN. Uwaga. UĪytkownik, który posiada uprawnienie do obiektu przyznane poĞrednio poprzez role, nie moĪe z niego korzystaü w swoich obiektach skáadowanych w bazie, takich jak perspektywy, procedury, funkcje, wyzwalacze. Aby tworzyü obiekty wykorzystujące obiekty innych uĪytkowników, wymagane jest posiadanie uprawnieĔ nadanych bezpoĞrednio przez wáaĞciciela wykorzystywanych obiektów. Zatem jeĪeli 12. ROLE - 134 - § 12.3. Przyznawanie uprawnieĔ obiektowych Aby przyznawaü uprawnienie do obiektu innemu uĪytkownikowi lub roli trzeba byü jego wáaĞcicielem lub posiaü uprawnienia do niego z opcją GRANT. SQL> GRANT {object_priv | All [PRIVILEGES]} [( column [, column] ...)] [, {object_priv | All [PRIVILEGES]} [ ( column [, column] ...) ] ] ON [schema.]object TO {user | role* | Public} [WITH GRANT OPTION]; gdzie: uĪytkownik a chce odwoáywaü siĊ we wáasnym obiekcie do obiektu b.o uĪytkownika b, to uprawnienie do object_priv ALL [PRIVILEGES] obiektu b.o musi zostaü przyznane uĪytkownikowi a bez poĞrednictwa roli. column Uwaga. JeĪeli uĪytkownik otrzymaá uprawnienie systemowe wraz z opcją administracyjną i przekazaá je innym uĪytkownikom, to odebranie mu tego prawa nie spowoduje odebrania go uĪytkownikom, którzy je od [schema.]object niego otrzymali. UPRAWNIENIA SYSTEMOWE NIE SĄ ODBIERANE KASKADOWO ! user role* Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” 12. ROLE PUBLIC WITH GRANT OPTION Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 135 - Powoduje, Īe uprawnienia zostają przyznane wszystkim uĪytkownikom. - Pozwala przyznaü uprawnienia do obiektów, z prawem przyznania ich dalej. Opcji tej nie moĪna stosowaü przyznając prawa roli. Uwaga. JeĪeli uĪytkownik otrzymaá uprawnienie do obiektu wraz z opcją administracyjną i przekazaá je innym uĪytkownikom, to odebranie mu tego prawa spowoduje odebranie go uĪytkownikom, którzy je od niego otrzymali. UPRAWNIENIA DO OBIEKTÓW SĄ ODBIERANE KASKADOWO ! - Przyznawane uprawnienie obiektowe. - Skrót zastĊpujący wszystkie uprawnienia jakie moĪe przyznaü uĪytkownik nadający uprawnienie. Nie jest to nazwa uprawnienia. - W przypadku przyznawania uprawnienia INSERT, REFERENCES, UPDATE do tabeli lub widoku moĪliwe jest wyspecyfikowanie kolumn, do których ma byü ograniczone przyznane uprawnienie. - Nazwa obiektu poprzedzona opcjonalnie nazwą schematu, do którego nastĊpuje przyznanie uprawnieĔ. NazwĊ obiektu moĪna zastąpiü synonimem do niego. Przyznanie uprawnienia do synonimu jest równoznaczne z przyznaniem uprawnienia do obiektu, do którego odnosi siĊ synonim i odwrotnie. - Nazwa uĪytkownika, któremu przyznawane są uprawnienia. - Nazwa roli, której przyznawane są uprawnienia. 13. PLIK PARAMETRÓW SPFILE<SID>.ORA - 136 - 13. PLIK PARAMETRÓW SPFILE<SID>.ORA Poleceniem SQL> CREATE SPFILE= ’c:\oraclexe\app\oracle\product\10.2.0\server\dbs\spfilexe.ora’ FROM PFILE= ’c:\oraclexe\app\oracle\product\10.2.0\server\database\initxe.ora’; moĪna utworzyü nowy plik spfileXE.ora i restartowaü instancjĊ. UĪyty zostanie plik parametrów spfileXEt.ora (w przypadku jego braku uĪyty bĊdzie plik initXE.ora). Poleceniem SQL> CREATE PFILE= ’c:\oraclexe\app\oracle\product\10.2.0\server\database\initxe.ora’ FROM SPFILE= ’c:\oraclexe\app\oracle\product\10.2.0\server\dbs\spfilexe.ora’; moĪna odtworzyü plik initXE.ora i zmodyfikowaü go. NastĊpnie znowu utworzyü plik spfileXEt.ora i restartowaü instancjĊ. W czasie pracy instancji zmiana parametrów systemu spfile<sid>.ora. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” moĪe byü zmieniona w pliku 13. PLIK PARAMETRÓW SPFILE<SID>.ORA - 137 - SQL> ALTER SYSTEM SET RESOURCE_LIMIT=TRUE SCOPE=BOTH; /*MEMORY|SPFILE|BOTH*/ polecenie ze SCOPE=BOTH lub SCOPE=MEMEORY zakoĔczy siĊ báĊdem. Przykáad 13.1.1. Zmiana parametru SGA_MAX_SIZE okreĞlającego maksymalny rozmiar obszaru SGA z opcją SCOPE=BOTH zakoĔczy siĊ báĊdem. SQL> ALTER SYSTEM SET sga_max_size=536870912 SCOPE=BOTH; ERROR at line 1: ORA-02095: specified initialization parameter cannot be modified Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” DODATEK A – PRZYKàAD PLIKU TNSNAMES.ORA baza = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = zysknt.math.uni.lodz.pl)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = baza) ) ) XE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = LOCALHOST)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) ) Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 138 - BIBLIOGRAFIA Uwaga. Nie wszystkie parametry moĪna zmieniü z opcją MEMORY. Tak wiĊc dla niektórych parametrów DODATKI BIBLIOGRAFIA [ 1] Dokumentacja ORACLE 9i [ 2] Marlene Theriault, Rachel Carmichael, James Viscusi, ORACLE DBA, Wydawnictwo RM, 2001 Wydawnictwo RM, 2001 [ 3] Robert Wrembel, Juliusz Jezierski, Maciej Zakrzewicz, System zarządzania bazą danych Oracle 7 i Oracle 8, Wydawnictwo NAKOM, 1999 [ 4] David Austin, Poznaj ORACLE, MIKOM, 2000 [ 5] Zasoby http://metalink.oracle.com [ 6] Zasoby http://www.orafaq.com [ 7] Lentner M.: Oracle 9i - Kompletny podrĊcznik uĪytkownika. Wydawnictwo PJWSTK 2003 [ 8] Whalen E., Schroeter M.: Oracle - Optymalizacja wydajnoĞci. Helion 2003 [ 9] Theriaut M., Carmichael R., Viscusi J.: Oracle 9i - Administrowanie bazami danych od podstaw. Helion 2003 [ 10] Loney Kelvin, Oracle 10g. Kompendium administratora. Helion 2005. Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych” - 139 - SPIS ILUSTRACJI - 140 - SPIS ILUSTRACJI Rysunek 2.1.1. PojĊcie instancji .........................................................................................................................................7 Rysunek 2.2.1. Globalny obszar systemowy SGA. ............................................................................................................8 Rysunek 3.1.1. Pliki kontrolne, danych i wycofywania. ..................................................................................................11 Rysunek 3.1.2. Pliki dziennika powtórzeĔ. ......................................................................................................................12 Rysunek 3.1.3. Pliki kontrolne, danych i wycofywania. ..................................................................................................13 Rysunek 3.1.4. Pliki konfiguracyjne bazy. .......................................................................................................................14 Rysunek 3.1.5. Sieciowe pliki konfiguracyjne. ................................................................................................................14 Rysunek 4.1.1. Proces nasáuchowy (Listener)..................................................................................................................16 Rysunek 4.3.1. Serwer dedykowany.................................................................................................................................19 Rysunek 4.3.2. Serwer wielokanaáowy.............................................................................................................................20 Rysunek 4.3.3. Serwer wieloinstancyjny..........................................................................................................................21 Rysunek 6.6.1. Etapy uruchamiania instancji...................................................................................................................30 Rysunek 8.1.1. Warstwa logiczna i fizyczna danych........................................................................................................41 Rysunek 8.1.2. Przestrzenie danych. ................................................................................................................................42 Rysunek 8.1.3. Rozszerzenia i segment............................................................................................................................44 Rysunek 8.1.4. Budowa segmentu....................................................................................................................................45 Rysunek 8.1.5. Budowa bloku..........................................................................................................................................46 Rysunek 8.2.1. Budowa ROWID .....................................................................................................................................52 Rysunek 8.2.2. Parametry PCTFREE i PCTUSED ..........................................................................................................55 Rysunek 8.3.1. Rollback segment.....................................................................................................................................62 Rysunek 10.5.1. Znaczenie parametrów PASSWORD_LIFETIME i PASSWORD_GRACE_TIME ...........................102 Rysunek 11.3.1. Uprawnienia obiektowe .......................................................................................................................124 Rok akademicki – 2007/2008 - Notatki do wykáadów z przedmiotu „Administracja bazami danych”