Selamat datang untuk berbagi IT

Selamat datang untuk berbagi IT.

Kamis, 23 Juli 2020

Latihan 05


Latihan Recover tablespace , tabel dan maintain archivelog dengan RMAN


A. Kasus Recover datafile system01.dbf yang didelete/rename saat oracle database running
   Atau dikenal dengan media failure
   
Pastikan datafile system01 sudah ada backup nya  
dan archive log setelah backup sampai yang terbaru masih tersimpan.   

1. Cari lokasi datafile tslatih
   sqlplus / as sysdba
   SQL> select name from v$datafile 
        where name like '%system%';

   NAME
   ------------------------------------
   /oracle/data/ora121/system01.dbf


-- Untuk bisa mendapat kasus recover tablespace 
2. Hapus atau rename datafile /oracle/data/ora121/system01.dbf
   mv  /oracle/data/ora121/system01.dbf /oracle/data/ora121/system01.dbf.old

3. Shutdown database
    
4. restore datafile backup system01.dbf ke /oracle/data/ora121/ dari command line
 
5. Start oracle dengan option mount

8. Ubah status dari datafile system01.dbf ke offline
   SQL> alter database datafile '/oracle/data/ora121/system01.dbf' offline;
  
  Status system01.dbf akan menjadi recover. bisa dilihat dari
  SQL> select name, status from v$datafile
       where name like '%system01%';
  
9. Sekarang recover tablespace dengan perintah berikut :

  SQL> alter database recover automatic tablespace system;

10. Proses recovery akan menggerate nama file-file redo log yang akan digunakan.
   Sekarang status dari tslatih01.dbf di v$datafile berubah dari recover menjadi offline.

11. Step berikutnya adalah open database

12. Agar tablespace system dapat kembali digunakan status harus dirubah jadi online  

13. Proses recovery datafile system01.dbf selesai

========================================

B. Flasback recovery
   Tidak semua kasus kehilangan data perlu direcover dari backup. Oracle memperkenalkan fitur Flashback 
   untuk recoveri dengan cara sederhana.  Flashback Query memungkinkan user untuk mendapatkan kembali datanya 
   pada titik tertentu sekalipun sudah dimodifikasi dan di commit. Sebagian row atau seluruh isi table.
   Latihan ini memperkenalkan fitur flashback dari oracle dan bagaimana cara mempergunakannya. 
   Situasi yang bagaimana fitur flashback ini digunakan?
   Menurut dokumentasi oracle  teknologi flashback dapat memperbaiki kesalahan berikut :
   - Kesalahan DROP TABLE
   - Kesalahan transaksi UPDATE,DELETE atau INSERT
   - Kesalahan job batch atau akibat kesalahan aplikasi
  
   Kerusakan datafile atau kehilangan data akibat media failure tidak dapat dihandle oleh flashback Query, 
   tetapi menggunakan latihan A di atas.
   
   Syarat database untuk Flashback recovery
  -  Database harus dalam mode archivelog
  -  Rencanakan retensi dari undo sesuai kebutuhan, semakin besar retensi semakin besar undo space yang dibutuhkan. 
        default undo retention adalah 900 detik
  -  Enable Automatic undo management yang terdiri dari UNDO_MANAGEMENT, UNDO_TABLESPACE dan UNDO_RETENTION
      periksa dengan query berikut :
      SQL> select name,value from v$parameter
             where name like '%undo%'

--Latihan mengembalikan tabel yang di drop
1. Buat tabel sbb :
   CREATE TABLE TMFLASHBACK AS
   SELECT owner, table_name, tablespace_name
   FROM all_tables
   WHERE 1=2;

2. Isi dengan 3 record sbb
   INSERT INTO TMFLASHBACK VALUES ('A', '111', 'AAA');
   INSERT INTO TMFLASHBACK VALUES ('B', '222', 'BBB');
   INSERT INTO TMFLASHBACK VALUES ('C', '333', 'CCC');
   COMMIT;
        
3. Select * from TMFLASHBACK;
   OWNER TABLE_NAME TABLESPACE_NAME
   ----- ---------- ---------------
   A   111    AAA
  B   222    BBB
   C   333    CCC

4. DROP TABLE TMFLASHBACK;

5. Select * from TMFLASHBACK;
   ORA-00942: table or view does not exist

6. Recover dengan flashback
   FLASHBACK TABLE TMFLASHBACK TO BEFORE DROP;

7. Select * from TMFLASHBACK;
   
   OWNER TABLE_NAME TABLESPACE_NAME
   ----- ---------- ---------------
   A   111    AAA
  B   222    BBB
   C   333    CCC
   
   
==================================== 

C. Monitor dan maintain archive log dengan RMAN
  Archive log harus dimaintain agar disk tempat archiving tidak menjadi full.
  RMAN bisa digunakan untuk backup , delete archive log dan restore archive log
  untuk keperluan recovery.
  
  Beberapa perintah RMAN
  1. Masuk ke target database
     Dari oracle command prompt : rman target /
     RMAN>
  2. Melihat konfigurasi RMAN
     RMAN> show all;
     
  3. Definisikan destinasi backup ke suatu direktori 
     Misal /home/oracle/bkup/ dengan format backup %d_%U artinya : NamaSID_nomorUnik
     RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT = '/home/oracle/bkup/%d_%U';
     Hasil konfigurasi bisa dilihat dengan show all;
 
  4. Backup archivelog dengan RMAN
     RMAN> backup archivelog all;
     
  5. Untuk melihat summary hasil backup archivelog 
     RMAN> list backup of archivelog all summary;
     
  6. Untuk melihat file-file archivelog yang ada didalam backup RMAN
     RMAN> list backup of archivelog all;   
     
  7. Untuk melihat file-file archivelog yang ada di direktori archiving.
     RMAN> list archivelog all;
  
  8. Untuk list file archivelog dengan usia > 14 hari
     RMAN> list archivelog all completed before 'sysdate -14';
     
  9. Delete archivelog dengan kondisi usia file lebih lama dari 14 hari
     RMAN> delete force noprompt archivelog all completed before 'sysdate -14';
     
  10. Restore archivelog ke direktori archiving berdasarkan log sequence 50 s/d 60 
      RMAN> restore archivelog from logseq 50 until logseq 60;
      
  11. Memeriksa avaibilitas backup
      RMAN> crosscheck backup;
     
  12. Memeriksa backup yang sudah obsolete
      RMAN> report obsolete;
      
  13. Menghapus backup obsolete
      RMAN> delete obsolete;
        
Latihan :
Gunakan RMAN untuk maintain file archiving di /oracle/data/arch
1. Set destinsasi backup ke /home/oracle/bkup/%d_%U
2. Backup semua archivelog
3. List hasil backup summary dan detil
4. Delete file-file archive yang usianya > 7 hari di /oracle/data/arch dengan menggunakan RMAN  
5. Periksa file archive di /oracle/data/arch, file dengan usia > 7 hari sudah terdelete
6. Restore 1 buah file archivelog dari backup dengan log sequence pilih sendiri dilihat dari nomor 3
   Periksa file archive dengan log sequence tersebut sudah direstore di /oracle/data/arch