<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Oracle Database | rohmad.net</title>
	
	<link>http://rohmad.net</link>
	<description>Administrasi | Belajar | Tutorial</description>
	<pubDate>Fri, 09 Oct 2009 09:10:11 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/rohmadnet" type="application/rss+xml" /><feedburner:emailServiceId>rohmadnet</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item>
		<title>Lowongan: Database Oracle Specialist</title>
		<link>http://feedproxy.google.com/~r/rohmadnet/~3/v-UhP86G2Uo/</link>
		<comments>http://rohmad.net/2009/06/11/lowongan-database-oracle-specialist/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 06:11:13 +0000</pubDate>
		<dc:creator>rohmadne</dc:creator>
		
		<category><![CDATA[Developing DBA career]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[kerja]]></category>

		<category><![CDATA[lowongan]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[vacancy]]></category>

		<guid isPermaLink="false">http://rohmad.net/?p=152</guid>
		<description><![CDATA[Kemarin ( 10 Juni 2009) ada yang nulis lowongan di bagian komentar artikel Gaji DBA Oracle di Indonesia. Siapa tahu anda cocok, silahkan hubungi contact person-nya. Berikut ini isinya:
Dear All…
Saat ini kami sedang membutuhkan :
Database Oracle Specialist
Persyaratan :
- Pendidikan min. S1 Teknik Komputer/Informatika/ Manajemen Informatika
- Pengalaman minimal 2 tahun di bidang Oracle
- Memiliki kemampuan untuk [...]]]></description>
			<content:encoded><![CDATA[<p>Kemarin ( 10 Juni 2009) ada yang nulis lowongan di bagian komentar artikel <a href="http://rohmad.net/2008/04/24/gaji-dba-oracle-di-indonesia/#comment-1566">Gaji DBA Oracle di Indonesia</a>. Siapa tahu anda cocok, silahkan hubungi contact person-nya. Berikut ini isinya:</p>
<p>Dear All…</p>
<p>Saat ini kami sedang membutuhkan :<br />
Database Oracle Specialist<br />
Persyaratan :<br />
- Pendidikan min. S1 Teknik Komputer/Informatika/ Manajemen Informatika<br />
- Pengalaman minimal 2 tahun di bidang Oracle<br />
- Memiliki kemampuan untuk melakukan instalasi Oracle &#038; performance tuning<br />
- Menguasai pemrograman dengan menggunakan database : PL/SQL,Oracle, Access<br />
- Mampu bekerja secara mandiri dengan sedikit pengawasan<br />
- Mampu bekerja dalam suatu team work</p>
<p>Bila berminat silahkan kirimkan CV anda ke: recruitment@artajasa.co.id<br />
Tulis subjectnya : DBA</p>
<p>Tks</p>
<img src="http://feeds.feedburner.com/~r/rohmadnet/~4/v-UhP86G2Uo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rohmad.net/2009/06/11/lowongan-database-oracle-specialist/feed/</wfw:commentRss>
		<feedburner:origLink>http://rohmad.net/2009/06/11/lowongan-database-oracle-specialist/</feedburner:origLink></item>
		<item>
		<title>Oracle Flashback Technology (Recycle bin)</title>
		<link>http://feedproxy.google.com/~r/rohmadnet/~3/x_dfwgo41N4/</link>
		<comments>http://rohmad.net/2009/06/05/oracle-flashback-technology-recycle-bin/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 08:58:59 +0000</pubDate>
		<dc:creator>rohmadne</dc:creator>
		
		<category><![CDATA[Backup &amp; Recovery]]></category>

		<category><![CDATA[Backup]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[Flashback]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[recovery]]></category>

		<category><![CDATA[Recycle bin]]></category>

		<category><![CDATA[restore]]></category>

		<guid isPermaLink="false">http://rohmad.net/?p=147</guid>
		<description><![CDATA[Salah satu feature Oracle 10g (ke atas) yang jadi andalan saya adalah Oracle Flashback Technology. Dengan Oracle Flashback, kita bisa me-restore (recovery) data dengan sangat mudah.
Sebagai contoh, ketika kita secara tidak sengaja menghapus sebagian record di file Excel, untuk mengembalikannya, kita cukup klik tombol UNDO. Kita klik UNDO sekian kali untuk kembali ke kondisi data [...]]]></description>
			<content:encoded><![CDATA[<p>Salah satu feature Oracle 10g (ke atas) yang jadi andalan saya adalah Oracle Flashback Technology. Dengan Oracle Flashback, kita bisa me-restore (recovery) data dengan sangat mudah.</p>
<p>Sebagai contoh, ketika kita secara tidak sengaja menghapus sebagian record di file Excel, untuk mengembalikannya, kita cukup klik tombol UNDO. Kita klik UNDO sekian kali untuk kembali ke kondisi data yang kita inginkan. Ketika kita tidak sengaka menghapus (drop/delete) file, untuk mengembalikan file tersebut kita cukup me-restore-nya dari recycle bin.</p>
<p>Nah, sederhanya, Oracle Flashback Technology menyediakan feature seperi UNDO dan RECYCLE BIN di Windows. Enak, bukan?</p>
<p>Macam-macam Oracle flashback:</p>
<p><strong>1. Oracle Flashback Query. </strong><br />
Berguna untuk melihat (query) isi tabel di masa lalu. Misalkan siang ini kita baru saja men-delete atau update record. Karena terkanjur commit, kita tidak bisa melakukan rollback. Dengan Oracle Flashback Query, kita bisa melihat record (isi tabel) tadi pagi sebelum kita delete atau update. Berikut ini contoh command-nya (Catatan: nama tabel yang saya pakai untuk contoh di artikel ini adalah TB):</p>
<pre>SQL&gt; SELECT * FROM TB AS OF TIMESTAMP
     TO_TIMESTAMP('2009-06-03 06:08:03', 'yyyy-mm-dd hh24:mi:ss');
SQL&gt; SELECT * FROM TB AS OF TIMESTAMP
     TO_TIMESTAMP('2009-06-03 06:08:03', 'yyyy-mm-dd hh24:mi:ss') where nomor=3;</pre>
<p>Keterbatasan:</p>
<ol>
<li>Karena feature ini memanfaatkan UNDO segment di UNDO tablespace, maka size dari UNDO tablespace sangat mempengaruhi sampai berapa lama masa lalu yang bisa dikembalikan lagi. Semakin besar UNDO tablespace maka semakin besar (lama) masa lalu yang bisa dikembalikan.Bila data yang diquery sudah tidak ada lagi di UNDO tablespace maka akan muncul error berikut:
<pre>ORA-08180: no snapshot found based on specified time</pre>
</li>
<li>Batas yang bisa query adalah setelah operasi DDL (data definition language) terakhir. Contoh DDL adalah mengubah definisi tabel (alter table, add column, alter column, truncate, dll). Bila data yang di-query ada pada waktu sebelum DDL terakhir (last DDL) maka akan muncul error berikut:
<pre>ORA-01466: unable to read data - table definition has changed</pre>
</li>
</ol>
<p><span id="more-147"></span><strong>2. Oracle Flashback Table.</strong><br />
Berguna untuk mengembalikan kondisi (isi) tabel seperti kondisi di masa lalu. Seperti contoh di atas, kita bisa mengembalikan tabel TB sebagimana tadi pagi sebelum kita melakukan delete atau update record. Berikut ini perintahnya:</p>
<pre>SQL&gt; FLASHBACK TABLE TB TO TIMESTAMP
     TO_TIMESTAMP('2009-06-03 06:08:03', 'yyyy-mm-dd hh24:mi:ss');</pre>
<p>Syaratnya: &#8220;ROW MOVEMENT&#8221; harus di-enable. Berikut ini command-nya:</p>
<pre>SQL&gt; ALTER TABLE TB ENABLE ROW MOVEMENT;</pre>
<p>Kalau tidak di-enable, bila menjalankan command FLASHBACK TABLE akan muncul error message berikut:</p>
<pre>ORA-08189: cannot flashback the table because row movement is not enabled</pre>
<p>Keterbatasan: sama dengan Oracle Flashback Query.</p>
<p>User yang tidak punya ROLE DBA, agar bisa melakukan flashback harus mempunyai privilege FLASHBACK ANY TABLE. Contoh memberi privilege ke user EMP:</p>
<pre>SQL&gt; grant FLASHBACK ANY TABLE to EMP;</pre>
<p><strong>3. Oracle Flashback Drop. </strong><br />
Berguna untuk mengembalikan tabel yang telah di-drop. Kalau di Windows adalah restore file dari recycle bin. Command untuk melihat isi dari recycle bin:</p>
<pre>SQL&gt; select * from dba_recyclebin;
SQL&gt; select * from user_recyclebin;
SQL&gt; select * from recyclebin;</pre>
<p>Restore tabel:</p>
<pre>SQL&gt; FLASHBACK TABLE TB TO BEFORE DROP;</pre>
<p>Kita juga bisa me-restore dan mengubah nama tabel tersebut:</p>
<pre>SQL&gt; FLASHBACK TABLE TB TO BEFORE DROP RENAME TO TB_OLD;</pre>
<p>Keterbatasan:<br />
Setelah (misalkan) tabel TB di-drop, secara physic data masih ada di tablespace, tidak dihapus, hanya diberi tanda (flag) bahwa space yang dipakai oleh tabel tersebut sewaktu-waktu bisa dihapus dan dipakai untuk yang lain. Ketika space kosong di tablespace sudah habis, sementara dibutuhkan space lagi untuk data yang baru masuk, maka space dari tabel TB tersebut akan dibersikan dan siap dipakai untuk data baru. Jadi, sampai berapa lama tabel akan disimpan di recycle bin? Ya tergantung ketersediaan free space di tablespace yang bersangkutan.</p>
<p>Catatan:<br />
Berkaitan dengan truncate, dalam beberapa hal saya menghindari truncate dan lebih memilih drop table. Karena truncate adalah DDL maka kita tidak bisa mengembalikan data (table) pada kondisi sebelum truncate. Sementara itu drop table bisa di-restore kembali oleh Oracle Flashback Drop.</p>
<p><strong>4. Oracle Flashback Database.</strong></p>
<p>Merupakan alternatif lain dari database Point-In-Time Recovery.<br />
Kalau sempat akan saya bahas di lain kesempatan.</p>
<p><strong>Referensi</strong></p>
<p><a href="http://download.oracle.com/docs/cd/B19306_01/backup.102/b14192/flashptr.htm" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/download.oracle.com');">Oracle® Database Backup and Recovery Basics 10g Release 2 (10.2)</a></p>
<img src="http://feeds.feedburner.com/~r/rohmadnet/~4/x_dfwgo41N4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rohmad.net/2009/06/05/oracle-flashback-technology-recycle-bin/feed/</wfw:commentRss>
		<feedburner:origLink>http://rohmad.net/2009/06/05/oracle-flashback-technology-recycle-bin/</feedburner:origLink></item>
		<item>
		<title>Download Gratis Buku Panduan DBA Oracle</title>
		<link>http://feedproxy.google.com/~r/rohmadnet/~3/ygzEhuwBJss/</link>
		<comments>http://rohmad.net/2008/12/19/download-gratis-buku-panduan-dba-oracle/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 09:01:10 +0000</pubDate>
		<dc:creator>rohmadne</dc:creator>
		
		<category><![CDATA[Administration]]></category>

		<category><![CDATA[Developing DBA career]]></category>

		<category><![CDATA[buku]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[DBA]]></category>

		<category><![CDATA[download]]></category>

		<category><![CDATA[gratis]]></category>

		<category><![CDATA[oracle]]></category>

		<guid isPermaLink="false">http://rohmad.net/?p=138</guid>
		<description><![CDATA[Sudah lebih dua bulan saya tidak menulis di blog ini. Tulisan terakhir adalah 17 Oktober 2008. Selama itu pula saya tidak menjawab pertanyaan teman-teman pembaca sekalian; baik yang bertanya lewat komentar di tiap tulisan, forum tanya jawab, ataupun lewat email. Saya mohon maaf yang sebesar-besarnya bila para penanya menunggu-nunggu jawaban dari saya.
Untuk mengobati kekurangpuasan rekan-rekan [...]]]></description>
			<content:encoded><![CDATA[<p>Sudah lebih dua bulan saya tidak menulis di blog ini. Tulisan terakhir adalah 17 Oktober 2008. Selama itu pula saya tidak menjawab pertanyaan teman-teman pembaca sekalian; baik yang bertanya lewat komentar di tiap tulisan, <a href="http://rohmad.net/tanya-jawab/">forum tanya jawab</a>, ataupun lewat email. Saya mohon maaf yang sebesar-besarnya bila para penanya menunggu-nunggu jawaban dari saya.</p>
<p>Untuk mengobati kekurangpuasan rekan-rekan pembaca, saya telah mengkompilasi tulisan-tulisan di blog ini ke dalam e-book. Silahkan download di <a href="http://tech.groups.yahoo.com/group/indo-oracle/files/rohmad/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/tech.groups.yahoo.com');">Buku Pegangan Oracle DBA.pdf</a>, gratis &#8230; tis&#8230; tis&#8230; Namun anda mesti register dulu di milis <a href="http://tech.groups.yahoo.com/group/indo-oracle/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/tech.groups.yahoo.com');">indo-oracle</a>.</p>
<p>Saya membuka lebar-lebar pertanyaan, kritik, saran, atau pun complaint terhadap e-book ini. Bahkan sayapun membuka kesempatan bagi yang mau memberikan donasinya. Silahkan transfer ke Rek BCA no  7610329271 atas nama Rohmad <img src='http://rohmad.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Salam,<br />
Rohmad </p>
<img src="http://feeds.feedburner.com/~r/rohmadnet/~4/ygzEhuwBJss" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rohmad.net/2008/12/19/download-gratis-buku-panduan-dba-oracle/feed/</wfw:commentRss>
		<feedburner:origLink>http://rohmad.net/2008/12/19/download-gratis-buku-panduan-dba-oracle/</feedburner:origLink></item>
		<item>
		<title>Mengetahui konfigurasi database</title>
		<link>http://feedproxy.google.com/~r/rohmadnet/~3/dfbTISyVbbI/</link>
		<comments>http://rohmad.net/2008/10/17/mengetahui-konfigurasi-database/#comments</comments>
		<pubDate>Fri, 17 Oct 2008 08:57:59 +0000</pubDate>
		<dc:creator>rohmadne</dc:creator>
		
		<category><![CDATA[Administration]]></category>

		<category><![CDATA[Concept]]></category>

		<category><![CDATA[configuration]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[information]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[properties]]></category>

		<guid isPermaLink="false">http://rohmad.net/?p=135</guid>
		<description><![CDATA[Berikut ini cara mengetahui informasi seputar konfigurasi database Oracle yang kita maintain. Informasi ini sangat penting diketahui, terutama bagi DBA yang databasenya di-install/create/configure oleh orang (DBA) lain.
Informasi tentang environment Operating System (OS)
Salah satu informasi yang paling penting adalah ORACLE_HOME, yaitu directory di mana instalasi Oracle ditaruh. Lihat environment OS di sini:

Di Windows, lihat di registry [...]]]></description>
			<content:encoded><![CDATA[<p>Berikut ini cara mengetahui informasi seputar konfigurasi database Oracle yang kita maintain. Informasi ini sangat penting diketahui, terutama bagi DBA yang databasenya di-install/create/configure oleh orang (DBA) lain.</p>
<p><strong>Informasi tentang environment Operating System (OS)</strong><br />
Salah satu informasi yang paling penting adalah ORACLE_HOME, yaitu directory di mana instalasi Oracle ditaruh. Lihat environment OS di sini:</p>
<ol>
<li>Di Windows, lihat di registry <code2>My Computer --> HKEY_LOCAL_MACHINE --> SOFTWARE --> ORACLE</code2>
<li>Di Unix, lihat di user profile dari database owner. Untuk shell sh/ksh/bash, user profile ada di file <code2>.profile</code2>. Untuk shell csh/tcsh, user profile ada di file <code2>.login</code2>
</ol>
<p><strong>Informasi parameter Instance (init file)</strong><br />
Lokasinya ada di <code2>$ORACLE_HOME/dbs</code2> untuk OS Unix, atau <code2>%ORACLE_HOME%\database</code2> untuk Windows. Lebih detail silahkan lihat <a href="http://rohmad.net/2008/06/28/teori-dan-administrasi-init-file-pfile-dan-spfile/">Teori dan Administrasi init file (pfile dan spfile)</a>. </p>
<p>Parameter instance, kalau tidak di-specify di init file, maka Oracle akan memberi nilai default. Ketika instance up, kita bisa melihat parameter-parameter instance melalui view <code2>v$parameter</code2>. Contoh:</p>
<pre>SQL> select NAME,VALUE,ISDEFAULT from v$parameter order by name;</pre>
<p>Kolom NAME adalah nama parameter. Kolom VALUE adalah nilai dari parameter tersebut. Kolom ISDEFAULT, kalau bernilai YES berarti nilai tersebut masih merupakan nilai default atau belum di-specify.</p>
<p><span id="more-135"></span><strong>Feature (option) database yang sudah ter-install</strong><br />
 Ketika <a href="http://rohmad.net/2008/05/21/install-database-oracle-10g-di-windows-xp/">meng-install software database Oracle</a>, kita diberi 3 pilihan jenis instalasi yaitu standart, enterprise, atau custom. Feature (option) mana saja yang akan turut di-install, ya tergantung pilihan kita tersebut.  Untuk mengetahui option apa saja yang include dalam software database Oracle yang telah kita install, query ke view <code2>v$option</code2>.</p>
<pre>SQL> select * from v$option order by parameter;</pre>
<p><strong>Feature (option) yang dipakai oleh database</strong><br />
Ketika kita <a href="http://rohmad.net/2008/05/27/membuat-database-oracle-10g/">membuat database</a>, tidak semua feature database Oracle (yang telah kita install) kita butuhkan. Untuk melihat feature yang dipakai oleh database, query view <code2>dba_registry</code2></p>
<pre>SQL> select COMP_NAME,VERSION,STATUS from dba_registry;</pre>
<p>Jadi, perlu dipahami betul beda informasi antara yang di VIEW v$option dan di dba_registry. Feature (option) yang di-install (ada di v$option) belum tentu dipakai oleh database (ada di dba_registry). Sebaliknya, feature yang dipakai database (ada di dba_registry) sudah pasti merupakan feature yang sudah ada dalam instalasi software database Oracle (ada di view v$option).</p>
<p><strong>Informasi tentang properties database</strong><br />
Contoh properties database adalah default tablespace (permanent dan temporary), timezone, character set, language, dll. Informasi tersebut bisa dilihat dengan query ke view <code2>database_properties</code2>. </p>
<pre>SQL> select PROPERTY_NAME,PROPERTY_VALUE
from database_properties order by PROPERTY_NAME;</pre>
<img src="http://feeds.feedburner.com/~r/rohmadnet/~4/dfbTISyVbbI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rohmad.net/2008/10/17/mengetahui-konfigurasi-database/feed/</wfw:commentRss>
		<feedburner:origLink>http://rohmad.net/2008/10/17/mengetahui-konfigurasi-database/</feedburner:origLink></item>
		<item>
		<title>Gather statistic untuk Performance</title>
		<link>http://feedproxy.google.com/~r/rohmadnet/~3/KreylPiXmQg/</link>
		<comments>http://rohmad.net/2008/09/23/gather-statistic-untuk-performance/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 04:04:29 +0000</pubDate>
		<dc:creator>rohmadne</dc:creator>
		
		<category><![CDATA[Administration]]></category>

		<category><![CDATA[Performance Tuning]]></category>

		<category><![CDATA[CBO]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[optimizer]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[performance]]></category>

		<category><![CDATA[statistic]]></category>

		<category><![CDATA[tuning]]></category>

		<guid isPermaLink="false">http://rohmad.net/?p=132</guid>
		<description><![CDATA[Cost based optimizer (CBO) menggunakan statistic untuk menentukan execution plan yang paling optimal. Saya pernah membahas sekilas tentang CBO ini di artikel Tuning Query dengan Explain Plan. 
DI versi 9i ke bawah, gather statistic dilakukan secara manual dengan package DBMS_STATS. By default di database Oracle 10g, gather statistic ini dilakukan oleh Oracle secara otomatis; selanjutnya [...]]]></description>
			<content:encoded><![CDATA[<p>Cost based optimizer (CBO) menggunakan statistic untuk menentukan execution plan yang paling optimal. Saya pernah membahas sekilas tentang CBO ini di artikel <a href="http://rohmad.net/2008/05/29/tuning-query-dengan-explain-plan/" >Tuning Query dengan Explain Plan</a>. </p>
<p>DI versi 9i ke bawah, gather statistic dilakukan secara manual dengan package DBMS_STATS. By default di database Oracle 10g, gather statistic ini dilakukan oleh Oracle secara otomatis; selanjutnya kitapun bisa memilih cara melakukan gather statistic ini, apakah secara otomatis atau manual.</p>
<p>Agar Database melakukan gather statistic secara manual, jalankan command berikut di SQL:</p>
<pre>
conn system
BEGIN
  DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');
END;
/
</pre>
<p>Untuk mengembalikan gather statistic berjalan otomatic, jalankan command berikut di SQL:</p>
<pre>
BEGIN
  DBMS_SCHEDULER.ENABLE('GATHER_STATS_JOB');
END;
/
</pre>
<p>Untuk mempermudah pekerjaan, saya menyarankan untuk menjalankan gather statistic secara otomatis. Untuk database versi 9i, mau tidak mau kita harus melakukan secara manual karena di 9i belum ada <em>feature </em>gather statistic otomatis. Walaupun manual, kita bisa mensiasatinya dengan menjalankan DBMS_STATS lewat DBMS_JOB.</p>
<p><span id="more-132"></span><strong>Menggunakan DBMS_STATS</strong></p>
<p>Berikut ini procedure yang ada di dalam package DBMS_STATS yang sering digunakan:</p>
<pre>
Procedure 			Collects
========================================================================
GATHER_INDEX_STATS		Index statistics
GATHER_TABLE_STATS		Table, column, and index statistics
GATHER_SCHEMA_STATS		Statistics for all objects in a schema
GATHER_DATABASE_STATS		Statistics for all objects in a database
GATHER_SYSTEM_STATS		CPU and I/O statistics for the system
</pre>
<p>Untuk menjalankan GATHER_INDEX_STATS, GATHER_TABLE_STATS, dan GATHER_SCHEMA_STATS bisa dilakukan oleh user (schema) yang bersangkutan. Kalau saya lebih suka memakai user SYSTEM, untuk mempermudah saja.</p>
<p>Contoh:</p>
<ol>
<li>Gather satistic untuk semua object milik schema DBMON,sample yang diambil statistic 20%.
<pre>
DBMS_STATS.GATHER_SCHEMA_STATS('DBMON',20);
</pre>
<p>Kalau ingin statistic benar-benar valid, kita bisa mengambil sampel 100%. Namun bila tabelnya sangat besar, dan panjang data tiap kolomnya seragam, sebaiknya sampel bisa diperkecil. Sampel yang besar akan memakan waktu gather statistic lebih lama. Mulai versi 9i, berapa besarnya sampel ini bisa kita serahkan ke Oracle; gunakan DBMS_STATS.AUTO_SAMPLE_SIZE.</p>
<pre>
DBMS_STATS.GATHER_SCHEMA_STATS('DBMON',DBMS_STATS.AUTO_SAMPLE_SIZE);
</pre>
<li>Gather statistic tabel TAB_DATAHIST_XLDM milik schema DBMON, partisi NULL karena tidak mempunyai partisi, sample yang diambil statistic adalah 20%, index juga diikutsertakan
<pre>
DBMS_STATS.GATHER_TABLE_STATS('DBMON','TAB_DATAHIST_XLDM',null,20,cascade=>TRUE);
</pre>
<li>Contoh lebih lanjut dan pembahasan lebih detail, silahkan lihat di referensi
</ol>
<p>Beberapa informasi statistic tersebut bisa dilihat di view DBA_TABLES dan DBA_INDEXES.</p>
<p><strong>Referensi</strong><br />
<a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/stats.htm" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/download.oracle.com');">Oracle® Database Performance Tuning Guide 10g Release 2 (10.2) - Managing Optimizer Statistics</a><br />
<a href="http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14258/d_stats.htm" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/download.oracle.com');">Oracle® Database PL/SQL Packages and Types Reference 10g Release 2 (10.2) - DBMS_STATS</a></p>
<img src="http://feeds.feedburner.com/~r/rohmadnet/~4/KreylPiXmQg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rohmad.net/2008/09/23/gather-statistic-untuk-performance/feed/</wfw:commentRss>
		<feedburner:origLink>http://rohmad.net/2008/09/23/gather-statistic-untuk-performance/</feedburner:origLink></item>
		<item>
		<title>Mengenal Teknologi Grid</title>
		<link>http://feedproxy.google.com/~r/rohmadnet/~3/c4pAaa9DxQM/</link>
		<comments>http://rohmad.net/2008/09/22/mengenal-teknologi-grid/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 09:03:58 +0000</pubDate>
		<dc:creator>rohmadne</dc:creator>
		
		<category><![CDATA[Concept]]></category>

		<category><![CDATA[asm]]></category>

		<category><![CDATA[cluster]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[enterprise manager]]></category>

		<category><![CDATA[grid]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[RAC]]></category>

		<guid isPermaLink="false">http://rohmad.net/?p=130</guid>
		<description><![CDATA[Oracle 10g, g adalah singkatan dari grid. Berikut ini pembahasan mengenai Grid yang saya kutip dari Wikipedia.
Komputasi Grid (grid computing) adalah penggunaan sumber daya yang melibatkan banyak komputer yang terdistribusi dan terpisah secara geografis untuk memecahkan persoalan komputasi dalam skala besar.
Latar belakang grid
Perkembangan kecepatan prosesor berkembang sesuai dengan Hukum Moore, meskipun demikian bandwidth jaringan komputer [...]]]></description>
			<content:encoded><![CDATA[<p>Oracle 10g, <strong>g</strong> adalah singkatan dari <strong>grid</strong>. Berikut ini pembahasan mengenai Grid yang saya kutip dari <a href="http://id.wikipedia.org/wiki/Komputasi_grid" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/id.wikipedia.org');">Wikipedia</a>.</p>
<p>Komputasi Grid (<em>grid computing</em>) adalah penggunaan sumber daya yang melibatkan banyak komputer yang terdistribusi dan terpisah secara geografis untuk memecahkan persoalan komputasi dalam skala besar.</p>
<p><strong>Latar belakang grid</strong></p>
<p>Perkembangan kecepatan prosesor berkembang sesuai dengan Hukum Moore, meskipun demikian bandwidth jaringan komputer berkembang jauh lebih pesat. Semakin cepatnya jalur komunikasi ini membuka peluang untuk menggabungkan kekuatan komputasi dari sumber-sumber komputasi yang terpisah. Perkembangan ini memungkinkan skala komputasi terdistribusi ditingkatkan lebih jauh lagi secara geografis, melintasi batas-batas domain administrasi yang sudah ada.</p>
<p>Pesatnya perkembangan teknologi komputer di negara-negara maju, membuat para penelitinya semakin haus akan tenaga komputasi yang dapat menjawab tantangan dan permasalahan yang mereka hadapi. Walaupun sudah memiliki supercomputer dengan kapasitas yang sangat tinggi , apa yang sudah ada ini pun dirasa tetap kurang, karena mereka berusaha memecahkan permasalahan yang lebih besar lagi. Setelah semua komputer yg dimiliki seorang &#8220;peneliti haus tenaga komputasi&#8221; dipergunakan habis-habisan untuk memecahkan masalahnya, setelah berbagai cara untuk memecahkan masalah dicoba, dan dipilih yang paling efisien, tapi tetap masalahnya belum bisa dipecahkan juga, apa yang harus dia lakukan? Komputasi grid adalah salah satu jawaban dari pertanyaan ini.</p>
<p><strong>Definisi grid</strong></p>
<p>Menurut tulisan singkat [1] oleh Ian Foster ada check-list yang dapat digunakan untuk mengidentifikasi bahwa suatu sistem melakukan komputasi grid yaitu :<br />
<span id="more-130"></span>
<ul>
<li>Sistem tersebut melakukan koordinasi terhadap sumberdaya komputasi yang tidak berada dibawah suatu kendali terpusat. Seandainya sumber daya yang digunakan berada dalam satu cakupan domain administratif, maka komputasi tersebut belum dapat dikatakan komputasi grid.
<li>Sistem tersebut menggunakan standard dan protokol yang bersifat terbuka (tidak terpaut pada suatu implementasi atau produk tertentu). Komputasi grid disusun dari kesepakatan-kesepakatan terhadap masalah yang fundamental, dibutuhkan untuk mewujudkan komputasi bersama dalam skala besar. Kesepakatan dan standar yang dibutuhkan adalah dalam bidang autentikasi, otorisasi, pencarian sumberdaya, dan akses terhadap sumber daya.
<li>Sistem tersebut berusaha untuk mencapai kualitas layanan yang canggih, (nontrivial quality of service) yang jauh diatas kualitas layanan komponen individu dari komputasi grid tersebut.
</ul>
<p><strong>Peluang grid</strong></p>
<p>Dalam buku <em>The Grid:Blue Print for a new computing infrastructure</em> dijelaskan bahwa yang dimaksud dengan komputasi grid adalah infrastruktur perangkat keras dan perangkat lunak yang dapat menyediakan akses yang bisa diandalkan, konsisten, tahan lama dan tidak mahal terhadap kemampuan komputasi mutakhir yang tersedia.</p>
<p><em>&#8220;A computational grid is a hardware and software infrastructure that provides dependable, consistent, pervasive, and inexpensive access to high-end computational capabilities.&#8221;</em></p>
<p>Seandainya kelak di kemudian hari teknologi yang dibutuhkan untuk mewujudkan visi paradigma komputasi grid ini sudah mapan, peluang akan semakin terbuka bagi kerjasama lintas organisasi, lintas benua dan lintas bangsa. Akan terbuka peluang bagi peneliti di Indonesia yang ingin melakukan komputasi yang sangat rumit, dengan menggunakan supercomputer tercepat di dunia, tanpa harus melakukan investasi besar-besaran dalam bidang teknologi informasi.</p>
<p><strong>Produk Grid dari Oracle</strong></p>
<p>Oracle telah membangun software infrastruktur komputasi grid yang mampu membagi dan menyeimbangkan semua beban (<em>workload</em>) di antara server-server yang berbeda, dan me-manage server-server yang berbeda itu sebagai satu kesatuan sistem. </p>
<p>Kemampuan komputasi grid adalah setara dengan mainframe karena semua komponennya (grid) di-cluster. Namun tidak seperti <em>mainframe </em>dan server SMP (<em>symmetric multiprocessing</em>) yang besar, grid bersifat terbuka (<em>open system technologies</em>) yang bisa mencakup system kecil-kecil dengan processor Intel dan OS Linux sehingga biaya jadi jauh lebih murah.</p>
<p>Adapun produk grid dari Oracle adalah:</p>
<ul>
<li>Storage Grid: Automatic Storage Management (ASM)
<li>Database Grid: Real Application Server (RAC)
<li>Application Grid: Oracle Streams
<li>Grid Control: Enterprise Manager Grid Control
</ul>
<p><img src="http://farm4.static.flickr.com/3025/2877922855_d5277be1e7.jpg?v=0" alt="Oracle Grid Products" /></p>
<img src="http://feeds.feedburner.com/~r/rohmadnet/~4/c4pAaa9DxQM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rohmad.net/2008/09/22/mengenal-teknologi-grid/feed/</wfw:commentRss>
		<feedburner:origLink>http://rohmad.net/2008/09/22/mengenal-teknologi-grid/</feedburner:origLink></item>
		<item>
		<title>Memindahkan atau Me-rename Datafile</title>
		<link>http://feedproxy.google.com/~r/rohmadnet/~3/hUAKbQd9HC4/</link>
		<comments>http://rohmad.net/2008/09/17/memindahkan-atau-me-rename-datafile/#comments</comments>
		<pubDate>Wed, 17 Sep 2008 03:29:54 +0000</pubDate>
		<dc:creator>rohmadne</dc:creator>
		
		<category><![CDATA[Administration]]></category>

		<category><![CDATA[Administrasi]]></category>

		<category><![CDATA[alter]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[datafile]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[rename]]></category>

		<category><![CDATA[tablespace]]></category>

		<guid isPermaLink="false">http://rohmad.net/?p=122</guid>
		<description><![CDATA[Kadang kita perlu memindahkan datafile dari satu tempat (disk/file system/directory/drive) ke tempat yang lainnya. Atau kadang juga kita perlu me-rename datafile karena ada salah ketik waktu membuatnya. Baik memindahkan file dari satu tempat ke tempat lain, maupun merename datafile di  tempat yang sama, intinya adalah sama saja.
Misalkan kita ingin memindahkan/me-rename datafile dari &#8216;/oradata/oracle/ts/users01.dbf&#8217; ke [...]]]></description>
			<content:encoded><![CDATA[<p>Kadang kita perlu memindahkan datafile dari satu tempat (disk/file system/directory/drive) ke tempat yang lainnya. Atau kadang juga kita perlu me-rename datafile karena ada salah ketik waktu membuatnya. Baik memindahkan file dari satu tempat ke tempat lain, maupun merename datafile di  tempat yang sama, intinya adalah sama saja.</p>
<p>Misalkan kita ingin memindahkan/me-rename datafile dari &#8216;/oradata/oracle/ts/users01.dbf&#8217; ke &#8216;/oradata/oracle/ts/users02.dbf&#8217;</p>
<p>Pada database yang NOARCHIVELOG:</p>
<ol>
<li>Shutdown database
<pre>
SQL> shutdown immediate
</pre>
<li>Pindahkan/move/rename datafile. Di Windows bisa pakai Windows explorer. Di unix gunakan command ini:
<pre>
mv /oradata/oracle/ts/users01.dbf /oradata/oracle/ts/users02.dbf
</pre>
<li>Startup mount database
<pre>
SQL> startup mount
</pre>
<li>Rename datafile di level database
<pre>
SQL> alter database rename file '/oradata/oracle/ts/users01.dbf'
to '/oradata/oracle/ts/users02.dbf';
</pre>
<li>Setelah itu, open database
<pre>
SQL> alter database open;
</pre>
</ol>
<p><span id="more-122"></span>Pada database yang ARCHIVELOG:</p>
<ol>
<li>Tidak perlu shutdown database. Cukup offline-kan datafile yang bersangkutan
<pre>SQL> alter database datafile '/oradata/oracle/ts/users01.dbf' offline;</pre>
<li>Pindahkan/move/rename datafile. Di Windows bisa pakai Windows explorer. Di unix gunakan command ini:
<pre>mv /oradata/oracle/ts/users01.dbf /oradata/oracle/ts/users02.dbf</pre>
<li>Rename datafile di level database
<pre>
SQL> alter database rename file '/oradata/oracle/ts/users01.dbf'
to '/oradata/oracle/ts/users02.dbf';
</pre>
<li>Setelah itu, recover datafile yang telah di-rename tersebut
<pre>SQL> recover datafile '/oradata/oracle/ts/users02.dbf';</pre>
<li>Terakhir, online-kan datafile yang telah di-rename tersebut
<pre>alter database datafile '/oradata/oracle/ts/users01.dbf' online;</pre>
</ol>
<p>Pada metode pertama di atas (untuk database NOARCHIVELOG), mau tidak mau database tersebut tidak bisa diakses karena harus di-shutdown dulu (ada downtime). </p>
<p>Sementara pada metode kedua (untuk database ARCHIVELOG) database masih bisa diakses (baik query maupun transaksi), kecuali data (bytes) yang secara intrinsik disimpan di datafile tersebut tidak bisa diakses. Misalkan datafile diatas adalah milik tablespace USERS, dan tablespace USERS punya dua datafiles; maka data yang secara intriksik ada di datafile lain (bukan yang di-offline-kan tersebut) masih bisa diakses.</p>
<img src="http://feeds.feedburner.com/~r/rohmadnet/~4/hUAKbQd9HC4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rohmad.net/2008/09/17/memindahkan-atau-me-rename-datafile/feed/</wfw:commentRss>
		<feedburner:origLink>http://rohmad.net/2008/09/17/memindahkan-atau-me-rename-datafile/</feedburner:origLink></item>
		<item>
		<title>Partitioning Table: Informasi Segment &amp; Tablespace</title>
		<link>http://feedproxy.google.com/~r/rohmadnet/~3/F3zZ6hRbGxc/</link>
		<comments>http://rohmad.net/2008/09/14/partitioning-table-segment-tablespace/#comments</comments>
		<pubDate>Sun, 14 Sep 2008 20:23:44 +0000</pubDate>
		<dc:creator>rohmadne</dc:creator>
		
		<category><![CDATA[Administration]]></category>

		<category><![CDATA[Performance Tuning]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[index]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[partition]]></category>

		<category><![CDATA[subpartition]]></category>

		<category><![CDATA[table]]></category>

		<guid isPermaLink="false">http://rohmad.net/?p=119</guid>
		<description><![CDATA[Kadang kita bingung, ketika query TABLESPACE_NAME di view DBA_TABLES, kok nilai TABLESPACE_NAME ada yang NULL (blank/kosong).

SQL> select distinct TABLESPACE_NAME from dba_tables;
TABLESPACE_NAME
------------------------------
SYSTEM
                                   [...]]]></description>
			<content:encoded><![CDATA[<p>Kadang kita bingung, ketika query TABLESPACE_NAME di view DBA_TABLES, kok nilai TABLESPACE_NAME ada yang NULL (blank/kosong).</p>
<pre>
SQL> select distinct TABLESPACE_NAME from dba_tables;
TABLESPACE_NAME
------------------------------
SYSTEM
                                            <--- Kosong/blank/NULL
USERS
SYSAUX
</pre>
<p>Tidak perlu bingung, itu tandanya ada tabel berpartisi di database tersebut. Pada tabel yang berpartisi, data disimpan di dalam partisinya. Contoh, lihat tabel berpartisi PENJUALAN_RANGE yang pernah dibahas di <a href="http://rohmad.net/2008/07/26/partitioning-table-definisi-dan-contoh/">Partitioning Table: Definisi dan Contoh</a>.</p>
<pre>
CREATE TABLE penjualan_range
( no_invoice  NUMBER,
tgl_jual    DATE NOT NULL,
area varchar2(10))
PARTITION BY RANGE (tgl_jual)
(
PARTITION jual_kw1 VALUES LESS THAN (TO_DATE('01-APR-2008','DD-MON-YYYY')) TABLESPACE users,
PARTITION jual_kw2 VALUES LESS THAN (TO_DATE('01-JUL-2008','DD-MON-YYYY')) TABLESPACE users,
PARTITION jual_kw3 VALUES LESS THAN (TO_DATE('01-OCT-2008','DD-MON-YYYY')) TABLESPACE users,
PARTITION jual_kw4 VALUES LESS THAN (TO_DATE('01-JAN-2009','DD-MON-YYYY')) TABLESPACE users
);
</pre>
<p><span id="more-119"></span>Coba lihat, view DBA_TABLES. Hasil query berikut ini adalah 1 record, di mana nilai kolom TABLESPACE_NAME adalah NULL. </p>
<pre>
SQL> select tablespace_name from dba_tables where table_name='PENJUALAN_RANGE';
TABLESPACE_NAME
------------------------------
SQL> select count(*) from dba_tables where table_name='PENJUALAN_RANGE';
  COUNT(*)
----------
         1
</pre>
<p>Sekarang, query view DBA_TAB_PARTITIONS. Tampak bahwa data disimpan di partisi JUAL_KW1, JUAL_KW2, JUAL_KW3, dan JUAL_KW4. </p>
<pre>
SQL> select TABLESPACE_NAME,PARTITION_NAME from DBA_TAB_PARTITIONS where table_name='PENJUALAN_RANGE';

TABLESPACE_NAME                PARTITION_NAME
------------------------------ ------------------------------
USERS                          JUAL_KW1
USERS                          JUAL_KW2
USERS                          JUAL_KW3
USERS                          JUAL_KW4
</pre>
<p>Lihat juga informasi di view DBA_SEGMENTS</p>
<pre>
SQL> select SEGMENT_NAME,PARTITION_NAME,TABLESPACE_NAME
from dba_segments where SEGMENT_NAME='PENJUALAN_RANGE';

SEGMENT_NAME       PARTITION_NAME  TABLESPACE
------------------ --------------- ----------
PENJUALAN_RANGE    JUAL_KW1        USERS
PENJUALAN_RANGE    JUAL_KW2        USERS
PENJUALAN_RANGE    JUAL_KW3        USERS
PENJUALAN_RANGE    JUAL_KW4        USERS
</pre>
<img src="http://feeds.feedburner.com/~r/rohmadnet/~4/F3zZ6hRbGxc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rohmad.net/2008/09/14/partitioning-table-segment-tablespace/feed/</wfw:commentRss>
		<feedburner:origLink>http://rohmad.net/2008/09/14/partitioning-table-segment-tablespace/</feedburner:origLink></item>
		<item>
		<title>Dasar-dasar Tuning</title>
		<link>http://feedproxy.google.com/~r/rohmadnet/~3/UgOf2MiqtFk/</link>
		<comments>http://rohmad.net/2008/09/04/dasar-dasar-tuning/#comments</comments>
		<pubDate>Thu, 04 Sep 2008 06:40:04 +0000</pubDate>
		<dc:creator>rohmadne</dc:creator>
		
		<category><![CDATA[Performance Tuning]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[tuning]]></category>

		<guid isPermaLink="false">http://rohmad.net/?p=115</guid>
		<description><![CDATA[Berikut ini pertanyaan-pertanyaan seputar tuning:

Bagian mana yang perlu dituning. Siapa yang melakukan?
Dari sisi aplikasi, apanya yang perlu dituning?
Bagian database yang mana yang perlu dituning?
Darimana kita bisa belajar banyak tentang tuning?

Bagian mana yang perlu dituning? Oleh siapa?

Aplikasi, oleh application designer dan developer
Database, oleh database administrator (DBA)
 System Operasi (OS), oleh system administrator (sysadmin)

Tuning Aplikasi
Tuning aplikasi memberikan [...]]]></description>
			<content:encoded><![CDATA[<p>Berikut ini pertanyaan-pertanyaan seputar tuning:</p>
<ol>
<li>Bagian mana yang perlu dituning. Siapa yang melakukan?
<li>Dari sisi aplikasi, apanya yang perlu dituning?
<li>Bagian database yang mana yang perlu dituning?
<li>Darimana kita bisa belajar banyak tentang tuning?
</ol>
<h3>Bagian mana yang perlu dituning? Oleh siapa?</h3>
<ol>
<li>Aplikasi, oleh application designer dan developer
<li>Database, oleh database administrator (DBA)
<li> System Operasi (OS), oleh system administrator (sysadmin)
</ol>
<h3>Tuning Aplikasi</h3>
<p>Tuning aplikasi memberikan kontribusi tersebar terhadap performa sistem secara keseluruhan. Termasuk bagian-bagian tuning aplikasi adalah:</p>
<ol>
<li>Normalisasi yang tepat
<li>Pemakaian index
<li>Pemakaian hint dalam query SQL atau PL/SQL
<li>Pemanfaatan sharing cursor
<li>dan lain-lain
</ol>
<h3>Bagian database yang mana yang perlu dituning?</h3>
<ol>
<li>Memory -> PGA dan SGA SGA (shared pool, large pool, buffer cache, redo log buffer, sort area size)
<li>I/O -> distributing I/O, striping, multiple DBWn processes, DBWn I/O slaves.
<li>CPU -> CPU utilization.
<li>Network
<li>Space management -> extent allocation dan Oracle block efficiency.
<li>Redo log dan checkpoint -> redo log file configuration, redo entries, dan checkpoint.
<li>Rollback segment -> sizing rollback segments. Mulai versi 9i, banyakbagian yang dibuat automatic
<li>dan lain-lain
</ol>
<h3>Darimana kita bisa belajar banyak tentang tuning?</h3>
<p><span id="more-115"></span>
<ol>
<li><a href="http://download-west.oracle.com/docs/cd/A87860_01/doc/server.817/a76992/toc.htm" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/download-west.oracle.com');">Oracle8i Designing and Tuning for Performance Release 2 (8.1.6)</a>
<li><a href="http://download.oracle.com/docs/cd/B10501_01/server.920/a96532/toc.htm" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/download.oracle.com');">Oracle9i Database Performance Planning Release 2 (9.2)</a>
<li><a href="http://download.oracle.com/docs/cd/B10501_01/server.920/a96533/toc.htm" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/download.oracle.com');">Oracle9i Database Performance Tuning Guide and Reference Release 2 (9.2)</a>
<li><a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b28051/toc.htm" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/download.oracle.com');">Oracle® Database 2 Day + Performance Tuning Guide 10g Release 2 (10.2)</a>
<li><a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14211/toc.htm" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/download.oracle.com');">Oracle® Database Performance Tuning Guide 10g Release 2 (10.2)</a>
<li><a href="http://download.oracle.com/docs/cd/B28359_01/server.111/b28275/toc.htm" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/download.oracle.com');">Oracle® Database 2 Day + Performance Tuning Guide 11g Release 1 (11.1)</a>
<li><a href="http://download.oracle.com/docs/cd/B28359_01/server.111/b28274/toc.htm" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/download.oracle.com');">Oracle® Database Performance Tuning Guide 11g Release 1 (11.1)</a>
</ol>
<img src="http://feeds.feedburner.com/~r/rohmadnet/~4/UgOf2MiqtFk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rohmad.net/2008/09/04/dasar-dasar-tuning/feed/</wfw:commentRss>
		<feedburner:origLink>http://rohmad.net/2008/09/04/dasar-dasar-tuning/</feedburner:origLink></item>
		<item>
		<title>Security database: Administrasi Profile</title>
		<link>http://feedproxy.google.com/~r/rohmadnet/~3/EZECsKtSLW4/</link>
		<comments>http://rohmad.net/2008/08/22/security-database-administrasi-profile/#comments</comments>
		<pubDate>Fri, 22 Aug 2008 09:05:58 +0000</pubDate>
		<dc:creator>rohmadne</dc:creator>
		
		<category><![CDATA[Administration]]></category>

		<category><![CDATA[security]]></category>

		<category><![CDATA[Administrasi]]></category>

		<category><![CDATA[Database]]></category>

		<category><![CDATA[keamanan]]></category>

		<category><![CDATA[oracle]]></category>

		<category><![CDATA[password]]></category>

		<category><![CDATA[profile]]></category>

		<category><![CDATA[resource]]></category>

		<category><![CDATA[user]]></category>

		<guid isPermaLink="false">http://rohmad.net/2008/08/22/security-database-administrasi-profile/</guid>
		<description><![CDATA[Untuk alasan keamanan, pemakaian resource oleh user database perlu dibatasi. Selain itu, otorisasi (password) user juga perlu diperketat. Di database Oracle, pembatasan itu dilakukan oleh profile.
Berikut ini informasi profile (beserta parameter-patameternya) yang ada di database:

SQL> conn system
SQL> SELECT * FROM DBA_PROFILES ORDER BY PROFILE,RESOURCE_TYPE;
PROFILE    RESOURCE_NAME        [...]]]></description>
			<content:encoded><![CDATA[<p>Untuk alasan keamanan, pemakaian <strong>resource </strong>oleh user database perlu dibatasi. Selain itu, otorisasi (<strong>password</strong>) user juga perlu diperketat. Di database Oracle, pembatasan itu dilakukan oleh profile.</p>
<p>Berikut ini informasi profile (beserta parameter-patameternya) yang ada di database:</p>
<pre>
SQL> conn system
SQL> SELECT * FROM DBA_PROFILES ORDER BY PROFILE,RESOURCE_TYPE;
PROFILE    RESOURCE_NAME                    RESOURCE LIMIT
---------- -------------------------------- -------- ----------
DEFAULT    COMPOSITE_LIMIT                  KERNEL   UNLIMITED
DEFAULT    SESSIONS_PER_USER                KERNEL   UNLIMITED
DEFAULT    PRIVATE_SGA                      KERNEL   UNLIMITED
DEFAULT    CONNECT_TIME                     KERNEL   UNLIMITED
DEFAULT    IDLE_TIME                        KERNEL   UNLIMITED
DEFAULT    LOGICAL_READS_PER_CALL           KERNEL   UNLIMITED
DEFAULT    LOGICAL_READS_PER_SESSION        KERNEL   UNLIMITED
DEFAULT    CPU_PER_CALL                     KERNEL   UNLIMITED
DEFAULT    CPU_PER_SESSION                  KERNEL   UNLIMITED
DEFAULT    PASSWORD_VERIFY_FUNCTION         PASSWORD NULL
DEFAULT    PASSWORD_REUSE_MAX               PASSWORD UNLIMITED
DEFAULT    PASSWORD_REUSE_TIME              PASSWORD UNLIMITED
DEFAULT    PASSWORD_LIFE_TIME               PASSWORD UNLIMITED
DEFAULT    FAILED_LOGIN_ATTEMPTS            PASSWORD 10
DEFAULT    PASSWORD_LOCK_TIME               PASSWORD UNLIMITED
DEFAULT    PASSWORD_GRACE_TIME              PASSWORD UNLIMITED
</pre>
<p>Ketika kita membuat database, by default Oracle membuat profile dengan nama DEFAULT. Ketika kita membuat user tanpa menyebutkan profile-nya, maka user tersebut akan di-assign ke profile DEFAULT.</p>
<p><H3><u>Membuat profile</u></h3>
<p>Gambar diambil dari Oracle Documentation.</p>
<p><span id="more-114"></span><u><strong>Format</strong></u><br />
<img src="http://farm4.static.flickr.com/3255/2786492512_ef6519dbac.jpg?v=0" alt="create database profile" /><br />
<u><strong>resource_parameters</strong></u><br />
<img src="http://farm4.static.flickr.com/3285/2785643169_5092c3aef2.jpg?v=0" alt="resource parameter" /><br />
<u><strong>password_parameters</strong></u><br />
<img src="http://farm4.static.flickr.com/3008/2786500966_a64f0b9318.jpg?v=0" alt="password parameter" /></p>
<p>Contoh membuat profile:</p>
<pre>
SQL> CREATE PROFILE profileku LIMIT
   SESSIONS_PER_USER          UNLIMITED
   CPU_PER_SESSION            UNLIMITED
   CPU_PER_CALL               3000
   CONNECT_TIME               45
   LOGICAL_READS_PER_SESSION  DEFAULT
   LOGICAL_READS_PER_CALL     1000
   PRIVATE_SGA                15K
   COMPOSITE_LIMIT            5000000;
</pre>
<p><H3><u>Mengedit profile</u></h3>
<p>Formatnya sama persis dengan CREATE profile, hanya ganti kata CREATE menjadi ALTER. Contoh:</p>
<pre>
SQL> ALTER PROFILE profileku LIMIT
   FAILED_LOGIN_ATTEMPTS 	5
   PASSWORD_LIFE_TIME 		60
   PASSWORD_REUSE_TIME 		60
   PASSWORD_REUSE_MAX 		5
   PASSWORD_LOCK_TIME 		1/24
   PASSWORD_GRACE_TIME 		10;
</pre>
<p><H3><u>Assign profile ke user</u></h3>
<p>Misalkan saya ingin melihat profile dari user TEST</p>
<pre>
SQL> select USERNAME,PROFILE from dba_users
where USERNAME='TEST';
USERNAME                       PROFILE
------------------------------ ----------
TEST                           DEFAULT
</pre>
<p>Saya akan mengubah profile user TEST dari DEFAULT ke PROFILEKU</p>
<pre>
SQL> alter user test profile PROFILEKU;
</pre>
<p><H3><u>Menghapus</u></h3>
<p>Untuk menghapus profile PROFILEKU, gunakan perintah berikut:</p>
<pre>
SQL> drop profile PROFILEKU;
ERROR at line 1:
ORA-02382: profile PROFILEKU has users assigned, cannot drop without CASCADE
</pre>
<p>OO&#8230; Error. Profile PROFILEKU ada yang makai, yaitu user TEST. Kalau begitu tambahkan argument CASCADE:</p>
<pre>
SQL> drop profile PROFILEKU CASCADE;
</pre>
<p>Setelah profile dihapus, user yang di-assign ke profile tersebut akan dikembalikan ke profile DEFAULT.</p>
<p><H3><u>Keterangan</u></h3>
<p>Resource parameter:</p>
<ul>
<li>SESSIONS_PER_USER<br />
Jumlah session paling banyak yang bisa digunakan secara bersamaan (concurrent).</p>
<li>CPU_PER_SESSION<br />
Maksimal CPU per session. Satuan: 10 ms (hundredth of seconds).</p>
<li>CPU_PER_CALL<br />
Maksimal CPU per call (parse, execute, atau fetch). Satuan: 10 ms (hundredths of seconds).</p>
<li>CONNECT_TIME<br />
Maksimal waktu untuk koneksi. Satuan: menit.</p>
<li>IDLE_TIME<br />
Maksimal waktu dalam status INACTIVE (idle). Satuan: menit.</p>
<li>LOGICAL_READS_PER_SESSION<br />
Maksimal block yang boleh dibaca per session, termasuk block dari memori dan disk.</p>
<li>LOGICAL_READS_PER_CALL<br />
Maksimal block yang boleh dibaca per call (parse, execute, atau fetch).</p>
<li>PRIVATE_SGA<br />
Maksimal memory untuk PRIVATE AREA. Hanya berlaku pada &#8220;shared server&#8221;. Satuan: bytes.</p>
<li>COMPOSITE_LIMIT<br />
Total resource cost per session. Satuan: <strong>service</strong>. Dihitung dari jumlah CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION, dan PRIVATE_SGA.</p>
</ul>
<p>Password Parameter:</p>
<ul>
<li>FAILED_LOGIN_ATTEMPTS<br />
Jumlah maksimal berapa kali salah login (password). Setelah mencapai FAILED_LOGIN_ATTEMPTS, user yang bersangkutan akan di-lock.</p>
<li>PASSWORD_LIFE_TIME<br />
Umur password, dalam satuan hari. Password harus diganti sebelum mencapai PASSWORD_LIFE_TIME.</p>
<li>PASSWORD_GRACE_TIME (satuan: hari)<br />
Bila setelah mencapai PASSWORD_LIFE_TIME, namun user masih belum mengubah passwordnya, maka user akan diberi peringatan selama PASSWORD_GRACE_TIME. Bila telah mencapai PASSWORD_GRACE_TIME namun user masih belum mengubah passwordnya, maka password akan expired dan tidak bisa digunakan untuk login. Bila PASSWORD_GRACE_TIME tidak disetting, maka nilainya UNLIMITED, artinya user akan tetap bisa login meskipun telah mencapai PASSWORD_LIFE_TIME.</p>
<li>PASSWORD_REUSE_TIME (satuan hari) dan PASSWORD_REUSE_MAX<br />
Kedua parameter ini dipakai bersamaan. PASSWORD_REUSE_TIME menyatakan berapa hari (sejak password diganti) password boleh dipakai lagi. PASSWORD_REUSE_MAX menyatakan berapa kali password harus berubah (berganti) sebelum memakai password lama yang dulu pernah dipakai itu.</p>
<li>PASSWORD_LOCK_TIME (satuan hari)<br />
Menyatakan berapa hari user akan di-lock setelah gagal login.</p>
<li>PASSWORD_VERIFY_FUNCTION
</ul>
<p><H3><u>Refensi</u></h3>
<ul>
<li>
<a href="http://download.oracle.com/docs/cd/B19306_01/network.102/b14266/admusers.htm" target="_blank">Oracle® Database Security Guide 10g Release 2 (10.2)<br />
Administering User Privileges, Roles, and Profiles</a></p>
<li>
<a href="http://download.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_6010.htm" target="_blank">Oracle® Database SQL Reference 10g Release 2 (10.2)<br />
CREATE PROFILE</a>
</ul>
<img src="http://feeds.feedburner.com/~r/rohmadnet/~4/EZECsKtSLW4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://rohmad.net/2008/08/22/security-database-administrasi-profile/feed/</wfw:commentRss>
		<feedburner:origLink>http://rohmad.net/2008/08/22/security-database-administrasi-profile/</feedburner:origLink></item>
	</channel>
</rss>
