How to get the ASM to Linux Partition Mapping information

Due to ASM labelling, sometimes we find it difficult to get  which disk is behind this ASM disk. we can use below asmtool library command to check whether that disk is already marked as ASM partition or not

oracleasm querydisk <device name>

.But to check which Linux Partition a ASM disk belong to, we need to do further checking.

$ ls -ltrh /dev/oracleasm/disks/ brw-rw---- 1 oracle dba 8, 144 Jul 27 16:07 DATA01

From above output, we can see that there are 2 numbers after the owner group. These two numbers reflect the Linux partition major/minor number. In this case, the major number is 8 and the minor number is 144.

We can check these two numbers belong to which partition from /proc/partitions file

$ cat /proc/partitions
...
 8 144 537120000 sdj
 8 160 537120000 sdk
...

From above output, we can see that partition with major number 8 and minor number 144 is sdj. Thus DATA01 is mapped to /dev/sdj in this environment

 

Hope this helps 🙂

How to Know RMAN Backup Job Progress

Performing database backup is part of daily Database Administrator task. But often this backup process takes a long time. While in a limited hardware resource environment, this backup process often disturb the database performance. A DBA often being pushed to answer how long is the remaining time of this backup process. According to my experience, this script is helpful and accurate enough to predict the remaining time of a backup process. This script is a bit modified from the one that I get from my colleagues.  Hope that this also can help others 🙂

SQL> SELECT SID, SERIAL#, OPNAME, CONTEXT, TIME_REMAINING, SOFAR, TOTALWORK,ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE" 
FROM GV$SESSION_LONGOPS 
WHERE OPNAME LIKE 'RMAN%'AND TOTALWORK != 0 
AND SOFAR  TOTALWORK;

Melakukan backup database merupakan bagian dari tugas penting seorang Database Administrator. Namun seringkali proses backup ini memakan waktu yang cukup lama. Sedangkan jika dalam environment hardware yang terbatas, proses backup ini sering mengganggu performance database. Seorang DBA sering didesak untuk menjawab pertanyaan berapa lama lagi waktu yang diperlukan sampai backup selesai. Dan dari pengalaman saya, script berikut cukup menolong dan cukup akurat. Script ini saya modifikasi dari script yang didapat dari rekan saya. Semoga script ini juga dapat menolong rekan-rekan lainnya 🙂

SQL> SELECT SID, SERIAL#, OPNAME, CONTEXT, TIME_REMAINING, SOFAR, TOTALWORK,ROUND(SOFAR/TOTALWORK*100,2) "%_COMPLETE" 
FROM GV$SESSION_LONGOPS 
WHERE OPNAME LIKE 'RMAN%'AND TOTALWORK != 0 
AND SOFAR  TOTALWORK;

Shortcut Penting pada SQLPLUS

SQLplus is one of the most used Oracle tools. Usually sqlplus is used to execute a SQL command or another database administration task. SQLplus is available in various platform. In this article, I would like to introduce some useful shortcuts which will help us in our daily activities in this tools. 🙂

1. Define a default text editor to do editing on sqlplus

define _editor=vi

or if you are using Windows, you can use

define _editor=notepad

2. Show the last SQL command which is stored in the buffer

SQL> LIST

or use a shortcut l

 SQL> l

3. Execute the last SQL command which is stored in the buffer

 SQL> RUN

Or use a shortcut /

 SQL> /

4. Edit the last SQL command which is stored in the buffer using the default text editor.

SQL> edit

Or use a shortcut ed

 SQL> ed

5. Run a SQL script

SQL> START

Or use a shortcut @

 SQL> @

6. Store the screen output of sqlplus to a file

SQL> spool namafile

7. Show the environment variable of sqlplus

SQL> SHOW ALL

8. Update the environment variabel of sqlplus

SQL> set  namavariabel nilaivariabel

Example:

SQL> set linesize 200

9. Save the command which stored in a buffer to a file

SQL> save namafile

Contoh:

SQL> save cek_datafile.sql

This command will create a file which name is cek_datafile.sql in the directory where we run sqlplus
10. Execute a operating system command

SQL> host

Or use a shortcut !

SQL> !pwd

Hope that this article will be useful for you 🙂SQLplus merupakan salah satu tools oracle yang paling sering digunakan. Biasanya sqlplus digunakan untuk menjalankan command atau perintah SQL maupun untuk administrasi database sehari-hari. SQLplus tersedia dalam berbagai platform. Pada artikel kali ini kita akan membahas beberapa shortcut yang berguna untuk aktivitas kita di dalam tools oracle ini 🙂

1. Menentukan text editor default untuk melakukan editing pada sqlplus

define _editor=vi

atau pada windows dapat menggunakan

define _editor=notepad

2. Menampilkan command sql terakhir yang tersimpan dalam buffer

SQL> LIST

Atau dengan shortcut l

 SQL> l

3. Menjalankan command sql terakhir yang tersimpan dalam buffer

 SQL> RUN

Atau dengan shortcut /

 SQL> /

4. Mengedit command sql terakhir yang tersimpan dalam buffer dengan menggunakan text editor default

SQL> edit

Atau dengan shortcut ed

 SQL> ed

5. Menjalankan script SQL

SQL> START

Atau dengan shortcut @

 SQL> @

6. Mencatat hasil output dari sqlplus ke dalam sebuah file

SQL> spool namafile

7. Menampilkan environment variabel sqlplus

SQL> SHOW ALL

8. Mengubah environment variabel sqlplus

SQL> set  namavariabel nilaivariabel

Contoh:

SQL> set linesize 200

9. Save command yang ada pada buffer ke dalam sebuah file

SQL> save namafile

Contoh:

SQL> save cek_datafile.sql

Maka akan terbentuk file cek_datafile.sql pada direktori tempat kita menjalankan sqlplus

10. Menjalankan command pada operating System

SQL> host

Atau dengan shortcut !

SQL> !pwd

Add scsi disk ke server Linux tanpa restart

jarang-jarang nih posting tentang linux dan storage. karena memang aku juga newbie banget di bagian ini.. hehe tapi kemarin ada yang nanya soal ini, jadi iseng-iseng nyobain deh :p

begini kasusnya.. ada storage baru mau dipasang ke server linux. kalau biasanya di vmware sih, power off terus add harddisk aja. nanti pasti kedetect di /dev/sdxxx. nah ternyata storage baru ini setelah dicolokin ke server linuxnya, tetap ga kedetect. yang muncul tetap /dev/sda. padahal harusnya minimal ada 2 sd karena /dev/sda sudah ada sebelumnya. pertanyaannya: apakah disk SAS (serial attaches SCSI) bisa dikenali linux tanpa restart?

karena newbie dengan linux dan storage, maka om google menjadi referensi utama. usut punya usut, ternyata kalau device SCSI itu harusnya dikenali di linux kalau restart server. makanya wajar aja kalau di vmware selama ini normal normal aja (karena add disk ketika power off).
akhirnya tujuan googling berubah menjadi mencari cara scan device scsi tanpa harus restart.. dan berikut 2 referensi yang oke punya

http://www.cyberciti.biz/tips/vmware-add-a-new-hard-disk-without-rebooting-guest.html

http://www.utahsysadmin.com/2008/10/10/add-a-hard-drive-in-linux-with-lvm/

lebih kurang stepnya adalah sebagai berikut:
1. cek hosts scsi dengan command:
#  ls /sys/class/scsi_host

2. karena hasil di atas adalah host0, maka saya melakukan command:
#echo “- – -” > /sys/class/scsi_host/host0/scan

3. lalu ketika
# fdisk -l
device /dev/sdb sudah terdetect

atau cara dari link kedua yang sudah saya coba juga adalah:

1. Cek daftar device scsi yang terdetect oleh server.
[root@localhost ~]# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: VMware,  Model: VMware Virtual S Rev: 1.0
Type:   Direct-Access                    ANSI SCSI revision: 02

2.  echo “scsi add-single-device 0 0 1 0” > /proc/scsi/scsi
keempat angka tersebut secara berurutan menunjukkan angka host, channel, id, dan LUN.

3. lakukan cek kembali apakah scsi sudah terdaftar dengan command berikut:
cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: VMware,  Model: VMware Virtual S Rev: 1.0
Type:   Direct-Access                    ANSI SCSI revision: 02
Host: scsi0 Channel: 00 Id: 02 Lun: 00
Vendor: VMware,  Model: VMware Virtual S Rev: 1.0
Type:   Direct-Access                    ANSI SCSI revision: 02

wah ternyata sudah masuk 😀

baiklah, ternyata kedua link tersebut menunjukkan dua cara yang berbeda untuk add scsi device tanpa restart 😉

selanjutnya tinggal lanjutkan dengan melakukan format dan partisi dengan menggunakan perintah fdisk, kemudian membuat filesystem dengan perintah mkfs dan terakhir mounting dengan perintah mount. jangan lupa masukkan juga ke file /etc/fstab agar bisa automount setiap server restart…

gitu deh.. semoga postingan sederhana ini bisa bermanfaat bagi semua (esp bagi saya yang pelupa ini.. hahaha). thanks to orang-orang yang sebelumnya share tentang ini sehingga saya juga bisa belajar dari mereka 😉

Regards,
Caterin

PFILE dan SPFILE

Pada database oracle, parameter file merupakan salah satu komponen penting. Karena file ini menyimpan semua informasi mengenai parameter yang digunakan oleh database oracle. Ada 2 jenis parameter file yang dikenal di oracle yaitu: pfile dan spfile. Secara struktur, pfile merupakan teks file biasa yang dapat diedit dengan menggunakan vi,more atau tools text editor lainnya. Spfile merupakan file binary yang jika diedit menggunakan text editor akan menyebabkan file corrupt.

Nah, bagaimana perbedaan penggunaan kedua file tersebut? Yuk,mari kita telusuri bersama J

Menggunakan Spfile

1. Cek jika database startup dengan menggunakan spfile

SQL> show parameter pfile 

NAME         TYPE       VALUE
------------ ---------- ------------------------------------------
spfile       string  	 /u01/app/oracle/10gr2/dbs/spfileDBCASH2.ora

Jika tidak menggunakan spfile, maka berarti nilai spfile ‘’ dan database distartup dengan menggunakan pfile

2. Melakukan perubahan parameter

Before:

SQL> show parameter pga

NAME                        TYPE        VALUE
----------------------      ----------- ------------------------------
pga_aggregate_target        big integer 68M


SQL> alter system set pga_aggregate_target=69M;

System altered. 

3. Restart database

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


SQL> startup;

ORACLE instance started.

Total System Global Area  218103808 bytes
Fixed Size                  1218580 bytes
Variable Size              83888108 bytes
Database Buffers          125829120 bytes
Redo Buffers                7168000 bytes

Database mounted.
Database opened.

4. Cek nilai parameter yang tadi diubah

SQL> show parameter pga
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 69M

Ternyata parameter berubah

Menggunakan pfile

1. Cek jika database startup dengan menggunakan pfile

SQL> show parameter spfile

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                               string

2. Melakukan perubahan parameter

SQL> show parameter pga

NAME TYPE VALUE
———————————— ———– ——————————
pga_aggregate_target big integer 69M

SQL> alter system set pga_Aggregate_target=68M;

System altered.

3. Restart database

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

SQL> startup;

ORACLE instance started.

Total System Global Area  218103808 bytes

Fixed Size                  1218580 bytes
Variable Size              83888108 bytes
Database Buffers          125829120 bytes
Redo Buffers                7168000 bytes

Database mounted.
Database opened.

4. Cek nilai parameter yang tadi diubah

SQL> show parameter pga

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
pga_aggregate_target                 big integer 69M

Ternyata nilai parameter tidak berubah

5. Kita coba untuk melakukan perubahan menggunakan opsi both.

 SQL> alter system set pga_aggregate_Target=80M scope=both;

alter system set pga_aggregate_Target=80M scope=both
*
ERROR at line 1:

ORA-32001: write to SPFILE requested but no SPFILE specified at startup

Ternyata startup dengan menggunakan pfile, tidak dapat melakukan alter system dengan scope both ataupun spfile


Kesimpulan

1. Ketika proses startup, database akan membaca parameter file dengan ketentuan sebagai berikut:
a. Jika SPFILE ditemukan, maka database akan startup dengan menggunakan spfile
b. Jika SPFILE tidak ditemukan tetapi PFILE ditemukan, maka database akan startup dengan menggunakan PFILE
c. Jika kedua buah file tersebut tidak ditemukan, maka database tidak akan bisa startup
d. Untuk mencek dengan cara bagaimana database di start, dapat dengan menggunakan

 SQL> show parameter spfile 

2. Jika startup dengan menggunakan spfile, maka:
a. Semua perubahan dengan bentuk perintah:

 SQL> alter system set namaparameter=nilaiparameter 

Akan menghasilkan perubahan pada saat ini dan spfile. jika database di restart dengan menggunakan spfile, perubahan akan bersifat permanen
b. Semua perubahan dengan bentuk perintah:

 SQL> alter system set namaparameter=nilaiparameter scope=both 

Akan menghasilkan perubahan yang sama dengan opsi a di atas
c. Semua perubahan dengan bentuk perintah:

 SQL> alter system set namaparameter=nilaiparameter scope=memory 

Akan menghasilkan perubahan yang hanya berlaku pada saat ini. jika database di restart dengan menggunakan spfile, perubahan akan kembali ke nilai semula

3. Jika startup dengan menggunakan pfile,maka:
a. Semua perubahan dengan bentuk perintah:

 SQL> alter system set namaparameter=nilaiparameter 

Akan menghasilkan perubahan yang hanya berlaku pada saat ini. jika database di restart dengan menggunakan spfile, perubahan akan kembali ke nilai semula.
b. Semua perubahan dengan bentuk perintah:

SQL> alter system set namaparameter=nilaiparameter scope=both

Akan menghasilkan error

 ORA-32001: write to SPFILE requested but no SPFILE specified at startup 

c. Semua perubahan dengan bentuk perintah:

SQL> alter system set namaparameter=nilaiparameter scope=memory

Akan menghasilkan perubahan yang hanya berlaku pada saat ini. jika database di restart dengan menggunakan spfile, perubahan akan kembali ke nilai semula

Command Unix basic

Berikut merupakan daftar command unix dasar yang sering digunakan untuk administrasi database sehari-hari:
1.    Mengetahui informasi mengenai operating system yang digunakan
$uname –a

2.    Mengetahui konfigurasi ip address dari server yang digunakan
$ifconfig

3.    melihat instance apa saja yang ada pada server
$ps -ef | grep smon

4.    Melihat listener apa saja yang menyala pada server
$ps –ef | grep listener

5.    melihat ukuran dan status pemakaian filesystem
$df –h

6.    melihat memory dari server (dalam ukuran mega)
$free –m

7.    melihat pemakaian virtual memory
vmstat [-a] [-n] [delay [ count]]
contoh:
$vmstat –a 2 10
akan memunculkan statistik pemakaian virtual memory dan juga cpu dengan setiap 2 detik refresh dan 10 kali baru berhenti

result:
procs                     memory    swap        io     system cpu
r  b  w   swpd   free  buff  cache  si so   bi  bo   in    cs us sy  id
0  0  0  29232 116972  4524 244900   0  0    0   0    0     0 0   0   0
0  0  0  29232 116972  4524 244900   0  0    0   0 2560     6 0   1  99
0  0  0  29232 116972  4524 244900   0  0    0   0 2574    10 0   2  98

8.    melihat pemakaian I/O
iostat
contoh:
$iostat -xtc 5 2
akan memunculkan statistik pemakaian disk dan juga cpu dengan setiap 5 detik refresh dan 2 kali baru berhenti

result:
extended disk statistics       tty         cpu
disk r/s  w/s Kr/s Kw/s wait actv svc_t  %w  %b  tin tout us sy wt id
sd0   2.6 3.0 20.7 22.7 0.1  0.2  59.2   6   19   0   84  3  85 11 0
sd1   4.2 1.0 33.5  8.0 0.0  0.2  47.2   2   23
sd2   0.0 0.0  0.0  0.0 0.0  0.0   0.0   0    0
sd3  10.2 1.6 51.4 12.8 0.1  0.3  31.2   3   31

9.    melihat daftar error dengan kode ORA- dari alert log
$tail -100f alert.log | grep ORA-

10.    mengetahui hostname dari server
$hostname

11.    melakukan remote copy ke server lain
scp namafile username@ipserver2:/direktoritarget
contoh:
$scp system01.dbf oracle@10.25.130.93:/home/oracle/system01.dbf

12.    melakukan remote login ke server lain
ssh username@ipserver2
contoh:
$ssh oracle@10.25.130.93

ORA-00600: internal error code, arguments: [kcratr1 lastbwr], , , , ,

Kemarin saya menemui suatu kejadian yang mendebarkan.. dimana setelah shutdown, database tiba-tiba tidak mau up.. sedangkan database tersebut belum pernah di fullbackup sama sekali. dan juga sedang dalam masa development. error yang ditemui adalah:



ORA-00600: internal error code, arguments: [kcratr1 lastbwr], , , , ,

Setelah saya googling, malah dikatakan ini sebagai bug dari oracle. (sumber: http://ora-00600.ora-code.com) semakin mendebarkan saja rasanya…

tapi Puji Tuhan! akhirnya error ini bisa ditangani juga pada akhirnya. Step-step untuk menanganinya adalah sebagai berikut:

1. Shutdown immediate

2. Startup mount

3. Recover Database

4. Alter database open

yup, puji Tuhan dengan recover database, masalah dapat diselesaikan

Semoga dapat membantu rekan yang menghadapi masalah yang sama 🙂

Cognos Error CM-CFG-5076

Ketika mencoba melakukan migrasi database content manager Cognos 8.4 dari Microsoft SQL Server 2008 ke Microsoft SQL Server 2008R2, terdapat error berikut ketika start

CMCFG5076 A Content Manager configuration error occurred during the initialization of Cognos Access Manager

Awalnya saya kira error tersebut dikarenakan versi SQL Server yang tidak support terhadap Cognos 8.4. Tetapi ternyata error disebabkan oleh hal lain,yaitu tidak diberikannya akses kepada user LDAP untuk connect ke DB.

 

Oleh karena itu step-step untuk memperbaikinya adalah berikut:

  1.  Pastikan koneksi cognos ke database content manager berhasil dilakukan
  2. Pastikan koneksi cognos ke user authentication (bisa berupa LDAP,atau Active Directory,atau sejenisnya)
  3. Jika belum berrhasil connect ke LDAP, buat agar allow anonymous user login menjadi true

Kemudian coba start kembali services cognosnya

 

Semoga membantu 🙂

Linux Error: 104: Connection reset by peer

Kemarin ketika mencoba menyalakan listener di server , saya mendapatkan error sebagai berikut:

$ lsnrctl start
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
TNS-12547: TNS:lost contact
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
Linux Error: 104: Connection reset by peer
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=orclmain)(PORT=1521)))
TNS-12547: TNS:lost contact
TNS-12560: TNS:protocol adapter error
TNS-00517: Lost contact
Linux Error: 104: Connection reset by peer

Selidik sana sini,akhirnya diketahui bahwa penyebab error tersebut adalah tidak adanya loopback adapter pada /etc/hosts..

karena itu jangan lupa tambahkan

127.0.0.1 localhost.localdomain localhost

pada file /etc/hosts

kemudian start kembali listener dan pasti berhasil

Selamat mencoba 🙂