Shortcut Penting pada SQLPLUS

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

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

Advertisements
Posted in Uncategorized | Leave a comment

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

Posted in UNIX | Tagged , , | Leave a comment

Backup Restore dan Recover database menggunakan RMAN

RMAN merupakan salah satu metode backup yang disediakan oleh oracle. Sebenarnya ada beberapa metode backup/restore yang disediakan oleh oracle. Tetapi pada kali ini yang akan disimulasikan adalah yang menggunakan RMAN saja.

Skenarionya adalah sebagai berikut:

  1. Insert data ke sebuah tabel sebelum backup
  2. Backup database dan archive log sampai sehari sebelumnya
  3. Merusak database dengan cara menghapus langsung file secara fisikal
  4. Restore kembali database dengan menggunakan file hasil backup
  5. Cek data yang masuk ke dalam tabel.

 

BEFORE

  1. Insert data ke dalam tabel countries;

SQL> Select count(*) from countries;

COUNT(*)

———-

27

SQL> insert into countries values(‘ID’,’Indonesia’,3);

1 row created.

SQL> Select count(*) from countries;

COUNT(*)

———-

28

  1. List datafile,controlfile dan log file

[oracle@host1 ~]$ ls –l /u01/apps/oracle/oradata/orcl

total 1051020

-rw-r—– 1 oracle oinstall 7061504 Mar 21 14:32 control01.ctl

-rw-r—– 1 oracle oinstall 7061504 Mar 21 14:32 control02.ctl

-rw-r—– 1 oracle oinstall 7061504 Mar 21 14:32 control03.ctl

-rw-r—– 1 oracle oinstall 104865792 Mar 21 14:30 example01.dbf

-rw-r—– 1 oracle oinstall 52429312 Mar 21 14:32 redo01.log

-rw-r—– 1 oracle oinstall 52429312 Mar 21 14:30 redo02.log

-rw-r—– 1 oracle oinstall 52429312 Mar 21 14:30 redo03.log

-rw-r—– 1 oracle oinstall 251666432 Mar 21 14:30 sysaux01.dbf

-rw-r—– 1 oracle oinstall 503324672 Mar 21 14:30 system01.dbf

-rw-r—– 1 oracle oinstall 20979712 Dec 12 15:02 temp01.dbf

-rw-r—– 1 oracle oinstall 31465472 Mar 21 14:30 undotbs01.dbf

-rw-r—– 1 oracle oinstall 5251072 Mar 21 14:30 users01.dbf

  1. list archive log file

[oracle@host1 ~]$ ls –l /archivelog

total 7080

-rw-r—– 1 oracle oinstall 5986304 Mar 14 14:28 1_1_737564519.dbf

-rw-r—– 1 oracle oinstall 624128 Dec 12 14:25 1_21_736006903.dbf

-rw-r—– 1 oracle oinstall 1024 Dec 12 14:25 1_22_736006903.dbf

-rw-r—– 1 oracle oinstall 468480 Dec 12 14:35 1_23_736006903.dbf

-rw-r—– 1 oracle oinstall 2048 Dec 12 15:01 1_25_736006903.dbf

-rw-r—– 1 oracle oinstall 19456 Mar 14 14:29 1_2_737564519.dbf

-rw-r—– 1 oracle oinstall 104448 Mar 21 14:30 1_3_737564519.dbf

-rw-r—– 1 oracle oinstall 1536 Mar 21 14:30 1_4_737564519.dbf

BACKUP

  1. Backup full database beserta dengan archive log 1 hari terakhir dan juga controlfile

[oracle@host1 ~]$ rman target /

Recovery Manager: Release 10.2.0.1.0 – Production on Sun Dec 12 15:07:44 2010

 

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

 

connected to target database: orcl (DBID=4073141093)

 

RMAN> run{

2> allocate channel cdisk type disk;

3> backup database format ‘/backup/database_%s.dbf’;

4> sql ‘alter system switch logfile’;

5> backup archivelog from time ‘sysdate-1’ format ‘/backup/archive_%s.dbf’;

6> backup current controlfile format ‘/backup/ctlfile_%s.ctl’;

7> release channel cdisk;

8> }

 

using target database control file instead of recovery catalog

allocated channel: cdisk

channel cdisk: sid=139 devtype=DISK

 

Starting backup at 21-MAR-11

channel cdisk: starting full datafile backupset

channel cdisk: specifying datafile(s) in backupset

input datafile fno=00001 name=/u01/app/oracle/oradata/orcl/system01.dbf

input datafile fno=00003 name=/u01/app/oracle/oradata/orcl/sysaux01.dbf

input datafile fno=00005 name=/u01/app/oracle/oradata/orcl/example01.dbf

input datafile fno=00002 name=/u01/app/oracle/oradata/orcl/undotbs01.dbf

input datafile fno=00004 name=/u01/app/oracle/oradata/orcl/users01.dbf

channel cdisk: starting piece 1 at 21-MAR-11

channel cdisk: finished piece 1 at 21-MAR-11

piece handle=/backup/database_5.dbf tag=TAG20110321T143347 comment=NONE

channel cdisk: backup set complete, elapsed time: 00:01:05

channel cdisk: starting full datafile backupset

channel cdisk: specifying datafile(s) in backupset

including current control file in backupset

including current SPFILE in backupset

channel cdisk: starting piece 1 at 21-MAR-11

channel cdisk: finished piece 1 at 21-MAR-11

piece handle=/backup/database_6.dbf tag=TAG20110321T143347 comment=NONE

channel cdisk: backup set complete, elapsed time: 00:00:03

Finished backup at 21-MAR-11

 

sql statement: alter system switch logfile

 

Starting backup at 21-MAR-11

current log archived

channel cdisk: starting archive log backupset

channel cdisk: specifying archive log(s) in backup set

input archive log thread=1 sequence=3 recid=28 stamp=746375434

input archive log thread=1 sequence=4 recid=29 stamp=746375445

input archive log thread=1 sequence=5 recid=30 stamp=746375697

input archive log thread=1 sequence=6 recid=31 stamp=746375697

channel cdisk: starting piece 1 at 21-MAR-11

channel cdisk: finished piece 1 at 21-MAR-11

piece handle=/backup/archive_7.dbf tag=TAG20110321T143457 comment=NONE

channel cdisk: backup set complete, elapsed time: 00:00:02

Finished backup at 21-MAR-11

 

Starting backup at 21-MAR-11

channel cdisk: starting full datafile backupset

channel cdisk: specifying datafile(s) in backupset

including current control file in backupset

channel cdisk: starting piece 1 at 21-MAR-11

channel cdisk: finished piece 1 at 21-MAR-11

piece handle=/backup/ctlfile_8.ctl tag=TAG20110321T143500 comment=NONE

channel cdisk: backup set complete, elapsed time: 00:00:01

Finished backup at 21-MAR-11

 

released channel: cdisk

 

  1. Verifikasi hasil backup
  2. Dari sisi Operating System

[oracle@host1 backup]$ ls -l /backup

total 616652

-rw-r—– 1 oracle oinstall 1005056 Mar 21 14:34 archive_7.dbf

-rw-r—– 1 oracle oinstall 7110656 Mar 21 14:35 ctlfile_8.ctl

-rw-r—– 1 oracle oinstall 615555072 Mar 21 14:34 database_5.dbf

-rw-r—– 1 oracle oinstall 7143424 Mar 21 14:34 database_6.dbf

 

  1. Dari sisi RMAN

RMAN> list backup;

BS Key Type LV Size Device Type Elapsed Time Completion Time

——- —- — ———- ———– ———— —————

5 Full 587.03M DISK 00:00:59 21-MAR-11

BP Key: 5 Status: AVAILABLE Compressed: NO Tag: TAG20110321T143347

Piece Name: /backup/database_5.dbf

List of Datafiles in backup set 5

File LV Type Ckp SCN Ckp Time Name

—- — —- ———- ——— —-

1 Full 570332 21-MAR-11 /u01/app/oracle/oradata/orcl/system01.dbf

2 Full 570332 21-MAR-11 /u01/app/oracle/oradata/orcl/undotbs01.dbf

3 Full 570332 21-MAR-11 /u01/app/oracle/oradata/orcl/sysaux01.dbf

4 Full 570332 21-MAR-11 /u01/app/oracle/oradata/orcl/users01.dbf

5 Full 570332 21-MAR-11 /u01/app/oracle/oradata/orcl/example01.dbf

 

BS Key Type LV Size Device Type Elapsed Time Completion Time

——- —- — ———- ———– ———— —————

6 Full 6.80M DISK 00:00:03 21-MAR-11

BP Key: 6 Status: AVAILABLE Compressed: NO Tag: TAG20110321T143347

Piece Name: /backup/database_6.dbf

Control File Included: Ckp SCN: 570349 Ckp time: 21-MAR-11

SPFILE Included: Modification time: 12-DEC-10

 

BS Key Size Device Type Elapsed Time Completion Time

——- ———- ———– ———— —————

7 981.00K DISK 00:00:02 21-MAR-11

BP Key: 7 Status: AVAILABLE Compressed: NO Tag: TAG20110321T143457

Piece Name: /backup/archive_7.dbf

 

List of Archived Logs in backup set 7

Thrd Seq Low SCN Low Time Next SCN Next Time

—- ——- ———- ——— ———- ———

1 3 569656 14-MAR-11 569733 21-MAR-11

1 4 569733 21-MAR-11 569738 21-MAR-11

1 5 569738 21-MAR-11 570360 21-MAR-11

1 6 570360 21-MAR-11 570365 21-MAR-11

 

BS Key Type LV Size Device Type Elapsed Time Completion Time

——- —- — ———- ———– ———— —————

8 Full 6.77M DISK 00:00:01 21-MAR-11

BP Key: 8 Status: AVAILABLE Compressed: NO Tag: TAG20110321T143500

Piece Name: /backup/ctlfile_8.ctl

Control File Included: Ckp SCN: 570371 Ckp time: 21-MAR-11

 

  1. Pengecekan resource yang sudah obsolete

RMAN> report obsolete;

 

RMAN retention policy will be applied to the command

RMAN retention policy is set to redundancy 1

Report of obsolete backups and copies

Type Key Completion Time Filename/Handle

——————– —— —————— ——————–

Backup Set 1 12-DEC-10

Backup Piece 1 12-DEC-10 /backup/database_1.dbf

Archive Log 22 12-DEC-10 /archivelog/1_21_736006903.dbf

Backup Set 2 12-DEC-10

Backup Piece 2 12-DEC-10 /backup/database_2.dbf

Archive Log 23 12-DEC-10 /archivelog/1_22_736006903.dbf

Backup Set 3 12-DEC-10

Backup Piece 3 12-DEC-10 /backup/archive_3.dbf

Archive Log 24 12-DEC-10 /archivelog/1_23_736006903.dbf

Backup Set 4 12-DEC-10

Backup Piece 4 12-DEC-10 /backup/ctlfile_4.ctl

Archive Log 25 12-DEC-10 /archivelog/1_25_736006903.dbf

Archive Log 26 14-MAR-11 /archivelog/1_1_737564519.dbf

Archive Log 27 14-MAR-11 /archivelog/1_2_737564519.dbf

Archive Log 28 21-MAR-11 /archivelog/1_3_737564519.dbf

Archive Log 29 21-MAR-11 /archivelog/1_4_737564519.dbf

 

  1. Menghapus resource yang sudah obsolete

RMAN> delete obsolete;

 

RMAN retention policy will be applied to the command

RMAN retention policy is set to redundancy 1

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=139 devtype=DISK

Deleting the following obsolete backups and copies:

Type Key Completion Time Filename/Handle

——————– —— —————— ——————–

Backup Set 1 12-DEC-10

Backup Piece 1 12-DEC-10 /backup/database_1.dbf

Archive Log 22 12-DEC-10 /archivelog/1_21_736006903.dbf

Backup Set 2 12-DEC-10

Backup Piece 2 12-DEC-10 /backup/database_2.dbf

Archive Log 23 12-DEC-10 /archivelog/1_22_736006903.dbf

Backup Set 3 12-DEC-10

Backup Piece 3 12-DEC-10 /backup/archive_3.dbf

Archive Log 24 12-DEC-10 /archivelog/1_23_736006903.dbf

Backup Set 4 12-DEC-10

Backup Piece 4 12-DEC-10 /backup/ctlfile_4.ctl

Archive Log 25 12-DEC-10 /archivelog/1_25_736006903.dbf

Archive Log 26 14-MAR-11 /archivelog/1_1_737564519.dbf

Archive Log 27 14-MAR-11 /archivelog/1_2_737564519.dbf

Archive Log 28 21-MAR-11 /archivelog/1_3_737564519.dbf

Archive Log 29 21-MAR-11 /archivelog/1_4_737564519.dbf

 

Do you really want to delete the above objects (enter YES or NO)? yes

deleted archive log

archive log filename=/archivelog/1_21_736006903.dbf recid=22 stamp=737562356

deleted archive log

archive log filename=/archivelog/1_22_736006903.dbf recid=23 stamp=737562357

deleted archive log

archive log filename=/archivelog/1_23_736006903.dbf recid=24 stamp=737562939

deleted archive log

archive log filename=/archivelog/1_25_736006903.dbf recid=25 stamp=737564519

deleted archive log

archive log filename=/archivelog/1_1_737564519.dbf recid=26 stamp=745770529

deleted archive log

archive log filename=/archivelog/1_2_737564519.dbf recid=27 stamp=745770582

deleted archive log

archive log filename=/archivelog/1_3_737564519.dbf recid=28 stamp=746375434

deleted archive log

archive log filename=/archivelog/1_4_737564519.dbf recid=29 stamp=746375445

Deleted 8 objects

 

RMAN> report obsolete;

 

RMAN retention policy will be applied to the command

RMAN retention policy is set to redundancy 1

no obsolete backups found

 

  1. Cek sisa file yang tidak dihapus di Operating System

[oracle@host1 archive]$ ls -l

total 888

-rw-r—– 1 oracle oinstall 898048 Mar 21 14:34 1_5_737564519.dbf

-rw-r—– 1 oracle oinstall 1024 Mar 21 14:34 1_6_737564519.dbf

 

Skenario: menghapus physical file dari Operating System

  1. Menghapus datafile,controlfile dan logfile dari level OS

[oracle@host1 orcl]$ rm redo02.log

[oracle@host1 orcl]$ rm sysaux01.dbf

[oracle@host1 orcl]$ rm system01.dbf

[oracle@host1 orcl]$ rm users01.dbf

[oracle@host1 orcl]$ rm example01.dbf

[oracle@host1 orcl]$ rm control01.ctl

[oracle@host1 orcl]$ ls -l

total 147176

-rw-r—– 1 oracle oinstall 7061504 Mar 21 14:43 control02.ctl

-rw-r—– 1 oracle oinstall 7061504 Mar 21 14:43 control03.ctl

-rw-r—– 1 oracle oinstall 52429312 Mar 21 14:34 redo01.log

-rw-r—– 1 oracle oinstall 52429312 Mar 21 14:43 redo03.log

-rw-r—– 1 oracle oinstall 20979712 Dec 12 15:02 temp01.dbf

-rw-r—– 1 oracle oinstall 31465472 Mar 21 14:42 undotbs01.dbf

 

  1. Mencoba mematikan dan menyalakan database sesudah dirusak

[oracle@host1 archive]$ sqlplus / as sysdba;

 

SQL*Plus: Release 10.2.0.1.0 – Production on Mon Mar 21 14:44:11 2011

 

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

 

 

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production

With the Partitioning, OLAP and Data Mining options

 

SQL> shutdown immediate;

ORA-00210: cannot open the specified control file

ORA-00202: control file: ‘/u01/app/oracle/oradata/orcl/control01.ctl’

ORA-27041: unable to open file

Linux Error: 2: No such file or directory

Additional information: 3

SQL> shutdown abort;

ORACLE instance shut down.

 

SQL> startup;

ORACLE instance started.

 

Total System Global Area 218103808 bytes

Fixed Size 1218580 bytes

Variable Size 75499500 bytes

Database Buffers 134217728 bytes

Redo Buffers 7168000 bytes

ORA-00205: error in identifying control file, check alert log for more info

 

SQL> select status from v$instance;

 

STATUS

————

STARTED

 

Restore dan Recover

Untuk menyelamatkan database, kita akan mencoba restore dan recover database dengan menggunakan backup yang ada.

  1. Restore controlfile dari backup

RMAN> restore controlfile from ‘/backup/ctlfile_8.ctl’;

 

Starting restore at 21-MAR-11

using channel ORA_DISK_1

 

channel ORA_DISK_1: restoring control file

channel ORA_DISK_1: restore complete, elapsed time: 00:00:04

output filename=/u01/app/oracle/oradata/orcl/control01.ctl

output filename=/u01/app/oracle/oradata/orcl/control02.ctl

output filename=/u01/app/oracle/oradata/orcl/control03.ctl

Finished restore at 21-MAR-11

 

  1. Mount database

SQL> alter database mount;

 

Database altered.

 

  1. Restore database

RMAN> restore database;

 

Starting restore at 21-MAR-11

released channel: ORA_DISK_1

Starting implicit crosscheck backup at 21-MAR-11

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=155 devtype=DISK

Crosschecked 7 objects

Finished implicit crosscheck backup at 21-MAR-11

 

Starting implicit crosscheck copy at 21-MAR-11

using channel ORA_DISK_1

Finished implicit crosscheck copy at 21-MAR-11

 

searching for all files in the recovery area

cataloging files…

no files cataloged

 

using channel ORA_DISK_1

 

channel ORA_DISK_1: starting datafile backupset restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00001 to /u01/app/oracle/oradata/orcl/system01.dbf

restoring datafile 00002 to /u01/app/oracle/oradata/orcl/undotbs01.dbf

restoring datafile 00003 to /u01/app/oracle/oradata/orcl/sysaux01.dbf

restoring datafile 00004 to /u01/app/oracle/oradata/orcl/users01.dbf

restoring datafile 00005 to /u01/app/oracle/oradata/orcl/example01.dbf

channel ORA_DISK_1: reading from backup piece /backup/database_5.dbf

channel ORA_DISK_1: restored backup piece 1

piece handle=/backup/database_5.dbf tag=TAG20110321T143347

channel ORA_DISK_1: restore complete, elapsed time: 00:00:55

Finished restore at 21-MAR-11

 

  1. Recover Database

RMAN> recover database;

 

Starting recover at 21-MAR-11

using channel ORA_DISK_1

 

starting media recovery

 

archive log thread 1 sequence 5 is already on disk as file /u01/app/oracle/oradata/orcl/redo01.log

archive log thread 1 sequence 6 is already on disk as file /archivelog/1_6_737564519.dbf

archive log thread 1 sequence 7 is already on disk as file /u01/app/oracle/oradata/orcl/redo03.log

archive log filename=/u01/app/oracle/oradata/orcl/redo01.log thread=1 sequence=5

archive log filename=/archivelog/1_6_737564519.dbf thread=1 sequence=6

archive log filename=/u01/app/oracle/oradata/orcl/redo03.log thread=1 sequence=7

media recovery complete, elapsed time: 00:00:04

Finished recover at 21-MAR-11

 

  1. Open database dengan opsi resetlogs

SQL> alter database open resetlogs;

 

Database altered.

 

  1. Cek hasil restore

SQL> select status from v$instance;

 

STATUS

————

OPEN

 

SQL> Select count(*) from countries;

COUNT(*)

———-

28

 

Posted in Uncategorized | Leave a comment

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

Change:

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

Before:

SQL> show parameter pga

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

Change:

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

Posted in Oracle | Leave a comment

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

Posted in UNIX | 1 Comment

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 🙂

Posted in Uncategorized | 3 Comments

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 🙂

Posted in Uncategorized | Leave a comment