Tampilkan postingan dengan label Oracle DBA. Tampilkan semua postingan
Tampilkan postingan dengan label Oracle DBA. Tampilkan semua postingan

Cara Recovering (pemulihan) Standby Database Oracle Menggunakan Backup Incremental



Untuk kejadian ini sering kali terjadi jika dataguard oracle tidak sync dan archivelognya sudah tidak ditemukan di primary maupun di standby database. Berikut caranya :
1. Database primary :
Membuat standby controlfile dari database primary :
alter database create standby controlfile as '/xxx/xxx/standby_control.ctl';

*/xxx/xxx adalah path yang akan kita letakan controlfile


2. Database standby :
Melihat nomor scn terakhir yang nantinya akan kita backup dari primary database :
caranya ada 2 :
a. Menggunakan curren_scn dari v$DATABASE
SELECT TO_CHAR(current_scn) FROM V$DATABASE;

b. Menggunakan min(fhscn)
SELECT min(fhscn) FROM x$kcvfh;

Pilih salah satu dari kedua scn diatas


3. Database primary :
Masuk rman, lalu backup incremental sesuai scn yang sudah kita dapat dilangkah kedua.
backup incremental from scn 10798607075930 database format '/xxx/xxx/backup_increment_%U';


4. copy controlfile dan backup yang ada di database primary ke database standby. (bisa menggunakan scp atau rsync)
scp -rp /xxx/xxx/ oracle@(ipdatabasestandby):/xxx/xxx/
    rsync -avz /xxx/xxx/ oracle@(ipdatabasestandby):/xxx/xxx/

5. Database standby :
a. Shutdown database
shutdown immediate;
b. Startup nomount
startup nomount;
c. Restore controlfile menggunakan controlfile yang tadi kita copy
rman target /
restore controlfile from '/xxx/xxx/standby_control.ctl';
d. ubah database ke mount mode
alter database mount;
e. Pastikan MRP tidak sedang berjalan
alter database recover managed standby database cancel;
f. Recover database standby menggunakan rman
rman target /
catalog start with '/xxx/xxx/';
recover database noredo;
f. aktifkan MRP agar standby database sinkron lagi
alter database recover managed standby database disconnect from session;

6. Selesai
Read more

Export-Import Sequence Antar Database Oracle Menggunakan SQL Query



Kali ini saya akan sharing export import sequence oracle dengan menggunakan sql query. Yang biasanya kita jalankan adalah proses datapump(expdp/impdp). Tapi saya coba pakai cara lain, yaitu mengumpulkan sequence apa saja yg akan kita export-import.

Kasusnya begini,
Database A, user TEST punya 100 sequence.
Database B, user TEST tidak punya sequence.
Kita ingin semua squence user TEST yg ada di database A sama dengan sequence user TEST yg ada di database B.

Langkah-langkahnya :
  • Masuk ke user SYSTEM/SYS di database A, lalu Query :

select 'CREATE SEQUENCE ' || SEQUENCE_OWNER || '.' || SEQUENCE_NAME ||' START WITH ' || LAST_NUMBER ||' MAXVALUE ' || MAX_VALUE ||' MINVALUE ' || MIN_VALUE || ' ' ||case when CYCLE_FLAG = 'N' then 'NOCYCLE' when CYCLE_FLAG = 'Y' then 'CYCLE' end ||' CACHE ' || CACHE_SIZE || ' ' ||case when ORDER_FLAG = 'N' then 'NOORDER' when CYCLE_FLAG = 'Y' then 'ORDER' end ||';'from all_sequences
where sequence_owner ='TEST';

  • Grep dan simpan hasil dari query tersebut.


  • Setelah disimpan, copy hasil query tadi dan paste ke user SYSTEM database B
  • Running semua query nya. Berikut contoh menjalan hasil query yg kita copy-paste tadi

  • Selesai, sequence di user TEST database B akan sama seperti user TEST database A

Terima Kasih
Read more