ORACLE SELECTS NEW CERTIFICATION EXAM DELIVERY VENDOR

Berdasarkan berita resmi yang didapat dari situs Oracle, bahwa Oracle telah memilih Test Delivery Provider yang baru untuk sertifikasi yaitu Pearson VUE. Sebelumnya Oracle memberi kepercayaan kepada Prometric sebagai vendor exam delivery. Maka terhitung mulai tanggal 25 September 2009, Exam melalui Prometric tidak akan tersedia lagi.


Berikut ini adalah tanggal-tanggal penting berkaitan dengan berita diatas:

13 September 2009: Kandidat tidak bisa lagi mendaftar ujian di Prometric 
                   (*kecuali India)
14 September 2009: Kandidat bisa memulai registrasi ujian di Pearson VUE.
25 September 2009: Hari terakhir untuk ujian di Prometric Testing Center.
Untuk informasi lebih lengkap bisa dibaca pada situs Oracle Education Selengkapnya...

RMAN REFERENCE 2

=======================================
RESTORE CONTROL FILE
=======================================
Untuk mengembalikan control file yang hilang atau rusak,
shutdown dulu database lalu hapus semua control file yang ada.
SQL> STARTUP FORCE;

RMAN> STARTUP NOMOUNT FORCE;
RMAN> SET DBID 343333333;  ==> DBID DIKETAHUI SAAT koneksi ke 
                               target melalui RMAN
RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;
atau

RMAN> RESTORE CONTROLFILE FROM 'D:\ORACLE\backup
      \control_pajak_239534.bkp';
RMAN> ALTER DATABASE MOUNT;
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN RESETLOGS;


RMAN> RESTORE SPFILE FROM 'D:\ORACLE\backup\spfile_pajak_239534.bkp';



========================================
ENABLE BLOCK CHANGE TRACKING
=========================================
Kegunaan dari Block Change Tracking adalah untuk 
mempercepat proses Incremental Backup
SQL> SHOW PARAMETER DB_CREATE_FILE_DEST;
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING;
atau jika tidak memakai OMF
SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE 
     'D:\ORACLE\PRODUCT\10.2.0\ORADATA\PAJAK\BLOCK_CHG_TRC.ORA';
SQL> SELECT status,filename,bytes FROM v$block_change_tracking;


==========================================
BACKUP INCREMENTAL
========================================
RMAN> BACKUP INCREMENTAL LEVEL 0 TAG 'incr_update' database;
RMAN> BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY TAG 
      'incr_update' database;

klausa FOR RECOVER OF COPY TAG.. berarti incremental level 1 
akan mencari backup level 0 dgn tag 'incr_update.
jika ditemukan maka akan backup secara incremental dgn level 1.

RMAN> RECOVER COPY OF DATABASE WITH TAG 'incr_update';

RMAN> RESTORE DATAFILE 1;
RMAN> RECOVER TABLESPACE SYSTEM;

RMAN> BACKUP DATAFILE 1,4;

Selengkapnya...

RMAN REFERENCE

Supaya bisa full backup database, database harus dalam 
keadaan archivelog mode. Untuk mengaktifkan, mount 
database lalu ketik perintah berikut:
SQL> alter database archivelog;

c:\RMAN TARGET sys/oracle@dgcoba CATALOG rman/oracle@catdb

RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

RMAN> BACKUP FULL TAG "BACKUP_FULL" DATABASE FORMAT 
      'D:\BACKUP\full_backup_%d_%I_%T_%s_%p.bkp';
ket: %d = nama database
     %I = dbid
     %T = waktu saat backup (format=yyyymmdd)
     %s = nomor sequence backup.. untuk mencegah error 
          ketika fullbackup dengan menyertakan spfile 
          dan controlfile
     %p = ini masih belum tau.. hehehe...

RMAN> BACKUP DEVICE TYPE DISK DATABASE;

mengembalikan nilai parameter ke default pake CLEAR
RMAN> CONFIGURE BACKUP OPTIMIZATION CLEAR;

RMAN> SHOW RETENTION POLICY;
RMAN> SHOW ALL;

RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY 3;
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

RMAN> REPORT OBSOLETE;
RMAN> DELETE OBOSOLETE;
RMAN> CROSSCHECK BACKUP;

--= Untuk menghapus backup yang sudah expired =--
RMAN> DELETE EXPIRED BACKUP;

--= untuk connect ke auxiliary database =--
RMAN> CONNECT AUXILIARY sys/oracle@aux_db

--= untuk menduplicate database ke auxiliary database =--
RMAN> DUPLICATE TARGET DATABASE TO aux_db;   
ketika melakukan duplikasi, auxiliary database harus 
dalam keadaan nomount.


--= Untuk membackup control file =--
RMAN> BACKUP AS COPY CURRENT CONTROLFILE FORMAT 'D:\copyctl.bkp';
RMAN> BACKUP CURRENT CONTROLFILE;

--= Untuk membackup spfile =--
RMAN> BACKUP SPFILE FORMAT 'D:\copyspfile.bkp';  

--= Untuk membackup archive log =--
RMAN> BACKUP ARCHIVELOG ALL DELETE ALL INPUT FORMAT 
      'D:\ARCHIVE.BKP' TAG 'ARCHIVE BACKUP';

--= Untuk melihat datafile yang ada =--
RMAN> REPORT SCHEMA;
RMAN> BACKUP DATAFILE 1,4;

--= untuk melihat list backup =--
RMAN> LIST BACKUP;
RMAN> LIST BACKUP BY FILE;

--= untuk melihat list backup yang mengandung TABLESPACE tertentu =--
RMAN> LIST BACKUP OF TABLESPACE SYSTEM,USERS;

--= Untuk melihat list backup yang mengandung control file =--
RMAN> LIST BACKUP OF CONTROLFILE;

--= Untuk melihat list backup yang mengandung SPFILE =--
RMAN> LIST BACKUP OF SPFILE;

--= Untuk melihat list backup yang  mengandung archive log =--
RMAN> LIST BACKUP OF ARCHIVELOG ALL;



    
Selengkapnya...

Setting RMAN Catalog

RMAN pada defaultnya menggunakan control file dari target database sebagai catalog. Namun catalog dari RMAN dapat diletakkan pada database terpisah yang fungsinya khusus sebagai catalog RMAN. Berikut ini langkah-langkah dalam membuat catalog database tersebut.
=======================
SETTING RMAN CATALOG
=======================

1. create catalog database (mis: catdb) 
2. login ke catalog database 
   c:\sqlplus sys/oracle@catdb as sysdba 
3. create tablespace buat catalog tablespace 
   SQLPLUS> create tablespace rcat_ts datafile 
           'D:\oracle\product\10.2.0\oradata\catdb\rcat_ts.dbf' 
           size 100m autoextend on next 10m maxsize unlimited 
           permanent logging extent management local 
           autoallocate segment space management auto flashback on; 

4. create user rman 
   SQLPLUS> create user rman identified by oracle default 
            tablespace rcat_ts temporary tablespace
            temp quota unlimited on rcat_ts; 
   SQLPLUS> grant resource to rman; 
   SQLPLUS> grant create session to rman; 
   SQLPLUS> grant connect to rman; 

5. grant role recovery_catalog owner ke user rman 
   SQLPLUS> grant recovery_catalog_owner to rman;

6. start RMAN dan log in sebagai catalog owner 
   C:\rman catalog rman/oracle@catdb 
   RMAN> CREATE CATALOG TABLESPACE rcat_ts; 

7. connect ke database target dan register db tsb ke 
   recovery catalog. 
   C:\rman target sys/oracle@dgcoba catalog rman/oracle@catdb 
   RMAN> register database;  
Selengkapnya...

Lagu Indonesia Baru (Agustus 2009)

Topik kali ini agak menyimpang dari biasanya, tapi gpp lah.. sekali-sekali posting bahan yang bisa bikin otak fresh lagi.. hehehe.. jadi buat yang mau fresh lagi, silahkan coba donlod mp3 indonesia terbaru referensi dari braderrr budi...

AdrianMartadinata - AjariAku (Ost. iklan Simpati Telkomsel)
Geisha - Jika Cinta Dia
Mahkota - Jangan Ganggu Dulu
Numata - Begini Begitu
RAN - Ratu Lebah
Sherina - Cinta Pertama Dan Terakhir

don't forget to buy the original Album/Song..
Maju terus musik Indonesia..!!!
Selengkapnya...

GENERATE XML DENGAN XMLELEMENT

Pada posting generate xml sebelumnya, saya memakai dbms_xmlquery untuk generate xml. Namun setelah ditinjau lebih jauh.. ternyata ada beberapa keterbatasan.. dimana bila ingin menyatukan dua query menjadi satu file xml akan terjadi error.

Query1.sql

set linesize 1060;

set pagesize 1000;

set long 1000 ;

set heading off;

set serveroutput off;

set feedback off;

declare

queryCtx1 DBMS_XMLquery.ctxType;

queryCtx2 DBMS_XMLquery.ctxType;

coba clob;

coba1 clob;

begin

queryCtx1 := DBMS_XMLQuery.newContext('select ID_JALAN, LOG, MI_PRINX, GEOLOC from JALAN where ROWID in (select M_ROW$$ from MLOG$_JALAN)');

queryCtx2 := DBMS_XMLQuery.newContext('select mi_prinx from MLOG$_JALAN where dmltype$$=''D''');

coba:= DBMS_XMLQuery.GetXML(queryCtx1);

coba1:= DBMS_XMLQuery.GetXML(queryCtx2);

dbms_output.put_line(coba);

dbms_output.put_line(coba1);

end;

/

set serveroutput on;

spool D:\xml\xml_JALAN11032008-144351.xml

/

spool off

file xml yang dihasilkan dari script diatas adalah..

xml_JALAN11032008-144351.xml

<?xml version = '1.0'?> <ROWSET> <ROW num="1"> <ID_JALAN>28</ID_JALAN> <LOG>Ok1</LOG> <MI_PRINX>28</MI_PRINX> <GEOLOC> <SDO_GTYPE>2002</SDO_GTYPE> <SDO_SRID>8307</SDO_SRID> <SDO_POINT> <X>0</X> <Y>0</Y> </SDO_POINT> <SDO_ELEM_INFO> <SDO_ELEM_INFO_ITEM>1</SDO_ELEM_INFO_ITEM> <SDO_ELEM_INFO_ITEM>2</SDO_ELEM_INFO_ITEM> <SDO_ELEM_INFO_ITEM>1</SDO_ELEM_INFO_ITEM> </SDO_ELEM_INFO> <SDO_ORDINATES> <SDO_ORDINATES_ITEM>106.77932388</SDO_ORDINATES_ITEM> <SDO_ORDINATES_ITEM>-6.27297003</SDO_ORDINATES_ITEM> <SDO_ORDINATES_ITEM>106.77934296</SDO_ORDINATES_ITEM> <SDO_ORDINATES_ITEM>-6.27295104</SDO_ORDINATES_ITEM> <SDO_ORDINATES_ITEM>106.77948696</SDO_ORDINATES_ITEM> <SDO_ORDINATES_ITEM>-6.27294798</SDO_ORDINATES_ITEM> <SDO_ORDINATES_ITEM>106.77949596</SDO_ORDINATES_ITEM> <SDO_ORDINATES_ITEM>-6.27293403</SDO_ORDINATES_ITEM> <SDO_ORDINATES_ITEM>106.77948984</SDO_ORDINATES_ITEM> <SDO_ORDINATES_ITEM>-6.27274602</SDO_ORDINATES_ITEM> <SDO_ORDINATES_ITEM>106.77945312</SDO_ORDINATES_ITEM> <SDO_ORDINATES_ITEM>-6.272748</SDO_ORDINATES_ITEM> <SDO_ORDINATES_ITEM>106.77945204</SDO_ORDINATES_ITEM> <SDO_ORDINATES_ITEM>-6.27260904</SDO_ORDINATES_ITEM> </SDO_ORDINATES> </GEOLOC> </ROW> </ROWSET> <?xml version = '1.0'?> <ROWSET> <ROW num="1"> <MI_PRINX>27</MI_PRINX> </ROW> </ROWSET>

Jika dilihat pada bagian yang ditandai dengan warna merah, maka terlihat letak kesalahan yang dihasilkan. Adanya <?xml version = '1.0'?> kedua menyebabkan error pada file xml. Oleh karena itu, untuk mengatasi permasalahan diatas maka saya menggunakan cara yang agak brutal pada query yang menggunakan xmlelement() sebagai generator xml-nya.

Query2.sql

set linesize 1060;

set pagesize 1000;

set long 2000 ;

set heading off;

set serveroutput on;

set feedback off;

begin

dbms_output.put_line('');

end;

/

spool D:\ario\batch2\coba.xml

/

spool off

select q'[]' from dual;

spool D:\ario\batch2\coba.xml app

/

spool off

select ''||' U '|| xmlelement("ID_JALAN",ID_JALAN)||' '||xmlelement("NM_JALAN",NM_JALAN)||' '||xmlelement("LOG",LOG)||' '||xmlelement("MI_STYLE",MI_STYLE)||' '||xmlelement("MI_PRINX",MI_PRINX)||' '||xmlelement("GEOLOC",GEOLOC)||' '||'' from JALAN where ROWID in (SELECT M_ROW$$ FROM MLOG$_JALAN);

spool D:\ario\batch2\coba.xml app

/

spool off

select ''||' D '||xmlelement("MI_PRINX",mi_prinx)||' '||' ' from MLOG$_JALAN where dmltype$$='D';

spool D:\ario\batch2\coba.xml app

/

spool off

select q'[]' from dual;

spool D:\ario\batch2\coba.xml app

/

spool off

file xml yang dihasilkan adalah sebagai berikut

coba.xml

<?xml version = '1.0'?> <ROWSET> <ROW> <DMLTYPE>U</DMLTYPE> <ID_JALAN>28</ID_JALAN> <NM_JALAN></NM_JALAN> <LOG>Ok1</LOG> <MI_STYLE></MI_STYLE> <MI_PRINX>28</MI_PRINX> <GEOLOC> <SDO_GEOMETRY> <SDO_GTYPE>2002</SDO_GTYPE> <SDO_SRID>8307</SDO_SRID> <SDO_POINT><X>0</X><Y>0</Y></SDO_POINT> <SDO_ELEM_INFO> <NUMBER>1</NUMBER> <NUMBER>2</NUMBER> <NUMBER>1</NUMBER> </SDO_ELEM_INFO> <SDO_ORDINATES> <NUMBER>106.77932388</NUMBER> <NUMBER>-6.27297003</NUMBER> <NUMBER>106.77934296</NUMBER> <NUMBER>-6.27295104</NUMBER> <NUMBER>106.77948696</NUMBER> <NUMBER>-6.27294798</NUMBER> <NUMBER>106.77949596</NUMBER> <NUMBER>-6.27293403</NUMBER> <NUMBER>106.77948984</NUMBER> <NUMBER>-6.27274602</NUMBER> <NUMBER>106.77945312</NUMBER> <NUMBER>-6.272748</NUMBER> <NUMBER>106.77945204</NUMBER> <NUMBER>-6.27260904</NUMBER> </SDO_ORDINATES> </SDO_GEOMETRY> </GEOLOC> </ROW> <ROW> <DMLTYPE>U</DMLTYPE> <ID_JALAN>30</ID_JALAN> <NM_JALAN></NM_JALAN> <LOG>Ok1</LOG> <MI_STYLE></MI_STYLE> <MI_PRINX>30</MI_PRINX> <GEOLOC> <SDO_GEOMETRY> <SDO_GTYPE>2002</SDO_GTYPE> <SDO_SRID>8307</SDO_SRID> <SDO_POINT><X>0</X><Y>0</Y></SDO_POINT> <SDO_ELEM_INFO> <NUMBER>1</NUMBER> <NUMBER>2</NUMBER> <NUMBER>1</NUMBER> </SDO_ELEM_INFO> <SDO_ORDINATES> <NUMBER>106.77797388</NUMBER> <NUMBER>-6.27359499</NUMBER> <NUMBER>106.77798</NUMBER> <NUMBER>-6.27357096</NUMBER> <NUMBER>106.77798108</NUMBER> <NUMBER>-6.27318297</NUMBER> </SDO_ORDINATES> </SDO_GEOMETRY> </GEOLOC> </ROW> <ROW> <DMLTYPE>D</DMLTYPE> <MI_PRINX>27</MI_PRINX> </ROW> </ROWSET>

Untuk menghasilkan baris pertama xml yaitu tulisan <?xml version = '1.0'?> digunakan dbms_output.put_line() dalam procedure agar xml yang dihasilkan tidak error ketika ditampilkan pada browser firefox. Karena jika menggunakan perintah select biasa untuk menghasilkan tulisan <?xml version = '1.0'?> file xml akan error ketika dibuka dengan browser firefox karena adanya satu baris kosong di baris pertama file xml. Selain itu settingan long juga harus diperbesar menjadi 2000, karena query2.sql menghasilkan satu row xml memanjang trus ke samping tanpa ada karakter new line sebagai separator antar kolom.

Selengkapnya...

ANOMALI XML GENERATOR ORACLE

Kemarin team Nirwana ke SPC lagi untuk menyelesaikan tahap sinkronisasi. Seperti biasa, aku bertugas untuk membantu mba Ita menyelesaikan aplikasi Generate XML dari data spasial yang disimpan pada database Oracle. Jika kemarin menggunakan sys_xmlgen() untuk menghasilkan xml dari satu kolom. Maka kali ini, saya mencoba menggenerate seluruh kolom menjadi XML. Hal ini tidak bisa dilakukan dengan menggunakan sys_xmlgen(). Oleh karena itu, saya buat file batch untuk mengeksekusi query xml generator. Berikut ini file batch dan query-nya.

save.bat

sqlplus spasial/spasial@orcl @D:ariobatchquery.sql

query.sql

set linesize 1060;
set pagesize 1000;
set long 1000 ;
set heading off;
set serveroutput off;
set feedback off;
declare
coba clob;
begin
coba:= DBMS_XMLQuery.GetXML('select * from JALAN where ROWID in (SELECT M_ROW$$ FROM MLOG$_JALAN)');
dbms_output.put_line(coba);
end;
/
set serveroutput on;
spool D:xmlxml_JALAN26022008-194859.xml
/
spool off

dan inilah salah satu contoh file XML yang dihasilkan:

 <?xml version = '1.0'?>

<ROWSET>

<ROW num="1">

  <KD_PRO>31</KD_PRO>

  <KD_KAB>71</KD_KAB>

  <KD_KCM>010</KD_KCM>

  <KD_KLH>001</KD_KLH>

  <ID_JLN>31</ID_JLN>

  <NM_JLN>GG.BUNTU</NM_JLN>

  <LOG>Ok1</LOG>

  <MI_PRINX>31</MI_PRINX>

  <GEOLOC>

     <SDO_GTYPE>2002</SDO_GTYPE>

     <SDO_SRID>8307</SDO_SRID>

     <SDO_POINT>

        <X>0</X>

        <Y>0</Y>

     </SDO_POINT>

     <SDO_ELEM_INFO>

        <SDO_ELEM_INFO_ITEM>1</SDO_ELEM_INFO_ITEM>

        <SDO_ELEM_INFO_ITEM>2</SDO_ELEM_INFO_ITEM>

        <SDO_ELEM_INFO_ITEM>1</SDO_ELEM_INFO_ITEM>

     </SDO_ELEM_INFO>

     <SDO_ORDINATES>

        <SDO_ORDINATES_ITEM>106.77790008</SDO_ORDINATES_ITEM>

        <SDO_ORDINATES_ITEM>-6.27282198</SDO_ORDINATES_ITEM>

        <SDO_ORDINATES_ITEM>106.77790296</SDO_ORDINATES_ITEM>

        <SDO_ORDINATES_ITEM>-6.27280398</SDO_ORDINATES_ITEM>

        <SDO_ORDINATES_ITEM>106.77791088</SDO_ORDINATES_ITEM>                        

        <SDO_ORDINATES_ITEM>-6.27255504</SDO_ORDINATES_ITEM>

        <SDO_ORDINATES_ITEM>106.77791484</SDO_ORDINATES_ITEM>

        <SDO_ORDINATES_ITEM>-6.27239304</SDO_ORDINATES_ITEM>

     </SDO_ORDINATES>

  </GEOLOC>

</ROW>

</ROWSET>

Disinilah letak anomaly dari generator XML-nya Oracle. Jika dibandingkan dengan XML hasil dari sys_xmlgen(), maka dapat dilihat adanya perbedaan. Berikut ini hasil sys_xmlgen().

Query: Select sys_xmlgen(geoloc) from jalan where rownum=1;

<?xml version="1.0"?> <GEOLOC> <SDO_GTYPE>2002</SDO_GTYPE> <SDO_SRID>8307</SDO_SRID> <SDO_POINT> <X>0</X> <Y>0</Y> </SDO_POINT> <SDO_ELEM_INFO> <NUMBER>1</NUMBER> <NUMBER>2</NUMBER> <NUMBER>1</NUMBER> </SDO_ELEM_INFO> <SDO_ORDINATES> <NUMBER>106.77938004</NUMBER> <NUMBER>-6.27357996</NUMBER> <NUMBER>106.77938112</NUMBER> <NUMBER>-6.27353496</NUMBER> <NUMBER>106.77938292</NUMBER> <NUMBER>-6.27340302</NUMBER> <NUMBER>106.77938292</NUMBER> <NUMBER>-6.27322896</NUMBER> <NUMBER>106.77938292</NUMBER> <NUMBER>-6.27312897</NUMBER> </SDO_ORDINATES> </GEOLOC>

Jika dilihat ada perbedaan format XML yang dihasilkan, hal ini mungkin dapat menyebabkan konsistensi format XML tidak dapat dipertahankan. Mungkin ada yang ingin memberi pencerahan??

Selengkapnya...