Appunti di
creazione DB versione 8,8i in ambiente Windows
Di Luca Acri
PREREQUISITO:
· Bisogna effettuare tutte queste
operazioni con un'utenza amministrativa del S.O.
· Avere precedentemente installato il Software Oracle.
CONSIGLI:
· Predisporre la locazione delle directory
nelle quali andranno a finire i vari datafile,ctl e redo possibilmente
su disco/i dedicato/i e/o diverso/i da quello/i dove è
installato il motore(software) Oracle; nel mio caso dato che
si tratta di un database di test le directory risiedono tutte
sul medesimo disco , quindi datafile gruppi di log e ctl anche
ma ho ugualmente cercato di evidenziare i concetti di multiplexing
e mirroring negli script.
· Predisporre gli script relativi alle entità
logiche (Tablespaces) in base alle specifiche esigenze del
DB in fase di creazione;
Nel caso si tratti di un DB di "TEST"
si possono semplicemente creare le TBS di default consigliate
da Oracle:
create tablespace RBS
datafile 'f:\webdb\data\rbs01.dbf' size 10M
default storage (initial 16K next 16K pctincrease 0 maxextents unlimited);
create tablespace TEMP
datafile 'f:\webdb\data\temp01.dbf' size 20M
default storage (initial 32K next 32K pctincrease 0 maxextents unlimited);
alter tablespace temp temporary;
create tablespace USERS
datafile 'f:\webdb\data\users01.dbf' size 10M
default storage (initial 32K next 32K pctincrease 0 maxextents unlimited);
TOOLS,INDEX
gli storage sono "casuali" possono
essere cambiati,ricordarsi di modificare il path dei datafile
· Predisporre un minimo di standard
OFA
Bene ora possiamo iniziare i passi salienti per la nostra
istanza.
IMPOSTAZIONI NETWORK:
Predisporre i file che andrannò nella
ORACLE_HOME/network/admin/ che serviranno principalmente per
le connessioni TCP;
le impostazioni sotto proposte sono sufficienti per un utilizzo
classico ma possono essere modificate in base alle proprie
esigenze .
sostituire le variabili racchiuse tra < >
Listener.ora :
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = <IP_HOST>)(PORT = 1521))
)
)
(DESCRIPTION =
(PROTOCOL_STACK =
(PRESENTATION = GIOP)
(SESSION = RAW)
)
(ADDRESS = (PROTOCOL = TCP)(HOST = <IP_HOST>)(PORT = 2481))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = <ORACLE_HOME>)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = <SID>)
(ORACLE_HOME= <ORACLE_HOME>)
(SID_NAME = <SID>)
)
)
Tnsnames.ora :
<ALIAS> =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = <IP_HOST>)(PORT = 1521))
)
(CONNECT_DATA = (SID = <SID>)(SERVER = DEDICATED))
)
Sqlnet.ora:
SQLNET.AUTHENTICATION_SERVICES= (NTS)
NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
IMPOSTAZIONI FILE DI PARAMETRI:
Se volete evitare ogni volta che lanciate
i comandi di STARTUP o SHUTDOWN di "allegarci" il
percorso completo del PFILE dovete creare sotto ORACLE_HOME\database\
Il file init<SID>.ora editandolo
nel seguente modo:
IFILE= 'f:\webdb\pfile\init<SID>.ora'
Modificare il path in base a dove avete posizionato
il "reale" init<SID>.ora (sotto vi allego
un esempio di init<SID>.ora ma è soltanto un
template che ricopre le mie esigenze per un database di test
a voi il divertimento di adattarlo il più possibili
alle vostre richieste)
---------------------------------inizio
initwebdb.ora---------------------------------------
#############################################
# #
# Template per parameter file init<sid>.ora #
# #
#############################################
# audit_file_dest = f:\webdb\adump
background_dump_dest = f:\webdb\bdump
compatible = 8.1.0
control_files = (f:\webdb\ctl\control01.ctl, f:\webdb\ctl\control02.ctl,f:\webdb\ctl\control03.ctl)
db_block_buffers = 50
db_block_size = 8192
db_domain = world
db_file_multiblock_read_count = 8
db_files = 32
db_name = webdb
distributed_transactions = 10
# dml_locks = 100
global_names = TRUE
job_queue_interval = 60
job_queue_processes = 1
log_archive_dest = (f:\webdb\arch)
log_archive_format = arc%T_%S.arc
log_archive_start = FALSE
log_buffer = 32768
log_checkpoint_interval = 10000
# log simultaneous threads = twice the number of CPUs
#log_simultaneous_copies = 4
max_dump_file_size = 10240
max_enabled_roles = 20
# mts_dispatchers = "tcp,1"
# mts_max_dispatchers = 10
# mts_servers = 1
# mts_max_servers = 10
# mts_service = template
# mts_listener_address = "(ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=1526))"
JOB_QUEUE_INTERVAL=60
JOB_QUEUE_PROCESSES=2
open_cursors = 255
open_links = 5
os_authent_prefix = ""
# try to set the number of parallel server processes to twice the CPUs count
parallel_max_servers = 10
PARALLEL_MIN_SERVERS=2
processes = 30
remote_login_passwordfile = shared
rollback_segments = (r01,r02)
#sequence_cache_entries = 10
#sequence_cache_hash_buckets = 10
shared_pool_size = 40000000
#snapshot_refresh_processes = 1
sort_area_size = 32768
sort_area_retained_size = 3276
# unlimited_rollback_segments = true
user_dump_dest = f:\webdb\udump
---------------------------------fine
initwebdb.ora-----------------------------------------
CREAZIONE SERVIZIO:
per versione 8 (ORADIM80)
per versione 8i (ORADIM)
oltre le opzioni da me utilizzate (sotto)
per questo comando ne esistono delle altre come è visibile
:
C:\>oradim
ORADIM: <comando> [opzioni]. Consultare il manuale.
Immettere uno dei seguenti comandi:
Creare un'istanza specificando i seguenti parametri:
-NEW -SID sid | -SRVC nome serv. [-INTPWD password] [-MAXUSERS
num.] [-START
MODE a|m] [-PFILE file] [-TIMEOUT sec.]
Modificare un'istanza specificando i seguenti parametri:
-EDIT -SID sid [-NEWSID sid] [-INTPWD password] [-STARTMODE
auto|manual] [-P
FILE nomefile]
[-SHUTMODE a|i|n] [-SHUTTYPE srvc|inst|srvc,inst] [-TIMEOUT
secondi]
Eliminare le istanze specificando quanto segue:
-DELETE -SID sid | -SRVC nome servizio
Avviare i servizi e l'istanza specificando i seguenti parametri:
-STARTUP -SID sid [-USRPWD password] [-STARTTYPE srvc|inst|srvc,inst]
[-PFIL
E nomefile]
Chiudere i servizi e l'istanza specificando i seguenti parametri:
-SHUTDOWN -SID sid [-USRPWD password] [-SHUTTYPE srvc|inst|srvc,inst]
[-SHUT
MODE a | i | n]
Richiesta della Guida specificando i seguenti parametri: -?
| -h | -help
Nel nostro caso ipotizzando di essere in una 8i:
C:\>oradim -new -sid webdb -pfile 'f:\alfa\pfile\init<SID>.ora
-intpwd <pwd_internal> -startmode a
questo comando crea quindi il servizio e
il file della password .
Se si volesse eliminare il servizio:
C:\>oradim -delete -sid webdb
VERIFICA FUNZIONAMENTO TCP E SERVIZIO ISTANZA:
Verificare quindi se le impostazioni precedentemente
impostate funzionano correttamente attraverso le utilità:
C:\>lsnrctl start
C:\>lsnrctl status
Verificare che sia servito il servizio per
il nostro DB WEBDB.
C:\> NET START OracleServicewebdb
Verificare la partenza del servizio.
C:\>tnsping webdb
Verificare la risposta del servizio.
CREAZIONE FISICA DB:
Se tutti i passi sopra descritti sono andati
a buon fine:
C:\>set ORACLE_SID=WEBDB
C:\>svrmgrl
SVRMGRL>connect internal/<pwd_internal>
SVRMGRL>startup nomount
SVRMGRL> create database webdb
maxlogfiles 64
maxlogmembers 5
maxdatafiles 64
logfile group 1 ('f:\webdb\redo\redo0101.rdo', 'f:\webdb\redo\redo0102.rdo') size 1M,
group 2 ('f:\webdb\redo\redo0201.rdo', 'f:\webdb\redo\redo0202.rdo') size 1M,
group 3 ('f:\webdba\redo\redo0301.rdo', 'f:\webdb\redo\redo0302.rdo') size 1M,
group 4 ('f:\webdb\redo\redo0401.rdo', 'f:\webdb\redo\redo0402.rdo') size 1M
noarchivelog
character set WE8ISO8859P1
datafile 'f:\webdb\data\system01.dbf' size 90M
/
successivamente eseguire gli script per le tablespaces di
default o quelli creati per la specifica istanza dovute dalle
vostre esigenze:
create tablespace RBS
datafile 'f:\webdb\data\rbs01.dbf' size 10M
default storage (initial 16K next 16K pctincrease 0 maxextents unlimited);
create tablespace TEMP
datafile 'f:\webdb\data\temp01.dbf' size 20M
default storage (initial 32K next 32K pctincrease 0 maxextents unlimited);
alter tablespace temp temporary;
create tablespace USERS
datafile 'f:\webdb\data\users01.dbf' size 10M
default storage (initial 32K next 32K pctincrease 0 maxextents unlimited);
seguiti poi dalla creazione dei Rollback segment che si appoggiano sulla tablespace RBS:
create rollback segment r01
tablespace rbs
storage (initial 128K next 128K optimal 1M minextents 8 maxextents unlimited);
alter rollback segment r01 online;
create rollback segment r02
tablespace rbs
storage (initial 1M next 1M optimal 4M minextents 4 maxextents unlimited);
alter rollback segment r02 online;
ed infine :-) facciamo girare i cataloghi
standard:
(con utente SYS o INTERNAL)
$ORACLE_HOME/rdbms/admin/catalog.sql
..pazientate
.
$ORACLE_HOME/rdbms/admin/catproc.sql
..pazientate
.
(con utente SYSTEM)
$ORACLE_HOME/sqlplus/admin/pupbld.sql
se si ha intenzione di avere delle opzioni
in più , esempio la replication uno dei cataloghi aggiuntivi
da far girare è catrep.sql è quindi consigliabile
per le opzioni aggiuntive documentarsi .
bene a questo punto siamo pronti facciamo
partire il DB:
SVRMGRL>shutdown
SVRMGRL>startup
Ed ecco il nostro DB aperto e pronto
..spero che la cosa vi sia risultata utile.
|