Pages

Sunday 8 September 2013

Install Apache 2.4.4 in RHEL 6.3

[root@localhost tmp]# mv apr-1.4.6 /tmp/httpd-2.4.4/srclib/apr
[root@localhost tmp]# apr-util-1.4.1 /tmp/httpd-2.4.4/srclib/apr-util

[root@localhost httpd-2.4.4]# ./configure --with-included-apr --disable-auth-basic --disable-cgi --disable-cgid --enable-cache --enable-deflate --enable-disk-cache --enable-expires --enable-headers --enable-file-cache --enable-mem-cache --enable-mime-magic --enable-proxy --enable-proxy-http --enable-rewrite --enable-so --enable-ssl --enable-unique-id --enable-vhost-alias --enable-usertrack

[root@localhost httpd-2.4.4]# make
[root@localhost httpd-2.4.4]# make install

[root@localhost httpd-2.4.4]# vi /etc/fstab

/usr/local/apache2      /etc/httpd              none    bind            0 0


[root@localhost httpd-2.4.4]# mount -a

[root@localhost httpd-2.4.4]# ln -s /usr/local/apache2/bin/apachectl /etc/init.d/httpd

Install PHP

[root@localhost php-5.4.15]# ./configure --enable-magic-quotes --enable-mbstring --enable-pdo --enable-sockets --enable-zip --enable-calendar --prefix=/usr/local/apache2/php --with-apxs2=/usr/local/apache2/bin/apxs --with-curl --with-curlwrappers --with-gd --with-mcrypt  --with-mime-magic --with-mysql --with-mssql=/usr/local/freetds --with-openssl --with-sqlite=shared --with-ttf --with-xmlrpc --with-zlib --with-pdflib --with-pdo-mysql --enable-bcmath

Wednesday 10 July 2013

ORA-00845: MEMORY_TARGET not supported on this system

Hari ni aku cuba tukar ASMM kepada AMM dalam Oracle DB 11G R1:


SQL> alter system set memory_max_target = 30G scope=spfile;
SQL> alter system set memory_target = 30G scope=spfile;
SQL> alter system set sga_target = 0 scope=spfile;
SQL> alter system set pga_aggregate_target = 0 scope=spfile;   
SQL> shutdown;
SQL> startup nomount;
ORA-00845: MEMORY_TARGET not supported on this system
 
Opss, masalah di atas adalah disebabkan oleh shared memory filesystem (shmfs) tak cukup saiz. Sebelum aku terlupa, OS yang digunakan adalah RHEL Enterprise 4 update 6, huhuh dah lama gila version ni.
 
Mula-mula login sebagai root dan semak filesystem:

[root@db ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda5              73G   39G   30G  57% /
/dev/sda1            1012M   45M  916M   5% /boot
none                   40G   20G   20G  50% /dev/shm
/dev/sda3              30G   14G   15G  48% /var
/dev/mapper/homevg-homevol
                      135G   28G  100G  22% /home
 

OOO patutlah, saiz /dev/shm yang masih available cuma 20G, tak cukup lagi 10G.

Buka fail /etc/fstab dan edit seperti berikut :

 none                    /dev/shm                tmpfs   defaults,size=60G        0 0

aku letak saiz 60G. Dah ubah sila save.

[root@db ~]# mount -o remount /dev/shm/

Kalau anda gunakan RAC, sila pastikan buat benda yang sama pada semua node (server).

Then cuba start semula :-

[root@ducaticj02 ~]# srvctl start database -d <nama database>

Itu ajer.

Monday 17 June 2013

Moving Table Partition to new Tablespace - Oracle DB

1) Move partitions (a PL/SQL loop)

ese are procedures I use within an anonymous block wrapper that defines a_tname, a_destTS, vTname, and vTspName - they should give you the general idea:

procedure mvTabPart (a_tname in varchar2, a_destTS in varchar2) is
cursor pCur(vTname varchar2, vTspName varchar2) is
  select table_name, partition_name
  from user_tab_partitions
  where table_name = vTname
      and tablespace_name not like vTspName
  order by partition_position desc;
begin
for pRow in pCur(a_tname, a_destTS) loop
 sqlStmnt := 'alter table '||pRow.table_name||
             ' move partition '||pRow.partition_name||
             ' tablespace '||a_destTS;
execute immediate sqlStmnt;
end loop;
end mvTabPart;
 
2) Set table default partition tablespace so new partitions are created there:
 
procedure setDefTabPart (a_tname in varchar2, a_destTS in varchar2) is
    cursor tCur(vTname varchar2) is
      select table_name
      from user_part_tables
      where table_name = vTname;
    begin
    for tRow in tCur(a_tname) loop
     sqlStmnt := 'alter table '||tRow.table_name||
                 ' modify default attributes '||
                 ' tablespace '||a_destTS;
    execute immediate sqlStmnt;
    end loop;
end setDefNdxPart;  

3) Set index default partition tablespace so new index partitions (if any) are created where you want them:

procedure setDefNdxPart (a_tname in varchar2, a_destTS in varchar2) is
cursor iCur(vTname varchar2) is
  select index_name
  from user_part_indexes
  where index_name in (select index_name
             from user_indexes where table_name = vTname);
begin
for iRow in iCur(a_tname) loop
 sqlStmnt := 'alter index '||iRow.index_name||
             ' modify default attributes '||
             ' tablespace '||a_destTS;
execute immediate sqlStmnt;
end loop;

end setDefNdxPart;
 
4) rebuild any partitioned indexes that need rebuilding and are not in the desired tablespace:
 
procedure mvNdxPart (a_tname in varchar2, a_destTS in varchar2) is
cursor ndxCur(vTname varchar2, vTspName varchar2) is
select i.index_name index_name, ip.partition_name partition_name
  from user_ind_partitions ip, user_indexes i
  where i.index_name = ip.index_name
     and i.table_name = vTname
     and i.partitioned = 'YES'
     and (ip.tablespace_name not like vTspName or ip.status not like 'USABLE')
  order by index_name, partition_name ;
begin
for ndxRow in ndxCur(a_tname, a_destTS) loop
 sqlStmnt := 'alter index '||ndxRow.index_name||
             ' rebuild partition '||ndxRow.partition_name||
             ' tablespace '||a_destTS;
execute immediate sqlStmnt ;
end loop;
end mvNdxPart;
 
5) Rebuild any global indexes
 
procedure mvNdx (a_tname in varchar2, a_destTS in varchar2) is
cursor ndxCur(vTname varchar2, vTspName varchar2) is
  select index_name
  from user_indexes
  where table_name = vTname
       and partitioned = 'NO'
       and (tablespace_name not like vTspName or status like 'UNUSABLE')
  order by index_name ;
begin
for ndxRow in ndxCur(a_tname, a_destTS) loop
 sqlStmnt := 'alter index '||ndxRow.index_name||
             ' rebuild tablespace '||a_destTS;
execute immediate sqlStmnt ;
end loop;
end mvNdx;  
 

Kenapa perlu ada banyak Tablespace - Oracle DB


You can use multiple tablespaces to perform the following tasks:
  1. Control disk space allocation for database data
  2. Assign specific space quotas for database users
  3. Control availability of data by taking individual tablespaces online or offline
  4. Perform partial database backup or recovery operations
  5. Allocate data storage across devices to improve performance

Wednesday 24 April 2013

Syamantec NetBackup - access to the client was not allowed (59)

Error access to the client was not allowed (59) adalah disebabkan netbackup client tak kenal netbackup server.

Troubleshoot

Dalam netbackup client :-
Windows:
Buka Backup and Restore (BAR) console. Pergi ke menu 'File' dan pilih 'Specify NetBackup Machines and Policy Type'.
Dekat drop down box ('Server to use for backups and restores') shows you the server list.
UNIX:
Semak fail /usr/openv/netbackup/bp.conf 

Penyelesaian

Windows:
click 'Edit Server List' dan tambah nama server yang hilang.
UNIX:
Tambah entry dalam bp.conf.
Sebagai contoh, kalau nama server netbackup tu 'yeti', masukkan dalam bp.conf baris berikut:
SERVER = YETI
Pastikan baris master server SERVER berada pada baris pertama.
kemudian, bukan fail /etc/hosts dan masukkan alamat IP serta nama master server tersebut.

Monday 22 April 2013

Linux - Re-Mount /etc/fstab Tanpa Perlu Restart

Kalau korang tambah entry baru dalam fail /etc/fstab sebab nak mount drive atau partition. Cara yang paling mudah nak mount tanpa perlu restart server adalah dengan command berikut :-

"mount -a"

itu saja :)

Monday 8 April 2013

vSphere - VLAN Trunking

So sekali lagi aku confuse masa mula-mula dulu, apa benda pulak VLAN Trunking? maksud Trunking pun aku tak paham.

Trunking ni sebenarnya istilah daripada Cisco, maksudnya kita gabungkan beberapa NIC menjadi satu group yang besar, maka kita akan dapat kelajuan yang besar bila digabungkan. Sebagai contoh, kalau kita ada 3 NIC dan setiap satunya berkelajuan 1GB sesaat, maka bila kita set trunking maka kita dapat kelajuan 3GB sesaat (secara kasarnya). 

Macam mana nak configure?

1) Bagi VLAN ID pada portgroup (dari 1 hingga 4094).
2) Set NIC teaming policy kepada Route based on originating virtual port ID.
3) Check sekurang-kurangnya ada satu network adapter dalam senarai Active Adapters.
4) Gunakan ping command untuk check sama konfigurasi VST berjalan.

kemudian minta Team Network korang untuk configure fizikal switch pulak :) sampai sini aku dah tak tau sebab aku tak pernah usik switch network kat opis aku ni.

vSphere - NPIV

Dulu masa aku mula baca pasal NPIV, jenuh juga nak paham, binatang apa NPIV ni? :)

NPIV atau N-Port ID Virtualization ni adalah bagaimana satu Fiber Channel Physical Port HBA menjadi satu fabric dengan menggunakan beberapa worldwide port name (WWPNs) atau boleh lah kita kata sebagai Virtual WWN.

Dalam istilah lain, kita boleh configure beberapa virtual HBA dalam satu unit fizikal HBA, dan dari situ kita boleh pecahkan WWN untuk setiap VM. Cuba bayangkan setiap VM ada WWN dia sendiri, biasanya kita dapat tengok dari datastore je.

NPIV ni hanya wujud kalau kita guna RDM, kalau korang guna VMFS atau VMDK jangan harap nak dapat tengok NPIV ni.

vSphere - RDM Compatibility Mode

Kita akan guna RDM (Raw Device Mapping) kalau VM memerlukan akses secara terus kepada storage, bukan datastore. Kalau datastore, kita akan guna sistem fail VMFS.

Biasanya kita guna RDM untuk buat cluster seperti OS clustering, MS Exchange clustering dan sebagainya. Senang cerita RDM ni untuk application yang kena ada cluster.

Ada dua jenis Mode untuk RDM iaitu Virtual dan Physical.

Virtual Mode

Virtual mode maksudnya kita akan map secara virtual keseluruhannya kepada device. Device ni maksudnya volume yang kita create dalam storage, apa benda pulak volume ni? Volume ni maksudnya macam partition yang kita buat dalam storage, atau nak lebih paham lagi macam partition C:\ atau D:\ dalam Windows. VMkernel hanya menghantar arahan READ dan WRITE kepada device. OS dalam VM akan nampak device ni sama macam fail virtual disk dalam VMFS volume.

Semua ciri-ciri atau features yang ada pada device tersebut akan hidden (tak nampak pada VM). Kelebihannya ialah kita akan dapat advanced file locking untuk perlindungan data snapshot untuk streamlining development process (tak reti nak translate). Virtual mode juga portable, boleh dipindahkan ke mana-mana VM dengan sesuka hati.

Physical Mode

Dalam mode ini, semua arahan SCSI dihantar terus kepada device oleh VMkernel. Kesemua ciri-ciri fizikal device akan dapat dilihat oleh VM. Nak senang cerita lagi, kita boleh run agen SAN Management atau lain-lain SCSI target-based software dalam VM. Physical Mode juga sesuai kalau nak buat clustering.





vSphere - Virtual Disk Independent Mode

Bila kita create virtual disk baru, kita akan diberi pilihan sama ada untuk create virtual disk secara independent mode atau tidak.

Kalau korang pilih Nonindependent mode, kesemua data akan disimpan secara kekal ke dalam disk tetapi korang akan ada pilihan untuk rollback kepada keadaan asal jika diperlukan. Inilah gunanya snapshot.

Terdapat dua pilihan jika memilih independent mode iaitu :-

1) Persistent
2) Nonpersistent

Persistent

Disk yang dibina dengan persistent mode akan bertindak seperti conventional disk drive atau seperti hard disk fizikal di dalam server. Semua data yang ditulis ke dalam disk akan disimpan secara kekal di dalamnya.

Mode jenis ini sesuai kalau kita nak simpan secara kekal seperti log files, database dan sebagainya.

Nonpersistent

Nonpersistent mode berlawanan dengan Persistent iaitu data yang ditulis ke dalam disk tidak akan disimpan secara kekal, data akan hilang sebaik sahaja VM ditutup atau reset.

Mode jenis ini sesuai kalau nak VM kekal seperti keadaan asal selepas ditutup atau reset, contohnya macam lab training, software testing dan sebagainya.

Linux - Beberapa NIC Dalam Satu Subnet Yang Sama

Pernah tak jadi bila kita letak beberapa NIC dalam server yang sama dan setiap NIC akan guna segmen yang sama juga?

Sebagai contoh :-

192.168.10.1192.168.10.2192.168.10.3192.168.10.4
eth0255.255.255.0
eth1255.255.255.0
eth2255.255.255.0
eth3255.255.255.0

/proc/sys/net/ipv4/conf/(eth0 || eth1)/arp_filter change the value to a 1 instead of 0.

ip route del default

route add default gw 192.168.1.1 dev eth1
route add default gw 192.168.1.1 dev eth0

ip route add 192.168.1.0/24 dev eth0 table 2
ip route add 0/0 via 192.168.1.1 dev eth0 table 2
ip rule add from 192.168.1.123 table 2
ip rule add to 192.168.1.123 table 2

ip route add 192.168.1.0/24 dev eth1 table 3
ip route add 0/0 via 192.168.1.1 dev eth1 table 3
ip rule add from 192.168.1.121 table 3
ip rule add to 192.168.1.121 table 3

echo 1 > /proc/sys/net/ipv4/conf/eth0/arp_filter
echo 1 > /proc/sys/net/ipv4/conf/eth1/arp_filter

Sunday 7 April 2013

vSphere - Virtual Machine Memory Overhead

Apakah yang dimaksudkan dengan memory overhead?

Setiap VM yang sedang aktif di dalam ESX Host menggunakan tambahan resource iaitu memory overhead disamping jumlah memory yang ditetapkan.Resource tambahan tersebut diperlukan oleh ESX Host untuk internal VMkernel datastucture seperti virtual machine frame buffer dan mapping table untuk memory translation (mapping fizikal memory dan virtual memory). Terdapat 2 jenis memory overhead iaitu :-

Static Overhead

Static overhead adalah overhead minimum yang diperlukan ketika virtual machine dihidupkan. DRS dan VMkernel menggunakan metrik ini untuk Kawalan Kemasukan dan Pengiraan VMotion. Host destinasi mesti mempunyai jumlah reservation resource dan static overhead yang sama untuk menghidupkan VM.

Dynamic Overhead

Sebaik sahaja VM dihidupkan, virtual machine monitor (VMM) akan meminta memory tambahan. VMM akan membuat permintaan resource tetapi VMkernel tidak diperlu untuk membekalkannya. Jika VMM tidak mendapat tambahan resource tersebut, VM akan masih berfungsi seperti biasa tetapi boleh menyebabkan penurunan prestasi. VMkernel memerlukan VM Memory Overhead Reservation sama seperti Memory Reservation dan tidak akan melepaskan memory ini sebaik sahaja digunakan.


Saturday 6 April 2013

vSphere - SCSI Controller

SCSI controller juga dikenali sebagai SCSI Adapter.

Terdapat 4 jenis SCSI Controller iaitu :-

1) BusLogic Parallel
2) LSI Logic Parallel
3) LSI Logic SAS
4) VMware Paravirtual

Setiap satunya mempunyai kelebihan dan kegunaan khusus tersendiri.


LSI Logic Parallel

Adaptor jenis ini adalah yang paling biasa digunakan kerana ianya compatible dengan mana-mana platform OS. Dahulunya dikenali sebagai LSI Logic sahaja. Tiada perbezaan yang ketara daripada segi prestasi dengan LSI Logic SAS.

Adaptor ini serasi digunakan untuk Windows 2003, Vista dan Linux.

LSI Logic SAS

Adaptor ini adalah generasi LSI yang baru. Ia juga dapat menyokong penggunan MSCS (Microsoft Cluster Service). Oleh kerana itu, ia sesuai digunakan bersama-sama platform Windows yang moden.

Adaptor ini serasi digunakan untuk Windows 2008, dan Windows 7.

BusLogic Parallel

Adaptor ini digunakan untuk menyokong platform yang lama seperti Windows 2000. Adapter ini tidak lagi digunakan secara meluas dan tidak lagi diselenggara. Adaptor ini boleh dikategorikan sebagai telah tamat tempoh / lupus.


Adaptor ini serasi digunakan untuk Windows 2000.


VMware Paravirtual (PVSCSI)

PVSCSI adalah high-performance storage adapter yang menghasilkan nilai throughout yang tinggi dan penggunaan CPU yang rendah. Ia sangat sesuai digunakan dalam persekitaran SAN dimana hardware dan aplikasi mempunyai nilai I/O throughput yang sangat tinggi. Namun begitu, PVSCSI tidak sesuai digunakan dalam persekitaran DAS (Direct Attached Storage).

Adaptor ini serasi digunakan untuk Windows 2003, Windows 2008 dan RHEL 5.

vSphere - CPU & Memory Reservation, Shares & Limits

Sebelum kita  pergi jauh, kita mesti tahu maksud Resources, Reservation, Shares dan Limits terlebih dulu.

Resources adalah CPU, Memory, Disk dan Network. Ia dibekalkan oleh ESX Host dan digunakan oleh VM. Jika ESX Host adalah cluster, maka cluster tersebut boleh kita panggil resource provider.

Setiap VM akan diberikan Memory dan CPU resources, terdapat 3 setting yang boleh mempengaruhi sebanyak mana VM akan dapat jumlah Memory dan CPU resources.
 
Reservation adalah jumlah resources yang dijamin akan diberikan kepada VM atau resource pool.

Terdapat perbezaan maksud Reservation dan Using. VM mungkin boleh menggunakan resource melebihi atau kurang daripada reservation resource yang diperuntukkan. Dan juga, jika VM tidak menggunakan kesemua resource yang diberikan (reservation), ia boleh berkongsi CPU dengan VM lain tetapi tidak untuk RAM. Oleh itu, bolehlah dikatakan bahawa CPU reservation lebih fleksibel berbanding Memory Reservation.

Jika VM mempunyai Reservation, ESX Host mesti mempunyai sekurang-kurangnya jumlah resource yang tidak digunakan (unused) dan bukan Reservation untuk VM lain bersamaan dengan jumlah Reservation yang diberikan. Jika tidak, VM tidak boleh dihidupkan. Resource tidak boleh diperuntukkan (reserve) kepada lebih satu entiti pada satu-satu masa.

Lihat contoh di bawah :-


ESX host mempunyai 16 GHz (= 8 x 2 GHz cores) dan 16 GB RAM.
VM-1 and VM-2 masing-masing mempunyai 8 vCPUs dan 16 GB vRAM.
VM-1 dijamin mempunyai 13 GHz CPU dan 10 GB Memory.
VM-1 sedang menggunakan 11 GHz CPU dan 9 GB Memory.  (Ingat! Menggunakan != Reserve)

Akibatnya

VM-2 boleh menggunakan CPU sehingga 5 GHz. (bukan 3 GHz, CPU reservations lebih fleksibel)
VM-2 boleh dijamin (reserve) sehingga 3 GHz.(Reservations tidak boleh bertindih dengan reservation entiti lain)
VM-2 boleh menggunakan Memory sehingga 6 GB. (bukan 7 GB. Memory reservations tidak fleksibel)
VM-2 boleh dijamin (reserve) sehingga 6 GB. (Reservations tidak boleh bertindih dengan reservation entiti lain)

Jika VM-2 mempunyai 7GB reservation, ia tidak boleh dihidupkan kerana telah melebihi jumlah fizikal Memory ditolak dengan jumlah reservation VM-1 (16 - 10 = 6, tidak cukup 1GB).

Limit adalah jumlah had maksimum yang diberikan kepada VM. Server boleh memperuntukkan lebih banyak Memory/CPU daripada jumlah Reservation tetapi tidak boleh melebihi Limit.

Shares adalah nisbah berapa banyak VM akan mendapat resource jika berlaku persaingan untuk mendapatkan resource diantara VM. Shares hanya terpakai untuk VM yang berada pada hirarki yang sama atau berada pada parent resource pool yang sama.

vSphere - Apakah maksud "passthrough" dalam Hardware Advance Setting?

Pada Hardware Advanced Settings, configure 'pass through' untuk membolehkan virtual machine berkomunikasi secara terus dengan host. Hanya hardware yang support sahaja boleh digunakan, dan hanya jika betul-betul perlu saja.

Perlu diingatkan disini, bahawa jika anda memilih hardware tersebut, ia hanya boleh digunakan oleh VM yang connect kepadanya sahaja. Ini bermaksud, hardware tersebut tidak lagi boleh digunakan oleh VM lain.

Maksudnya disini ialah "hanya jika anda boleh set hardware kepada satu VM, tak bermakna anda memerlukannya".