- SQL
- PL/SQL
- DBA
- Developer / Forms
- Developer / Reports
- Developer / Graphics
- Data-Warehouse

 
 
 

 
> Tutorials
 
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.