What is HOT / COLD backup?

28 10 2008

What is HOT / COLD backup?

Ada 2 tipe backup yang bisa kita lakukan di Oracle Database.

1. COLD/OFFLINE/CONSISTENT backup

Apa itu “Cold Backup” dan kenapa kita sebut “Cold” backup ?

Saat database DOWN, tidak ada aktifitas yang berjalan dalam database, tak ada seorangpun yang mengakses database. Saat itulah waktu kita lakukan backup dengan “COLD BACKUP”. Kita juga bisa menyebutnya dengan “OFFLINE” database backup.

Secara Singkatnya:

COLD sama dengan OFFLINE backup

COLD sama dengan CONSISTENT backup

Untuk COLD/OFFLINE/CONSISTENT database backup kita harus mematikan/SHUTDOWN Oracle Database dengan opsi sebagai berikut

1. SQL>shutdown normal

2. SQL>shutdown immediate

3. SQL>shutdown transactional;

4. SQL>shutdown abort;

5. CMD>net stop OracleService

Sebagai contoh dari cold backup di berbagai OS platforms.

1. conn with sysdba user

2. shutdown oracle database

3. copy init.ora, all datafiles, all redologs files, all controlfile to backup location

4. startup oracle database

NOTE: Database tidak memerlukan ARCHIVELOG mode untuk COLD backup.

2. What is HOT/ONLINE/INCONSISTENT backup?

Saat database dalam status Open, user mengakses database dan saat itu kita melakukan backup yang disebut “HOT,ONLINE, inconsistent” backup.

NOTE: Database harus dalam mode ARCHIVELOG untuk HOT backup.

Untuk HOT backup kita memiliki 2 opsi

1. RMAN Recovery Manager (Server Managed Backup)

2. User Managed Backup (User Managed backup)





IMPDP hang on table_statistics

24 10 2008

Melakukan import dengan datapump kadang kita mengalami proses yang lama atau kemungkinan terjadi hang saat sampai pada proses TABLE_STATISTIC

EXPORT PARAMETERS
expdp “‘/ as sysdba’”
SCHEMAS=”(QUARTZ,DIMAS,DATAPORTAL)”
directory=EXP_DIR
dumpfile=$DUMPFILE
logfile=$LOGFILE

IMPORT PARAMETERS
impdp “‘/ as sysdba’”
parfile=dimas.par
DUMPFILE=TS4_Dump_20071016.dmp
LOGFILE=imp_dimas.log

PARAMETER FILE (cat ancap.par)
SCHEMAS=dimas
remap_schema=dimas:dimas1
remap_tablespace=ts_dimas001:ts_dimas002
remap_tablespace=is_dimas001:is_dimas002
DIRECTORY=EXP_DIR

Cause : parameter “remap_schema” kita gunakan dalam impdp
hal ini adalah Bug 5071931 DATAPUMP IMPORT WITH REMAP TABLESPACE, AND SCHEMA IS VERY SLOW (fixed at 10.2.0.4)
Di Oracle Database release 10.2.x, Parameter “remap_schema” digunakan dalam impdp, dimana TABLE_STATISTIC dan INDEX_STATISTICS juga diimport. TABLE_STATISTICS dan INDEX_STATISTICS ini akan diimport secara default saat kita menggunakan datapump. Sehingga hal ini menyebabkan proses menjadi lama dan mempengaruhi performance.

Solution : Kita bisa tambahkan parameter EXCLUDE= TABLE_STATISTICS dan EXCLUDE=INDEX_STATISTICS pada saat melakukan import, hal ini akan meningkatkan kecepatan import, dan setelah selesai kita bisa mengenerate statistic secara manual.

impdp “‘/ as sysdba’”
parfile=dimas.par
DUMPFILE=TS4_Dump_20071016.dmp
LOGFILE=imp_dimas.log
EXCLUDE=TABLE_STATISTICS
EXCLUDE=INDEX_STATISTICS

ATAU…

request untuk aplly patch 5071931. Sebagai catatan patch untuk bug ini tidak berlaku untuk database 10.1.x.
hope this help..





Oracle 11g [ Case - Sensitive Passwords ]

23 10 2008

Di Oracle Database versi sebelum 11g, Password untuk user adalah insensitive. Sebagai Contoh

SQL> conn scott/tiger
Connected.
SQL> conn scott/TIGER
Connected.

Hal ini menjadikan masalah untuk standar Payment Card Industry – Data Security Standard yang membutuhkan password untuk case sensitive
Oracle 11g memberikan solusi untuk hal ini, di 11g password bisa menjadi Sensitive.
Saat kita membuat database lewat DBCA , kita akan ditanya apakah kita akan upgrade ke ” new security standard ” yang salah satunya adalah case sensitive password
Yang jika kita accept, password akan disimpan dalam case yang sama saat password dibuat.
Berikut adalah hasilnya jika kita menggunakan standar security yang baru

SQL> conn scott/tiger
Connected.
SQL> conn scott/TIGER
ERROR:
ORA-01017: invalid username/password; logon denied

Warning: You are no longer connected to ORACLE.

Kita perhatikan bahwa sekarang “tiger” dan “TIGER” diperlakukan berbeda

Sekarang sebenarnya masih memungkinkan untuk mengembalikan ke setingan case insensitivity dengan melakukan alter pada system parameter,
SEC_CASE_SENSITIVE_LOGON, seperti dibawah ini

SQL> conn / as sysdba
Connected.
SQL> alter system set sec_case_sensitive_logon = false;

System altered.

SQL> conn scott/TIGER
Connected.

Saat kita melakukan upgrade dari database 10g ke 11g , kita dapat juga migrasi password ke standard yang baru.
Kita bisa cek status dari password dengan query pada view DBA_USERS, terutama kolom baru PASSWORD_VERSIONS.

USERNAME PASSWORD PASSWORD_VERSIONS
————- ———————- —————————-
MGMT_VIEW 10G 11G
SYS 10G 11G
SYSTEM 10G 11G
PRATESIS 10G 11G
SCOTT 10G 11G

Yang pertama kita perhatikan bahwa kolom password adalah null, tidak sama dengan versi 10g dan versi2 terdahulu.
Sebenarnya passwordnya masih tersimpan dalam tabel USER$ tapi tidak terlihat dalam view DBA_USERS
Selanjutnya kolom PASSWORD_VERSIONS yang baru diOracle 11g, kolom ini memperlihatkan case sensitive dari password
nilai “10G 11G” berarti bahwa user bisa di ciptakan di 10g kemudian migrasi ke 11g atau langsung diciptakan di 11g.

Kita juga bisa merubah sensitifitas dari password SYSDBA dengan memasukkan parameter baru , ignorecase saat membuat password file, seperti dibawah

$ orapwd file=orapwORCL password=oracle entries=10 ignorecase=n

Dicontoh diatas SYSDBA password adalah oracle bukan ORACLE





ORA-01157 and ORA-01110 solutions

21 10 2008

Berikut solusi untuk problem yang menyebabkan kita tidak bisa open database, entah bagaimana salah satu datafile dari database telah hilang. Saat kita analisa, database ternyata tidak membutuhkan “datafile” tsb lagi. Jadi kita remove datafile tsb. step2 nya seperti berikut untuk solusinya:

C:\Documents and Settings\Administrator>sqlplus “/as sysdba”

SQL*Plus: Release 9.0.1.4.0 – Production on Tue Oct 21 15:21:11 2008

(c) Copyright 2001 Oracle Corporation. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 – Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

Connected to an idle instance.

SQL> startup;
ORACLE instance started.

Total System Global Area 236404368 bytes
Fixed Size 724624 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 798720 bytes
Database mounted.
ORA-01157: cannot identify/lock data file 11 – see DBWR trace file
ORA-01110: data file 11: ‘/data02/oradata/test/testuser_.dbf
SQL>host more /data02/oradata/test/testuser_.dbf
/data02/oradata/test/testuser_.dbf: No such file or directory

SQL> shutdown immediate;
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.

SQL> startup mount;
ORACLE instance started.
Total System Global Area 236404368 bytes
Fixed Size 724624 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 798720 bytes
Database mounted.

SQL> alter database datafile ‘/data02/oradata/test/testuser_.dbf’ offline drop;
Database altered.

SQL> alter database open;
Database altered.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> startup
ORACLE instance started.
Total System Global Area 236404368 bytes
Fixed Size 724624 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 798720 bytes
Database mounted.
Database opened.





Oracle 10g [ Tablespace Reports ]

15 10 2008

Tablespace reports

basic knowledge, tips buat lihat semua tablespace didatabase, datafile, dan status memory berikut query nya..

SELECT dd.tablespace_name tablespace_name, dd.file_name file_name, dd.bytes/1024 TABLESPACE_KB, SUM(fs.bytes)/1024 KBYTES_FREE, MAX(fs.bytes)/1024 NEXT_FREE
FROM sys.dba_free_space fs, sys.dba_data_files dd
WHERE dd.tablespace_name = fs.tablespace_name GROUP BY dd.tablespace_name, dd.file_name, dd.bytes/1024 ORDER BY dd.tablespace_name, dd.file_name;

…dan buat lihat free bytes…

SELECT df.tablespace_name, SUM(df.bytes) TOTAL_SPACE, SUM(fs.bytes) FREE_SPACE, ROUND(((NVL(SUM(fs.bytes),0)/SUM(df.bytes))*100),2) PCT_FREE
FROM dba_free_space fs, dba_data_files df
WHERE df.tablespace_name = fs.tablespace_name (+)
GROUP BY df.tablespace_name
ORDER BY df.tablespace_name;

Extending a tablespace

Jika kita mau naikin maxsize dari datafile :

alter database datafile ‘/u01/oracle/oradata/scdb/questaims.dbf’ maxsize 2000M autoextend on;

atau tambah datafile:

alter tablespace add datafile ‘/u01/oracle/oradata/scdb/questaims.dbf’ size 100M maxsize 2000M autoextend on;

atau klo mau naikin size dari datafile yang ada:

alter database datafile ‘/u01/oracle/oradata/scdb/questaims.dbf’ resize 50M;





Oracle 10g [ Kill Session]

15 10 2008

Terkadang kita pernah ngalamin lock disalah satu tabel didatabase, kita bisa gunakan query berikut untuk mengecek user yang menyebabkan terjadinya lock, dan pernyataan sql yang membuat terjadinya lock :

select a.object_name, b.oracle_username, b.os_user_name,c.sid, c.serial#,c.terminal, d.sql_text
from sys.dba_objects a,
v$locked_object b,
v$session c,
v$sqltext d
where a.object_id = b.object_id
and c.sid = b.session_id
and c.sql_hash_value = d.hash_value

Menurut saya klo mau kill session tanpa cari tau alasannya sangatlah ga bijak, jadi saran saya cek dulu sebabnya, jika ternyata kita memang mau jalanin kill session, berikut command nya..

alter system kill session ‘c.sid, c.serial#’

hope this helps





Oracle 10g [ How to shrink the size of the UNDOTBS ]

14 10 2008

Jika kita bermaksud untuk mengurangi ukuran undo tablespace, untuk menambah free space di hardisk server kita, just follow this step that i use

1. Bikin temporary UNDO tablespace baru

CREATE UNDO TABLESPACE “UNDOTBS2″ DATAFILE ‘/u01/oradata/xxxx/undotbs201.dbf’ SIZE 100M
AUTOEXTEND ON NEXT 10240K MAXSIZE 32767M ;

2. Jalankan perintah alter system untuk merubah default tablespace yang digunakan ke UNDO tablespace yang baru kita buat tadi

alter system set undo_tablespace = UNDOTBS2 ;

3. Hapus UNDO tablespace yang original termasuk datafilenya sekalian ya

drop tablespace “UNDOTBS” INCLUDING CONTENTS AND DATAFILES ;

4. Create lagi UNDO tablespace dengan nama original, nama default “UNDOTBS” opsi dan ukuran tergantung kebutuhan anda

CREATE UNDO TABLESPACE “UNDOTBS” DATAFILE ‘/u01/oradata/xxxx/undotbs01.dbf’ SIZE 100M
AUTOEXTEND ON NEXT 10240K MAXSIZE 32767M ;

5. Jalankan lagi langkah ke 2 untuk merubah default UNDO tablespace yang digunakan ke nama tablespace yang original

alter system set undo_tablespace = UNDOTBS;

6. Hapus tablespace yang kita buat dengan langkah ke 1 tadi dengan perintah berikut

drop tablespace “UNDOTBS2″ INCLUDING CONTENTS AND DATAFILES ;

done :)





Oracle 11g [ Data Recovery Advisor ]

13 10 2008

Berikut salah satu contoh error yang ditemui dioracle, dimana data file not available, bisa karena corupts atau file nya dipindahkan saat database sdg berjalan
sedangkan dalam beberapa kasus kita harus segera mengambil tindakan sebelum masalahnya meluas.
Dalam Oracle 11g Data Recovery yang baru membuat operasi ini lebih mudah. Fitur ini bisa di gunakan dengan 2 cara, yaitu dalam mode Command Line atau dalam
fasilitas Enterprise Manager.

SQL> conn scott/tiger
Connected.
SQL> create table t (col1 number);
create table t (col1 number)
*
ERROR at line 1:
ORA-01116: error in opening database file 4
ORA-01110: data file 4: ‘/home/oracle/oradata/PRODB3/users01.dbf’
ORA-27041: unable to open file
Linux Error: 2: No such file or directory
Additional information: 3

Berikut kita menggunakan command line yang akan kita eksekusi dan jalankan di RMAN
Pertama start proses RMAN kemudian koneksi kan ketarget

C:\>rman target=/

Recovery Manager: Release 11.1.0.6.0 – Production on Wed Jul 2 09:47:36 2008

Copyright (c) 1982, 2007, Oracle. All rights reserved.

connected to target database: ORCL (DBID=1185929127)

RMAN> list failure;

Jika tidak ada error maka akan keluar pesan sebagai berikut

using target database control file instead of recovery catalog
no failures found that match specification

Jika ternyata ada error maka akan keluar pesan kesalahan sbg berikut

using target database control file instead of recovery catalog
List of Database Failures
=========================

Failure ID Priority Status Time Detected Summary
———- ——– ——— ————- ——-
142 HIGH OPEN 15-JUL-07 One or more non-system datafiles are missing

Pesan kesalahan ini menunjukkan bahwa ada datafile yang hilang. Datafile yang hilang bukan merupakan bagian dari tablespace SYSTEM, database hidup
dengan tablespace itu dalam keadaan offline. Error ini sangat critical sehingga kolom priority memuat status HIGH.
Tiap kesalahan mempunyai ID, sehingga memudahkan dlm mengidentifikasi dalam error didatabase.

RMAN> list failure 142 detail;

Perintah ini menunjukkan detail penyebab dari error tersebut.

RMAN> advise failure;

Perintah ini menghasilkan keluaran berupa penjelasan dari error dan cara memperbaikinya

List of Database Failures
=========================

Failure ID Priority Status Time Detected Summary
———- ——– ——— ————- ——-
142 HIGH OPEN 15-JUL-07 One or more non-system datafiles are missing

analyzing automatic repair options; this may take some time
using channel ORA_DISK_1
analyzing automatic repair options complete

Mandatory Manual Actions
========================
no manual actions available

Optional Manual Actions
=======================
1. If file /home/oracle/oradata/PRODB3/users01.dbf was unintentionally renamed or moved, restore it

Automated Repair Options
========================
Option Repair Description
—— ——————
1 Restore and recover datafile 4
Strategy: The repair includes complete media recovery with no data loss
Repair script: /home/oracle/app/diag/rdbms/prodb3/PRODB3/hm/reco_3162589478.hm

Keluaran ini mempunyai beberapa bagian penting. Pertama, Advisor menganalisa error didatabase, dan yang kedua Advisor menyarankan solusi,
Dalam kasus ini solusinya sederhana yaitu Restore dan Recover file.
Dan hal yang paling berguna dari Data Recovery Advisor yaitu seperti pada baris terakhir dari output diatas, Advisors men generate script yang dapat digunakan
untuk repair datafile atau memperbaiki error yang terjadi.

Jadi kita mempunyai sebuah script yang siap untuk dieksekusi, tapi sebelum kita melakukan eksekusi kita bisa melakukan verifikasi terhadap script tersebut
sehingga kita bisa melakukan preview terhadap apa yang akan dijalanin dalam script tersebut.

RMAN> repair failure preview;

Strategy: The repair includes complete media recovery with no data loss
Repair script: /home/oracle/app/diag/rdbms/prodb3/PRODB3/hm/reco_741461097.hm

contents of repair script:
# restore and recover datafile
sql ‘alter database datafile 4 offline’;
restore datafile 4;
recover datafile 4;
sql ‘alter database datafile 4 online’;

Setelah kita melihat apa yang akan dijalankan oleh script tersebut, sekarang kita bisa menjalankan script tersebut

RMAN> repair failure;

Strategy: The repair includes complete media recovery with no data loss
Repair script: /home/oracle/app/diag/rdbms/prodb3/PRODB3/hm/reco_741461097.hm

contents of repair script:
# restore and recover datafile
sql ‘alter database datafile 4 offline’;
restore datafile 4;
recover datafile 4;
sql ‘alter database datafile 4 online’;

Do you really want to execute the above repair (enter YES or NO)?

Dengan Asumsi saya pilih YES untuk repair, maka selanjutnya

executing repair script

sql statement: alter database datafile 4 offline

Starting restore at 15-JUL-07
using channel ORA_DISK_1

channel ORA_DISK_1: restoring datafile 00004
input datafile copy RECID=5 STAMP=628025835 file name=/home/oracle/flasharea
/PRODB3/datafile/o1_mf_users_39ocxbv3_.dbf
destination for restore of datafile 00004: /home/oracle/oradata/PRODB3/users01.dbf
channel ORA_DISK_1: copied datafile copy of datafile 00004
output file name=/home/oracle/oradata/PRODB3/users01.dbf RECID=0 STAMP=0
Finished restore at 15-JUL-07

Starting recover at 15-JUL-07
using channel ORA_DISK_1

starting media recovery

archived log for thread 1 with sequence 51 is already on disk as file /home/oracle/
flasharea/PRODB3/archivelog/2007_07_15/o1_mf_1_51_39ocxxdw_.arc
… and so on …
name=/home/oracle/flasharea/PRODB3/archivelog/2007_07_15/o1_mf_1_55_39ocy9ox_.arc thread=1 sequence=55
media recovery complete, elapsed time: 00:00:01
Finished recover at 15-JUL-07

sql statement: alter database datafile 4 online
repair failure complete









Follow

Get every new post delivered to your Inbox.