Data Pump: Pompa Data Dari Satu Database Ke Lainnya


Anggap saja aku baru meng-install XP di partisi baru, sehingga Oracle-nya juga baru. Sementara di partisi lama, database Oracle-ku memiliki sebuah schema yang masih aku perlukan. Kasusnya juga sama seperti kondisi saat ‘tukang deploy’ menyiapkan database fresh di tempat client, dan ia perlu memindahkan database dari development ke database di tempat client.

Aku akan mencoba solusi dengan menggunakan data pump. Pertama-tama, aku akan meng-ekspor schema yang aku butuhkan terlebih dahulu.

Aku akan membuat sebuah directory object untuk menentukan letak penyimpanan file dump yang di-generate nantinya. Untuk itu, aku menggunakan perintah berikut di SQL*Plus:

CREATE DIRECTORY dir_lokasi_ekspor AS ‘c:\temp’;

Setelah itu, aku akan memberi hak akses atas direktori ke user yang schema-nya akan di-ekspor:

GRANT READ, WRITE ON DIRECTORY dir_lokasi_ekspor TO userName;

Untuk memulai ekspor data, aku memanggil utility ‘expdp’ di command prompt dengan parameter seperti pada contoh ini:

EXPDP userName/password DIRECTORY=dir_lokasi_ekspor DUMPFILE=schema.dmp LOGFILE=schema.log

Setelah expdp setelah mengerjakan tugasnya, aku akan menemukan dua file baru di c:\temp, yaitu schema.dmp dan schema.log. File log hanya berisi informasi; file yang perlu aku copy ke partisi baru adalah schema.dmp.

Setelah restart, kini aku berada di partisi baru dan Oracle baru. Aku ingin memindahkan schema “userName” ke database saat ini, tapi schema dengan nama yang sama belum ada. Aku juga tidak ingin memakai nama schema tersebut; aku punya rencana menitipkannya di schema SCOTT. Apa yang harus aku lakukan? Pertama, seperti langkah pada ekspor, aku harus membuat object directory, dan men-grant priviledge READ dan WRITE pada direktory tersebut kepada user SCOTT. Selain itu, aku perlu memberikan role IMP_FULL_DATABASE pada user scott, dengan perintah berikut di SQL*Plus:

GRANT IMP_FULL_DATABASE TO SCOTT;

Setelah itu, aku tinggal menjalankan utility ‘impdp’ di command prompt dengan parameter seperti berikut ini:

IMPDP scott/tiger SCHEMAS=userName DIRECTORY=dir_lokasi_import DUMPFILE=schema.dmp REMAP_SCHEMA=userName:scott

P.S: Aku perlu menaikkan shared pool size terlebih dahulu, karena sebelumnya aku mengatur Oracle agar berjalan dalam konfigurasi memori yang sangat minimal. Untung saja begitu shared pool size dinaikkan, ‘impdp’ tidak complain lagi saat memanggil PL/SQL API-nya. Job well done, saatnya makan siang🙂

Perihal Solid Snake
I'm nothing...

Apa komentar Anda?

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

%d blogger menyukai ini: