INSTALLAZIONE QUASAR-X Creare logical volume oraclelv di 600 Mb. Creare logical volume userslv di 60Mb. Creare logical volume QUASARXlv di 600Mb. Creare file system /oracle sul logical volume oraclelv Creare file system /users sul logical volume userslv Creare file system /QUASARX sul logical volume QUASARXlv Creare utente con nome del cliente. Es: <soft> Copiare le shell da installazione base. Modificare la shell /users/soft/V8/dbs/aix/ crlvPOK.sh Nella shell modificare il nome del volume group dove verranno creati i logical volume (e’ qui che si deve intervenire se si vuole creare il database su dischi diversi) mklv -y log${var}POK rootvg 1 >>crlvPOK.log 2>&1 in ogni riga di creazione di un logical volume specificare anche il numero di partizioni da usare con queste si definisce anche la size. Attenzione che la dimensione di una singola partizione varia in base al disco motanto, per vedere la partition size basta lanciare il comando lsvg <nome volume group> es: lsvg rootvg $ lsvg rootvg VOLUME GROUP: rootvg VG IDENTIFIER: 00203422a98e584b VG STATE: active PP SIZE: 8 megabyte(s) Nel seguente esempio verra’creato un logical volume di nome dati1POK su volume group rootvg della dimensione di 125 partizioni di 8Mb ciascuna per un totale di 1Gb. mklv -y'dati1POK' rootvg 125 >>crlvPOK.log 2>&1 Installare Oracle. (Vedi Installa_Oracle.doc). Fare partire l’istanza del db in oratab Cd /etc Vi oratab POK:/oracle:Y Aprire la shell build_db.sql Cd /users/soft/V8/dbs/aix Vi build_db.sql Nella shell bisogna modificare tutte le size con la seguente regola: se il logical volume systPOK e’di 10 partizioni (per vedere le partizioni lsvg –l rootvg) la size e’: [(Numero partizioni * dimensione in Mega della partizione * 1024 * 1024) – (costante di 10240) – (8192 ??)] / 1024. Es: (((10 * 8 * 1024 * 1024) – 10240 ) - 8192) / 1024 = 81902 datafile '/dev/rsystPOK' size 81902K reuse Nel file system QUASARX creare la seguente struttra di directory assicurandosi che tutte abbiano utente ORACLE e gruppo DBA e i diritti di scrittura. QUASARX |______POK |______ ctrl |______ | |______ | | |______ archive |______ log network |______ log |______ trace trace |______ log Nel file system users creare la directory backup con utente ORACLE.DBA e diritti. Linkare la directory nella root / con: ln –fs /users/backup /backup Copiare con un tar tutta la struttura da un'altra installazione anche. Contiene i file per il backup e le istruzioni da inserire nel crontab per la partenza delle copie Assicurarsi che all’interno di /backup ci sia la seguente struttura di directory necessaria al build_db.sql. /backup |______ POK |______ ctrl Copiare tutte le shell da /users/simio/V8/dbs/aix in /oracle /dbs Lanciare build_db.sql Fare molta attenzione affinche’le directory in QUASARX e in /backup abbiano i diritti oracle.dba Svrmgrl SVRMGR> @build_db.sql ATTIVAZIONE DEL SERVIZIO NET8 Cd /oracle/network/admin Aprire il file listener.ora, commentare con un # le due righe. LISTENER = (ADDRESS_LIST = # (ADDRESS= (PROTOCOL= IPC)(KEY= <oracle_sid>)) # (ADDRESS= (PROTOCOL= IPC)(KEY= PNPKEY)) (ADDRESS= (PROTOCOL= TCP)(Host= f40)(Port= 1521)) ) sostituire in tutti i punti dove appare <oracle_sid> con il nome dell’istanza POK aggiungere in fondo TRACE_DIRECTORY_LISTENER = /QUASARX/POK/network/trace TRACE_FILE_LISTENER = listener.trc LOG_DIRECTORY_LISTENER = /QUASARX/POK/network/log LOG_FILE_LISTENER = listener.log Nella stessa directory creare un file sqlnet.ora con all’ interno AUTOMATIC_IPC = OFF names.default_zone = world names.default_domain = world modificare nel file tnsnames.ora da <oracle_sid> = (DESCRIPTION = (ADDRESS = (PROTOCOL= TCP)(Host= f40)(Port= 1521)) (CONNECT_DATA = (SID = <oracle_sid>)) ) in POK.world = (DESCRIPTION = (ADDRESS = (PROTOCOL= TCP)(Host= f40)(Port= 1521)) (CONNECT_DATA = (SID = POK)) ) Fare partire il servizio con il comando lsnrctl start ( si puo’verificare un servizio con lsnrctl status) Provare la connessione con il comando tnsping <nome del servizio> <numero prove> Es: tnsping POK 10 Come root modificare il file /etc/inittab aggiungendo oracle:2:wait:/bin/su oracle -c "/oracle/bin/dbstart" listener:2:wait:/bin/su - oracle -c "/oracle/bin/lsnrctl start" per far partire rispettivamente il database e il servizio net8 Si dovrebbe far partire l’ intelligent agent non ci siamo riusciti ho visto che senza librertie X11 da un errore, con le librerie non da l’ errore ma lo status segnala che non e’partito. Per me ci vuole tuttp l’ ambiente grafico Nella direcotry /oracle/dbs modificare il file initPOK.ora aggiungendo: remote_os_roles = TRUE remote_login_passwordfile = EXCLUSIVE dbshut e dbstart per rendere effettive le modifiche creare file di password per gli utenti internal e system per l’amministrazione remota via Enterprise Manager con il comando: orapwd file=orapwPOK password=<password> entries=<users> di solito password = change_on_install entries = 2 Se si desidera usare Enterprime Manager per l’ amministrazione remota (utile per creare l’utente generale) del database e consiglibile creare un utente dedicato con un suo tablespace poiche’ l’ Enterprise Manager si crea un suo repository. Mklv –y ‘oem_reposPOK rootvg 3’ Creare un tablespace su questo device create tablespace oem_repository datafile '/dev/oem_reposPOK' size <calcolare> K reuse default storage(initial 16K next 16K minextents 1 maxextents 249 pctincrease 10); create user oem indentified by oem default tablespace oem_repository quota unlimited on oem_repository; grant connect resource, dba, sysoper, sysdba to oem with admin options; creare utente generale con gli stessi diritti del utente ditta creare le directory in /users/<nome ditta>/sql mkdir tabelle mkdir trigger mkdir viste mkdir sequences mkdir synonyms copiare da c:\QUASAR-X\customer\ristrutt tutto in /users/<nome ditta>/sql/tabelle copiare da c:\QUASAR-X\customer\sql\s*.sql in /users/<nome ditta>/sql/sequences copiare da c:\QUASAR-X\customer\sql\pr*.sql in /users/<nome ditta>/sql/trigger copiare da c:\QUASAR-X\customer\sql\tr*.sql in /users/<nome ditta>/sql/trigger copiare da c:\QUASAR-X\customer\sql\v*.sql in /users/<nome ditta>/sql/viste copiare la directory dbascripts in /users/<nome ditta>/dbascripts copiare le shell genera_script_grant.sql e genera_script_syn.sql da dbascripts a /users/<nome ditta>/synonyms Lanciare in tabelle genera_c.sql come generale Sqlplus –s generale/generale@POK @genera_c.sql Controllare il log GENERA_C.log Lanciare in tabelle <nome ditta>_a.sql come utente <nome ditta> Sqlplus –s <nome ditta>/<nome ditta>@POK @<nome ditta>_a.sql Controllare i file di log. Lanciare manualmente eventuali tabelle mancanti (in S.Stefano e simionato brework.sql e cr0001.sql) Lanciare in sequences tutti gli sql con la shell lancia prima come utente ditta poi anche come utente generale $ lancia Direttorio di posizionamento ? . ( punto per indicare la directory corrente) Database Alias: ( Invio ) Utente Oracle: <nome ditta> ( Utente proprietario della ditta ) Password: < nome ditta > Controllare i file di log. Lanciare in synonyms le due script genera??????.sql come utente simionato $ sqlplus -s simionato/simionato@POK @genera_script_syn.sql USER is "<nome ditta>" Digitare user proprietario tabelle da condividere: <nome ditta> $ sqlplus -s simionato/simionato@POK @genera_script_grant.sql USER is "<nome ditta>" Digitare user a cui assegnare i privilegi:generale Le due shell generano rispettivamente i file creasyn_<nome ditta>.sql e grantall_generale.sql Lanciare la shell creasyn_xxxxxxx.sql come utente generale $ sqlplus -s generale/generale@POK @creasyn_simionato.sql Digitare user proprietario tabelle da condividere: <utente ditta> ( utente proprietario ditta) Lanciare la shell grantall_generale.sql come utente <utente ditta> $ sqlplus -s <utente ditta>/<utente ditta>@POK @grantall_generale.sql Digitare user a cui assegnare i privilegi: generale Lanciare in tabelle genera_g.sql come generale Sqlplus –s generale/generale@POK @genera_g.sql Controllare i file di log. Lanciare in tabelle <nome ditta>_d.sql come <utente ditta> Sqlplus –s <utente ditta>/<utente ditta>@POK @<utente ditta>_d.sql Controllare i file di log. Lanciare in tabelle <nome ditta>_s.sql come <utente ditta> Sqlplus –s <utente ditta>/<utente ditta>@POK @<utente ditta>_s.sql Controllare i file di log. Nella directory viste lanciare con la shella lancia tutti i v*.sql prima come <utente ditta> poi come generale Nella directory trigger lanciare con la shella lancia tutti i pr*.sql e tr*.sql prima come <utente ditta> poi come generale attenzione e’ importante prima i pr*.sql Alcuni errori segnalati nel log sono dovuti al fatto che i trigger bisognerebbe lanciarli solo per il proprietario della tabella. Al termine dell'esecuzione degli scripts deve essere verificata la validità degli oggetti compilati e delle rispettive dipendenze. Per fare in modo di produrre uno script SQL che provveda a ricompilare tutti gli oggetti in stato "INVALID" bisogna collegarsi al database con "sqlplus system/<password>" ed eseguire: SQL> set pause off SQL> set trimspool on SQL> set feed off SQL> set head off SQL> select 'ALTER '||object_type||' '||owner||'.'||object_name||' COMPILE;' 2> from dba_objects 3> where status = 'INVALID' 4> order by owner, object_type 5> . SQL> spool recompile.sql SQL> / SQL> spool off SQL> quit E' necessario poi ri-editare il file di spool prodotto ("recompile.sql") per modificare gli statements di "ALTER PACKAGE BODY" spostando la stringa "BODY" dopo la parola "COMPILE". (Es.: "ALTER PACKAGE INTERCOM_PROC COMPILE BODY;") Il file SQL prodotto va poi eseguito con SQL*Plus (connessi con "system/manager"). Per controllare se si verificano degli errori in compilazione va interrogato il data dictionary nel seguente modo: SQL> select owner, type, name, text 2> from dba_errors; Una volta sistemata la causa dell'errore va ricompilato l'oggetto in errore tramite lo statement: SQL> ALTER <type> <name> COMPILE; -- se si tratta di una PACKAGE BODY -- aggiungere la parola "BODY" dopo "COMPILE" Sistemati gli eventuali errori copiare c:\QUASAR-X\customer\trx\*.trx in c:\qx\trx Caricare l’elenco delle tabelle e delle stampanti con: Dal menu dell ‘ IDF scegliere Deployement – Convert Data, nel data entry scielgliere File e inserire il nome tabelle Selezionare la conversione from TRX TRX Format to ORA ORACLE Ripetere l’operazione per il file pratt Modifiare l’icona dell’ IDF aggiungendo in fondo un ? Lanciare l’ IDF alla richiesta Enter command line parameters inserire /tst P_SDF2 Selezionare Importa Aggiornamenti premere il tasto F4 Cerca poi F11 Stampa selezionare un stampante NULL e stampare. Cosi partira’l’import di tutti i *.trx presenti in Qx\trx Assicurarsi che nel file c:\QUASAR-X\ini\Qx.ini le dll siano quelle della versione giusta dell’ oracle In particolare se: [dlls] demandload=msw9520.dll, wid9510.dll, ole9510.dll, db31010.dll, gfp9511.dll, ora8035.dll se oracle 8.0.4. BACKUP Entrare come utente oracle Posizionarsi sotto la directory /users/<utente ditta>/backup Lanciare la shell bckinst $./bckinst Indicare il mount_point (directory) dove creare le directory backup e db_admin (Es.: "/" o "/users"):/users seguire le istruzioni fino alla seconda volta che chiede ORACLE_SID digitare . per uscire inserire la partenza delle copie nel crontab. Come utente root: $ crontab –e aggiungere in fondo # # Minute Hour Day Month Weekday Command # ----- ---- --- ----- ------- ------59 23 * * 1-5 /users/backup/dbbackup POK /users 00 03 * * * /users/backup/clean_log SHUTDOWN Creare in /etc un file rc.shutdown contente su - oracle -c "/oracle/bin/lsnrctl stop" su oracle -c "/oracle/bin/dbshut"