Oracle Datapump Settembre 3, 2009
Posted by installatore in Oracle, Varie, script.Tags: datapump, dba, dump, exp, export, imp, import, Oracle
add a comment
Nelle ultime versioni di Oracle Database (10 e 11) è stata introdotta una nuova funzione chiamata datapump.Questo va ad affiancare i vecchi comandi exp e imp,introducendo i comanid expdp e impdp.Con questa funzione gli import e gli export non sono più delle comnuni sessioni client-server tra il nostro client oracle e il db (con tutte le limitazioni del caso),ma sono dei processi lanciati direttamente sul server (si potrà fare export e import solo su file e directory presenti sul server),questo è un vantaggio perchè oracle può amministrare le risorse da destinare a questi processi anche in base al carico di lavoro del db (finalmente non faremo sedere il db a ogni export
).Vengono introdotte anche nuove funzioni che rendono più semplice la vita del dba (per esempio la possibilità di escludere/includere solo determinate tabelle nel processo di importazione/esportazione,e nel caso della versione enterprise si può specificare il grado di parallelismo che i processi possono raggiungere,quindi impostandolo per esempio a 4 avremo un export completato in 1/4 del tempo).
Cominciamo con dare gli opportuni grant all’utente che utilizzeremo per queste operazioni.
CONN sys/password@rac10g AS SYSDBA
ALTER USER fede IDENTIFIED BY 1234 ACCOUNT UNLOCK;
GRANT CREATE ANY DIRECTORY TO fede;
A questo punto creo una directory in Oracle che punti a una directory sul mio filesystem dando relativi grants al mio utente.
CREATE OR REPLACE DIRECTORY DP_DIR AS ‘/u01/app/oracle/orabck/’;
GRANT READ, WRITE ON DIRECTORY DP_DIR TO fede;
Adesso possiamo cominciare con l’import o export di alcune tabelle,tramite il parametro TABLE,se volessimo andare a importare dei dati su una tabella già esistente dovremmo inserire anche il parametro TABLE_EXISTS_ACTION=APPEND
expdp fede/1234@rac10g tables=ANAGRAFICA,CREDITI directory=DP_DIR dumpfile=ANAG_CRED.dmp logfile=expdpANAG_CRED.log
impdp fede/1234@rac10g tables=ANAGRAFICA,CREDITI directory=DP_DIR dumpfile=ANAG_CRED.dmp logfile=impdpANAG_CRED.log
Se invece vogliamo importare o esportare un intero schema non utilizzeremo più i parametri FROMUSER,TOUSER oppure OWNER,ma direttamente il parametro SCHEMAS.
expdp fede/1234@rac10g schemas=CRED10G directory=DP_DIR dumpfile=CRED10G.dmp logfile=expdpCRED10G.log
impdp fede/1234@rac10g schemas=CRED10G directory=DP_DIR dumpfile=CRED10G.dmp logfile=impdpCRED10G.log
Per quanto riguarda l’import o l’export di un intero database rimane il parametro FULL=Y .
expdp fede/1234@rac10g full=y directory=DP_DIR dumpfile=CRED10G.dmp logfile=expdpCRED10G.log
impdp fede/1234@rac10g full=y directory=DP_DIR dumpfile=CRED10G.dmp logfile=impdpCRED10G.log
Tutte le operazioni di import ed export sono eseguite da dei processi sul server che fanno capo a un processo padre che li gestisce (queueing e via dicendo).Infatti se per esempio una volta lanciati uno dei comandi sopra indicati si stoppa il comando con ctrl + c,viene terminata solo la sessione con l’utente e veniamo dirottati su una console da cui per esempio possiamo lanciare il comando “status” che avrà il seguente output:
Export> status
Job: SYS_EXPORT_FULL_01
Operation: EXPORT
Mode: FULL
State: EXECUTING
Bytes Processed: 0
Current Parallelism: 1
Job Error Count: 0
Dump File: D:TEMPDB10G.DMP
bytes written: 4,096Worker 1 Status:
State: EXECUTING
Object Schema: SYSMAN
Object Name: MGMT_CONTAINER_CRED_ARRAY
Object Type: DATABASE_EXPORT/SCHEMA/TYPE/TYPE_SPEC
Completed Objects: 261
Total Objects: 261
Come scritto prima possiamo impostare il grado di parallelismo con cui lanciare lìexport o l’import attraverso il parametro PARALLEL e l’utilizzo della wildcard %U in modo tale che più file di export possano essere creati contemporaneamente.
expdp fede/1234@rac10g schemas=CRED10G PARALLEL=4 directory=DP_DIR dumpfile=CRED10G%U.dmp logfile=expdpCRED10G.log
La vista DBA_DATAPUMP_JOBS può essere controllata per verificare lo stato dei jobs lanciati sul server.
system@rac10g> select * from dba_datapump_jobs;
OWNER_NAME JOB_NAME OPERATION
—————————— —————————— ——————————
JOB_MODE STATE DEGREE ATTACHED_SESSIONS
—————————— —————————— ———- —————–
SYSTEM SYS_EXPORT_FULL_01 EXPORT
FULL EXECUTING 1 1
Possono anche essere utilizzati i parametri EXCLUDE e INCLUDE per filtrare gli oggetti da processare.
expdp fede/1234@rac10g schemas=CRED10G include=TABLE:”IN (‘ANAGRAFICA’, ‘CREDITI’)” directory=DP_DIR dumpfile=CRED10G.dmp logfile=expdpCRED10G.log
impdp fede/1234@rac10g schemas=CRED10G exclude=TABLE:”= ‘CREDITI’” directory=DP_DIR dumpfile=CRED10G.dmp logfile=impdpCRED10G.log
Nel caso dopo aver lanciato expdp abbiamo chiuso la finestra e vogliamo ritornarci per controllare lo stato,possiamo come prima cosa interrogare la vista DBA_DATAPUMP_JOBS,da li ricavarci il JOB_NAME e quindi eseguire il seguente comando.
expdp system/***** attach=SYS_EXPORT_FULL_01
Export: Release 10.1.0.4.0 – 64bit Production on Tuesday, 20 March, 2007 23:53
Copyright (c) 2003, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.1.0.4.0 – 64bit Production
With the Partitioning, Real Application Clusters, OLAP and Data Mining options
Job: SYS_EXPORT_TABLE_03
Owner: SYSTEM
Operation: EXPORT
Creator Privs: FALSE
GUID: 2C22B38216C04297E044000E7FEDD1FD
Start Time: Tuesday, 20 March, 2007 23:53
Mode: TABLE
Instance: *****
Max Parallelism: 4
EXPORT Job Parameters:
Parameter Name Parameter Value:
CLIENT_COMMAND system/******** parfile=/backup/****/PARFILES/userdata_tablename.dat
DATA_ACCESS_METHOD AUTOMATIC
ESTIMATE BLOCKS
INCLUDE_METADATA 1
LOG_FILE_DIRECTORY DATA_PUMP_DIR2
LOG_FILE_NAME expdp_tablename_20032007.log
TABLE_CONSISTENCY 0
State: IDLING
Bytes Processed: 0
Current Parallelism: 4
Job Error Count: 0
Dump File: /backup/****/expdp_tablename_20032007.dmp
bytes written: 180,224
Worker 1 Status:
State: UNDEFINED
Worker 2 Status:
State: UNDEFINED
Object Schema: *****
Object Name: *****
Object Type: TABLE_EXPORT/TABLE/TBL_TABLE_DATA/TABLE/TABLE_DATA
Completed Objects: 1
Total Objects: 1
Worker 3 Status:
State: UNDEFINED
Worker 4 Status:
State: UNDEFINED
Per avere maggiori informazioni su datapump consiglio di guardare l’help sia dei comandi impdp che di expdp.
expdp help=y
Export: Release 10.1.0.2.0 – Production on Tuesday, 23 March, 2004 8:33
Copyright (c) 2003, Oracle. All rights reserved.
The Data Pump export utility provides a mechanism for transferring data objects
between Oracle databases. The utility is invoked with the following command:Example: expdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
You can control how Export runs by entering the ‘expdp’ command followed
by various parameters. To specify parameters, you use keywords:Format: expdp KEYWORD=value or KEYWORD=(value1,value2,…,valueN)
Example: expdp scott/tiger DUMPFILE=scott.dmp DIRECTORY=dmpdir SCHEMAS=scott
or TABLES=(T1:P1,T1:P2), if T1 is partitioned tableUSERID must be the first parameter on the command line.
Keyword Description (Default)
——————————————————————————
ATTACH Attach to existing job, e.g. ATTACH [=job name].
CONTENT Specifies data to unload where the valid keywords are:
(ALL), DATA_ONLY, and METADATA_ONLY.
DIRECTORY Directory object to be used for dumpfiles and logfiles.
DUMPFILE List of destination dump files (expdat.dmp),
e.g. DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp.
ESTIMATE Calculate job estimates where the valid keywords are:
(BLOCKS) and STATISTICS.
ESTIMATE_ONLY Calculate job estimates without performing the export.
EXCLUDE Exclude specific object types, e.g. EXCLUDE=TABLE:EMP.
FILESIZE Specify the size of each dumpfile in units of bytes.
FLASHBACK_SCN SCN used to set session snapshot back to.
FLASHBACK_TIME Time used to get the SCN closest to the specified time.
FULL Export entire database (N).
HELP Display Help messages (N).
INCLUDE Include specific object types, e.g. INCLUDE=TABLE_DATA.
JOB_NAME Name of export job to create.
LOGFILE Log file name (export.log).
NETWORK_LINK Name of remote database link to the source system.
NOLOGFILE Do not write logfile (N).
PARALLEL Change the number of active workers for current job.
PARFILE Specify parameter file.
QUERY Predicate clause used to export a subset of a table.
SCHEMAS List of schemas to export (login schema).
STATUS Frequency (secs) job status is to be monitored where
the default (0) will show new status when available.
TABLES Identifies a list of tables to export – one schema only.
TABLESPACES Identifies a list of tablespaces to export.
TRANSPORT_FULL_CHECK Verify storage segments of all tables (N).
TRANSPORT_TABLESPACES List of tablespaces from which metadata will be unloaded.
VERSION Version of objects to export where valid keywords are:
(COMPATIBLE), LATEST, or any valid database version.The following commands are valid while in interactive mode.
Note: abbreviations are allowedCommand Description
——————————————————————————
ADD_FILE Add dumpfile to dumpfile set.
ADD_FILE=dumpfile-name
CONTINUE_CLIENT Return to logging mode. Job will be re-started if idle.
EXIT_CLIENT Quit client session and leave job running.
HELP Summarize interactive commands.
KILL_JOB Detach and delete job.
PARALLEL Change the number of active workers for current job.
PARALLEL=.
START_JOB Start/resume current job.
STATUS Frequency (secs) job status is to be monitored where
the default (0) will show new status when available.
STATUS=[interval]
STOP_JOB Orderly shutdown of job execution and exits the client.
STOP_JOB=IMMEDIATE performs an immediate shutdown of the
Data Pump job.impdp help=y
Import: Release 10.1.0.2.0 – Production on Saturday, 11 September, 2004 17:22
Copyright (c) 2003, Oracle. All rights reserved.
The Data Pump Import utility provides a mechanism for transferring data objects
between Oracle databases. The utility is invoked with the following command:Example: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmp
You can control how Import runs by entering the ‘impdp’ command followed
by various parameters. To specify parameters, you use keywords:Format: impdp KEYWORD=value or KEYWORD=(value1,value2,…,valueN)
Example: impdp scott/tiger DIRECTORY=dmpdir DUMPFILE=scott.dmpUSERID must be the first parameter on the command line.
Keyword Description (Default)
——————————————————————————
ATTACH Attach to existing job, e.g. ATTACH [=job name].
CONTENT Specifies data to load where the valid keywords are:
(ALL), DATA_ONLY, and METADATA_ONLY.
DIRECTORY Directory object to be used for dump, log, and sql files.
DUMPFILE List of dumpfiles to import from (expdat.dmp),
e.g. DUMPFILE=scott1.dmp, scott2.dmp, dmpdir:scott3.dmp.
ESTIMATE Calculate job estimates where the valid keywords are:
(BLOCKS) and STATISTICS.
EXCLUDE Exclude specific object types, e.g. EXCLUDE=TABLE:EMP.
FLASHBACK_SCN SCN used to set session snapshot back to.
FLASHBACK_TIME Time used to get the SCN closest to the specified time.
FULL Import everything from source (Y).
HELP Display help messages (N).
INCLUDE Include specific object types, e.g. INCLUDE=TABLE_DATA.
JOB_NAME Name of import job to create.
LOGFILE Log file name (import.log).
NETWORK_LINK Name of remote database link to the source system.
NOLOGFILE Do not write logfile.
PARALLEL Change the number of active workers for current job.
PARFILE Specify parameter file.
QUERY Predicate clause used to import a subset of a table.
REMAP_DATAFILE Redefine datafile references in all DDL statements.
REMAP_SCHEMA Objects from one schema are loaded into another schema.
REMAP_TABLESPACE Tablespace object are remapped to another tablespace.
REUSE_DATAFILES Tablespace will be initialized if it already exists (N).
SCHEMAS List of schemas to import.
SKIP_UNUSABLE_INDEXES Skip indexes that were set to the Index Unusable state.
SQLFILE Write all the SQL DDL to a specified file.
STATUS Frequency (secs) job status is to be monitored where
the default (0) will show new status when available.
STREAMS_CONFIGURATION Enable the loading of Streams metadata
TABLE_EXISTS_ACTION Action to take if imported object already exists.
Valid keywords: (SKIP), APPEND, REPLACE and TRUNCATE.
TABLES Identifies a list of tables to import.
TABLESPACES Identifies a list of tablespaces to import.
TRANSFORM Metadata transform to apply (Y/N) to specific objects.
Valid transform keywords: SEGMENT_ATTRIBUTES and STORAGE.
ex. TRANSFORM=SEGMENT_ATTRIBUTES:N:TABLE.
TRANSPORT_DATAFILES List of datafiles to be imported by transportable mode.
TRANSPORT_FULL_CHECK Verify storage segments of all tables (N).
TRANSPORT_TABLESPACES List of tablespaces from which metadata will be loaded.
Only valid in NETWORK_LINK mode import operations.
VERSION Version of objects to export where valid keywords are:
(COMPATIBLE), LATEST, or any valid database version.
Only valid for NETWORK_LINK and SQLFILE.The following commands are valid while in interactive mode.
Note: abbreviations are allowedCommand Description (Default)
——————————————————————————
CONTINUE_CLIENT Return to logging mode. Job will be re-started if idle.
EXIT_CLIENT Quit client session and leave job running.
HELP Summarize interactive commands.
KILL_JOB Detach and delete job.
PARALLEL Change the number of active workers for current job.
PARALLEL=.
START_JOB Start/resume current job.
START_JOB=SKIP_CURRENT will start the job after skipping
any action which was in progress when job was stopped.
STATUS Frequency (secs) job status is to be monitored where
the default (0) will show new status when available.
STATUS=[interval]
STOP_JOB Orderly shutdown of job execution and exits the client.
STOP_JOB=IMMEDIATE performs an immediate shutdown of the
Data Pump job.
Enable/Disable Oracle Archive Logs Aprile 26, 2009
Posted by installatore in Oracle.Tags: 10gr2, linux, Oracle, rhel, server, solaris, solaris10, sys
add a comment
Per disabilitare la modalità archive log (per esempio per eseguire un grosso import),collegarsi all’istanza con Sql*Plus,quindi dare i seguenti comandi:
shutdown immediate;
startup mount;
alter database noarchivelog;
alter database open;
Se invece avete intenzione di abilitarli basta sostituire la riga alter database noarchivelog; con alter database archivelog;
Per controllare la modalità con cui si stà eseguendo oracle,sempre da Sql*Plus lanciare il seguente comando:
archive log list;
Nelle nuove installazioni di Oracle dove è presente la flash recovery area bisogna prestare attenzione quando si abilitano gli archive log.Di default con la flash recovery area la prima destinazione degli archive log è proprio quest’ultima,che però ha come grandezza di default (indipendentemente dallo spazio che avete libero sul file system) 2GB,nello sventurato caso in cui arrivate a tappare completamente questa grandezza,oracle non accetterà più nuove connessioni permettendo solo di connettervi localmente con Sql*Plus.L’errore è il seguente:
ORA-00257 archiver error. connect internal only, until freed
Per risolvere il problema collegarsi in locale e aumentare la grandezza della flash recovery area come segue:
sqlplus “/as sysdba”
alter system set db_recovery_file_dest = ‘/flash_recovery_area_location’; (nel caso voglia proprio spostarla per mancanza di spazio su file system,altrimenti saltare questo passaggio)
alter system set db_recovery_file_dest_size = 4g; (raddoppio così il valore di default)
Import and Export Oracle dump Settembre 6, 2008
Posted by installatore in Oracle.Tags: dump, exp, export, imp, import, Oracle
2 comments
Buongiorno a tutti,in questo articolo vediamo come utilizzare i comandi imp ed exp di Oracle.Che possono tornare molto utili se dobbiamo replicare la stessa struttura di database per esempio per un ‘applicazione web o di gestione dati.Se sul computer che utilizzeremo per effettuare l’import ci sono installate più versioni di Oracle conviene andare a posizionare i file di dump che si vogliono caricare nella cartella bin della Oracle home della stessa versione del database su cui vogliamo operare.
Es. D:\Oracle\Ora92\bin\
Questo per non rischiare di importare su un db Oracle 10 con il client della versione 9,2,che creerebbe problemi (errori vari o troncamento di alcune tabelle).
I comandi imp ed exp funzionano in questo modo:
exp/imp <userid/password> <parametro>=<valore> <parametro>=<valore>
Quindi possiamo fare un esempio:
exp system@database file=c:\export.dmp statistics=none
imp system@database_2 file=export.dmp fromuser=utentesuldump touser=utentesuldb
Si possono inoltre aggiungere parametri per esportare o importare solo delle tabelle specifiche oppure fargli creare un file di log.
imp system@database_2 file=export.dmp tables=(tabella1,tabella2,tabella3….) log=c:\import.log
Nel caso dobbiate effettuare un grosso import per non saturare il file system o la flash recovery area e soprattutto per incrementare la velocità dell’operazione è necessario disabilitare la modalità Archive Log di Oracle,per controllare lo stato della vostra istanza o per istruzioni su come disabilitarli e successivamente riabilitarli ho creato un post ad hoc.
Avrete sicuramente notato specialmente se si effettuano queste operazioni su grandi db in produzione, che servirebbe una sorta di percentuale di avanzamento di import o export di una tabella,per questo ci viene incontro l’opzione FEEDBACK=rownumber,che ci permette di impostare il numero di righe per cui deve essere stampato un puntino a video.Per esempio con imp system@database_2 file=export.dmp fromuser=utentesuldump touser=utentesuldb feedback=1000,ogni mille righe stamperà un puntino a video.
Se avete qualcosa da aggiungere all’articolo mettetelo pure nei commenti ,provvederò in seguito ad inserirlo a vostro nome nel post principale.
Appunti sparsi di un corso :) Oracle 10gr2 on RHEL 4.0 Luglio 30, 2008
Posted by installatore in Oracle.Tags: 10gr2, installation, linux, Oracle, rhel
2 comments
Notate l’ordine con cui sono stati scritti hihih
purtroppo non ho tempo per ordinarli….farete fatica a capirli ma i comandi sono giusti
sperando che vi possano essere utili…
-www.puschitz.com per guida passo passo
-www.kousmous.com/ corso di oracle 9i
-con redhat e clusterware si risparmiano i problemi di clusterveritas,livello di licenze e di prestazioni (nodi sempre attivi in load balancing)
-raid 0 accumula più diski fisici dietro uno logico scrivendo su più stripes unit e che fanno parte di una stripes.
-Raid 5 media velocità 2 diski per il dato 1 per la parità
A1 dato b1 dato c1 par a2 dato b2 par c2 dato a3 par b3 dato c3 dato
-Raid 10 prende il meglio di raid 0 e raid 1 ,quindi la parità dell’1 e velocità dello 0, due dischi in mirror che formano uno stripes,si può anche non utilizzare il disco di hotspare
-ridondanza molto veloce raid 1 per O.S. raid 1 0 per i dati
-l’istanza d oracle è l’applicazione che permette la connessione alla base dati per renderli disponibili e anche la memoria di tale applicazione
-hotspare disco utilizzato dal sistema appena se ne rompe uno lo usa per ripristinare la situazione (da non fidarsi troppo,perché non si ci accorge se si stà rompendo anche qualcosaltro),comodo su raid 5 dove solo un disco si può rompere.
-di oracle vado ad installare la standard fino a 4 cpu ,la enterprise è oltre soprattutto per il costo
-nomenclatura dischi in fase di installazione red hat: /dev/cciss/c0d0 (device/controllerhpsmart/controller 0 disco 0),selezione il disco poi selezione il mount point(link a un device)(/usr contiene i programmi non gli user –user system resource- ,/boot c’è il file system,/tmp i file temporanei,/ radice ,/var di solito i file di log più i messagges ,/usr/local vi sono i binari compilati cc++,/opt opzionale-oracle in alcune release si installa qui,/svr in alcune installazioni ci vanno i servizi),scegliendo il file system ext3 abbiamo una mini ridondanza(non si può utilizzare per il root ocfs2),un buon compromesso per lo spazio è trai 5 ai 10 gb ,fixed size,force to be a primari partition
-creiamo una partizione di swap che sia più o meno il doppio della memoria ram,forzandolo come partizone primaria
-se si pensa di non spostare i dati si può mettere tutto sul raid 1 0,è buona norma lasciare i dati su un array separato
-grub è quella porzione di linux che ha la funzione di agganciare i dischi durante il bootstrap,è presente anche sull’mbr menu.lst ,consigliato no
-firewall si ,SElinux da disabilitare assolutamente /etc/selinux/config SELINUX=DISABLED
-i due orologi del pc si sincronizzano solo al boot,conviene fare una sincronizzazione con un server ntp (network time protocol),con oracle bisogna avere un ntp assolutamente
-andiamo ad aggiungere nei development tools gcc4 per evitare problemi con oracle,sotto ‘compatibilità arch development support’ si mette tutto anche ‘legacy software development’,sotto ‘system tools’ inseriamo anche iptraf e mc (mini grafica se non è installata la grafica),sysstat
Importani per oracle sono le librerie di compatibilità e le dipendenze /root/install.log
-/etc/sysctl.conf configurazione di sistema e collegamento kernel
-una volta entrati come root gli diamo il comando uname –a (kernel) , poi il comando free (ram), df –kh ,cat /proc/cpuinfo | less (ci fa vedere le caratteristiche della cpu),sotto flags vediamo le primitive del processore per esempio LM (x86_64) VMX (virtualizzazione per intel) SVM (virtualizzazione per amd64) HT (hypertrading,emula un secondo processore,da disabilitare se si hanno 4 cpu reali per non passare alla licenza successiva),fdisk –l ,da lanciare uno per volta per creare due nuove partizioni fdisk /dev/c0d0 p n p 3 default +5000m p n p enter enter p w (write)
Pvcreate /dev/cciss/c0d0p4
-creiamo un file system sulla terza partizione
mkfs.ext3 /dev/cciss/c0d0p3
Vi /etc/fstab andiamo a inserire copiandoci la prima riga al posto di label inseriamo:
/dev/cciss/c0d0p3 /oraengine ext3 defaults 0 2
Il primo uno sta per se vogliamo dumpare il filesystem , il 2 sta solo per dire di essere l’ultimo nella lista dell’fsck (scandisk) se si riavvia la macchina
-creiamo la directory mkdir /oraengine , a questo punto possiamo montare il filesystem con mount /oraengine , facendo df –kh vediamo el informazioni sui diski
-creiamo il phisycal volume sulla partizione4 del primo array
Pvdisplay andiamo a vedere i phisical volume
-creiamo il volume group sul phisical volume
Vgcreate vg00 /dev/cciss/c0d0p4
Vgdisplay andiamo a vedere i volumegroup aggiungendo –v ci da altre informazioni aggiuntive
-creiamo i logical volume su cui andremo ad inserire le componenti dell’engine di oracle
Lvcreate –name=datiinstoracle –size=10G vg00
Lvdisplay andiamo a vedere I logical volume appena inserito
Lvcreate –name=sviluppo –size=50G vg00
-fdisk /dev/cciss/c0d0 andiamo a cambiare l’id della partizione da 83 a 8e per indicarlo come LInuxLVM
-creo i file system per i due volumi logici e poi li reinserisco in /etc/fstab
mkfs.ext3 /dev/vg00/sviluppo
Mkfs.ext3 /dev/vg00/datiinstoracle
Aggiungo queste righe a fstab
dev/vg00/sviluppo /sviluppo ext3 defaults 0 2 dev/vg00/datiinstoracle /datiinstoracle ext3 defaults 0 2
creo le due directory
mkdir /datiinstoracle
mkdir /sviluppo
e monto i due filesystem
mount /datiinstoracle/
mount /sviluppo/
-creo gli LVM sul secondo array (datafile generici,file indici,log,backup,archive log)
Pvcreate /dev/cciss/c0d1p1
Vgcreate vg01 /dev/cciss/c0d1p1
Lvcreate –name=indici –size=30G vg01
Lvcreate –name=onlinelog –size=1G vg01
Lvcreate –name=gdatafile –size=100G vg01
Lvcreate –name=archive –size=50G vg01
Lvcreate –name=orabck –size=87G vg01
Lvdisplay –C vediamo I nostril logical volume
-ora creiamo i file system per i nuovi diski logici
Mkfs.ext3 /dev/vg01/indici
Mkfs.ext3 /dev/vg01/onlinelog
Mkfs.ext3 /dev/vg01/gdatafile
Mkfs.ext3 /dev/vg01/archive
Mkfs.ext3 /dev/vg01/orabck
-inserisco i device in fstab
dev/vg01/indici /indici ext3 defaults 0 2 dev/vg01/onlinelog /onlinelog ext3 defaults 0 2
dev/vg01/gdatafile /gdatafile ext3 defaults 0 2
dev/vg01/archive /archive ext3 defaults 0 2 dev/vg00/orabck /orabck ext3 defaults 0 2
-creo le directory
Mkdir /indici/
Mkdir /onlinelog/
Mkdir /gdatafile/
Mkdir /archive/
Mkdir /orabck/
-montiamo il fiel system con mount –a
-df –kh vediamo tutti I devices ci sarà scritto mapper al posto di vg00 o vg01 ma per noi rimangono sempre questi
-tail –f /var/log/messages leggiamo un messaggio dove c’è tutto quello ke passa dal kernel
-Vi /etc/inittab
Modificare la voce al ctrl alt canc per disabilitarlo e poi fargli rileggere la init tab
Init u
-Adesso si può partire con l’installazione di oracle poiché abbiamo configurato il server per poterlo contentere,durante il corso lasciamo il proiettore collegato al server con un tail –f /var/log/messages per poter vedere i messaggi del kernel mentre da un altro pc lanciamo l’installazione oracle in maniera grafica da remoto
-dalla macchina remota lancio il comando ssh –X per impostare il pc come ricevente del display grafico del server, ssh –X rhelco@elcorh0db, una volta connesso mi eleggo a root facendo Su –root ,quindi mi apro un altro terminale del tipo gnome-terminal &
-mi dirigo nella cartella dove ho copiato i file (/datiinstoracle) di installazione di oracle e comincio con l’installazione
Gunzip nomefile
Cpio –idmv < nome file
Cd /datiinstoracle/database/doc/
Firefox index.htm
Ci apriamo il file index.htm dove è presente una guida veloce da tenere aperta
-Aggiungo il gruppo e l’utente oracle
groupadd dba # group of users to be granted SYSDBA system privilege
groupadd oinstall # group owner of Oracle files
useradd -c “Oracle software owner” -g oinstall -G dba oracle
passwd oracle
id nobody controllo la presenza dell’account nobody
-Copio i parametri di oracle del kernel
Cp –pv /etc/sysctl.conf /etc/sysctl.conf2 copio il file per sicurezza
Vi /etc/sysctl.conf vado in fondo al file (:$) e incollo i parametri di oracle scritti sulla guida esc (:x) per fargli fare un refresh al file faccio
Sysctl –p
-Per evitare che oracle dando problemi possa creare file o cose strane aggiungo i seguenti parametri in /etc/security/limits.conf
Cp –pv limits.conf limits.conf2
Vi limits.conf e aggiungo in fondo I miei parametric per limitare oracle
-Aggiungo una linea in fondo al file /etc/pam.d/login
-Aggiungo i parametri in /etc/csh.login
-Creo le cartelle necessarie
mkdir -p /orengine/app/oracle
Chown –R oracle:oinstall /oraengine/app/oracle
Chmod –R 775 /oraengine/app/oracle
Setto le variabili per l’utente oracle
export ORACLE_BASE=/oraengine/app/oracle
export ORACLE_SID=elcopolaris
-Avvio l’installer dall’user oracle prima controllo se riesco ad aprire la shell grafica xclock se tutto va bene quindi
./runInstaller
Non creiamo il database iniziale quindi togliamo la spunta,nella posizione della oracle home personalizzo togliendo db1 e metto per esempio farmpolaris,selezione l’installazione standard.AVANTI
Orainventory è l’inventario di ciò che è installato.AVANTI
Vado avanti fino a installa
-Sulla macchina lancio questa applicazione per vedere il carico medio della macchina
Xload -scale 3&
-Ci chiede di lanciare due script noi copiamo quella posizione e la lanciamo in un terminale dove siamo root, a questo punto il motore di oracle è istallato.
-Per creare una nuova istanza usiamo il comando dbca sempre dall’utente oracle
Cd $ORACLE_BASE
Cd oraengine/app/oracle/product/10.2.0/farmpolaris/
Cd bin ci sono tutti gli eseguibili
./dbca ci permette di configurare il database
Creare un database,uso generico (general purpose),nome di database globale deve essere uguale al SID,impostiamo la password di sys,a questo punto impostiamo come vogliamo attuare la memorizzazione (File system,ASM,Unità di RAW) scegliamo file system,quindi posizioniamo i data files nella nostra /gdatafiles che avevamo creato precedentemente,definiamo quindi un’area su cui punterà rman per gestire l’area dir recupero flash che andremo a mettere in /orabck (mkdir flash_recovery_data),la casella abilità archiviazione abiliterebbe gli archive log che però installeremo dopo a mano,nessuno script personalizzato.
Passo 10 di 12 (SGA:è dove oracle gestisce i dati in memoria ram PGA:memoria per i programmi) Tipico 40% quindi Dimensionamento numero massimo di processi 150,il set di caratteri di solito si lascia predefinito,modalità di connessione:Server dedicato
Passaggio 11 di 12- (Il control file è il file che contiene la topologia dei file che contengono il mio database,sono tre perché sono ridondati) sotto file di dati vediamo i tablespace di default (il datafile è fisico il tablespace è logico).I log di redo tengono traccia di tutte le transazioni date su una base di dati sono tre (vengono scritti prima il primo,poi il secondo,poi il terzo,poi ricomincia-se fossero attivi gli archivi log il primo log prima di essere reiscritto viene archiviato).
Passo 12 di 12 – mettiamo il flag su crea file di script
-export ORACLE_HOME=/oraengine/app/oracle/oracle/product/10.2.0/farmpolaris
Lancio lo script che mi ha creato inserisco il codice della lingua e la password di sys
Netca è ciò che mi setta il tns
Note
-lsmod,modprobe
-kernel cuore di linux che permette di colloquiare con l’hardware della macchina,le glibc sono el librerie parte vitale di linux,anche la memoria viene vista come periferica
-uname –mi (per sapere la piattaforma su cui si lavora)
-rpm –F fa aggiornamento solo se è presente la versione precedente la –U installa anche se non è presente la versione precedente
-datafile generici,file indici,log,backup,archive log questi sono i 5 mount point che creeremo per oracle per mantenere questi dati separati sul secondo array mentre il motore sul primo
-I Logical VoluMe permettono in maniera elastica di modificare le partizioni,composto da 3 parti: phisical volume-disk(partizioni), volume group(gruppi di partizioni),logical volume(cosa su cui andiamo a montare il file system)
-abilitare la virtualizzazione da bios e disabilitare le cose superfluee
-smartd demone per controllare lo stato dei diski (temperatura,etc…)
-initrd è il file contenente dei driver per caricare i driver del kernel
-system-config-packages se ci siamo scordati qualche pacchetto durante l’installazzione con questo comando riapriamo la finestra di selezione dei pacchetti da installare da cd
-/etc/hosts file hosts
-Passmark simula un utilizzo oracle sulla tua istanza e calcola le performance
-il dump è una foto della base dati in un istante poi applicandovi gli archive redo log si riesce a tornare in caso di recovery al momento in cui è crashato il database
Oracle 10gR2 Step by step installation on Solaris 10 Luglio 29, 2008
Posted by installatore in Oracle.Tags: 10, 10g, 10gr2, linux, Oracle, solaris, solaris10, sys, unix
add a comment
Controlliamo i requisiti:
—————————-
#/usr/sbin/prtconf | grep “Memory size” [Controlliamo la ram]
# /usr/sbin/swap -s [Controlliamo la memoria swap]
# df -k /tmp [check /tmp size (>400mb)]
# uname -r [Controlliamo la versione di solaris]
# pkginfo -i SUNWarc SUNWbtool SUNWhea SUNWlibm SUNWlibms SUNWsprot SUNWsprox SUNWtoo SUNWi1of SUNWi1cs SUNWi15cs SUNWxwfnt
# cat /etc/nsswitch.conf | grep hosts
# hostname
# domainname
Avviamo l’installazione:
—————-
A. create group name “dba”, oracle inventory group “oinstall” and “oracle” user
# /usr/sbin/groupadd oinstall
# /usr/sbin/groupadd dba
[Controlliamo se esiste già l'utente oracle]
# id -a oracle
[Se già esiste avremo un riscontro di questo tipo= uid=440(oracle) gid=200(oinstall) group........]
[Creiamo l'utente oracle]
# useradd -d /export/home/oracle -g dba -G oinstall -m -s /bin/bash oracle [bash...è molto più comodo]
#mkdir /export/home/oracle
#chown oracle:dba /export/home/oracle
[Configuriamo la password]
# passwd -r files oracle
[Controlliamo che esista l'utente nobody]
# id nobody
[In caso contrario lo creiamo noi]
# /usr/sbin/useradd nobody
[Ricordiamo di dare il massimo delle permissioni alle cartelle utilizzate da Oracle per non incorrere in spiacevoli inconvenienti o nel corso dell'installazione o quando l'istanza starà girando!]
Editiamo il file /export/home/oracle/.profile
————————————–
umask 022
TMP=/tmp
TMPDIR=$TMP
DISPLAY=localhost:0.0
export TMP TMPDIR DISPLAY
ORACLE_BASE=/u01/app/oracle [da sostituire con la propria oracle base]
ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1 [da sostituire con la propria oracle home]
ORACLE_SID=jktdb [da sostituire con il nome della propria istanza]
PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
Configuriamo i parametri del kernel
—————————–
#projadd oracle [Creiamo un nuovo 'resource project']
edit the /etc/user_attr file:
adm::::profiles=Log Management
lp::::profiles=Printer Management
root::::auths=solaris.*,solaris.grant;profiles=Web Console Management,All;lock_after_retries=no
oracle::::project=oracle [mentre le altre righe potrebbero essere presenti questa è da aggiungere]
[Quindi proseguiamo...]
#su – oracle
$ id -p
$ prctl -n project.max-shm-memory -i project oracle
[Quello che vedremo sarà + o - così...]
project: 100: oracle
NAME PRIVILEGE VALUE FLAG ACTION RECIPIENT
project.max-shm-memory
privileged 126MB – deny -
system 16.0EB max deny -
[Lasciamo quindi l'utente Oracle collegato su questa finestra e proseguiamo aprendo un'altra finestra terminal da utente root...]
#prctl -n project.max-shm-memory -v 4gb -r -i project oracle [amplia la memoria massima a 4GB]
[Lanciato questo comando ritorniamo sulla finestra terminal dell'utente Oracle]
$ prctl -n project.max-shm-memory -i project oracle
[Nota]
#prctl -n project.max-shm-memory -v 4gb -r -i project oracle [Questo comando verrà perso al riavvio]
[Per settarlo permanentemente]
#projmod -s -K “project.max-shm-memory=(priv,4gb,deny)” oracle
Lanciamo l’installazione di Oracle
————————————-
#su – oracle
$xhost +
$export DISPLAY=myserver;0.0
$ xhost +mydatabaseserver
$ cd /export/home/database/ [Ci estraiamo il contenuto dello zip di oracle qui]
./runInstaller [Lanciamo l'installer e proseguiamo passo passo]
FOR SOLARIS SPARC:
====================
$ gunzip ship_rel10_sol64_db.cpio.gz
$ cpio -idm < ship_rel10_sol64_db.cpio
$./runInstaller
If you found unsufficient SWAP disk space on your disk, create folder under / then run this command:
—————————————————
$ TMP=/directory
$ TMPDIR=/directory
$ export TMP TMPDIR
Follow the screen>>NEXT>>NEXT
[Lanciamo per ultimi questi due script per completare l'installazione]
—————————-
/u01/app/oracle/oraInventory/orainstRoot.sh
/u01/app/oracle/product/10.2.0/db_1/root.sh
Per permettere l’avvio di Oracle all’avvio della macchina…
———————————————–
Creiamo il file “/etc/init.d/dbora”
——-
#!/bin/sh
ORA_HOME=/u01/app/oracle/product/10.2.0/db_1
ORA_OWNER=oracle
if [ ! -f $ORA_HOME/bin/dbstart ]
then
echo “Oracle startup: cannot start”
exit
fi
case “$1″ in
’start’)
su – $ORA_OWNER -c “$ORA_HOME/bin/dbstart”
;;
’stop’)
su – $ORA_OWNER -c “$ORA_HOME/bin/dbshut”
;;
esac
———
#chmod 777 /etc/init.d/dbora
#/etc/init.d/dbora stop
#ln -s /etc/init.d/dbora /etc/rc0.d/K01dbora
#ln -s /etc/init.d/dbora /etc/rc2.d/S99dbora
[Nel caso risultassero errori di seguito trovate consigli sulla struttura delle directory e errori tipici che possono avvenire in fase di installazione....]
ORACLE_HOME_LISTNER is not SET, unable to auto-stop Oracle Net Listener
edit file “dbstart” & “dbshut”, find line $ORACLE_HOME_LISTNER=$1
and change to = $ORACLE_HOME_LISTNER=/u01/app/oracle/product/10.2.0/db_1
RECOMMENDED DIRECTORY STRUCTURE:
[Oracle Base Directory:]
/u01/app/oracle
/u01/app/orauser
/opt/oracle/app/oracle
[Oracle Inventory Directory:]
ORACLE_BASE/oraInventory
[Oracle Home Directory:]
ORACLE_BASE/product/10.2.0/db_1
[Identify an existing oracle base directory:]
#more /var/opt/oracle/oraInst.loc
[the output should be:]
inventory_loc=/u01/app/oracle/oraInventory
inst_group=oinstall
# more /var/opt/oracle/oratab
*:/u03/app/oracle/product/10.2.0/db_1:N
*:/opt/orauser/infra_904:N
*:/oracle/9.2.0:N
COMMON INSTALLATION ERROR:
===========================
Unable to convert from “UTF-8″ to “646″ for NLS!
Solution: Install SUNWuiu8 package.
error adduser:
———————
UX: useradd: ERROR: Inconsistent password files. See pwconv(1M)
This is because the /etc/passwd and /etc/shadow files are out of synchronization on your machine. [CSCdi74894]
To fix this, run the pwconv command, and then rerun cwconfigure.
try to run:
wc -l /etc/passwd /etc/shadow
————–
ERROR Checking monitor: must be configured to display at least 256 colors >>> Could not execute auto check for
display colors using command /usr/openwin/bin/xdpyinfo. Check if the DISPLAY variable is set. Failed <<<<
Some requirement checks failed. You must fulfill these requirements before continuing with theinstallation, at which time they will be rechecked.
Solution(s):
1. Install SUNWxwplt package
2. Set DISPLAY variable
3. Execute xhost + on target (set in DISPLAY) computer
———————————————————-
Exception in thread “main” java.lang.UnsatisfiedLinkError:
… libmawt.so: ld.so.1: java: fatal: libXm.so.4: open failed: No such file or directory
Solution: Install the SUNWmfrun package.
—————————————————————————————————-
Can’t load ‘/usr/perl5/5.8.4/lib/i86pc-solaris-64int/auto/Sun/Solaris/Project/Project.so’ for module
Sun::Solaris::Project: ld.so.1: perl: fatal: libpool.so.1: open failed: No such file or directory at
/usr/perl5/5.8.4/lib/i86pc-solaris-64int/DynaLoader.pm line 230. at /usr/sbin/projadd line 19 Compilation
failed in require at /usr/sbin/projadd line 19. BEGIN failed–compilation aborted at /usr/sbin/projadd line 19.
Solution: Install the SUNWpool SUNWpoolr packages.
———————————————————————–
bash-3.00$ /u01/app/oracle/product/10.2.0/db_1/bin/./emctl start dbconsole
Exception in getting local host
java.net.UnknownHostException: -a: -a
at java.net.InetAddress.getLocalHost(InetAddress.java:1191)
at oracle.sysman.emSDK.conf.TargetInstaller.getLocalHost(TargetInstaller.java:4977)
at oracle.sysman.emSDK.conf.TargetInstaller.main(TargetInstaller.java:3758)
Exception in getting local host
Solution : check server hostname and /etc/hosts