Wednesday, December 17, 2014

Putty - session time out


Putty je odličan program koji administratorima omogućava remote (SSH) pristup serverima radi administracije. Ja ga često koristim. Jedina mana putty-a je što program kida sve neaktivne sesije između radne stanice i servera koje traju duže od jedan sat. To ponekad može biti problem ako se, pomoći putty-a, izvršavaju procedure koje traju duže od sat vremena. Kada se sesija sa serverom prekine nemoguće je utvrditi do kog stepena je završena pokrenuta procedura, iako ona na serveru i dalje radi, sve dok se sama procedura ne završi.

Ovaj se problem može riješiti podešavanjem samog putty-a:

1. U lijevom panelu odabrati menu Connection:


2. U polje nakon labele Seconds between keepalives unijeti broj veći od 0 (od 1 do 1800) i čekirati check box Enable TCP keepalives:


3. Odabrati menu Session (u lijevom panelu), zatim odabrati Default settings u desnom panelu:


4. Na kraju kliknuti na dugme Save.

Od sada sve SSH sesije koje se pokrenu sa ovim putty-e nemaju time-out ograničenje.



Wednesday, December 3, 2014

ORA-00600: internal error code, arguments: [4194], [11], [8], [], [],


U slučaju da ne možete startovati Oracle bazu podataka, tj. komandom startup baza se samo za trenutak "podigne" i nakon toga se ponovo "obori", pregledajte bazni alert.log fajl. Ako u njemu nađete grešku oblika:

ORA-00600: internal error code, arguments: [4194], [11], [8], [], [],

Uz dodatne informacije kao što su:

Wed Dec 03 09:29:15 2014
Completed: ALTER DATABASE OPEN
Wed Dec 03 09:29:16 2014
Doing block recovery for file 5 block 1079
Block recovery from logseq 2548, block 70 to scn 70388340
Wed Dec 03 09:29:16 2014
Recovery of Online Redo Log: Thread 1 Group 1 Seq 2548 Reading mem 0
  Mem# 0: E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE_SID\REDO01.LOG
Block recovery completed at rba 2548.80.16, scn 0.70388342


Znači da vam je UNDO tablespace u nekonzistentnom stanju jer je jedan REDO LOG fajl (u ovom slučaju REDO01.LOG) oštećen - informacije u tom LOG fajlu se ne slažu sa informacijama u UNDO tablespace-u. Problem je što u ovom slučaju baza ulazi u loop pokušavajući da odradi recovery UNDO tablespace-a iz kojeg ne može da "izađe".

Nastali problem se može riješiti na dva metoda:

1. Ukoliko baza radi u ARCHIVELOG mode-u i ukoliko postoji validan backup baze dovoljno je uraditi RESTORE&RECOVERY proceduru do trenutka prije nego što je došlo do problema na bazi.

2. Drugi metod se primjenjuje ukoliko ne postoji validan backup baze ili baza ne radi u ARCHIVELOG mode-u. To je procedura kojim se trenutni UNDO tablespace proglašava za nepotrebnim i kreira se novi UNDO tablespace (naravno uz gubitak podataka koji se u trenutku nastanka problema nisu upisali iz RAM memorije u REDO LOG fajl).

Ja ći opisati ovaj drugi metod rešavanja nastalog problema.

Procedura je sledeća:

1. Startovati bazu u MOUNT modu:
startup mount

2. Provjeriti stanje REDO LOG-ova:
SQL> set lin 1000
SQL> select * from v$logfile;

    GROUP# STATUS  TYPE    MEMBER

                                                             IS_
---------- ------- ------- -----------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
------------------------------------------------------------ ---
     3 STALE   ONLINE  E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE_SID\REDO03.LOG

                                                             NO
     2 STALE   ONLINE  E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE_SID\REDO02.LOG

                                                             NO
     1         ONLINE  E:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE_SID\REDO01.LOG

3. Provjeriti UNDO parametre:
SQL> show parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS


-- Default-ni UNDO tablespace je: UNDOTBS

4. Promijeniti UNDO_MANAGMENT parametar baze na MANUAL:
alter system set undo_management='MANUAL' scope=spfile;

5. Resetovati bazu:
shutdown immediate

startup

6. Kreirati novi UNDO tablespace:
create undo tablespace UNDOTBS2 datafile
'E:\oracle\product\10.2.0\oradata\ORACLE_SID\undotbs02.dbf' size 1G autoextend on;
7. Podesiti da novi UNDO tablespace bude default-ni bazni UNDO tablespace:
alter system set undo_tablespace='UNDOTBS2' scope=spfile;

 8. Promijeniti UNDO_MANAGMENT parametar baze na AUTO:
alter system set undo_management='AUTO' scope=spfile;

9. Resetovati bazu:
shutdown immediate

startup

10. Provjeriti UNDO parametre:
SQL> show parameter undo

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
undo_management                      string      AUTO
undo_retention                       integer     900
undo_tablespace                      string      UNDOTBS2



Problem riješen.



Thursday, September 25, 2014

Oracle DB - User sessions monitoring


Evo par SQL upita pomoću koji je moguće vidjeti korisne informacije o korisničkim sesijama na Oracle bazi podataka.



Broj trenutnih sesija na na bazi:

set lin 1000
select count(s.status) TOTAL_SESSIONS
from v$session s;

Ukupan broj NEAKTIVNIH korisničkih sesija:

set lin 1000
select count(s.status) INACTIVE_SESSIONS
from v$session s, v$process p
where
p.addr=s.paddr and
s.status='INACTIVE';

Broj sesija koje su NEAKTIVNE više od jedan sat:

select count(s.status) "INACTIVE SESSIONS > 1HOUR "
from gv$session s, v$process p
where
p.addr=s.paddr and
s.last_call_et > 3600 and
s.status='INACTIVE';

Broj svih AKTIVNIH korisničkih sesija:

select count(s.status) ACTIVE_SESSIONS
from gv$session s, v$process p
where
p.addr=s.paddr and
s.status='ACTIVE';

Detalji o svim korisničkim sesijama koje su NEAKTIVNE duže od jedan sat:

set pagesize 40
col INST_ID for 99
col spid for a10
set linesize 150
col PROGRAM for a10
col action format a10
col logon_time format a16
col module format a13
col cli_process format a7
col cli_mach for a15
col status format a10
col username format a10
col last_call_et_Hrs for 9999.99
col sql_hash_value for 9999999999999col username for a10
set linesize 152
set pagesize 80
col "Last SQL" for a60
col elapsed_time for 999999999999
select p.spid, s.sid,s.last_call_et/3600 last_call_et_Hrs ,s.status,s.action,s.module,s.program,t.disk_reads,lpad(t.sql_text,30) "Last SQL"
from gv$session s, gv$sqlarea t,gv$process p
where s.sql_address =t.address and
s.sql_hash_value =t.hash_value and
p.addr=s.paddr and
s.status='INACTIVE'
and s.last_call_et > (3600)
order by last_call_et;


Na kraju ukoliko odlučite da prekinete neku NEAKTIVNU korisničku sesiju uradite sledeće.

Saznajte potrebne parametre:

spool Inactive_sessions.txt
set lin 1000
select sid, serial#, username, lockwait, status, schemaname, logon_time, seconds_in_wait, state from v$session where status='INACTIVE';
spool off

Zabilježite parametre SID i SERIAL# za onu sesiju koju želite prekinuti i izvršite komandu:

ALTER SYSTEM KILL SESSION 'sid,serial#';


 

Friday, September 5, 2014

Oracle DB - Error ORA-01110 pri eksportu podataka


Prilikom izvršenja procedure eksporta podataka jedne schema-e iz Oracle baze podataka dobio sam grešku:


Očigledno da nešto nije bilo uredu sa datafajlom C:\ORACLE\ORADATA\ORA11G\SYSAUX01.DBF koji pripada tablespace-u SYSAUX. Provjerom alert.log fajla ustanovio sam da stvarno postoji problem sa navedenim datafajlom. Greške u alert.log fajlu su bile oblika:

ORA-00604: error occurred at recursive SQL level 1
ORA-00376: file 2 cannot be read at this time
ORA-01110: data file 2: 'C:\ORACLE\ORADATA\ORA11G\SYSAUX01.DBF'

Dakle, potrebno je uraditi media recovery navedenog datafajla.

Postupak je sledeći:

1. Provjeriti trenutno stanje Oracle baze podataka:

SQL> select name, open_mode, checkpoint_change#, ARCHIVE_CHANGE# from v$database;

NAME      OPEN_MODE            CHECKPOINT_CHANGE# ARCHIVE_CHANGE#
--------- -------------------- ------------------ ---------------
ORA11G    READ WRITE                    138707138       138707134


2. Provjeriti u kakvom je stanju datafajl nad kojim je potrebno odraditi media recovery proceduru:

SQL> select * from v$recover_file;

FILE#   ONLINE    ONLINE_ERROR               CHANGE#    TIME
---------- -------         --------------------------           --------            -----
         2  OFFLINE   OFFLINE                             138029207    12.08.14


3. Provjeriti stanje svih datafajlova u bazi:

SQL> select substr(name,1,50), recover, fuzzy, checkpoint_change# from v$datafil
e_header;

SUBSTR(NAME,1,50)                                                    REC   FUZ CHECKPOINT_CHANGE#
--------------------------------------------------                       ---      ---     ------------------
C:\ORACLE\ORADATA\ORA11G\SYSTEM01.DBF   NO  YES          138707176
C:\ORACLE\ORADATA\ORA11G\SYSAUX01.DBF   YES YES          138029207
C:\ORACLE\ORADATA\ORA11G\UNDOTBS01.DBF  NO  YES          138707176
C:\ORACLE\ORADATA\ORA11G\USERS01.DBF      NO  YES          138707176
C:\ORACLE\ORADATA\ORA11G\IDC_SYSTEM.DBF    NO  YES          138707176


4. Provjeriti koji nam je archive log potreban da bi smo uradili recovery navedenog datafajla:

SQL> select * from v$recovery_log;

   THREAD#  SEQUENCE# TIME     ARCHIVE_NAME
---------- ---------- -------- -------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
----------------------------------------------------------------
         1       1225 12.08.14 C:\ORACLE\FLASH_RECOVERY_AREA\ORA11G\ARCHIVELOG\2
014_08_13\O1_MF_1_1225_9YP26W7Q_.ARC

Utvrditi da li je navedeni archive log fajl dostupan. Ako jeste može se nastaviti sa procedurom recovery-a.


5. Restartovati bazu u MOUNT modu i izvršiti komandu:

SQL> recover datafile 2;


6. Provjeriti da li je potrebno uraditi recovery još nekog datafajla:

SQL> select * from v$recover_file;

no rows selected

7. Ako nije potrebno uraditi recovery drugog datafajla baza se može otvoriti za rad u READ WRITE modu. Ali prvo je potrebno vratiti datafajl SYSAUX01.DBF u ONLINE status:

SQL> alter database datafile 2 online;

8. I na kraju otvoriti bazu za pristup svim korisnicima:

SQL> alter database open;

Database altered.


Sada je moguće izvršiti eksport podataka bez problema.


Friday, July 4, 2014

Oracle AS 11gR1 greška - FRM-92090: unexpected fatal error



Nakon nepravilnog restarta servera (zbog problema sa napajanjem) aplikacija koja radi na Oracle 11gR1 Forms&Reports Services Application Server-u daje sledeću grešku:


Greška FRM-92090 je generička greška i ona ne daje baš puno informacija o stvarnom problemu na AS servisu. Debugging nastalog problema dodatno usložnjava činjenica da su sve komponente AS servisa startovane i rade bez problema:


Detalnom analizom logova aplikativnog servera nisam mogao da utvrdim šta tačno može biti problem.

Pretragom Metalink-a naišao sam na jednu note-u (433023.1) koja me je navela na moguće riješenje problema. U note-i se kaže da navedeni problem može nastati u sledećim slučajevima:

-------------------------------------------------------------------------------------------------------------------------
 1. The Registry.dat file was modified and now is corrupted
or
2. This happens when the FORMSxx_MESSAGE_ENCRYPTION is set to true/1.
or
3. If you issue a ulimit -a at the command prompt you receive the following output:
time(seconds) unlimited
file(blocks) unlimited
data(kbytes) 2097148
stack(kbytes) 8192
coredump(blocks) unlimited
nofiles(descriptors) 64
vmemory(kbytes) unlimited

-------------------------------------------------------------------------------------------------------------------------

Zato su i ponuđena tri riješenja navedenog problema:

-------------------------------------------------------------------------------------------------------------------------
1. Restore the original Registry.dat file and restart the OC4J / WLS_FORMS.
or
2. Set the FORMSxx_MESSAGE_ENCRYPTION environment variable to
0/false.
or
3. use ulimit -n xxx where xxx is the new number
For example if you have 300 users connecting, set it to a number higher then 300. In our case, we increased it to 128 and were able to
connect with 123 users instead of failing with the 61st user.

-------------------------------------------------------------------------------------------------------------------------

Riješenja pod 2. i pod 3. odmah sam odbacio jer ne odgovaraju navedenom okruženju (sistemu). 

Provjerom sam utvrdio da fajl Registry.dat koji se nalazi na lokaciji

 %WEBLOGIC_HOME%\user_projects\domains\domain.name\config\fmwconfig\servers\WLS_FORMS\applications\formsapp_11.1.1\config\forms\registry\oracle\forms\registry

ima veličinu 0kb, odnosno prazan je. To znači da je taj fajl oštećen, verovatno zbog nepravilnog restarta servera.

Srećom, imao sam backup navedenog fajla tako da nakon što sam fajl vratio iz backup-a i nakon što sam restartovao AS-a aplikacija je proradila!!!!




Tuesday, June 24, 2014

Oracle 11gR2 RAC na Windows Server 2012 OS-u - Problem


Instalacija Oracle baze podataka na Windows OS-u nije preterano komplikovana operacija. Međutim, instalacija Oracle 11gR2 RAC baze na Windows Server 2012 malo se zakomplikovala. Problem je nastao zbog default-nog podešenja svih Windows operativnih sistema koji su stariji od verzije 6.0 (uključujući i tu verziju). Naime sve novije verzije Widnows-a za mrežnu komunikaciju primarno koriste IPv6 protokol. Problem sa IPv6 protokolom pri instalaciji Oracle RAC baze podataka je taj što se Oracle Clusterware prilikom instalacije i konfiguracije oslanja na podešenja u host fajlu u kojem su upisane IPv4 adrese i imena članova Cluster-a.

Problem se može uočiti prilikom izvršenja proste komande ping. Prilikom ping-a localhost-a odgovor se dobija preko lokalne IPv6 adrese ::1, takođe kada se lokalni host ping-a po imenu odgovor se isto dobija preko IPv6 adrese kartice koja je definisana kao primarna (Public IP adresa RAC-a). Ping drugog node-a dobija odgovar preko IPv4, kao što i treba:



Posledica ovog Windows-ovog podešenja je ta da prilikom instalacije Oracle Clusterware-a Oracle installer uzima sledeće poredu ime hosta iz host fajla (hostname-vip - virtualno ime kreirano zbog instalacije RAC-a) za stvarno ime primarnog node-a (noda sa kojeg je pokrenuta instalacija). Na kraju se instalacija Clusterware-a prekida sa greškama jer se installer pogubio koji je koji host.

Rešenje ovog problema je podešavanje Windows-a da primarno koristi IPv4 protokol za sve mrežne komunikacije preko primarne mrežne kartice. To se za verzije Windows-a koje su starije od verzije 6.3 može uraditi primjenom nekog od odgovarajućih fix-eva.

Navedeni fix-evi se ne mogu primijeniti na Windows Server 2012 ili na Windows 8 već se to mora uraditi manuelno (na svim serverima). Procedura je sledeća:

1) Control Panel –> Network and Sharing Center –> Promijeniti podešenja meržnog adaptera –> Dvoklik na mrežni adapter –> Properties –> deselektovati "Internet Product Version 6 (TCP/IPv6)" –> klik na OK

2) Pokrenuti CMD  i izvršiti komandu:
reg add hklm\system\currentcontrolset\services\tcpip6\parameters /v DisabledComponents /t REG_DWORD /d 255 /f 

3) Kroz CMD izvršiti komande:
netsh int ipv6 isatap set state disabled
netsh int ipv6 6to4 set state disabled
netsh interface teredo set state disable

4) Pokrenuti Group Policy Editor (gpedit.msc)
Poći do:

Computer Configuration -> Administrative Templates -> Network -> TCPIP Settings -> IPv6 Transition Technologies

podesiti sve Tunnel Adapters na disabled.

5) Resetovati servere.

Nakon primjene navedenih promjena instalacija Oracle Clusterware-a je izvršena bez problema.


Friday, June 6, 2014

Oracle 11gR2 XE za x64 Windows



Kakve ironije baš kada sam ja objavio post na kojem sam opisao kako je moguće instalirati Oracle 11gR2 XE 32-bit-nu bazu na 64-bit-ni Windows Oracle je izdao Oracle 11gR2 XE x64 verziju za Windows:




Wednesday, June 4, 2014

Oracle DB - Instalacija 11gR2 XE baze na Windows x64 OS



Instalaciju Oracle 11gR2 XE baze podataka na Windows OS objasnio sam u jednom od ranijih post-ova.

Međutim, ukoliko se 11gR2 XE želi instalirati na neki Windows x64 OS dolazi do problema jer je Oracle napravio samo x32 verziju.


Ipak, uz par "hack-ova" moguće je instalirati 11gR2 XE i na Windows x64 OS (u ovom slučaju je to Windows 7). Evo kako to uraditi:

1. Pokrenuti instalaciju.

2. Kada installer prijavi grešku:



Ne klikati na dugme OK.

U Notepad-u zapisati putanju koja je navedena u dobijenoj grešci:
C:\tmp\{6CC558BB-DCB7-4F77-9D28-581DABDE5FEB}\

3. Pokrenuti Registry Editor:

Start -> RUN -> regedit

4. Pozicionirati na sledeću putanju:

HKEY_CLASSES_ROOT\Installer\Products

5. Pomoću opcije Find  pronaći XE folder, to je u ovom slučaju:
HKEY_CLASSES_ROOT\Installer\Products\266B7A503A089BE4EAD1986A429434C1

Sadržaj foldera je sličan ovom:

 

6. Pozicionirati se u folder:
HKEY_CLASSES_ROOT\Installer\Products\266B7A503A089BE4EAD1986A429434C1\SourceList\Media

7. Pronaći ključ sa imenom 1, i izvršiti modifikaciju njegove postojeće vrijednosti (DISK1;1). Podesiti novu vrijednost na putanju iz dobijene greške:
C:\tmp\{6CC558BB-DCB7-4F77-9D28-581DABDE5FEB}\

8. Izaći iz Registry Editor-a.

9. Vratiti se na instalaciju 11gR2 XE baze podataka. Pritisnuti na dugme OK.

10. Instalacija uspješno završava:







Wednesday, May 28, 2014

Oracle DB - Upgrade 11.1.0.6.0 to 11.1.0.7.0


Opisaću proceduru instalacije 11.1.0.7.0 patche-a za Oracle 11gR1 (11.1.0.6.0) bazu podataka koja je instalirana na Windows Server 2003 x64 operativnom sistemu.

PatchSet se može download-ovati sa Metalink-a (odabrati odgovarajući operativni sistem).

Procedura primjene PatchSet-a je sledeća:

1. Provjera posojeće PatchSet verzije:
CMD> sqlplus /nolog
SQL> conn / as sysdba
Connected.
SQL> SELECT * FROM V$VERSION;
BANNER
------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production
PL/SQL Release 11.1.0.6.0 - Production
CORE    11.1.0.6.0      Production
TNS for 64-bit Windows: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 – Production

SQL> set pages 250
SQL> set lines 1000
SQL> col comp_name for a40
SQL> select comp_name, version, status from dba_registry;

COMP_NAME                                VERSION                        STATUS
---------------------------------------- ------------------------------ -----------
OWB                                      11.1.0.6.0                     VALID
Oracle Application Express               3.0.1.00.08                    VALID
Oracle Enterprise Manager                11.1.0.6.0                     VALID
Oracle Ultra Search                      11.1.0.6.0                     VALID
OLAP Catalog                             11.1.0.6.0                     VALID
Spatial                                  11.1.0.6.0                     VALID
Oracle Multimedia                        11.1.0.6.0                     VALID
Oracle XML Database                      11.1.0.6.0                     VALID
Oracle Text                              11.1.0.6.0                     VALID
Oracle Expression Filter                 11.1.0.6.0                     VALID
Oracle Rules Manager                     11.1.0.6.0                     VALID
Oracle Workspace Manager                 11.1.0.6.0                     VALID
Oracle Database Catalog Views            11.1.0.6.0                     VALID
Oracle Database Packages and Types       11.1.0.6.0                     VALID
JServer JAVA Virtual Machine             11.1.0.6.0                     VALID
Oracle XDK                               11.1.0.6.0                     VALID
Oracle Database Java Packages            11.1.0.6.0                     VALID
OLAP Analytic Workspace                  11.1.0.6.0                     VALID
Oracle OLAP API                          11.1.0.6.0                     VALID
2. Ugasiti Oracle bazu podataka i sve servise koji su instalirani sa bazom.
CMD> sqlplus /nolog
SQL> conn / as sysdba
Connected.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
3. Napraviti backup ORADATA foldera (control fajlove, data fajlove, redo log fajlove, archive fajlove i temp fajlove) kao i backup ORACLE_HOME foldera.

4. Instalirati PatchSet software.

- Startovati installer:


- Kliknuti na dugme Next.


- Odabrati odgovarajući ORACLE_HOME i kliknuti na Next.


- Kliknuti na Next.


- Kliknuti na Next.


 - Kliknuti na Install, i sačekati da installer završi instalaciju software-a:




- Na kraju kliknuti na Exit.

5. Sada je potrebno uraditi upgrade same baze podataka. To je moguće uraditi na dva načina: manuelno (pokretanjem odgovarajućih skripti) i automatski (pomoću Database Upgrade Assistant-a - DBUA). Ja ću predstaviti ovaj prvi način.

- Startovati Listener servis i bazni servis.

- Provjeriti da li su ispunjeni svi uslovi za upgrade Oracle baze podataka.

- Pozicionirati se u folder %ORACLE_HOME%\RDBMS\ADMIN i konektovati se na baznu instancu:
E:\>cd E:\Oracle\product\11.1.0\db_2\RDBMS\ADMIN
E:\Oracle\product\11.1.0\db_2\RDBMS\ADMIN>set ORACLE_SID=db1
E:\Oracle\product\11.1.0\db_2\RDBMS\ADMIN>set ORACLE_HOME=E:\Oracle\product\11.1.0\db_2
E:\Oracle\product\11.1.0\db_2\RDBMS\ADMIN>sqlplus /nolog
SQL*Plus: Release 11.1.0.7.0 - Production on Sri Svi 28 08:46:04 2014
Copyright (c) 1982, 2008, Oracle.  All rights reserved.

SQL> conn /as sysdba
Connected to an idle instance.

SQL> startup upgrade;
ORACLE instance started.
Total System Global Area  860160000 bytes
Fixed Size                  2134296 bytes
Variable Size             616566504 bytes
Database Buffers          239075328 bytes
Redo Buffers                2383872 bytes
Database mounted.
Database opened.

SQL> spool F:\pre_upgrade.log
SQL> @utlu111i.sql
SQL> spool off;

- Ukoliko log fajl F:\pre_upgrade.log ne sadrži greške nastaviti sa procedurom upgrade-a, a ako sadrži greške potrebna je intervencija na bazi kako bi se te greške otklonile.

- Pokrenuti skriptu za upgrade baze:

SQL> spool F:\upgrade_28.05.2014.log
SQL> @catupgrd.sql
SQL> spool off;

- Skripta za upgrade baze na kraju stopira bazu. Sada je potrebno startovati bazu i izvršiti rekompajliranje svih objekata čiji je status INVALID.

SQL> startup

ORACLE instance started.
Total System Global Area  860160000 bytes
Fixed Size                  2134296 bytes
Variable Size             717229800 bytes
Database Buffers          138412032 bytes
Redo Buffers                2383872 bytes
Database mounted.
Database opened.

SQL> spool F:\recompile.log
SQL> @utlrp.sql
SQL> spool off;

6. Na kraju provjeriti verziju upgrade-ovane baze:

SQL> SELECT * FROM V$VERSION;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
CORE    11.1.0.7.0      Production
TNS for 64-bit Windows: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 – Production

SQL> set pages 250
SQL> set lines 1000
SQL> col comp_name for a40
SQL> select comp_name, version, status from dba_registry;

COMP_NAME                                VERSION                        STATUS
---------------------------------------- ------------------------------ -----------

OWB                                      11.1.0.6.0                     VALID
Oracle Application Express               3.0.1.00.12                    VALID
Oracle Enterprise Manager                11.1.0.7.0                     VALID
Oracle Ultra Search                      11.1.0.7.0                     VALID
OLAP Catalog                             11.1.0.7.0                     VALID
Spatial                                  11.1.0.7.0                     VALID
Oracle Multimedia                        11.1.0.7.0                     VALID
Oracle XML Database                      11.1.0.7.0                     VALID
Oracle Text                              11.1.0.7.0                     VALID
Oracle Expression Filter                 11.1.0.7.0                     VALID
Oracle Rules Manager                     11.1.0.7.0                     VALID
Oracle Workspace Manager                 11.1.0.7.0                     VALID
Oracle Database Catalog Views            11.1.0.7.0                     VALID
Oracle Database Packages and Types       11.1.0.7.0                     VALID
JServer JAVA Virtual Machine             11.1.0.7.0                     VALID
Oracle XDK                               11.1.0.7.0                     VALID
Oracle Database Java Packages            11.1.0.7.0                     VALID
OLAP Analytic Workspace                  11.1.0.7.0                     VALID
Oracle OLAP API                          11.1.0.7.0                     VALID




Tuesday, May 20, 2014

Oracle DB - DATAPUMP


Oracle DATAPUMP (expdp/impdp) je alat koji je prevashodno namijenjen za transfer podataka iz jedne baze u drugu bazu ali može se koristiti i za tzv. logički backup Oracle schema-e ili za logički backup cjelokupne baze podataka. DATAPUMP alati EXPDP i IMPDP predstavljeni su u Oracle 10g verziji baze i oni predstavljaju naprednije verzije već postojećih alata exp i imp.

Pomoću DATAPUMP alata expdp moguće je napraviti export podataka iz jedne baze a pomoću alata impdp moguće je taj export importovati u drugu ili istu bazu. Fajl koji se kreira prilikom export-a podataka iz baze je takođe (kao i kod exp/imp alata) DUMP fajl koji u binarnom formatu sadrži objekte iz baze, metapodatke tih objekata kao i njihove kontrolne podatke.

 EXPDP/IMPDP komande (parametri) mogu biti izvršene na tri načina:

1. Pomoću command line interface-a (parametri se specificiraju u okviru command line interface-a)
2. Pomoću parametarskog fajla (parametri se specificiraju u posebnom fajlu)
3. Interaktivni unos parametara (potrebni parametri interaktivno se unose u expdp/impdp interface)

 DATAPUMP alati podržavaju pet različitih mode-ova za migraciju podataka:

* Full export/import mode (izvršava export/import cjelokupne baze podataka)
* Schema mode (default-ni mod, export/import podataka određene schema-e)
* Table mode (izvršava export/import određenih tabela i objekata koji zavise od tih tabela)
* Tablespace mode (vrši export/import objekata koji se nalaze u određenom tablespace-u)
* Transportable Tablespace Mode (vrši export/import samo metadata podataka o tabelama u okviru određenog tablespace-a)

Da bi se alat DATAPUMP mogao koristiti potrebno je ispuniti odgovarajuće uslove:

- Postojanje odgovarajućeg Oracle direktorijuma (folder-a) u koji će se smještati DUMP fajlovi. Ovaj direktorijum je definisan Oracle parametrom DATA_PUMP_DIR.

- Kreiranje posebnog Oracle korisničkog naloga (kao bi se izbeglo korišćenje SYS analoga) koji će imati pravo da vrši export/import procedure. Korisničkom nalogu koji će biti zadužen za DATAPUMP poslove moraju se grant-ovati i sledeće privilegije: create table, datapump_exp_full_database, datapump_imp_full_database, read i write on directory (Oracle DATAPUMP folder).


Evo i procedure setup-a Oracle DATAPUMP parametara:

1. Kreiranje direktorijum na nivou operativnog sistema.

$ pwd
/home/oracle
$ mkdir datapump
$ cd datapump/
/home/oracle/datapump

2. Konfiguracija Oracle direktorijuma.

SQL> conn / as sysdba
Connected.

SQL> create directory datapump_dir as '/home/oracle/datapump';
Directory created.

 3. Kreiranje i podešavanje korisničkog naloga koji će biti zadužen za DATAPUMP poslove.

SQL> create user datapump_admin identified by pass1 default tablespace users quota unlimited on users;
User created.
SQL> grant create table to datapump_admin;
Grant succeeded.
SQL> grant datapump_exp_full_database to datapump_admin;
Grant succeeded.
SQL> grant datapump_imp_full_database to datapump_admin;
Grant succeeded.
SQL> grant read, write on directory datapump_dir to datapump_admin;
Grant succeeded.

Sada korisnički nalog datapump_admin ima sva potrebna prava da bi izvršio bilo koju DATAPUMP proceduru.


EXPORT Procedura

Komanada za export svih podataka iz cjelokupne baze podataka:

$ echo $ORACLE_HOME
/u01/app/oracle/product/11.2.0/db_1

$ expdp datapump_admin/pass1 directory=datapump_dir dumpfile=full.dmp logfile=full.exp.log full=y

Ova će komanda izvršiti export svih podataka iz baze u fajl full.dmp koji će biti smješten u folder /home/oracle/datapump. Takođe, u isti folder biće smješten i log fajl export procesa.

Ovaj se export može izvršiti i na drugi način, pomoću parametarskog fajla. Prvo je potrebno kreirati parametarski fajl:

$ vi fillexp.par

userid=datapump_admin/pass1
directory=datapump_dir 
dumpfile=full.dmp 
logfile=full.exp.log 
full=y

Sada je komanda za export svih podataka iz baze sledeća:
$ expdp parfile=fullexp.par

Za export podataka iz samo neke schema-e potrebno je navesti parametar "schemas=". Moguće je navesti jednu ili više schema-a za export. Npr:
vi user_test.par

userid=datapump_admin/pass1 
directory=my_datapump_dir
schemas=test
reuse_dumpfiles=y
Export komanda je:
$ expdp parfile=user_test.par dumpfile=test_schema.dmp logfile=test_schema.exp.log

Pored već navedenih parametara postoji još veliki broj parametara koje je moguće navesti prilikom DATAPUMP export procedure, neki od njih su kompresija podataka, zatim enkripcija podataka, kao i detaljno specificiranje onoga što se želi export-ovati (samo tabele, samo struktura objekata (DDL), itd.).


IMPORT Procedura

Što se tiče IMPDP podešenja ona su identična EXPDP podešenjima, tj. mora se kreirati Oracle direktorijum i odgovarajući korisnički nalog. Sintaksa komandi je slična.

Import FULL exporta podataka iz baze.

Parametarski fajl:
$ vi fullimp.par

userid=datapump_admin/pass1
directory=datapump_dir 
dumpfile=full.dmp 
logfile=full.imp.log 
full=y
content=all
table_exists_action=truncate

Import komanda:
$ impdp parfile=fullimp.par

Import schema exporta podataka.

Parametarski fajl:
$ cat test_imp.par

userid=datapump_admin/pass1 
directory=datapump_dir 
dumpfile=test_schema.dmp 
logfile=test_schema.imp.log 
schemas=test
content=all
table_exists_action=replace

Import komanda:
$ impdp parfile=test_imp.par 



 

Tuesday, May 13, 2014

Oracle AS aplikacija - Problem sa fokusom


Prijavljen mi je problem u radu aplikacije koja radi na Oracle Application Serveru Forms&Reports Services.

Problem je bio sledeći:

- Korisnik se prijavi na aplikaciju i neko vrijeme radi bez problema.
- U nekom trenutku korisnik na aplikaciji ne može više raditi pomoću miša jer aplikacija "gubi" fokus.
- Korisniku aplikacije ostaje samo da radi pomoću tastature ili da restartuje program.

Jedino što sam na sistemu mogao da primijetim jeste greška u JAVA konzoli:

java.lang.NoSuchMethodException: sun.java2d.SunGraphicsEnvironment.setFallbackFont(java.lang.String)
    at java.lang.Class.getMethod(Unknown Source)
    at oracle.forms.engine.Main.initDesktop(Unknown Source)
    at oracle.forms.engine.Main.start(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
java.lang.NoSuchMethodException: sun.java2d.SunGraphicsEnvironment.preferLocaleSpecificFonts()
    at java.lang.Class.getMethod(Unknown Source)
    at oracle.forms.engine.Main.initDesktop(Unknown Source)
    at oracle.forms.engine.Main.start(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)

Pretraga GOOGLE-a i MetaLink-a mi nije bila od neke pomoći.

Znajući da je ovaj sistem je instaliran prije više od 8 godina i da se problem javio tek od skora, tj. nakon implementacije JAVA JRE-a (zbog promjene OS-a na radnim stanicama) umjesto JInitiator-a za rad korisnika na aplikaciji pretpostavio sam da je problem u nekopatibilnosti verzija Oracle Application Server-a 9i (9.0.4.0) Forms&Reports Services-a i JAVA JRE-a (1.6.0_34) sa kojim aplikacija radi na radnim stanicama korisnika.

Odlučio sam da uradim upgrade Application Server-a na verziju 10gR2 (10.1.2.3).

I bio sam upravu, nakon upgrade-a aplikacija je radila bez ikakvih problema i bez grešaka u JAVA konzoli.





Monday, April 14, 2014

Oracle DB - RMAN Recovery Catalog


Iako je RMAN moguće koristiti i bez Recovery Catalog-a, ukoliko to uslovi dozvoljavaju, praksa je pokazala da je dobro kreirati ga. Prednosti korišćenja Recovery Catalog-a su brojne: moguće je čuvati informacije o backup-ima Oracle baze podataka koji su stariji od sedam dana, moguć je monitoring samog procesa Backup/Restore procedura, recovery procedura ne zavisi od toga da li postoji validan control fajl, jedan Recovery Catalog može opsluživati više baza tako da olakšava njihovu administraciju, itd.

Za kreiranje RMAN Recovery Catalog-a potrebno je instalirati posebnu Oracle bazu podataka na nekom posebnom serveru. Recovery Catalog baza ne mora imati uključene napredne funkcije koje ima obična Oracle baza podataka koja radi sa stvarnim podacima. Dovoljno je instalirati samo osnovne funkcije.

Neka ime Recovery Catalog baze bude recovery.

Procedura konfiguracije RMAN Recovery Catalog-a je sledeća:


1. Konfiguracija Recovery Catalog-a:

- Konektovati se na recovery bazu kao SYS user:

SQL> CONNECT SYS/pass@catalog AS SYSDBA 

- Kreirati user-a (schema-u) rman koji će biti vlasnik RMAN Recovery Catalog-a:

SQL> CREATE USER rman IDENTIFIED BY rmanpwd
TEMPORARY TABLESPACE temp
DEFAULT TABLESPACE users
QUOTA UNLIMITED ON users;

- Grantovati potrebne privilegije:

SQL> GRANT connect, resource TO rman;
SQL> GRANT RECOVERY_CATALOG_OWNER TO rman;

- Pokrenuti RMAN alat i konektovati se na recovery bazu sa novokreiranim user-om rman:

$ rman
RMAN> CONNECT CATALOG rman/rmanpwd@catalog

- Kreirati katalog komandom:

RMAN> CREATE CATALOG;

Sada je RMAN Recovery Catalog podešen i spreman je za registraciju baza koje je potrebo backup-ovati.


2. Registracija Oracle baze u RMAN Recovery Catalog bazu:

- Editovati tnsnames.ora fajl baze koju žalimo registrovati na RMAN Recovery Catalog tako što će se dodati connect string za konekciju na recovery bazu.


catalog =
  (DESCRIPTION =
    (ADDRESS_LIST =
    (LOAD_BALANCE = OFF)
    (FAILOVER = ON)
      (ADDRESS = (PROTOCOL = TCP)(HOST = recoverysrv)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = catalog)
    )

- Pomoću RMAN alata izvršiti konekciju na bazu koju žalimo registrovati u Recovery Catalog:

$ rman TARGET SYS/pass@prddb CATALOG rman/rmanpwd@catalog

- Na kraju registrovati bazu:

RMAN> REGISTER DATABASE;

Konfiguracija RMAN Recovery Catalog-a za bazu prddb je završena. Sada se može pristupiti konfiguraciji RMAN parametara.




Wednesday, March 26, 2014

Oracle DB - Flash Recovery Area (FRA)



Pojam Flash Recovery Area (FRA) uveden je u Oracle RDBMS verziji 10g, i on označava određeni folder, odnosno prostor na disku servera koji je predviđen za smještanje svih baznih fajlova koji su potrebni za oporavak baze u slučaju da je to potrebno uraditi, to su sledeći fajlovi: backup fajlovi, arhivirani redo log fajlovi, auto-backup fajlovi (spfile.ora, control file), jedna kopija aktuelnog control fajla, flashback logovi, itd. Na ovaj način je, u značajnoj mjeri, olakšan posao Oracle DB administratorima jer su svi fajlovi koji su potrebni za oporavak baze smješteni na jednom mjestu tako da ih administrator može brzo naći.

FRA folder bi trebalo da se nalazi na posebnom disku, nikako na istom disku na kojem se nalaze bazni fajlovi. FRA folder može biti smješten na fizičkom disku servera ili na ASM disku koji je konfigurisan na nekom storage-u.

FRA folder se definiše prilikom instalacije Oracle baze podataka. Prilikom definisanja FRA foldera mora se podesiti veličina tog foldera kao i njegova lokacija. Naravno, FRA folder se može konfigurisati i nakon istalacije baze, za to je potrebno je podesiti dva parametra:

- DB_RECOVERY_FILE_DEST_SIZE

- DB_RECOVERY_FILE_DEST


Komande su:
SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=20g SCOPE=BOTH;

SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='/u01/app/oracle/flash_recovery_area' SCOPE=BOTH;


ako se koristi dizički disk na serveru, ili

SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=20g SCOPE=BOTH;

SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST='+FRA' SCOPE=BOTH;

ako se koristi ASM disk.

Za provjeru podešenja FRA foldera koristi se komanda:

SQL> show parameter recovery



NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest                string      /u01/app/oracle/flash_recovery

                                                 _area

db_recovery_file_dest_size           big integer 20G

recovery_parallelism                 integer     0


Ako je upitanju ASM disk rezultat je sledeći:

SQL> show parameter recovery



NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest                string      +FRA

db_recovery_file_dest_size           big integer 20G

recovery_parallelism                 integer     0



Važno je napomenuti da se FRA folder ne smije napuniti, tj. ne smije ostati bez slobodnog prostora. Ako se FRA folder ipak napuni Oracle baza prestaje sa radom jer više nema prostora za smještanje arhiviranih redo log fajlova. Zato je veoma bitan svakodnevni monitoring zauzetosti prostora u FRA folderu. Najbolje je napisati neku skriptu na nivou operativnog sisteam koja će periodično brisati starije i nepotrebne backup fajlove ili to podesiti da radi RMAN prilikom backup-a baze.






Thursday, March 20, 2014

Oracle DB - ARCHIVELOG Mod


Svaki Oracle DBA trebao bi da se pobrine da produkciona baza podataka koju on administrira radi u ARCHIVELOG modu, inače može se naći u velikim problemima u slučaju da se nešto desi sa tom bazom. 

Evo upustva kao se Oracle baza podataka konfiguriše za rad u ARCHIVELOG modu:

1. Provjeriti da li baza već radi u ARCHIVELOG modu:

Ulogovati se na bazu kao SYS user.


2. Ugasiti bazu:


3. Startovati bazu u MOUNT modu:


4. Konfigurisati ARCHIVELOG mod:


5. "Otvoriti" bazu:



6. Provjeriti da li je sve podešeno kako treba:






Tuesday, March 18, 2014

Oracle DB - Backup / Restore&Recovery


Najvažniji zadatak svakog Oracle DBA je da se pobrine da u svakom trenutku na raspolaganju ima najsvežiji backup baze u slučaju da se desi neka nepredviđena situacija u kojoj može doći do gubitka podataka u bazi. Ako bi došlo do te situacije Oracle DBA je dužan da bazu, tj. podatke u njoj, vrati u stanje u koje je bila prije nego što se problem desio.

Postoje dvije osnovne vrste backup-a Oracle baze podataka: Fizički backup i Logički backup.

Prvo ću objasniti dva osnovna tipa "kvara" koji mogu prouzrokovati gubitak ili oštećenje podataka u Oracle bazi podataka, a to su korisničke greške (logička korupcija podataka) i sistemski "ispadi" (fizička korupcija podataka).

1. Logička korupcija podataka nastaje kada korisnik na bazi svojom nepažnjom, neznanjem ili zbog propusta na aplikaciji sa kojom radi izazove gubitak ili oštećenje podataka.

2. Fizička korupcija podataka može nastati u sledećim situacijama: zbog otkazivanja diska na serveru na kojem su smješteni Oracle data fajlovi, zbog neočekivanog i naglog gašenja servera (nestanak električnog napajanja), zbog problema sa operativnim sistemom na serveru na kojem je instalirana Oracle baza podataka, zbog nepažnje administratora (slučajno brisanje baznih data fajlova), itd.

Način oporavka Oracle baze zavisi od načina na koji je napravljen backup, zato za svaku metodu backup-a postoji posebna (odgovarajuća) metoda oporavka.

Kao što sam već rekao backup Oracle baze podataka može se napraviti u vidu fizičkog backup-a cjelokupne baze podataka ili u vidu logičkog export-a (backup-a) važnih (korisničkih) podataka.

1. Fizički backup Oracle baze podataka podrazumijeva kreiranje rezervne kopije cjelokupne baze podataka, tj. svih njenih fajlova. Fizički backup Oracle baze podataka može se napraviti na dva osnovna načina, odnosno metoda: User Managed backup i RMAN backup.

- User Managed backup predstavlja kreiranje rezervnih kopija Oracle baze podataka pomoću komandi operativnog sistema na kojem je baza instalirana. Ova metoda podrazumijeva prosto kopiranje svih baznih fajlova iz foldera u kojima se oni nalaze na neku bezbjednu lokaciju (drugi disk ili neki network share). Međutim, ako baza radi u NOARCHIVELOG modu, da bi backup bio validan, tj. da bi podaci u bazi bili konzistentni, ovakav način backup-a Oracle baze podataka može se vršiti samo ako je baza ugašena (offline). Zato je za ovakav način backup-a najbolje napraviti skriptu koja će prije početka backup-a ugasiti bazu, napraviti njen backup (opciono uraditi kompresiju backup fajlova) i na kraju startovati bazu, i onda podesiti da se ta skripta pokreće u neko vrijeme kada niko ne radi na bazi. U nekim slučajevima nije moguće gasiti Oracle bazu podataka ni u kojem trenutku, da bi se napravio backup ovakve baze ta baza mora raditi u ARCHIVELOG modu.

Procedura je sledeća:

- Prvo se podesi da baza radi u backup modu komandom (kao SYS user):

SQL> alter database begin backup;


- Zatim se izvrši backup svih Oracle baznih fajlova.

- Nakon toga, podesi se da baza radi u normalnom modu komandom:

SQL>  alter database end backup;


- Na kraju izvrši se backup svih arhiviranih redo log fajlova koji su nastali u periodu od početka do kraja backup-a Oracle baze podataka.

Takođe, i ovaj vid backup-a je moguće automatizovati pisanjem backup skripti na nivou operativnog sistema.


Međutim, User Managed backup Oracle baze podataka ima par nedostataka zbog kojih se ovaj metod rijetko primjenjuje. Nedostaci ovog metoda su: ponekad komplikovana i spora restore/recovery procedura (procedura oporavka Oracle baza podataka), zatim administrator mora da pamti (ili da zna) gdje je i kad napravljen poslednji backup, kao i da se brine o tome da medium na koji se smješta backup ne ostane bez slobodnog prostora, moguće je napraviti samo full backup cjelokupne baze podataka, itd.

- RMAN backup predstavlja metod kreiranja rezervne kopije Oracle baze podataka upotrebom Recovery Manager (RMAN) alata koji se instalira zajedno sa Oracle bazom podataka. RMAN alat je vrlo moćan alat koji u značajnoj mjeri olakšava posao Oracle DB administratorima. Kada se jednom podesi RMAN preuzima na sebe cio proces backup-a i oporavka (restore/recovery) Oracle baze podataka. Pored toga RMAN omogućava i napredne metode backup-a Oracle baze podataka kao npr. inkrementalni backup.

Podešavanje RMAN-a:

Postoje dva načina podešavanja RMAN-a za backup Oracle baze podataka: podešavanje pomoću Control fajlova i podešavanje pomoću RECOVERY CATALOG-a. Ako se za podešavanje RMAN-a koriste Control fajlovi procedura je sledeća:

- Konekcija na RMAN:

$ cd $ORACLE_HOME/bin

$ rman target sys/pass@DBSID nocatalog

npr.


- Konfiguracija RMAN-a:

Komandom

RMAN> show all;


Dobijamo sva aktuelna podešenja Recovery Manager-a.


Ovdje se komandom CONFIGURE ... mogu podesiti željena podešenja. Npr. može se podesiti da RMAN čuva zadnja tri backup-a Oracle baze podataka, umjesto zadnja dva kako je to trenutno podešeno:


I tako dalje ... ovdje se može podesiti format backup-a, lokacija backup-a i još dosta parametara.


Backup Oracle baze pomoću RMAN-a:

Za backup Oracle baze pomoću RMAN-a dovoljno je pokrenuti sledeću komandu (pod uslovom da baza radi u ARCHIVELOG modu):

RMAN> backup database;


Takođe, za oporavak dovoljo je pokrenuti samo dvije komande i RMAN će uraditi oporavak baze iz poslednjeg validnog backup-a. Komande su:

RMAN> restore database;
i
RMAN> recover database;


Za konfiguraciju RMAN-a pomoću RECOVERY CATALOG-a potrebno je kreirati posebnu Oracle bazu (na posebnom serveru) u koju će se smještati podaci o backup-u produkcione Oracle baze podataka. Konfiguraciju RMAN-a pomoću RECOVERY CATALOG-a objasnići u nekom narednom post-u.


2. Logički backup podataka podrazumijeva upotrebu odgovarajućih Oracle-ovih alata za export korisničkih podataka iz Oracle baze podataka. Postoje dva ovakva alata: exp i expdp (DataPump).
Ovi alati Oracle DB administratoru omogućavaju backup samo važnih (korisničkih) podataka iz Oracle baze podataka, mada ovim se alatima može napraviti backup i cijele Oracle baze podataka.

Međutim, glavna funkcija ovih alata je omogućavanja kopiranja korisničkih podataka iz jedna Oracle baze u drugu Oracle bazu.

EXP alat je prosti alat za kreiranje export-a (backup-a) podataka iz neke schema-e.
Evo kako radi:

$ cd $ORACLE_HOME/bin

$ exp schema/pass@DBSID file=/home/oracle/schema_exp.dmp log=/home/oracle/schema_exp.log


EXPDP je napredniji alat za kreiranje export-a podataka iz neke schema-e i njega ću detaljnije opisati u nekom narednom post-u.









Wednesday, February 26, 2014

Linux - shell skripta za "instalaciju" demokratije na bliskom istoku :)


Negdje sam, još davno, na internetu naleteo na ovu shell skriptu za "instalaciju" demokratije na bliskom istoku. Sit sam se ismijao.



$ cd /middle_east
$ ls
Afghanistan Iraq Libya Saudi_Arabia UAE
Algeria Israel Morocco Sudan Yemen
Bahrain Jordan Oman Syria
Egypt Kuwait Palestine Tunisia
Iran Lebanon Qatar Turkey

$ cd Afghanistan
$ ls
bin Taliban
$ rm Taliban
rm: Taliban is a directory
$ cd Taliban
$ ls
soldiers
$ rm soldiers
$ cd ..
$ rmdir Taliban
rmdir: directory “Taliban”: Directory not empty
$ cd Taliban
$ ls -a
. .. .insurgents
$ chown -R USA .*
chown: .insurgents: Not owner
$ cd ..
$ su
Password: *******
# mv Taliban /tmp
# exit
$ ls
bin
$ cd bin
$ ls
laden
$ cd ..
$ rm -r bin/laden
bin/laden: No such file or directory
$ find / -name laden
$
$ su
Password: *******
# mv bin /tmp
# exit
$ pwd
/middle_east/Afghanistan
$ cd /opt/UN
$ ln -s /Bad_Guys/Al_Qaeda /middle_east/Iraq/.
ln: cannot create /middle_east/Iraq/Al_Qaeda:
Permission denied
$ su
Password:*******
# ln -s /Bad_Guys/Al_Qaeda /middle_east/Iraq/.
# cd /middle_east/Iraq/Al_Qaeda
Al_Qaeda: does not exist
# rm /middle_east/Iraq/Al_Qaeda
# mkfile 100g /middle_east/Iraq/Al_Qaeda
mkfile: No space left on device
# rm /middle_east/Iraq/Al_Qaeda
# cd /opt/Coalition/Willing
# mkfile 1b /middle_east/Iraq/Al_Qaeda
# chown -R USA:Proof /middle_east/Iraq/Al_Qaeda
#exit
$ cd /middle_east/Iraq
$ ls
saddam
$ ls
saddam
$ ls
saddam
$ ls -a
. .. saddam
$ find / -name [Ww][Mm][Dd]
/Korea/North/wMd
$ wall Propaganda.txt
Broadcast Message from USA (pts/1) on USS_Abraham_Lincoln Th May 1st
Mission Accomplished!
$ rm saddam
saddam: No such file or directory
$ find / -name saddam
/var/opt/dictators/spiderhole/saddam
$ wall NewsWorthy.txt
Broadcast Message from USA (pts/1) on Time.Magazine Sat Dec 13
We Got Him!
$ mv /var/opt/dictators/spiderhole/saddam /opt/jail
$ cd /opt/USA
$ cp -Rp Democracy /middle_east/Iraq
$ cd /middle_east/Iraq/Democracy
$ ./install
Install Error: Install failed. See install_log for details.
$ more install_log
Installed failed!
Prerequisite packages missing
Conflicting package Wahhabism found in /midde_east/Saudi_Arabia
Packages Church and State must be installed separately
File System /PeakOil nearing capacity
Please read the install guide to properly plan your installation.
$



Mislim da greška koja je dobijena na kraju odražava pravo stanje stvari :)




 

Monday, February 24, 2014

Oracle DB - Verzije RDBMS software-a i njihova svojstva



Prilikom instalacije Oracle RDBMS software-a potrebno je odabrati verziju koju želimo instalirati i licencirati. Moguće verzije su: Enterprise Edition (EE), Standard Edition (SE) i Standard Edition One (SE1). Cijena licence u značajnoj mjeri varira od verzije do verzije. Postoji i freeware verzija a to je Express Edition (XE).

Evo i pregleda svojstava pojedinih verzija Oracle RDBMS baza podataka:


Feature Availability for Oracle Database Editions

Feature/Option SE1 SE EE Notes
High Availability
       
Oracle Fail Safe
Y
Y
Y
Windows only
Oracle Data Guard—Redo Apply
N
N
Y
 
Oracle Data Guard—SQL Apply
N
N
Y
 
Oracle Data Guard—Snapshot Standby
N
N
Y
 
Oracle Active Data Guard
N
N
Y
Extra cost option
Rolling Upgrades—Patch Set, Database, and Operating System
N
N
Y
 
Online index rebuild
N
N
Y
 
Online index-organized table organization
N
N
Y
ALTER TABLE ... MOVE ONLINE operations
Online table redefinition
N
N
Y
Using the DBMS_REDEFINITION package
Duplexed backup sets
N
N
Y
 
Block change tracking for fast incremental backup
N
N
Y
 
Unused block compression in backups
N
N
Y
 
Block-level media recovery
N
N
Y
 
Lost Write Protection
N
N
Y
 
Parallel backup and recovery
N
N
Y
 
Tablespace point-in-time recovery
N
N
Y
 
Trial recovery
N
N
Y
 
Fast-start fault recovery
N
N
Y
 
Flashback Table
N
N
Y
 
Flashback Database
N
N
Y
 
Flashback Transaction
N
N
Y
 
Flashback Transaction Query
N
N
Y
 
Flashback Data Archive (Total Recall)
N
N
Y
Requires Oracle Advanced Compression option
Scalability
       
Oracle Real Application Clusters
N
Y
Y
Extra cost with EE, included with SE
Automatic Workload Management
N
Y
Y
Requires Oracle Real Application Clusters
Performance
       
Client Side Query Cache
N
N
Y
 
Query Results Cache
N
N
Y
 
PL/SQL Function Result Cache
N
N
Y
 
In-Memory Database Cache
N
N
Y
Extra cost option
SQL Plan Management
N
N
Y
 
Support for Oracle Exadata Storage Server
N
N
Y
 
Support for Oracle Exadata Storage Server Software
N
N
Y
 
Security
       
Oracle Advanced Security
N
N
Y
Extra cost option
Oracle Label Security
N
N
Y
Extra cost option
Virtual Private Database
N
N
Y
 
Fine-grained auditing
N
N
Y
 
Oracle Database Vault
N
N
Y
Extra cost option
Development Platform
       
SQLJ
Y
Y
Y
Requires Oracle Programmer
Oracle Developer Tools for Visual Studio .NET
Y
Y
Y
Windows only
Microsoft Distributed Transaction Coordinator support
Y
Y
Y
Windows only
Active Directory integration
Y
Y
Y
Windows only
Native .NET Data Provider—ODP.NET
Y
Y
Y
Windows only
.NET Stored Procedures
Y
Y
Y
Windows only
Manageability
       
Oracle Change Management Pack
N
N
Y
Extra cost option
Oracle Configuration Management Pack
N
N
Y
Extra cost option
Oracle Diagnostic Pack
N
N
Y
Extra cost option
Oracle Tuning Pack
N
N
Y
Extra cost option, also requires the Diagnostic Pack
Oracle Provisioning and Patch Automation Pack
N
N
Y
Extra cost option
Database Resource Manager
N
N
Y
 
Oracle Real Application Testing
N
N
Y
Extra cost option
VLDB, Data Warehousing, Business Intelligence
       
Oracle Partitioning
N
N
Y
Extra cost option
Oracle OLAP
N
N
Y
Extra cost option
Oracle Data Mining
N
N
Y
Extra cost option
Oracle Advanced Compression
N
N
Y
Extra cost option
Direct-Load Table Compression
N
N
Y
 
Bitmapped index, bitmapped join index, and bitmap plan conversions
N
N
Y
 
Parallel query/DML
N
N
Y
 
Parallel statistics gathering
N
N
Y
 
Parallel index build/scans
N
N
Y
 
Parallel Data Pump Export/Import
N
N
Y
 
Transportable tablespaces, including cross-platform
N
N
Y
Import of transportable tablespaces supported into SE, SE1, and EE
Summary management—Materialized View Query Rewrite
N
N
Y
 
Asynchronous Change Data Capture
N
N
Y
 
Integration
       
Basic Replication
Y
Y
Y
SE1/SE: read-only, updateable materialized view
Advanced Replication
N
N
Y
Multi-master replication
Oracle Streams
Y
Y
Y
SE1/SE: no capture from redo
Database Gateways
Y
Y
Y
Separate product license
Networking
       
Oracle Connection Manager
N
N
Y
 
Infiniband Support
N
N
Y
 
Content Management
       
Oracle Spatial and Graph
N
N
Y
Extra cost option
Semantic Technologies (RDF/OWL)
N
N
Y
Requires the Oracle Spatial and Graph option and the Oracle Partitioning option