Oracleasmlib Kurulum ve Konfigürasyon

Oracleasmlib kütüphanesi ile ASM de kullanacağınız data grupları oluşturup oluşturduğunuz gruplara disk ekleyip çıkartma işlemi yapabilirsiniz.

İlk adım olarak oracle ASM kütüphanelerini aşağıdaki gibi kurabilirsiniz.

# yum install oracleasm-support
# yum install oracleasmlib

Kurulumun tamamlanmasının ardından oracleasm kütüphanesi aşağıdaki şekilde aktif edilmelidir. Aktif edildiği anda /dev dizini oracleasm dizini oluşacaktır.

# oracleasm init
 Creating /dev/oracleasm mount point: /dev/oracleasm
 Loading module "oracleasm": oracleasm
 Configuring "oracleasm" to use device physical block size
 Mounting ASMlib driver filesystem: /dev/oracleasm

Ardından disk grupları configure etmek için aşağıdaki komutu kullanabilirsiniz.

# oracleasm configure

Yeni bir disk grubu oluşturup ASM içerisinde kullanacağınız diskleri bu gruba aşağıdaki şekilde ekleyebilirsiniz.

# oracleasm createdisk DATA /dev/sde1
 Writing disk header: done
 Instantiating disk: done
# oracleasm createdisk RECO /dev/sdf1
 Writing disk header: done
 Instantiating disk: done

Disk gruplarının oluştuğu kontrolünü aşağıdaki şekilde yapabilirsiniz.

# oracleasm listdisks
 DATA
 RECO
# oracleasm querydisk -d DATA
 Disk "DATA" is a valid ASM disk on device [8,17]

Bu adımdan sonra grid infrastructure kurumuna başlayabilirsiniz.

Varolan disk grubuna yeni bir disk eklemek için aşağıdaki komutu kullanabilirsiniz (ASM profile’i set etmeniz gerekmektedir). Disk ekleme işini kurulum tamamlandıktan sonra asmca (Oracle ASM Configuration Assistant) ile de yapabilirsiniz.

$ sqlplus / as sysasm
SQL> ALTER DISKGROUP DATA ADD DISK '[DISK PATH]';
SQL> ALTER DISKGROUP DATA ADD DISK '/dev/sdg1';

Disk ekleme işlemini yaptıktan sonra rebalance işlemi yapılması gerekmektedir. Bu yazıda kurulum anlattığım için disklerin içerisi boş olacaktır. Bu nedenle rebalance işlemine gerek olmayabilir. Fakat disk grubunun içerisi dolu ise rebalance işlemi gereklidir.

Rebalance işlemleri için aşağıdaki yazıyı okuyabilirsiniz.

ASM rebalance işlemleri

Oracle Redo Log Switch Map

Oracle veritabanında redo logların saatlik kaç kez switch olduğu bilgisini aşağıdaki sql komutu kullanarak öğrenebilirsiniz.

set linesize 300
set pagesize 5000
column 00 format 999 heading "00"
column 01 format 999 heading "01"
column 02 format 999 heading "02"
column 03 format 999 heading "03"
column 04 format 999 heading "04"
column 05 format 999 heading "05"
column 06 format 999 heading "06"
column 07 format 999 heading "07"
column 08 format 999 heading "08"
column 09 format 999 heading "09"
column 10 format 999 heading "10"
column 11 format 999 heading "11"
column 12 format 999 heading "12"
column 13 format 999 heading "13"
column 14 format 999 heading "14"
column 15 format 999 heading "15"
column 16 format 999 heading "16"
column 17 format 999 heading "17"
column 18 format 999 heading "18"
column 19 format 999 heading "19"
column 20 format 999 heading "20"
column 21 format 999 heading "21"
column 22 format 999 heading "22"
column 23 format 999 heading "23"
column 24 format 999 heading "24"
column "Day" for a5
column INST_ID for a7
column DAY_S for a8
column date_s for a14
prompt
prompt Redo Log Switches
prompt
select
CASE INST_ID WHEN 1 THEN date_str END date_s,
to_char(INST_ID) INST_ID,
CASE INST_ID WHEN 1 THEN "Day" END day_s,
"00", "01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23"  from  (SELECT trunc (first_time) date_str,  INST_ID,
to_char (trunc (first_time),'Dy') "Day",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 0, 1)) "00",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 1, 1)) "01",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 2, 1)) "02",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 3, 1)) "03",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 4, 1)) "04",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 5, 1)) "05",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 6, 1)) "06",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 7, 1)) "07",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 8, 1)) "08",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 9, 1)) "09",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 10, 1)) "10",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 11, 1)) "11",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 12, 1)) "12",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 13, 1)) "13",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 14, 1)) "14",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 15, 1)) "15",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 16, 1)) "16",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 17, 1)) "17",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 18, 1)) "18",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 19, 1)) "19",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 20, 1)) "20",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 21, 1)) "21",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 22, 1)) "22",
sum (decode (to_number (to_char (FIRST_TIME, 'HH24')), 23, 1)) "23"
from gv$log_history
where trunc(first_time) > sysdate-30
group by INST_ID, trunc(first_time)
order by trunc(first_time) DESC, INST_ID );

Redo logların anlık durumlarını kontrol etmek için aşağıdaki komutu kullanabilirsiniz.

set linesize 2000
set pagesize 2000
col REDOLOG_FILE_NAME for a70
SELECT
    a.GROUP#,
    a.THREAD#,
    a.SEQUENCE#,
    a.ARCHIVED,
    a.STATUS,
    (a.BYTES/1024/1024) AS SIZE_MB,
    b.MEMBER    AS REDOLOG_FILE_NAME
FROM v$log a
JOIN v$logfile b ON a.Group#=b.Group#
ORDER BY 2, a.GROUP# ASC; 

Zaman içerisinde sql lerin devamını ekleyeceğim.