Jumat, 21 Desember 2007

Scroll Mouse di Slackware 12

Hallooo....jumpa lagi di blog yang sama dan penulis yang sama....
kali ini gw lagi pengen bikin tulisan-tulisan yang ringan tapi penting.

Sebenarnya tulisan ini sudah lama, semenjak gw pertama kali kembali
menggunakan slackware dan tulisan kali ini mengenai tikus, loh ko tikus??
emangnya petani..(so ngelucu yah???), ya udah yang bener adalah tetikus,
cape deh ... kita sebut pake bahasa aslinya aja deh, yaitu tentang mouse.

Ada dengan mouse??? Begini, saat pertama kali menginstall slackware maka
fungsi scroll pada mouse kita jadi ‘impoten’ alias lemah syahwat atau bahasa
gaulnya ‘mouse disfungsional’ dengan kata lain ngga berfungsi tuh scroll mouse.

Tapi bukan berarti slackware ngga bisa buat scroll mouse, bisa tapi diperlukan
konfigurasi secara manual...dan kita akan memodifikasi file xorg.conf

langsung aja deh…

buka file /etc/X11/xorg.conf

root@slacky:~# vi /etc/X11/xorg.conf

# **********************************************************************
# Core Pointer’s InputDevice section
# **********************************************************************

Section “InputDevice”

# Identifier and driver

Identifier “Mouse1”
Driver “mouse”

# On platforms where PnP mouse detection is supported the following
# protocol setting can be used when using a newer PnP mouse:

# Option “Protocol” “Auto”

# The available mouse protocols types that you can set below are:
# Auto BusMouse GlidePoint GlidePointPS/2 IntelliMouse IMPS/2
# Logitech Microsoft MMHitTab MMSeries Mouseman MouseManPlusPS/2
# MouseSystems NetMousePS/2 NetScrollPS/2 OSMouse PS/2 SysMouse
# ThinkingMouse ThinkingMousePS/2 Xqueue
# Default adalah PS/2, ganti dengan IMPS/2
Option “Protocol” “IMPS/2”

# The mouse device. The device is normally set to /dev/mouse,
# which is usually a symbolic link to the real device.

# remarks /dev/mouse dan unremarks /dev/psaux

# Option “Device” “/dev/mouse”
Option “Device” “/dev/psaux”
# Option “Device” “/dev/ttyS0”
# Option “Device” “/dev/ttyS1”

# When using XQUEUE, comment out the above two lines, and uncomment
# the following line.

# Option “Protocol” “Xqueue”

# Baudrate and SampleRate are only for some Logitech mice. In
# almost every case these lines should be omitted.

# Option “BaudRate” “9600”
# Option “SampleRate” “150”

# Emulate3Buttons is an option for 2-button Microsoft mice
# Emulate3Timeout is the timeout in milliseconds (default is 50ms)

# Option “Emulate3Buttons”
# Option “Emulate3Timeout” “50”

# ChordMiddle is an option for some 3-button Logitech mice

# Option “ChordMiddle”

# Dibawah ini adalah bagian yang penting yang perlu ditambahkan

Option “Buttons” “5”
Option “ZAxisMapping” “4 5”

EndSection

Setelah dilakukan modifikasi maka keluarlah dari X Window, dan masuk lagi kedalam X Window
Selesai, sekarang fungsi scroll pada mouse kembali jadi jantan....dan perkasa… alias
berfungsi normal....

Rabu, 19 Desember 2007

Mounting Flashdisk di Slackware 12

Saat gw menginstall pertama kali slackware 12 dan semua berjalan lancar, ternyata saat
akan menggunakan flashdisk...gw ngga bisa membukanya, (bisa dimount dan terdeteksi)
tapi memunculkan pesan :

A security policy in place prevents this sender from sending this message to this recipient,
see message bus configuration file (rejected message had interface “org.freedesktop.Hal.Device.Volume”
member “Mount” error name “(unset)” destination “org.freedesktop.Hal")

bagaimana solusi mengatasi permasalahan tersebut. ???

Jawabannya sangat singkat, kayanya ini merupakan default security dari slackware yang tidak
mengijinkan user melakukan mounting flashdisk. Jadi cukup melakukan modifikasi pada file froup

root@slacky:~# vi /etc/group

masukan user Anda pada group : plugdev, video, audio, dan power

lalu reload /etc/rc.d/rc.messagebus

root@slacky:~# /etc/rc.d/rc.messagebus reload

Selasa, 18 Desember 2007

Secure Root From Remote

Dear All...ini ada tips singkat untuk membuat account root kita lebih secure dengan hanya mengijinkan user-user tertentu yang dapat mengakses root

-- langkah2 untuk membuat server unix/linux lebih secure
-- Melarang user untuk dapat langsung mengakses root dari remote

Langkah-langkah
1. edit /etc/ssh/sshd_config
# vi /etc/ssh/sshd_config
buka remark pada #PermitRootLogin yes
rubah menjadi PermitRootLogin no
tambahkan AllowUsers gugun pada baris terakhir dari file sshd_conf
2. restart
# service sshd restart
3. Buat account gugun
# useradd gugun -g wheel -d /home/gugun/ -s /bin/bash -m

notes : untuk menambah account tambahkan user pada baris AllowUsers gugun -->> AllowUsers gugun khalish.
lalu buat account untuk user khalish ( langkah 3 )

-- Testing at RHELAS3 by gugun gunawan

Senin, 24 September 2007

Membangun OpenVPN di Linux Slackware

Akhirnya selesai juga saya membangun VPN Server dikantor, dan seperti biasanya artikel ini saya tulis sebagai referensi buat saya sendiri.
OK, langsung saja...saya menggunakan Slackware R12 sebagai servernya dan menggunakan OpenVPN-1.6.0

root@slackware:/usr/local/openvpn/openvpn-1.6.0# tar -zxvf openvpn-1.6.0.tar.gz
root@slackware:/usr/local/openvpn/openvpn-1.6.0# cd openvpn-1.6.0

root@slackware:/usr/local/openvpn/openvpn-1.6.0# ./configure
root@slackware:/usr/local/openvpn/openvpn-1.6.0# make
root@slackware:/usr/local/openvpn/openvpn-1.6.0# make install

LOOPBACK TESTS (after BUILD):

Test Crypto:

root@slackware:/usr/local/openvpn/openvpn-1.6.0# ./openvpn --genkey --secret key
root@slackware:/usr/local/openvpn/openvpn-1.6.0# ./openvpn --test-crypto --secret key

-------------------------- potong ------------------------------------------
Mon Sep 24 14:50:24 2007 1293: TESTING ENCRYPT/DECRYPT of packet length=1292
Mon Sep 24 14:50:24 2007 1294: TESTING ENCRYPT/DECRYPT of packet length=1293
Mon Sep 24 14:50:24 2007 1295: TESTING ENCRYPT/DECRYPT of packet length=1294
Mon Sep 24 14:50:24 2007 1296: TESTING ENCRYPT/DECRYPT of packet length=1295
Mon Sep 24 14:50:24 2007 1297: TESTING ENCRYPT/DECRYPT of packet length=1296
Mon Sep 24 14:50:24 2007 1298: TESTING ENCRYPT/DECRYPT of packet length=1297
Mon Sep 24 14:50:24 2007 1299: TESTING ENCRYPT/DECRYPT of packet length=1298
Mon Sep 24 14:50:24 2007 1300: TESTING ENCRYPT/DECRYPT of packet length=1299
Mon Sep 24 14:50:24 2007 1301: TESTING ENCRYPT/DECRYPT of packet length=1300
Mon Sep 24 14:50:24 2007 1302: OpenVPN crypto self-test mode SUCCEEDED.

Test SSL/TLS negotiations (runs for 2 minutes):

./openvpn --config sample-config-files/loopback-server (Simultaneously in another window)

root@slackware:/usr/local/openvpn/openvpn-1.6.0# ./openvpn --config sample-config-files/loopback-server
Mon Sep 24 14:51:05 2007 0: OpenVPN 1.6.0 i686-pc-linux-gnu [SSL] built on Sep 14 2007
Mon Sep 24 14:51:05 2007 1: Diffie-Hellman initialized with 1024 bit key
Mon Sep 24 14:51:05 2007 2: WARNING: file ‘sample-keys/server.key’ is group or others accessible
Mon Sep 24 14:51:05 2007 3: Control Channel MTU parms [ L:1341 D:138 EF:38 EB:0 ET:0 EL:0 ]
Mon Sep 24 14:51:05 2007 4: Data Channel MTU parms [ L:1341 D:1341 EF:41 EB:0 ET:0 EL:0 ]
Mon Sep 24 14:51:05 2007 5: Local Options hash (VER=V3): ‘4e46f95f’
Mon Sep 24 14:51:05 2007 6: Expected Remote Options hash (VER=V3): ‘c2e6d23e’
Mon Sep 24 14:51:05 2007 7: UDPv4 link local (bound): 127.0.0.1:16000
Mon Sep 24 14:51:05 2007 8: UDPv4 link remote: 127.0.0.1:16001

./openvpn --config sample-config-files/loopback-client (In one window)

root@slackware:/usr/local/openvpn/openvpn-1.6.0# ./openvpn --config sample-config-files/loopback-client
Mon Sep 24 14:57:51 2007 0: OpenVPN 1.6.0 i686-pc-linux-gnu [SSL] built on Sep 14 2007
Mon Sep 24 14:57:51 2007 1: WARNING: file ‘sample-keys/client.key’ is group or others accessible
Mon Sep 24 14:57:51 2007 2: Control Channel MTU parms [ L:1341 D:138 EF:38 EB:0 ET:0 EL:0 ]
Mon Sep 24 14:57:51 2007 3: Data Channel MTU parms [ L:1341 D:1341 EF:41 EB:0 ET:0 EL:0 ]
Mon Sep 24 14:57:51 2007 4: Local Options hash (VER=V3): ‘c2e6d23e’
Mon Sep 24 14:57:51 2007 5: Expected Remote Options hash (VER=V3): ‘4e46f95f’
Mon Sep 24 14:57:51 2007 6: UDPv4 link local (bound): 127.0.0.1:16001
Mon Sep 24 14:57:51 2007 7: UDPv4 link remote: 127.0.0.1:16000

# Proses instalasi selesai, sekarang kita buat key untuk vpn server kita, Lakukan seperti dibawah ( contoh key: roninmorgue.key )
root@slackware:/usr/local/openvpn/openvpn-1.6.0# ./openvpn --genkey --secret roninmorgue.key

Comand di atas akan membuat sebuah file bernama roninmorgue.key , dimana isi file nya berisikan configurasi key dari openvpn yang kita install.
akan terlihat apabila kita mengetikan # ls -la

root@slackware:/usr/local/openvpn/openvpn-1.6.0# ls -la
-rw-r--r-- 1 root root 31644 2007-09-14 00:34 reliable.o
-rw------- 1 root root 636 2007-09-24 15:27 roninmorgue.key

root@slackware:/usr/local/openvpn/openvpn-1.6.0# vi roninmorgue.key
# 2048 bit OpenVPN static key
#
-----BEGIN OpenVPN Static key V1-----
80c7e35b05b073621e79129ee413b550
2b5bedaa0096e3bde8017bba1f4b828a
eeed64ec71bc1b236fd89c363516f72f
cab7019a69ad5c37cb8cf5c15d7c7978
5abeb172d402b16af6d7257177a6faa2
4a4b9f48a85f5a8826f7d9ccb9e80d99
777ee7a4bc84bb7a40a74be58af09479
e1cc9cf79dd13184f2b9d5b897b35a24
ee93f66da88d06d16f6b0f6e7c2015dd
dd686712764c5d0432d86c726bc145e9
db61cf640811ec02174b7116bdfa6332
464a592df008be8c877ac575587c6306
d5054af7dc0dc8dfdaea10221a5f5725
d14d0427c66b4d92ac43be3669559d28
6e613a01758fd1515e66768b2b07d3ce
10751e70b14e6b9c71bbc34c13ddebea
-----END OpenVPN Static key V1-----

# Selanjutnya kita buat file openvpn.conf , yang akan berisi configurasi dari server openvpn kita.

root@slackware:/usr/local/openvpn/openvpn-1.6.0# vi openvpn.conf

----------begin openvpn.conf-----------
dev tun
ifconfig 202.152.28.237 202.152.28.238
secret roninmorgue.key
----------eof openvpn.conf-------------

# Sekarang kita akan meng-aktifkan openvpn, disini diperlukan dev tun, kalau di freebsd tun sudah ada sejak kita menginstall freebsd. Sedangkan dilinux terkadang hanya berupa librarynya aja. Jadi kita perlu membuat direktori /dev/net

root@slackware:/usr/local/openvpn/openvpn-1.6.0# mkdir /dev/net
root@slackware:/usr/local/openvpn/openvpn-1.6.0# cd /dev/net

TUN/TAP Driver Configuration:

* Linux 2.4 or higher (with integrated TUN/TAP driver):

(1) make device node: mknod /dev/net/tun c 10 200
(2a) add to /etc/modules.conf: alias char-major-10-200 tun
(2b) load driver: modprobe tun
(3) enable routing: echo 1 > /proc/sys/net/ipv4/ip_forward

root@slackware:/usr/local/openvpn/openvpn-1.6.0# mknod /dev/net/tun c 10 200
root@slackware:/usr/local/openvpn/openvpn-1.6.0# modprobe tun

root@slackware:/usr/local/openvpn/openvpn-1.6.0# ./openvpn --config openvpn.conf
Mon Sep 24 16:16:26 2007 0: OpenVPN 1.6.0 i686-pc-linux-gnu [SSL] built on Sep 14 2007
Mon Sep 24 16:16:26 2007 1: TUN/TAP device tun0 opened
Mon Sep 24 16:16:26 2007 2: /sbin/ifconfig tun0 202.152.28.237 pointopoint 202.152.28.238 mtu 1256
Mon Sep 24 16:16:26 2007 3: UDPv4 link local (bound): [undef]:5000
Mon Sep 24 16:16:26 2007 4: UDPv4 link remote: [undef]

Sekarang VPN server kita telah berjalan.

sebagai pembuktian kita lakukan pemeriksaan -->
root@slackware:/usr/local/openvpn/openvpn-1.6.0# ifconfig
eth0 Link encap:Ethernet HWaddr 00:11:5B:A1:CA:E9
inet addr:202.151.28.153 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::211:5bff:fea1:cae9/64 Scope:Link
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3 errors:0 dropped:0 overruns:0 frame:0
TX packets:18 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1240 (1.2 KiB) TX bytes:3962 (3.8 KiB)
Interrupt:16 Base address:0x2000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:40 errors:0 dropped:0 overruns:0 frame:0
TX packets:40 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2240 (2.1 KiB) TX bytes:2240 (2.1 KiB)

tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:202.152.28.237 P-t-P:202.152.28.238 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1256 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:500
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)

OK...tun0 sudah aktif....

Insya Allah untuk pembuatan sertifikat RSA dan VPN Client-nya segera menyusul....kalau sekarang kepanjangan..

Senin, 03 September 2007

Membangun Web Server dengan ZendCore For Oracle

Tutorial ini saya tulis setelah saya berhasil membangun web server di kantor saya (Menggunakan RHELAS 3).
Adapun kebutuhan dari web server tersebut adalah dapat berkomunikasi dengan database Oracle (Oracle 10g)
(pada mesin yang berbeda/remote) dan MySQL(lokal mesin), serta PHP sebagai bahasa pemrograman web-nya.

Berdasarkan kebutuhan tersebut maka Software yang digunakan adalah:

1. ZendCoreForOracle-v2.0.1-Linux-x86.tar.gz
2. oracle-instantclient-basic-10.2.0.3-1.i386.rpm
3. oracle-instantclient-devel-10.2.0.3-1.i386.rpm
4. mysql-5.0.45-linux-i686-glibc23.tar.gz
5. phpMyAdmin-2.11.0-rc1-all-languages.tar.bz2

Langkah-langkah :

Instalasi ZendCoreForOracle
1. Login sebagai root pada shell anda dan extract ZendCoreForOracle
[root@webserver gunawan]# gunzip /home/gunawan/ZendCoreForOracle-v2.0.1-Linux-x86.tar.gz | tar xvf -
2. Masuk kedalam direktori hasil extract
[root@webserver gunawan]# cd ZendCoreForOracle-v2.0.1-Linux-x86
3. Jalankan script instalasi
[root@webserver gunawan]# ./install
4. Saat Wizard Instalasi berjalan, ikuti semua petunjuknya sampai instalasi selesai.
5. Untuk mengakses/melakukan konfigurasi ZendCore dapat menggunakan web based
http://alamat_host:port/ZendCore

Instalasi oracle-instantclient-basic dan oracle-instantclient-devel
1. Login sebagai root
[root@webserver gunawan]# rpm -Uvh oracle-instantclient-basic-10.2.0.3-1.i386.rpm
[root@webserver gunawan]# rpm -Uvh oracle-instantclient-devel-10.2.0.3-1.i386.rpm

Instalasi dan konfigurasi mysql-5.0.45
1. login sebagai root dan buat group mysql untuk menjalankan aplikasi:
[root@webserver /]# ./usr/sbin/groupadd mysql
2. Buat user mysql untuk menjalankan aplikasi
[root@webserver /]# ./usr/sbin/useradd -g mysql mysql
3. Extract file mysql-5.0.45-linux
[root@webserver local]# gunzip /home/gunawan/mysql-5.0.45-linux-i686-glibc23.tar.gz | tar xvf -
4. Buat link file
[root@webserver local]# ln -s /home/gunawan/mysql-5.0.45-linux-i686-glibc23 mysql
[root@webserver local]# cd mysql
5. Rubah kepemilikan user
[root@webserver mysql]# chown -R mysql .
6. Rubah kepemilikan group
[root@webserver mysql]# chgrp -R mysql .
7. Jalankan script untuk mengaktifkan mysql
[root@webserver mysql]# scripts/mysql_install_db --user=mysql
Neither host ‘webserver’ nor ‘localhost’ could be looked up with ./bin/resolveip
Please configure the ‘hostname’ command to return a correct hostname.
If you want to solve this at a later stage, restart this script with the --force option
[root@webserver mysql]# scripts/mysql_install_db --force --user=mysql
Installing MySQL system tables…
OK
Filling help tables…
OK

Setelah semuanya di install, kita harus melakukan testing

[root@webserver mysql]# ./support-files/mysql.server status
MySQL running (7585) [ OK ]

8. Agar mysql dijalankan pada saat server/mesin berjalan lakukan konfigurasi pada file /etc/rc.local
[root@webserver mysql]# vi /etc/rc.local

—sesuaikan path-nya dengan direktori instalasi anda
./home/gunawan/mysql-5.0.45-linux-i686-glibc23/bin/mysqld_safe --user=mysql &

Instalasi phpMyAdmin-2.11.0
1. Login sebagai root dan extract phpMyAdmin-2.11.0-rc1-all-languages.tar.bz2
2. Pindahkan direktory phpMyAdmin-2.11.0-rc1-all-languages ke direktory web root
[root@webserver gunawan]# mv ./phpMyAdmin-2.11.0-rc1-all-languages ./usr/local/Zend/apache2/htdocs/phpMyadmin

Konfigurasi phpMyadmin
1. /* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* phpMyAdmin sample configuration, you can use it as base for
* manual configuration. For easier setup you can use scripts/setup.php
*
* All directives are explained in Documentation.html and on phpMyAdmin
* wiki .
*
* @version $Id: config.sample.inc.php 10142 2007-03-20 10:32:13Z cybot_tm $
*/

/*
* This is needed for cookie based authentication to encrypt password in
* cookie
*/
$cfg['blowfish_secret'] = 'k4t4r4h4514k4mupuny4'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

/*
* Servers configuration
*/
$i = 0;

/*
* First server
*/
$i++;
/* Authentication type */
$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = '127.0.0.1'; // sesuaikan dengan nama host lokal anda
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
/* Select mysqli if your server has it */
$cfg['Servers'][$i]['extension'] = 'mysql';
/* User for advanced features */
// $cfg['Servers'][$i]['controluser'] = 'pma';
// $cfg['Servers'][$i]['controlpass'] = 'pmapass';
/* Advanced phpMyAdmin features */
// $cfg['Servers'][$i]['pmadb'] = 'phpmyadmin';
// $cfg['Servers'][$i]['bookmarktable'] = 'pma_bookmark';
// $cfg['Servers'][$i]['relation'] = 'pma_relation';
// $cfg['Servers'][$i]['table_info'] = 'pma_table_info';
// $cfg['Servers'][$i]['table_coords'] = 'pma_table_coords';
// $cfg['Servers'][$i]['pdf_pages'] = 'pma_pdf_pages';
// $cfg['Servers'][$i]['column_info'] = 'pma_column_info';
// $cfg['Servers'][$i]['history'] = 'pma_history';
// $cfg['Servers'][$i]['designer_coords'] = 'pma_designer_coords';

/*
* End of servers configuration
*/

/*
* Directories for saving/loading files from server
*/
$cfg['UploadDir'] = '';
$cfg['SaveDir'] = '';

?>

2. Berikan password untuk user root pada database
[root@webserver bin]# mysql -u root
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7 to server version: 5.0.45

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.

mysql> UPDATE mysql.user SET Password = PASSWORD(’passwordrootanda’) WHERE User = ‘root’;
Query OK, 3 rows affected (0.10 sec)
Rows matched: 3 Changed: 3 Warnings: 0

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.02 sec)

mysql> select host,user from mysql.user;
+-----------+------+
| host | user |
+-----------+------+
| 127.0.0.1 | root |
| localhost | root |
| webserver | root |
+-----------+------+
3 rows in set (0.02 sec)

mysql> select host,user,password from mysql.user;
+-----------+------+-------------------------------------------+
| host | user | password |
+-----------+------+-------------------------------------------+
| localhost | root | *89045956ED##############EDIT############ |
| webserver | root | *89045956ED##############EDIT############ |
| 127.0.0.1 | root | *89045956ED##############EDIT############ |
+-----------+------+-------------------------------------------+
3 rows in set (0.00 sec)

mysql>

Terakhir kita lakukan perubahan kepemilikan user pada direktori /htdocs
[root@webserver gunawan]# chown -R gunawan /usr/local/Zend/apache2/htdocs

Minggu, 26 Agustus 2007

Setting Ethernet Marvel di Linux RHELAS 3

ini pengalaman gw waktu kompile kernel server database oracle gw biar detect Ethernetnya

1. DL driver for linux marvell-88e8050_linux_v8.16.2.3.tar.bz2 di
http://downloadfinder.intel.com/scripts-df-external/confirm.aspx?ftpDown=
ftp://aiedownload.intel.com/df-support/9576/eng/
marvell-88e8050_linux_v8.24.1.3.tar.bz2&agr=N&ProductID=1658&
DwnldId=9576&strOSs=90&OSFullName;=
Red%20Hat*%20Enterprise%20Linux%203.0&lang=eng

2. Untuk menginstal driver diperlukan file dan tools pada sistem linux :
1. Source kernel linux di /etc/src/linux
2. compiler tools (co: gcc)

3. Unpackaged driver marvell-88e8050_linux_v8.16.2.3.tar.bz2
tar -jxvf marvell-88e8050_linux_v8.16.2.3.tar.bz2
DriverInstall/
DriverInstall/README
DriverInstall/install.sh
DriverInstall/sk98lin.4
DriverInstall/sk98lin.tar.bz2
# cd DriverInstall/
# ls
install.sh README sk98lin.4 sk98lin.tar.bz2
# cat README
Instruksi instalasi untuk driver sk98lin

4. Instalasi Driver
# cd /DriverInstall
# ./install.sh
Ada 2 pilihan :
a. user installation mode
b. patch generation mode

pilih patch generation mode untuk melakukan instalasi secara langsung pada kernel, ikuti instruksinya.

5. Applying Patch Driver
untuk meng-apply ke kernel gunakan commands :
# cd /usr/src/linux
# cat /patch-location/sk98lin__vX.XX_a_b_c_patch | patch -p1

6. Konfigurasi kernel linux
# cd /usr/src/linux
# make menuconfig (mode konsol) atau xconfig (mode grafik)
Pilih pilihan untuk dikompile pada kernel baru
-- untuk kernel 2.4.x :
pilih menu ‘Network Device Support’
pilih ‘Ethernet (1000 Mbit)’
-- untuk kernel 2.6.x :
pilih menu ‘device drivers’
pilih ‘Network Device Support’
pilih ‘Ethernet (1000 Mbit)’

6.a. Pilih cara untuk menggunakan driver pada kernel linux
-- untuk mengkompile driver sebagai module, mark :
“Marvell Yukon Chipset/SysKonnect SK-98xx Support” with (M).
-- untuk mengintegrasikan driver secara permanent pada kernel linux, mark :
“Marvell Yukon Chipset/SysKonnect SK-98xx Support” with (*).

6.b. Pilih ‘Exit’

6.c. Pilih menu ‘Loadable module support’

6.d. Pilih ‘Enable loadable module support’

6.e. Pilih ‘Kernel module loader’

6.f. Untuk keluar konfigurasi pilih ‘Exit’

7. Kompilasi kernel linux
Setelah proses konfigurasi kernel selesai, lakukan kompilasi pada kernel
a. Buat semua dependensi (tidak diperlukan pada kernel 2.6.x)
# make dep
b. Buat binary kernel linux
# make clean bzImage
c. Buat semua modul dan instal ke /lib/modules
# make modules
# make modules_install

8. Menginstal kompilasi kernel linux
a. Instal kernel baru dengan meng-kopi ke boot directory
dengan mengeksekusi commands (co: Intel/x86 machines):
# cp arch/i386/boot/bzImage /boot/vmlinuz-new
# cp System.map /boot/System.map-new.

2. Edit file konfigurasi boot loader untuk booting dari kernel baru.

3. Reboot system dengan kernel baru.

Minggu, 11 Maret 2007

Cleaning Temporary Tablespaces

Apabila ukuran temporary tabelspace mulai membengkak, ini tentu mempengaruhi kinerja dari database Oracle.
Oleh karena itu kita harus mengecilkan ukurannya, lebih tepatnya sih menggantinya dengan temporary tablespace yang baru. Ok langsung saja, ini adalah langkah-langkah teknisnya :

1. ALTER DATABASE TEMPFILE ‘/app/oracle/oradata/db2006/temp01.dbf’ resize 500M;
2. CREATE TEMPORARY TABLESPACE temp2
TEMPFILE ‘/app/oracle/oradata/db2006/temp2_01.dbf’ SIZE 500M REUSE
AUTOEXTEND ON NEXT 100M MAXSIZE unlimited
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M;
3. ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp2;
4. DROP TABLESPACE temp INCLUDING CONTENTS AND DATAFILES;
5. CREATE TEMPORARY TABLESPACE temp
TEMPFILE ‘/app/oracle/oradata/db2006/temp01.dbf’ SIZE 500M REUSE
AUTOEXTEND ON NEXT 100M MAXSIZE unlimited
EXTENT MANAGEMENT LOCAL UNIFORM SIZE 10M;
6. ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp;
7. DROP TABLESPACE temp2 INCLUDING CONTENTS AND DATAFILES;

Ok, sekarang ukuran temporary tablespace kita sudah sesuai dengan keinginan kita.

Kamis, 08 Maret 2007

Memindahkan controlfile dan redologfile pada Oracle

Dear all..

Pada suatu hari.. halah, ko pembukaannya ga enak yah...
langsung aja deh, pada suatu ketika... hmm kayanya sama noraknya deh...

ya udah.. suatu saat ada kondisi dimana database klien gw perlu dilakukan proses pemindahan dan perubahan pada file-file kritis
pada database oracle-nya.. ingat ini file-file kritis yah...

file-file tersebut adalah :
- controlfile
- redolog file

serta menghapus dan membuat kembali tablespace UNDO dan merubah parameter undo retentionnya...

dan ini lah rencana aksi kita.. kerennya sih Action Planning :

A. Moving Undo Tablespace :
1 Backup file-file yang akan dipindah : control file, redo log file
2 Create new Undo Tablespace
3 Mengganti parameter Undo Tablespace ke tablespace baru
4 Delete tablespace lama beserta content dan datafile-nya

B. Rubah parameter Undo Retention
1 Mengganti nilai Undo Retention pada system

C. Moving online Redo Log File
1 Drop redo log file dengan status INACTIVE
2 Create redo
3 Switch logfile

D. Moving Control File
1 Create pfile baru dari spfile
2 Edit pfile baru (mengganti parameter Control File)
3 Shutdown Instance
4 Moving Control file ke path yang baru
5 Create spfile dari pfile yang sudah di edit
6 Startup Mount
7 Open database

Dan inilah aksinya.. hehehe

SQL> !df -k
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c1t0d0s0 4129290 954465 3133533 24% /
/proc 0 0 0 0% /proc
fd 0 0 0 0% /dev/fd
mnttab 0 0 0 0% /etc/mnttab
swap 3486720 16 3486704 1% /var/run
swap 3487328 624 3486704 1% /tmp
/dev/dsk/c1t0d0s3 4129290 2694240 1393758 66% /oracle
/dev/dsk/c1t1d0s0 8257241 7639452 535217 94% /oradata
/dev/dsk/c1t1d0s1 8257241 4144738 4029931 51% /oradata2

SQL> sho parameter undo;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_suppress_errors boolean FALSE
undo_tablespace string UNDOTBS1


SQL> select file_name, tablespace_name, bytes from dba_data_files where tablespace_name like '%UNDO%';

FILE_NAME TABLESPACE_NAME BYTES
-------------------------------------------- ------------------------------ ---------
/oradata/PRODUCTION/PRODUCTION/undotbs01.dbf UNDOTBS1 209715200

SQL> col "Tablespace" for a20
col "Allocated" for 999999999999

select ddf.TABLESPACE_NAME "Tablespace",
SQL> SQL> SQL> 2 ddf.BYTES "Allocated",
3 round(((ddf.BYTES-dfs.BYTES)/ddf.BYTES)*100,2) "Used %",
4 round((1-((ddf.BYTES-dfs.BYTES)/ddf.BYTES))*100,2) "Free %"
5 from (select TABLESPACE_NAME,
6 sum(BYTES) bytes
7 from dba_data_files
8 group by TABLESPACE_NAME) ddf,
9 (select TABLESPACE_NAME,
10 sum(BYTES) bytes
11 from dba_free_space
12 group by TABLESPACE_NAME) dfs
13 where ddf.TABLESPACE_NAME=dfs.TABLESPACE_NAME
14 order by ddf.tablespace_name;

Tablespace Allocated Used % Free %
-------------------- ------------- ---------- ----------
DRSYS 39059456 98.99 1.01
EXAMPLE 152698880 99.74 .26
IDATA 209715200 .81 99.19
IINDEX 62914560 .1 99.9
INDX 26214400 .25 99.75
ODM 20971520 45.94 54.06
TBS_DDAA 4194304000 48.18 51.83
TOOLS 10485760 90.63 9.38
UNDOTBS1 209715200 1.19 98.81
USERS 26214400 .25 99.75
XDB 39976960 99.34 .66

11 rows selected.

$ pwd
/oradata2
$ mkdir PRODUCTION
$ cd PRODUCTION
$ pwd
/oradata2/PRODUCTION

A. Moving Undo Tablespace :

SQL> create undo tablespace UNDOTBS2 datafile '/oradata2/PRODUCTION/undotbs02.dbf' size 1000M reuse autoextend ON;

Tablespace created.

SQL> alter system set undo_tablespace=UNDOTBS2;

System altered.

SQL> sho parameter undo;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_suppress_errors boolean FALSE
undo_tablespace string UNDOTBS2

SQL> drop tablespace UNDOTBS1 INCLUDING CONTENTS AND DATAFILES;

Tablespace dropped.


B. Rubah parameter Undo Retention

SQL> alter system set undo_retention=1800;

System altered.

SQL> sho parameter undo;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 1800
undo_suppress_errors boolean FALSE
undo_tablespace string UNDOTBS2

SQL> select file_name, tablespace_name, bytes from dba_data_files where tablespace_name like '%UNDO%';

FILE_NAME TABLESPACE_NAME BYTES
------------------------------------------- ------------------------------ ----------
/oradata2/PRODUCTION/undotbs02.dbf UNDOTBS2 1048576000


Tablespace Allocated Used % Free %
-------------------- ------------- ---------- ----------
DRSYS 39059456 98.99 1.01
EXAMPLE 152698880 99.74 .26
IDATA 209715200 .81 99.19
IINDEX 62914560 .1 99.9
INDX 26214400 .25 99.75
ODM 20971520 45.94 54.06
TBS_DDAA 4194304000 48.18 51.83
TOOLS 10485760 90.63 9.38
UNDOTBS2 1048576000 .13 99.87
USERS 26214400 .25 99.75
XDB 39976960 99.34 .66

11 rows selected.


C. Moving online Redo Log File

SQL> select a.group#,a.status,b.member,a.sequence# from v$log a,v$logfile b where a.group#=b.group#;

GROUP# STATUS MEMBER SEQUENCE#
------ ---------- -------------------------------------------------- ----------
1 CURRENT /oradata/PRODUCTION/PRODUCTION/redo01.log 887
2 INACTIVE /oradata/PRODUCTION/PRODUCTION/redo02.log 885
3 INACTIVE /oradata/PRODUCTION/PRODUCTION/redo03.log 886

SQL> alter database drop logfile group 3;

Database altered.

SQL> alter database add logfile group 3 ('/oradata2/PRODUCTION/redo03.log') size 100M

Database altered.

SQL> select a.group#,a.status,b.member,a.sequence# from v$log a,v$logfile b where a.group#=b.group#;

GROUP# STATUS MEMBER SEQUENCE#
------ ---------- -------------------------------------------------- ----------
1 CURRENT /oradata/PRODUCTION/PRODUCTION/redo01.log 887
2 INACTIVE /oradata/PRODUCTION/PRODUCTION/redo02.log 885
3 UNUSED /oradata2/PRODUCTION/redo03.log 0

SQL> alter system switch logfile;

System altered.

SQL> select a.group#,a.status,b.member,a.sequence# from v$log a,v$logfile b whe
e a.group#=b.group#;

GROUP# STATUS MEMBER SEQUENCE#
------ ---------- -------------------------------------------------- ----------
1 ACTIVE /oradata/PRODUCTION/PRODUCTION/redo01.log 887
2 INACTIVE /oradata/PRODUCTION/PRODUCTION/redo02.log 885
3 CURRENT /oradata2/PRODUCTION/redo03.log 888

SQL> select a.group#,a.status,b.member,a.sequence# from v$log a,v$logfile b where a.group#=b.group#;

GROUP# STATUS MEMBER SEQUENCE#
------ ---------- -------------------------------------------------- ----------
1 ACTIVE /oradata/PRODUCTION/PRODUCTION/redo01.log 899
2 INACTIVE /oradata2/PRODUCTION/redo02.log 898
3 CURRENT /oradata2/PRODUCTION/redo03.log 900


D. Moving Control File

SQL> !vi /oradata2/PRODUCTION/pfilenew.ora

*.control_files='/oradata2/PRODUCTION/control01.ctl','/oradata2/PRODUCTION/control02.ctl','/oradata/PRODUCTION/PRODUCTION/control03.ctl'

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

$ mv /oradata/PRODUCTION/PRODUCTION/control01.ctl /oradata2/PRODUCTION/control01.ctl
$ mv /oradata/PRODUCTION/PRODUCTION/control02.ctl /oradata2/PRODUCTION/control02.ctl

SQL> create spfile from pfile='/oradata2/PRODUCTION/pfilenew.ora';

File created.

SQL> startup mount;
ORACLE instance started.

Total System Global Area 320308312 bytes
Fixed Size 730200 bytes
Variable Size 285212672 bytes
Database Buffers 33554432 bytes
Redo Buffers 811008 bytes
Database mounted.
SQL> alter database open;

Database altered.

SQL> select status from v$instance;

STATUS
----------
OPEN

$ df -k
Filesystem kbytes used avail capacity Mounted on
/dev/dsk/c1t0d0s0 4129290 954473 3133525 24% /
/proc 0 0 0 0% /proc
fd 0 0 0 0% /dev/fd
mnttab 0 0 0 0% /etc/mnttab
swap 3500736 16 3500720 1% /var/run
swap 3501344 624 3500720 1% /tmp
/dev/dsk/c1t0d0s3 4129290 2899208 1188790 71% /oracle
/dev/dsk/c1t1d0s0 8257241 7225908 948761 89% /oradata
/dev/dsk/c1t1d0s1 8257241 5377883 2796786 66% /oradata2


Setelah proses ini selesai.. sangat disarankan untuk melakukan full backup database....

Rabu, 28 Februari 2007

Oracle Dataguard on Standart Edition

=================
|| Primary ||
=================

1. Disable db_recovery_file_dest = ‘’ and Check parameter db_recovery_file_dest
SQL> ALTER SYSTEM SET db_recovery_file_dest=’’ SCOPE=BOTH;
SQL> sho parameter db_recovery_file_dest;

2. Alter log_archive_dest and Check parameter log_archive_dest
SQL> ALTER SYSTEM SET log_archive_dest=’/oradata/archive’ SCOPE=BOTH;
SQL> sho parameter log_archive_dest

3. Check Archived log
SQL> ARCHIVE LOG LIST;

4. Switch log file
SQL> ALTER SYSTEM SWITCH LOGFILE;

5. Check Archived log and file
SQL> ARCHIVE LOG LIST;
$ ls /oradata/archive

6. Backup Database and Archived.log (RMAN):
cd $ORACLE_HOME/bin
$ ./rman target

RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT ‘/oradata/backup/%d_%T_%u_s%s_p%p’

RMAN> run {
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup incremental level 0 tag full_backup
format ‘/oradata/backup/%d_%T_%u_s%s_p%p’ database;
backup incremental level 0 tag full_backup
format ‘/oradata/backup/%d_%T_%u_s%s_p%p’ (current controlfile);
backup archivelog all
format ‘/oradata/backup/%d_%T_%u_s%s_p%p’ delete input;
delete obsolete;
}

8. Switch log file
SQL> ALTER SYSTEM SWITCH LOGFILE;

9. Check Archived log and file
SQL> ARCHIVE LOG LIST;
$ ls /oradata/archive

10. Create some transaction to create archive
SQL> grant connect, resource to test identified by test;
SQL> create table test.testing as select * from dba_objects;
SQL> select count(1) from test.testing;

11. Switch log file
SQL> ALTER SYSTEM SWITCH LOGFILE;

12. Check Archived log and file
SQL> ARCHIVE LOG LIST;
$ ls /oradata/archive

13. RUN {
ALLOCATE CHANNEL d1 DEVICE TYPE DISK;
BACKUP DATAFILE 1 FORMAT ‘/u01/backups/%U’, ‘/u02/backups/%U’;
}

13. Create Standby controlfile from primary database:
SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS ‘/home/oracle/ctlstdby.ctl’;

14. Create pfile from spfile;
-------------------------------------------------------------------------
13. Shutdown database

14. Copy initprotecal.ora, orapwprotecal, control standby(ctlstdby.ctl), onlinelog, datafile, tempfile

=================
|| Standby ||
=================

1. Edit pfile, change parameter *.control_files to *.control_files=’/u02/oradata/ctlfile/ctlstdby.ctl’

2. Check validation of pfile parameter

3. Startup nomount pfile=’$ORACLE_HOME/dbs/initprotecal.ora’

4. Startup mount
SQL> alter database mount standby database;

=================
|| crontab ||
=================

on primary :
----------------------------------------------------------------------------------
$ cd /home/oracle

$ vi move_standby.sh =>
rsync -e ssh -Pazv /oradata/flash_recovery_area/protecal/archivelog/ oracle@stby-db:/oradata/flash_recovery_area/protecal/archivelog/
rsync -e ssh -Pazv /oradata/archive/ oracle@stby-db:/oradata/archive/

$ chmod 775 move_standby.sh
$ crontab -e => */3 * * * * /home/oracle/move_standby.sh
$ crontab -l

on standby :
----------------------------------------------------------------------------------
$ cd /home/oracle

$ vi manual_standby.sh =>
ORACLE_SID=protecal
ORACLE_BASE=/oracle/app
ORACLE_HOME=/oracle/app/product/ora10.2
export LD_LIBRARY_PATH=$ORACLE_HOME/lib
export TNS_ADMIN=$ORACLE_HOME/network/admin
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin:/sbin:.
sqlplus -s “/nolog” <<-EOF
conn /as sysdba
recover standby database;
AUTO

$ chmod 775 manual_standby.sh
$ crontab -e => */5 * * * * /home/oracle/manual_standby.sh
$ crontab -l

purging mail (oracle and root) => as root on primary and standby
----------------------------------------------------------------------------------
# cd /var/spool/mail
# touch oracle.new
# vi mail_oracle.sh => cp --reply=yes /var/spool/mail/oracle.new /var/spool/mail/oracle
# chmod 775 mail_oracle.sh
# crontab -e => */10 * * * * /var/spool/mail/mail_oracle.sh
# crontab -l

*/2 * * * * rsync -e ssh -Pazv /home/oracle/test/ oracle@rumah:/home/oracle/hapus/

A. Setting ssh and scp on primary and standby
B. Configure Primary and standby

note: nama mesin dan domain dah gw rubah..tolong disesuaikan dengan mesin anda

node 2 :ssh-keygen -t rsa
ssh-keygen -t dsa

node 1 :ssh-node_1 cat /oracle/.ssh/id_rsa.pub

Node 2
---------
[oracle@rumah ~]$ ssh-keygen -t rsa
[oracle@rumah ~]$ ssh-keygen -t dsa

Node 1
---------
[oracle@vmwareas ~]$ ssh-keygen -t rsa
[oracle@vmwareas ~]$ ssh-keygen -t dsa

Node 1
----------
[oracle@vmwareas ~]$ ssh node_1 cat /home/oracle/.ssh/id_rsa.pub >> /home/oracle/.ssh/authorized_keys

[oracle@vmwareas ~]$ ssh node_1 cat /home/oracle/.ssh/id_dsa.pub >> /home/oracle/.ssh/authorized_keys

Node 2
---------
[oracle@vmwareas ~]$ ssh node_2 cat /home/oracle/.ssh/id_rsa.pub >> /home/oracle/.ssh/authorized_keys

[oracle@vmwareas ~]$ ssh node_2 cat /home/oracle/.ssh/id_dsa.pub >> /home/oracle/.ssh/authorized_keys

Node 1
----------
[oracle@vmwareas ~]$ ssh vmwareas cat /home/oracle/.ssh/id_rsa.pub >> /home/oracle/.ssh/authorized_keys

[oracle@vmwareas ~]$ ssh vmwareas cat /home/oracle/.ssh/id_dsa.pub >> /home/oracle/.ssh/authorized_keys

[oracle@vmwareas ~]$ ssh rumah cat /home/oracle/.ssh/id_rsa.pub >> /home/oracle/.ssh/authorized_keys

[oracle@vmwareas ~]$ ssh rumah cat /home/oracle/.ssh/id_dsa.pub >> /home/oracle/.ssh/authorized_keys

Node 2
----------
[oracle@vmwareas ~]$ ssh vmwareas cat /home/oracle/.ssh/id_rsa.pub >> /home/oracle/.ssh/authorized_keys

[oracle@vmwareas ~]$ ssh vmwareas cat /home/oracle/.ssh/id_dsa.pub >> /home/oracle/.ssh/authorized_keys

Sabtu, 24 Februari 2007

Instalasi 10g di HP-UX Itanium

pemeriksaan memory dan swap

# /usr/contrib/bin/machinfo | grep -i Memory
# /usr/sbin/swapinfo -a

pemeriksaan kapasitas direktori /tmp

# bdf /tmp

untuk melihat sisa/penggunaan hardisk

# bdf

Memeriksa konfigurasi jaringan

- Konfigurasi name resolution
1.memeriksa file /etc/hosts untuk di samakan dengan file nsswitch.conf
# cat /etc/nsswitch.conf | grep hosts

2.verifikasi hostname
# hostname

3.verifikasi nama domain
# domainname

4.verifikasi file host memiliki nama host yang qualified
# cat /etc/hosts | grep `eval hostname`

example output:
192.168.100.16 myhost.us.mycompany.com myhost
127.0.0.1 localhost localhost.localdomain

jika file tidak berisi nama host yang benar, silahkan untuk dirubah

memperbaharui parameter kernel
-menggunakan kcweb application
# /usr/sbin/kcweb -F

membuat group, user, dan direktori
- grup dan user yang akan dibuat :
grup oracle inventory(oinstall)
grup OSDBA(dba)
owner software oracle(oracle)
user tanpa privileged(nobody)

1.cek keberadaan grup pada sistem
# more /var/opt/oracle/oraInst.loc

jika file tersebut ada dan menghasilkan output :

inventory_loc=/u01/app/oracle/oraInventory
inst_group=oinstall

maka oracle inventori sudah memiliki grup oinstall

2.jika diperlukan, buat grup oinstall
# /usr/sbin/groupadd oinstall

3.buat grup OSDBA jika belum ada
# /usr/sbin/groupadd dba

4.periksa apakah user oracle sudah terbentuk dan memiliki grup yang benar
# id oracle

jika user oracle sudah ada dan menampilkan informasi seperti dibawah ini, maka oinstall adalah grup utama dan dba adalah
grup kedua dari user oracle

uid=440(oracle) gid=200(oinstall) groups=201(dba),202(oper)

5. - jika user oracle sudah ada tapi grup utama bukan oinstal atau bukan member dari grup dba.
# /usr/sbin/usermod -g oinstall -G dba oracle
- jika user oracle belum ada
# /usr/sbin/useradd -g oinstall -G dba oracle

6.buat password untuk user oracle
#passwd oracle

7.melihat keberadaan user nobody
# id nobody

jika tidak ada user nobody, maka buat user nobody
# /usr/sbin/useradd nobody

- direktori yang akan dibuat :
Oracle base directory
Oracle inventory directory
Oracle home directory

membuat oracle base directory dan menspesifikasikan owner, grup dan permision
# mkdir -p /mount_point/app/oracle_sw_owner
# chown -R oracle:oinstall /mount_point/app/oracle_sw_owner
# chmod -R 775 /mount_point/app/oracle_sw_owner

jika mount point /u01 dan user untuk oracle software owner adalah oracle, maka oracle base directory adalah

/u01/app/oracle

tambahan jika ingin menempatkan flash recovery area dan file data pada mount point yang berbeda

Database file directory:

# mkdir /mount_point/oradata
# chown oracle:oinstall /mount_point/oradata
# chmod 775 /mount_point/oradata

Recovery file directory (flash recovery area):

# mkdir /mount_point/flash_recovery_area
# chown oracle:oinstall /mount_point/flash_recovery_area
# chmod 775 /mount_point/flash_recovery_area

Mengkonfigurasi/set environment user oracle

1. Buka X terminal baru
2. setting agar aplikasi X window dapat berjalan dalam sistem

$ xhost fully_qualified_remote_host_name atau xhost +

sebagai contoh:

$ xhost somehost.us.acme.com

3. jika belum login kedalam sistem dimana akan diinstall oracle maka loginlah dengan user oracle
4. jika tidak login dengan user oracle, maka rubahlah menjadi user oracle
$ su - oracle

5. untuk melihat shell yang aktif
$ echo $SHELL

6. buka file startup shell user oracle

- C shell (csh or tcsh):
% vi .login

- Bash shell di redhat
$ vi .bash_profile

- Bourne shell atau korn shell
$ vi .profile

7. edit file untuk mendefinisikan mode pembuatan file default dan setting ORACLE_BASE dan ORACLE_SID environment variable
umask 022
ORACLE_SID=KPPDB
ORACLE_BASE=/oracle10gr2/app
ORACLE_HOME=$ORACLE_BASE/product/10.2
export ORACLE_SID ORACLE_BASE ORACLE_HOME

8. simpan file dan keluar dari editor

9.untuk menjalankan script startup shell
- C shell (csh or tcsh):
% source ./.login

- Bash shell di redhat
$ . ./.bash_profile

- Bourne shell atau korn shell
$ . ./.profile

10.jika tidak melakukan instalasi pada sistem lokal, dan untuk membuat aplikasi X berjalan di sistem lokal
- Bourne, bash atau korn shell:

$ DISPLAY=local_host:0.0 ; export DISPLAY

- C shell:

% setenv DISPLAY local_host:0.0

11.jika direktori /tmp kurang dari 400 MB
- periksa dengan bdf untuk melihat mount point yang ada.
- buat direktori temporary dan set permissionnya
$ su - root
# mkdir /mount_point/tmp
# chmod a+wr /mount_point/tmp
# exit
- setting tmp evironment variables

Bourne, Bash, or Korn shell:

$ TMP=/mount_point/tmp
$ TMPDIR=/mount_point/tmp
$ export TMP TMPDIR

C shell:

% setenv TMP /mount_point/tmp
% setenv TMPDIR /mount_point/tmp

12.untuk memastikan semua environment diset dengan benar, jalankan perintah

$ umask
$ env | more

pastikan tampilan yang dihasilkan adalah nilai 22,022,atau 0022 dan semua environment variables memiliki nilai yang
benar.

Mounting CD/DVD

1. jalankan dari user root
$ su - root

2. unmount DVD
# /usr/sbin/umount /SD_DVD
/SD_DVD adalah contoh mount untuk DVD

3. masukkan CD pada disc drive, jalankan perintah
# /usr/sbin/mount -F cdfs -o rr /dev/dsk/cxtydz /SD_DVD

contoh, /SD_DVD adalah mount point untuk CD dan /dev/dsk/cxtydz adalah nama device dari disc drive,
sebagai contoh /dev/dsk/c0t2d0

4. Jika Oracle universal installer menampilkan kotak dialog lokasi disk, masukkan path mount point disk
contoh /SD_DVD

Instalasi

1. jika dari DVD
$ /mount_point/db/runInstaller

2. jika dari hard disk, masuk ke path software dan jalankan
$ ./runInstaller

Minggu, 18 Februari 2007

Syncronize archive log

Artikel ini berhubungan dengan artikel gw yang mengenai merubah ukuran archived log pada database, apabila kita telah membackup archived log maka kita perlu menghapusnya secara fisik pada server kita, dan setelah kita menghapus file archive secara fisik dari server/OS maka pada database harus dilakukan sinkronisasi?.

Langkah-langkah teknis :

[root@alt2007 archivelog]# pwd
/app/oracle/flash_recovery_area/MCC2007/archivelog

[root@alt2007 archivelog]# ls -al
total 44
drwxr-x--- 11 oracle oinstall 4096 Feb 15 00:53 .
drwxr----- 5 oracle oinstall 4096 Apr 2 2007 ..
drwxr-x--- 2 oracle oinstall 4096 Feb 5 23:40 2008_02_05
drwxr-x--- 2 oracle oinstall 4096 Feb 6 23:00 2008_02_06
drwxr-x--- 2 oracle oinstall 4096 Feb 7 23:00 2008_02_07
drwxr-x--- 2 oracle oinstall 4096 Feb 8 17:34 2008_02_08
drwxr-x--- 2 oracle oinstall 4096 Feb 11 23:00 2008_02_11
drwxr-x--- 2 oracle oinstall 4096 Feb 12 23:10 2008_02_12
drwxr-x--- 2 oracle oinstall 4096 Feb 13 23:00 2008_02_13
drwxr-x--- 2 oracle oinstall 4096 Feb 14 23:56 2008_02_14
drwxr-x--- 2 oracle oinstall 4096 Feb 15 15:13 2008_02_15

[root@alt2007 archivelog]# rm -rf /app/oracle/flash_recovery_area/MCC2007/
archivelog/2008_02_0*
[root@alt2007 bin]# ./rman target gunawan/mccdba@mcc2007
Recovery Manager: Release 10.1.0.3.0 - Production
Copyright (c) 1995, 2004, Oracle. All rights reserved.
connected to target database: MCC2007 (DBID=3021959133)
RMAN> crosscheck copy;
====================== potong =========================================
validation succeeded for archived log
archive log filename=/app/oracle/oradata/mcc2007/archive/1_39940_614016670.dbf recid=39806 stamp=647924450
validation succeeded for archived log
archive log filename=/app/oracle/oradata/mcc2007/archive/1_39941_614016670.dbf recid=39807 stamp=647928023
validation succeeded for archived log
archive log filename=/app/oracle/oradata/mcc2007/archive/1_39942_614016670.dbf recid=39808 stamp=647931658
validation succeeded for archived log
archive log filename=/app/oracle/oradata/mcc2007/archive/1_39943_614016670.dbf recid=39809 stamp=647935254
validation succeeded for archived log
archive log filename=/app/oracle/oradata/mcc2007/archive/1_39944_614016670.dbf recid=39810 stamp=647938818
validation succeeded for archived log
archive log filename=/app/oracle/oradata/mcc2007/archive/1_39945_614016670.dbf recid=39811 stamp=647942443
validation succeeded for archived log
archive log filename=/app/oracle/oradata/mcc2007/archive/1_39946_614016670.dbf recid=39812 stamp=647946018
validation succeeded for archived log
archive log filename=/app/oracle/oradata/mcc2007/archive/1_39947_614016670.dbf recid=39813 stamp=647949632
validation succeeded for archived log
archive log filename=/app/oracle/oradata/mcc2007/archive/1_39948_614016670.dbf recid=39814 stamp=647953230
Crosschecked 598 objects

RMAN> delete noprompt expired copy;

=================potong===============

deleted archive log
archive log filename=/app/oracle/flash_recovery_area/MCC2007/archivelog/2008_02_13/
o1_mf_1_39521_3v5nhc3n_.arc recid=39387 stamp=646597083
deleted archive log
archive log filename=/app/oracle/flash_recovery_area/MCC2007/archivelog/2008_02_13/
o1_mf_1_39522_3v5qv763_.arc recid=39388 stamp=646600535
deleted archive log
archive log filename=/app/oracle/flash_recovery_area/MCC2007/archivelog/2008_02_13/
o1_mf_1_39523_3v5v29vv_.arc recid=39389 stamp=646603834
deleted archive log
archive log filename=/app/oracle/flash_recovery_area/MCC2007/archivelog/2008_02_13/
o1_mf_1_39524_3v5v9zsj_.arc recid=39390 stamp=646604080
deleted archive log
archive log filename=/app/oracle/flash_recovery_area/MCC2007/archivelog/2008_02_13/
o1_mf_1_39525_3v5y0n6k_.arc recid=39391 stamp=646606852
deleted archive log
archive log filename=/app/oracle/flash_recovery_area/MCC2007/archivelog/2008_02_13/
o1_mf_1_39526_3v61jfn6_.arc recid=39392 stamp=646610430
deleted archive log
archive log filename=/app/oracle/flash_recovery_area/MCC2007/archivelog/2008_02_13/
o1_mf_1_39527_3v6518sb_.arc recid=39393 stamp=646614041
Deleted 176 EXPIRED objects
RMAN>

Kamis, 15 Februari 2007

Merubah ukuran archived Log

Disaat kita menentukan ukuran dari archived log, ternyata kita terlalu kecil dalam menentukan ukurannya
yang dapat menyebabkan database ‘down’, apabila itu terjadi maka kita perlu untuk memperbesar ukuran dari
archived log tersebut.

Langkah-langkah teknis :

SQL> ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE=60G SCOPE=BOTH;

note : lakukan proses backup archived log secara rutin dan hapus dari database

Minggu, 11 Februari 2007

Alter Block Size for tablespace

Disaat Ukuran ‘default’ dari Block tablespace tidak mencukupi kebutuhan dari database kita, maka diperlukan ukuran block yang lebih besar, biasanya ini diperlukan untuk database yang menjalankan proses yang besar seperti warehouse dan mining.

langkah-langkah teknis :

SQL> show parameter db_block_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_block_size integer 8192

SQL> show parameter db_cache_size;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
__db_cache_size big integer 164M
db_cache_size big integer 0

SQL> alter system set db_16k_cache_size = 80M;

System altered.

Rabu, 07 Februari 2007

Create Job Scheduller

Langsung aja deh, gw lagi males pake kalimat pembukaan, kali ini gw mau kasih contoh untuk membuat ‘job scheduller’ pada database oracle.

Sample Code

BEGIN
sys.dbms_scheduler.create_job(
job_name => ‘“GUNAWAN”."CUSTOMERNAMECARDUPDATE"’,
job_type => ‘PLSQL_BLOCK’,
job_action => ‘insert into customer_name_card
select * from customer_name_card@mccconect
where orig_input_date >= ‘’1-oct-2000’’’,
start_date => to_timestamp_tz(’2006-12-20 17:17:00 +7:00’, ‘YYYY-MM-DD HH24:MI:SS TZH:TZM’),
job_class => ‘DEFAULT_JOB_CLASS’,
comments => ‘Mengupdate customer_name_card’,
auto_drop => FALSE,
enabled => FALSE);
sys.dbms_scheduler.set_attribute( name => ‘“GUNAWAN”."CUSTOMERNAMECARDUPDATE"’, attribute => ‘logging_level’, value => DBMS_SCHEDULER.LOGGING_FULL);
sys.dbms_scheduler.enable( ‘“GUNAWAN”."CUSTOMERNAMECARDUPDATE”’ );
END;

BEGIN
sys.dbms_scheduler.create_job(
job_name => ‘“GUNAWAN”."IMPORTAIG"’,
job_type => ‘PLSQL_BLOCK’,
job_action => ‘insert into master_trx
select custnum, ‘’4. jan-mar06’’ as periode, ‘’CREDIT CARD’’ as tndrtype
from mcc_tm_tdrtypebycpc
where (periode between ‘’2006-01’’ and ‘’2006-03’’) and
(tndrtype in (’’2’’,’’3’’,’’4’’,’’5’’,’’6’’,’’7’’,’’8’’,’’9’’,’’10’’,’’11’’)) and
(custnum not in (select distinct custnum from mcc_tm_tdrtypebycpc_unik))
group by custnum’,
start_date => to_timestamp_tz(’2007-02-17 20:00:00 +7:00’, ‘YYYY-MM-DD HH24:MI:SS TZH:TZM’),
job_class => ‘DEFAULT_JOB_CLASS’,
comments => ‘import for aig’,
auto_drop => FALSE,
enabled => TRUE);
END;

Minggu, 04 Februari 2007

Restore SPFile from backup

lansung juga deh.....tanpa basa-basi, soalnya gw lagi males basa-basi yang nantinya malah jadi basi .... smile

Apabila kita ingin mengembalikan SPFile yang terakhir kita backup

Langkah-langkah teknis :

SQL> shutdown immediate;
SQL> restore spfile from ‘/app/oracle/flash_recovery_area/DB2006/autobackup/2007_01_29/
o1_mf_s_613129956_2vtrcoxr_.bkp’;
SQL> startup;

Selesai......

Jumat, 19 Januari 2007

Checking User Lock

Seringkali dalam menangani sebuah server database, seorang DBA mengalami/mendapatkan server-nya
crash/hang. Ini pula yang terkadang saya alami, ada laporan dari department lain bahwa database tidak
dapat diakses untuk input data maupun melihat data (database hanya diam tidak menunjukkan reaksi apapun juga).

Dan ini merupakan tanggung jawab seorang DBA untuk melakukan analisa serta mencari tahu apa permasalahannya.
Singkat cerita, saya langsung melakukan pemeriksaan dan berdasarkan pengalaman biasanya yang menyebabkan
hal ini adalah masalah di size, SGA memori, Object Lock, User Lock, dll.

Dari semua kemungkinan tersebut didapatkan bahwa permasalahan disebabkan oleh User Lock, maksudnya disini
ada user-user yang menggunakan resource pada database tetapi proses dari user tersebut terkunci oleh database
dan hal ini akan membuat database menjadi crash.

Technical Review :

1. Seperti biasa jalankan SQlplus dan login ke database dengan role DBA
2. Lihat field-field yang ada pada tabel sistem dba_locks

SQL> desc dba_locks;
Name Null? Type
----------------------------------------- -------- ----------------------------
SESSION_ID NUMBER
LOCK_TYPE VARCHAR2(26)
MODE_HELD VARCHAR2(40)
MODE_REQUESTED VARCHAR2(40)
LOCK_ID1 VARCHAR2(40)
LOCK_ID2 VARCHAR2(40)
LAST_CONVERT NUMBER
BLOCKING_OTHERS VARCHAR2(40)

3. Lihat session-session pada database yang memiliki kemungkinan terkunci

SQL> select * from dba_locks where mode_held = ‘Exclusive’;

SESSION_ID LOCK_TYPE MODE_HELD MODE_REQUESTED LOCK_ID1 LOCK_ID2 LAST_CONVERT BLOCKING_OTHERS

3 Redo Thread Exclusive None 1 0 38934 Not Blocking
9 Transaction Exclusive None 196645 3730106 6714 Not Blocking
13 Transaction Exclusive None 1703965 3655 0 Not Blocking
13 Distributed Xaction Exclusive None 66 0 0 Not Blocking
274 Transaction Exclusive None 458799 2187103 7527 Blocking
282 Transaction Exclusive None 131115 3026301 5534 Not Blocking
329 Transaction Exclusive None 589833 2876171 4621 Not Blocking
377 Transaction Exclusive None 393240 2944259 4041 Not Blocking
467 Transaction Exclusive None 983041 12005 724 Not Blocking

9 rows selected.

Terlihat ada 9 session yang memiliki kemunginan dan kita lihat pada field BLOCKING_OTHERS, session yang sudah pasti terkunci
dan kemungkinan besar penyebab permasalahan ini. Dari data yang ada terlihat bahwa session dengan ID 274 memilki type transaksi
dan status ‘BLOCKING’

4. Dari sini kita lanjutkan dengan mencari siapa pemilik session ID tersebut, Lihat field-field pada
tabel sistem v$session

SQL> desc v$session;

SQL> select * from v$session where sid = ‘274’;

SADDR SID SERIAL# AUDSID PADDR USER# USERNAME STATUS SERVER SCHEMA# SCHEMANAME OSUSER PROCESS MACHINE TERMINAL
---------------- ---------- ---------- ---------- ---------------- ---------- ------------------------------ ---------- ---------- ---------------- ---------------- -------- -----
00000003C7E8B458 274 70 4700007 00000003C7CC8E88 795 XXXXX INACTIVE DEDICATED 795 XXXXX Gugun 5916:5248 DATABASE\GUNAWAN GUNAWAN

Ok...tidak semua data pada field di perlihatkan karena terlalu banyak dan juga user saya edit, tetapi ini sudah cukup untuk mendapatkan data yang diperlukan:

Dari data ini bisa terlihat bahwa status user ini Tidak Aktif/INACTIVE.

5. Langkah terakhir adalah kita ‘membunuh’ session yang tidak diperlukan ini,
dan parameter yang diperlukan adalah SID dan SADDR.

SQL> alter system kill session ‘274,00000003C7E8B458’; --> alter system kill session ‘SID,SADDR’;

Selesai....akhirnya database dapat berjalan lagi dengan lancar.

PS : 1. Sebelum kill session kita harus yakin bahwa session tersebut sudah tidak aktif
2. Setelah proses ini berjalan lakukan analisa mengapa session ini bermasalah agar tidak terulang kembali.

Senin, 08 Januari 2007

Resizing TableSpace on Oracle

Dear all lagi.........

Sesuai janji gw, gw bikin catatan kecil lagi...yang ini khusus ngebahas soal mengatasi ukuran tablespace yang kritis.
Masih ingatkan sama catatan gw yang terdahulu.

langsung aja maaaang....

Pertama2 kita check dengan script yang sudah kita bikin -->

the code :

## Cek TABLESPACE By Command Line Sql ##:

set linesize 128 echo off feedback on heading on verify off pagesize 35
col megs_alloc format 999,999,999 heading “MB ALLOC”
col megs_free format 999,999,999 heading “MB FREE”
col megs_used format 999,999,999 heading “MB USED”
col pct_free format 999 heading “% FREE”
col pct_used format 999 heading “% USED”
--col bsize format 99999 new_value bsize heading “BLOCK SIZE”

--set termout off
--select value bsize from v$parameter
--where name = ‘db_block_size’;
--set termout on

break on report skip 1
compute sum label “TOTAL” of megs_alloc on report
compute sum of megs_free on report
compute sum of megs_used on report

select c.tablespace_name,
round(a.bytes/1048576,2) megs_alloc,
round(b.bytes/1048576,2) megs_free,
round((a.bytes-b.bytes)/1048576,2) megs_used,
round(b.bytes/a.bytes * 100,2) pct_free,
round((a.bytes-b.bytes)/a.bytes,2) * 100 pct_used
from (select tablespace_name,
sum(a.bytes) bytes,
min(a.bytes) minbytes,
max(a.bytes) maxbytes
from sys.dba_data_files a
group by tablespace_name) a,
(select a.tablespace_name,
nvl(sum(b.bytes),0) bytes
from sys.dba_data_files a,
sys.dba_free_space b
where a.tablespace_name = b.tablespace_name (+)
and a.file_id = b.file_id (+)
group by a.tablespace_name) b,
sys.dba_tablespaces c
where a.tablespace_name = b.tablespace_name(+)
and a.tablespace_name = c.tablespace_name
union
select tablespace_name, round((sum(bytes_used) + sum(bytes_free)) / 1048576,2) meg_alloc,
round(sum(bytes_free) / 1048576,2) megs_free,
round(sum(bytes_used) / 1048576,2) megs_used,
round(sum(bytes_free) / (sum(bytes_used) + sum(bytes_free)) * 100,2) pct_free,
round(sum(bytes_used) / (sum(bytes_used) + sum(bytes_free)) * 100,2) pct_used
from v$temp_space_header
group by tablespace_name
order by tablespace_name;

terus kita running lewat sqlplus-->

SQL> @ c:\Data\script\mccserver\tablespacecheck.sql Tablespace Size

TABLESPACE_NAME MB ALLOC MB FREE MB USED % FREE % USED
----------------- ------------ ------------ ------------ ------ ------
CWMLITE 20 3 18 13 88
DRSYS 20 10 10 52 48
EXAMPLE 149 0 149 0 100
======================= potong ============
MAA_TRXP 12,048 255 11,793 2 98
MAA_TRXE 14,048 2,395 11,653 17 83
======================= potong ============
SYSTEM 560 135 425 24 76
TEMP 8,099 0 8,099 0 100
TOOLS 10 10 0 99 1
UNDOTBS1 5,951 5,477 474 92 8
USERS 25 24 1 98 3
======================= potong ============
XDB 38 38 0 100 0
------------ ------------ ------------
TOTAL 121,338 51,027 70,311

34 rows selected.

Disini terlihat ada 2 buah tablespace yang kritis(lebih dari 80%)....
Sekarang kita akan menambah size dari tablespace tersebut, oh iyah...semua command ini full dari sqlplus yah

langkah berikutnya adalah kita lihat dulu nama2 datafile dari tablespace yang akan kita resize (apa sih datafile?
cari tahu aja yah digoogle..atau tanya lagi ntar insya allah gw jawab)

SQL> select * from dba_data_files where tablespace_name = ‘MAA_TRXP’;

FILE_NAME
---------------------------------------
/m02/oradata/maa/maa_trxp01.dbf
/m02/oradata/maa/maa_trxp02.dbf
/m02/oradata/maa/maa_trxp03.dbf

3 rows selected.

hmmmm...ada yang kurang, apa yah? oh iya jumlah/size dari masing2 datafile belum tampak nih…

sekarang kita lihat field2 pada object datafile biar hasilnya spesifik:

SQL> desc dba_data_files;

Name
---------------------------------------
FILE_NAME
FILE_ID
TABLESPACE_NAME
BYTES
BLOCKS
STATUS
RELATIVE_FNO
AUTOEXTENSIBLE
MAXBYTES
MAXBLOCKS
INCREMENT_BY
USER_BYTES
USER_BLOCKS

SQL> select substr(file_name,1,50),sum(bytes) from dba_data_files where tablespace_name = ‘MAA_TRXP’
group by file_name;

SUBSTR(FILE_NAME,1,50) SUM(BYTES)
-------------------------------------------------- ----------
/m02/oradata/maa/maa_trxp01.dbf 5242880000
/m02/oradata/maa/maa_trxp02.dbf 5242880000
/m02/oradata/maa/maa_trxp03.dbf 2147483648

3 rows selected.

Sip...sekarang kita resize tablespace dengan membuat datafile yang baru.... sebenarnya penentuan besaran kapasitas
dari datafile ada analisa tersendiri tapi...seperti biasa akan dibahas pada catatan mengenai Database analysis...hehehe...ngeles.

SQL> alter tablespace maa_trxp add datafile ‘/m02/oradata/maa/maa_trxp04.dbf’ size 5000 M;

Tablespace altered.

Check lagi datafile pada tablespace yang bersangkutan:

SQL> select substr(file_name,1,50),sum(bytes) from dba_data_files where tablespace_name = ‘MAA_TRXP’
group by file_name;

SUBSTR(FILE_NAME,1,50) SUM(BYTES)
-------------------------------------------------- ----------
/m02/oradata/maa/maa_trxp01.dbf 5242880000
/m02/oradata/maa/maa_trxp02.dbf 5242880000
/m02/oradata/maa/maa_trxp03.dbf 2147483648
/m02/oradata/maa/maa_trxp04.dbf 5242880000

4 rows selected.

Nah loooh...dah nambah kan??? siipp, mission succesed.

Sekarang check tablespace-nya, dah ngga kritis lagi atau masih kritis.

SQL> @ c:\Data\script\mccserver\tablespacecheck.sql

Tablespace Size

TABLESPACE_NAME MB ALLOC MB FREE MB USED % FREE % USED
----------------- ------------ ------------ ------------ ------ ------
CWMLITE 20 3 18 13 88
DRSYS 20 10 10 52 48
EXAMPLE 149 0 149 0 100
======================= potong ============
MAA_TRXP 17,048 5,245 11,803 31 69
MAA_TRXE 14,048 2,395 11,653 17 83
======================= potong ============
SYSTEM 560 135 425 24 76
TEMP 8,099 0 8,099 0 100
TOOLS 10 10 0 99 1
UNDOTBS1 5,951 5,477 474 92 8
USERS 25 24 1 98 3
======================= potong ============
XDB 38 38 0 100 0
------------ ------------ ------------
TOTAL 121,338 51,027 70,311

34 rows selected.

Ok deh kaka...sip kan, sekarang dah 69%, dan untuk tablespace lainnya ngga perlu deh gw jelasin lagi step2-nya,
selain ngga perlu juga akan menambah pusing para pembaca sekalian...apalagi gw yang ngetik.... smile

Sabtu, 06 Januari 2007

Pemeriksaan Oracle Server

Dear all member...para modie n semua administrator.

Seperti biasa nih, gw mau bikin catatan kecil...dan catatan ini adalah mengenai bagaimana gw melakukan
pemeriksaan rutin terhadap server database gw.(mau cuti panjang nih...tapi gw tetep harus stand by jadi PIC...hik2)

Ok..langsung aja yah, hal-hal yang gw check adalah :
catt : Banyak yang gw edit yah...jangan protes....

1. Cek Utilization Memory

login as: xxxxxx
xxxxxx@192.xxx.0.xxx's password:
Last login: Wed Sep 26 15:22:58 2007 from xxx.17.xx.153
Sun Microsystems Inc. SunOS x.x Generic May 2002
Sun Fire V880 S/N xxxxxxx PT. xxxxx xxxx xxxxx 11/11/2003

# sar -r 10 5

SunOS FV880R x.x Generic_xxxxxx-08 sun4u 10/01/2007

12:14:14 freemem freeswap
12:14:24 180058 18268192
12:14:34 179741 18249747
12:14:44 179677 18286104
12:14:54 179346 18285995
12:15:04 178601 18249875

Average 179484 18267968

2. Cek Utilization Performance CPU

# sar -u 10 5

SunOS FV880R x.x Generic_xxxxxx-08 sun4u 10/01/2007

12:15:48 %usr %sys %wio %idle
12:15:58 10 2 17 71
12:16:08 1 1 4 95
12:16:18 1 1 8 90
12:16:28 13 4 8 75
12:16:38 43 17 25 15

Average 13 5 12 69

Note: Angka-angka tersebut boleh diubah-ubah sesuai kebutuhan yang mengartikan bahwa
setiap 10 detik akan tercatat sebanyak 5 kali

3. Cek Kapasitas Disk

# df -h

Filesystem size used avail capacity Mounted on
/dev/dck/c1t0d0s0 59G 2.2G 57G 4% /
/proc 0K 0K 0K 0% /proc
mnttab 0K 0K 0K 0% /etc/mnttab
fd 0K 0K 0K 0% /dev/fd
swap 8.7G 168K 8.7G 1% /var/run
swap 8.7G 2.1M 8.7G 1% /tmp
/dev/dck/c1t1d0s6 67G 22G 45G 33% /m01
/dev/dck/c1t2d0s6 67G 29G 37G 45% /m02
/dev/dck/c1t4d0s6 67G 31G 36G 46% /m04
/dev/dck/c1t5d0s6 67G 25G 42G 38% /m05
/dev/dck/c1t3d0s6 67G 37G 30G 56% /m03

4. Cek Tablespace dari database --> ini nih yang penting banget, karena kalau diabaikan bisa ngga running tuh database.

pertama2 kita bikin script dulu, beri nama tablespacecheck.sql:

## Cek TABLESPACE By Command Line Sql ##:

set linesize 128 echo off feedback on heading on verify off pagesize 35
col megs_alloc format 999,999,999 heading "MB ALLOC"
col megs_free format 999,999,999 heading "MB FREE"
col megs_used format 999,999,999 heading "MB USED"
col pct_free format 999 heading "% FREE"
col pct_used format 999 heading "% USED"
--col bsize format 99999 new_value bsize heading "BLOCK SIZE"

--set termout off
--select value bsize from v$parameter
--where name = 'db_block_size';
--set termout on

break on report skip 1
compute sum label "TOTAL" of megs_alloc on report
compute sum of megs_free on report
compute sum of megs_used on report

select c.tablespace_name,
round(a.bytes/1048576,2) megs_alloc,
round(b.bytes/1048576,2) megs_free,
round((a.bytes-b.bytes)/1048576,2) megs_used,
round(b.bytes/a.bytes * 100,2) pct_free,
round((a.bytes-b.bytes)/a.bytes,2) * 100 pct_used
from (select tablespace_name,
sum(a.bytes) bytes,
min(a.bytes) minbytes,
max(a.bytes) maxbytes
from sys.dba_data_files a
group by tablespace_name) a,
(select a.tablespace_name,
nvl(sum(b.bytes),0) bytes
from sys.dba_data_files a,
sys.dba_free_space b
where a.tablespace_name = b.tablespace_name (+)
and a.file_id = b.file_id (+)
group by a.tablespace_name) b,
sys.dba_tablespaces c
where a.tablespace_name = b.tablespace_name(+)
and a.tablespace_name = c.tablespace_name
union
select tablespace_name, round((sum(bytes_used) + sum(bytes_free)) / 1048576,2) meg_alloc,
round(sum(bytes_free) / 1048576,2) megs_free,
round(sum(bytes_used) / 1048576,2) megs_used,
round(sum(bytes_free) / (sum(bytes_used) + sum(bytes_free)) * 100,2) pct_free,
round(sum(bytes_used) / (sum(bytes_used) + sum(bytes_free)) * 100,2) pct_used
from v$temp_space_header
group by tablespace_name
order by tablespace_name;

terus kita running lewat sqlplus-->

SQL> @ c:\Data\script\mccserver\tablespacecheck.sql

Tablespace Size

TABLESPACE_NAME MB ALLOC MB FREE MB USED % FREE % USED
----------------- ------------ ------------ ------------ ------ ------
CWMLITE 20 3 18 13 88
DRSYS 20 10 10 52 48
EXAMPLE 149 0 149 0 100
======================= potong ============
MAA_TRXP 12,048 255 11,793 2 98
MAA_TRXE 14,048 2,395 11,653 17 83
======================= potong ============
SYSTEM 560 135 425 24 76
TEMP 8,099 0 8,099 0 100
TOOLS 10 10 0 99 1
UNDOTBS1 5,951 5,477 474 92 8
USERS 25 24 1 98 3
======================= potong ============
XDB 38 38 0 100 0
------------ ------------ ------------
TOTAL 121,338 51,027 70,311


34 rows selected.

uuuppsss....ternyata ada tablespace yang kritis, penggunaan diatas 80% itu sudah kritis. Jadi gimana solusinya?
nanti gw tulis lagi catatan yang khusus ngebahas ini, kira2 title catatannya Resizing Tablespace on Oracle.. :)

Nah...terakhir adalah kita check Locking Object yang dapat membuat performance database jadi down..

5. ## Cek Locking Object yang dapat membuat applikasi Database menjadi lambat.by sql #

SQL> select * from v$locked_object;

XIDUSN XIDSLOT XIDSQN OBJECT_ID SESSION_ID ORACLE_USERNAME OS_USER_NAME PROCE
-------- ---------- ---------- ---------- ---------- -------------------- --------------
1 46 2197363 30223 307 XXXXXXX XXX 42933008
5 36 2739445 3255683 65 XXXXXXX XXX 4752:604

Ternyata ada 2 object yang membuat aplikasi database jadi lambat...solusinya....itu ada pembahasan khusus dibagian
Performance Tuning, tapi kalau darurat sih, bisa langsung di Kill aja tuh proses. hehehe.... :)

OK...deh pemeriksaan selesai, ini sebagian kecil dari pemeriksaan rutin gw (jadi yang utama2nya aja)

Kamis, 04 Januari 2007

Membuat File Control Pada Oracle 10g

gw curhat dikit nih man....pas gw mo mounted dan opened DB gw..ternyata si oracle nampilin message kl database gw mengalami inconsistensi antara file control01.ctl dan control02.ctl…

SQL*Plus: Release 10.1.0.3.0 - Production on Thu Jan 4 11:01:12 2007

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

SQL> Connected.
SQL> SQL> ALTER DATABASE mount
*
ERROR at line 1:
ORA-00214: controlfile ‘/app/oracle/oradata/cad2006/control02.ctl’ version
14033 inconsistent with file ‘/app/oracle/oradata/cad2006/control01.ctl’
version 14030

Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options

apaan tuh file control01.ctl....? tanya dong kl penasaran ntar gw jawab deh!!!

Mana gw belom bikin backup controlfile pula…
walhasil gw bikin ulang deh file-file tersebut, gini nih caranya..:

CREATE CONTROLFILE REUSE DATABASE “cad2006” NORESETLOGS NOARCHIVELOG
MAXLOGFILES 50
MAXLOGMEMBERS 3
MAXDATAFILES 300
MAXINSTANCES 8
MAXLOGHISTORY 500
LOGFILE
GROUP 1 ‘/app/oracle/oradata/cad2006/redo01.log’ SIZE 1M,
GROUP 2 ‘/app/oracle/oradata/cad2006/redo02.log’ SIZE 1M,
GROUP 3 ‘/app/oracle/oradata/cad2006/redo03.log’ SIZE 1M
DATAFILE
‘/app/oracle/oradata/cad2006/sysaux01.dbf’ SIZE 210M,
‘/app/oracle/oradata/cad2006/system01.dbf’ SIZE 440M,
‘/app/oracle/oradata/cad2006/temp01.dbf’ SIZE 20M,
‘/app/oracle/oradata/cad2006/undotbs01.dbf’ SIZE 25M,
‘/app/oracle/oradata/cad2006/users01.dbf’ SIZE 5M;

Untuk lebih amannya lakukan backup terhadap file control secara rutin.