Instalacja Oracle 10.2.0.4 na systemie Oracle Enterprise Linux 5 (jądro 2.6.18-164.el5)
Poniższa instalacja zakłada postawienie oracle w wersji 10 i zaaplikowanie pacza 10.2.0.4
64 bit czy 32 bit?
Uwaga- opisana instalacja wykonana jest na maszynie 64 bitowej, na systemie 64 bitowym. Instalacja oracla 32-bitowego na systemie 32 bitowym nie różni się specjalnie. Jedyny wyjątek stanowią oczywiście biblioteki 32 bitowe.
Sprawdzenie wersji jądra
uname -r 2.6.18-164.el5
Istalacja pakietów
Uwaga jeżeli nie będziemy mogli wystartować instalatora lub dostaniemy blędy w czasie linkowania - oznacza to że nie mamy potrzebnych pakietów. Jeżeli instalator zasygnalizuje brak pakietu zalecam zapuścić instalator na nowo. Wszystkie potrzebne pakiety są dostępne na płycie instalacyjnej, w katalogu Server.
Zmiana parametrów jądra
Pakiety 32 bitowe i 64 bitowe
Istalator wymaga niektórych pakietów w wersjach 32 bitowych.
su - root
rpm -Uvh binutils-2.17.50.0.6-12.el5.x86_64.rpm
rpm -Uvh gcc-4.1.2-46.el5.x86_64.rpm
glibc-devel-2.5-42.x86_64.rpm
libgomp-4.4.0-6.el5.x86_64.rpm
glibc-headers-2.5-42.x86_64.rpm
kernel-headers-2.6.18-164.el5.x86_64.rpm
rpm -Uvh gcc-c++-4.1.2-46.el5.x86_64.rpm
libstdc++-devel-4.1.2-46.el5.x86_64.rpm
rpm -Uvh glibc-devel-2.5-42.x86_64.rpm
rpm -Uvh libXp-1.0.0-8.1.el5.i386.rpm -- konieczne do wystartowania instalatora
Stworzenie użytkownika Oracle oraz grup dba i oinstall
groupadd oinstall groupadd dba useradd -G dba oracle useradd -G oinstall oracle
Tworzenie porzebnych katalogów
Musimy stworzyć dwa katalogi: w jednym zaistalowana zostanie aplikacja. Drugi katalog będzie używany przez instalator m.in. do zapisywania logów z instalacji (ora Inventory).
mkdir -p /u01/app/oracle/product/10.2.0/db_1
Uruchomienie instalatora
Instalator odpalamy jako uzytkownik Oracle.
$ sciezka/do/skryptu/runInstaller
Istalacja pacza 10.2.0.4
Pacz 10.2.0.4 jest do ściągnięcia z metalinka. Jeżeli wierzyć komentarzowi na stronie oracla, to usuwa wiele istotnych błędów.
Ustawienie zmiennych systemowych
DOdajemy poniższe wpisy do pliku .bash_profile, znajdującym się w katalogu domowym użytkownika oracle:
export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export ORACLE_SID=test export PATH=$PATH:$ORACLE_HOME/bin:/u01/app/oracle/product/10.2.0/db_1/bin
Stworzenie instancji za pomocą Database Creator Assistant (dbca)
Kreator odpalamy poleceniem dbca
Stworzenie instancji ręcznie
Żeby stworzyć instancję ręcznie, trzeba się trochę napracować. Po pierwsze:
Tworzymy plik pfile
test.__db_cache_size=536870912 test.__java_pool_size=33554432 test.__large_pool_size=218103808 test.__shared_pool_size=1358954496 test.__streams_pool_size=0 *.audit_file_dest='/u01/app/oracle/admin/test/adump' *.background_dump_dest='/u01/app/oracle/admin/test/bdump' *.compatible='10.2.0.4.0' *.control_files='/u01/app/oracle/oradata/test/control01.ctl', '/u01/app/oracle/oradata/test/control02.ctl', '/u01/app/oracle/oradata/test/control03.ctl' *.core_dump_dest='/u01/app/oracle/admin/test/cdump' *.db_block_size=8192 *.db_cache_size=268435456 *.db_domain='' *.db_file_multiblock_read_count=16 *.db_name='test' *.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area' *.db_recovery_file_dest_size=4294967296 *.dispatchers='(PROTOCOL=TCP) (SERVICE=utfXDB)' *.java_pool_size=16777216 *.job_queue_processes=10 *.large_pool_size=218103808 *.nls_language='POLISH' *.nls_length_semantics='CHAR' *.nls_territory='POLAND' *.open_cursors=300 *.pga_aggregate_target=524288000 *.processes=400 *.remote_login_passwordfile='EXCLUSIVE' *.sessions=445 *.sga_max_size=2154116608 *.sga_target=2154116608 *.shared_pool_size=1258291200 *.streams_pool_size=0 *.undo_management='AUTO' *.undo_tablespace='UNDOTBS1' *.user_dump_dest='/u01/app/oracle/admin/test/udump'
Umieszczamy plik pod nazwą inittest.ora w katalogu dbs. Następnie logujemy się lokalnie do sqlplusa na uprawnienia sysdba. Startujemy bazę w trybie nomount.
Poniżej przykładowy skrypt tworzący bazę. Wyszczególnione w skrypcie katalogi powinny być utworzone. W skrypcie nie powinno być pustych linii bo może to spowodować błąd ORA-01092: ORACLE instance terminated. Disconnection forced.
CREATE DATABASE test
USER SYS identified by test
USER SYSTEM identified by test
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 2920
LOGFILE
GROUP 1 '/u01/app/oracle/oradata/test/redo01.log' SIZE 50M,
GROUP 2 '/u01/app/oracle/oradata/test/redo02.log' SIZE 50M,
GROUP 3 '/u01/app/oracle/oradata/test/redo03.log' SIZE 50M
CHARACTER SET UTF8
NATIONAL CHARACTER SET AL16UTF16
DATAFILE
'/u01/app/oracle/oradata/test/system01.dbf' SIZE 1500M
AUTOEXTEND ON NEXT 100M MAXSIZE UNLIMITED
sysaux datafile
'/u01/app/oracle/oradata/test/sysaux01.dbf' SIZE 450M
AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
UNDO TABLESPACE UNDOTBS1
DATAFILE '/u01/app/oracle/oradata/test/undotbs01.dbf'
SIZE 500M REUSE AUTOEXTEND ON NEXT 5120K MAXSIZE UNLIMITED
DEFAULT TEMPORARY TABLESPACE temp
TEMPFILE '/u01/app/oracle/oradata/test/temp01.dbf'
SIZE 3000M REUSE AUTOEXTEND ON NEXT 1000M MAXSIZE 31744M ;
@?/rdbms/admin/catalog.sql
@?/rdbms/admin/catproc.sql
@?/javavm/install/initjvm
Po stworzeniu bazy uruchamiamy trzy skrypty. Catalog.sql tworzy widoki słownika, bez niego niemożliwe jest na przykład wykoanie importu za pomocą narzędzia imp.
Zarejestrowanie serwisu w listenerze
Do zdalnego połączenia do bazy można urzyć SID bazy lub nazwy serwisu udostępnionego przez listenera. Listener to program nasłuchujący na określnonym porcie (portach) i pozwalający nawiązać połączenie. Jak zarejestrować serwis w listenerze? Musimy wyedytować plik listener.ora
sqlplus sys@test as sysdba SQL*Plus: Release 10.2.x.x.x - Production on Cz Maj 13 13:17:06 2010 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Proszę podać hasło: ERROR: ORA-01031: niewystarczające uprawnienia
Tworzenie pliku haseł
SQL> grant SYSDBA to sys; grant SYSDBA to sys * BŁĄD w linii 1: ORA-01994: GRANT nieudane: brak pliku haseł lub jest on wyłączony orapwd file='$ORACLE_HOME/dbs/orapw$ORACLE_SID' password=pass
Powyższym poleceniem stworzyliśmy brakujący plik haseł. Plik haseł umożliwia uwierzytelnienie użytkownika kiedy baza jest w trybie nomount. Jak wiadomo hasła użytkowników przechowywane są w pliku kontrolnym. W trybie nomount nie ma do niego dostępu - tak więc niemożliwe byłoby zdalne zalogowanie się do bazy.
show parameter remote_login NAME TYPE VALUE -------------------------- ----------- ---------- remote_login_passwordfile string EXCLUSIVE
SQL> grant SYSDBA to sys; grant SYSDBA to sys * BŁĄD w linii 1: ORA-01999: pliku haseł nie można aktualizować w trybie SHARED
orapwd file=orapwSID password=hasło SQL> grant SYSDBA to sys; SQL> select * from v$pwfile_users; USERNAME SYSDBA SYSOPER ------------------------------ --------------- --------------- SYS TRUE TRUE
Łukasz Goszczyński goszczu.pl