Thứ Tư, 29 tháng 8, 2018

Quản lý Oracle ASM Diskgroup

Mục đích: Quản lý Oracle ASM Diskgroup 

1. Format phân vùng mới cho ASM
-- Solaris: Sau khi format, phân vùng u02 định dạng cho ASM.

Part      Tag    Flag     Cylinders        Size            Blocks
  0       root    wm       0 -   34      131.25MB    (35/0/0)     268800
  1       swap    wu      35 -   69      131.25MB    (35/0/0)     268800
  2     backup    wu       0 - 2727        9.99GB    (2728/0/0) 20951040
  3 unassigned    wm       0               0         (0/0/0)           0
  4 unassigned    wm       0               0         (0/0/0)           0
  5 unassigned    wm       0               0         (0/0/0)           0
  6        usr    wm      70 - 2727        9.73GB    (2658/0/0) 20413440
  7 unassigned    wm       0               0         (0/0/0)           0

--Linux: Sau khi format, scan lại
# /etc/init.d/oracleasm createdisk DATA02 /dev/mapper/mpathagp1
Marking disk "DATA02" as an ASM disk: [ OK ]

-- Thực hiện scandisk trên tất cả các node (nếu dùng RAC)

/etc/init.d/oracleasm scandisks

-- Kiểm tra đảm bảo đĩa DATA02 được tạo
/etc/init.d/oracleasm listdisk
2. Tạo diskgroup mới
Có 3 loại diskgroup:

- NORMAL REDUNDANCY - mirror 2 chiều (1 block được ghi vào 2 group LUN), yêu cầu phải có 2 failure groups, dung lượng sử dụng được 1/2 (VD 4 đĩa * 1TB thì dùng được 2TB), thường dùng cho DB Core, thật quan trọng

- HIGH REDUNDANCY - mirror 3 chiều (1 block được ghi vào 3 group LUN), yêu cầu 3 failure groups, dung lượng sử dụng được 1/3 (VD 6 đĩa * 1TB thì dùng được 2TB)

- EXTERNAL REDUNDANCY - Không mirror dữ liệu, để bảo vệ dữ liệu chúng ta sẽ dùng RAID cứng (RAID 1 hoặc RAID 5) , thường dùng lưu DB

Ví dụ: 

--HIGH REDUNDANCY
SQL-ASM> CREATE DISKGROUP CRS HIGH REDUNDANCY
 FAILGROUP controller1 DISK
   '/dev/rdsk/c5t60060E8005BD23000000BD2300000050d0s0' NAME DATA_a0000
 FAILGROUP controller2 DISK
   '/dev/rdsk/c5t60060E8005BD23000000BD2300000050d0s0' NAME DATA_b0000
 FAILGROUP controller3 DISK
   '/dev/rdsk/c5t60060E8005BD23000000BD2300000050d0s0' NAME DATA_c0000
  ATTRIBUTE 'au_size'='4M',
    'compatible.asm' = '11.2',
    'compatible.rdbms' = '11.2',
    'compatible.advm' = '11.2';

--NORMAL REDUNDANCY
SQL-ASM> CREATE DISKGROUP data NORMAL REDUNDANCY
 FAILGROUP controller1 DISK
   '/dev/rdsk/c5t60060E8005BD23000000BD2300000050d0s0' NAME DATA_a0000,
   '/dev/rdsk/c5t60060E8005BD23000000BD2300000030d0s0' NAME DATA_a0001,
    '/dev/rdsk/c5t60060E8005BD23000000BD2300000023d0s0' NAME DATA_a0002,
    '/dev/rdsk/c5t60060E8005BD23000000BD2300000021d0s0' NAME DATA_a0003
 FAILGROUP controller2 DISK
   '/dev/rdsk/c5t60060E8005BD23000000BD2300000050d0s0' NAME DATA_b0000,
   '/dev/rdsk/c5t60060E8005BD23000000BD2300000030d0s0' NAME DATA_b0001,
    '/dev/rdsk/c5t60060E8005BD23000000BD2300000023d0s0' NAME DATA_b0002,
    '/dev/rdsk/c5t60060E8005BD23000000BD2300000021d0s0' NAME DATA_b0003
  ATTRIBUTE 'au_size'='4M',
    'compatible.asm' = '11.2',
    'compatible.rdbms' = '11.2',
    'compatible.advm' = '11.2';

CREATE DISKGROUP DATA NORMAL REDUNDANCY
  FAILGROUP failure_group_1 DISK
    '/devices/diska1' NAME diska1,
    '/devices/diska2' NAME diska2
  FAILGROUP failure_group_2 DISK
    '/devices/diskb1' NAME diskb1,
    '/devices/diskb2' NAME diskb2;
-EXTERNAL REDUNDANCY
SQL-ASM> CREATE DISKGROUP data EXTERNAL REDUNDANCY
   '/dev/rdsk/c5t60060E8005BD23000000BD2300000050d0s0' NAME DATA_a0000,
   '/dev/rdsk/c5t60060E8005BD23000000BD2300000030d0s0' NAME DATA_a0001,
    '/dev/rdsk/c5t60060E8005BD23000000BD2300000023d0s0' NAME DATA_a0002,
    '/dev/rdsk/c5t60060E8005BD23000000BD2300000021d0s0' NAME DATA_a0003
  ATTRIBUTE 'au_size'='4M',
    'compatible.asm' = '11.2',
    'compatible.rdbms' = '11.2',
    'compatible.advm' = '11.2';
3. Thêm DISK vào diskgroup
SQL-ASM> ALTER DISKGROUP data ADD DISK
'/dev/rdsk/c5t60060E8005BD23000000BD2300000030d0s0' NAME DATA_0001,
'/dev/rdsk/c5t60060E8005BD23000000BD2300000023d0s0' NAME DATA_0002,
 '/dev/rdsk/c5t60060E8005BD23000000BD2300000021d0s0' NAME DATA_0003;
-- Add đĩa và drop đĩa cùng lúc
alter diskgroup FRA
add disk
'/dev/rdsk/c4t600A0B800033696A0000240459093D02d0s6',
'/dev/rdsk/c4t600A0B800033695E00001F155909336Bd0s6',
'/dev/rdsk/c4t600A0B800033696A00002406590A8852d0s6',
'/dev/rdsk/c4t600A0B800033695E00001F17590A7EBAd0s6'
drop disk FRA_0000
rebalance power 6 nowait;

--Check đĩa mới vừa được thêm vào ASM Diskgroup

set lines 999;
col diskgroup for a15
col diskname for a15
col path for a35
select a.name DiskGroup,b.name DiskName, b.total_mb, (b.total_mb-b.free_mb) Used_MB, b.free_mb,b.path,b.header_status
from v$asm_disk b, v$asm_diskgroup a
where a.group_number (+) =b.group_number
order by b.group_number,b.name;

4. Drop/Undrop diskgroup, disk
·         Xóa disk khỏi diskgroup
SQL-ASM> ALTER DISKGROUP data DROP DISK DATA_0003;
SQL-ASM> alter diskgroup RECO_GOLD drop   disk RECO_GOLD_CD_02_GOLDCEL04 force;
·         Xóa diskgroup
SQL-ASM> DROP DISKGROUP disk_group_1 INCLUDING CONTENTS;
(C2: esmca --> Diskgroup --> Chọn diskgroup, chuột phải --> Drop)

·         Hủy thao tác DROP / Thêm đĩa

·         Mệnh đề UNDROP DISKS trong câu lệnh ALTER DISKGROUP cho phép bạn bỏ qua tất cả các đĩa đang trong quá trình chờ giải tuyết hủy bỏ đĩa trong group.

·         Nếu một hoạt động hủy bỏ đĩa không thành công, thì câu lệnh không được khôi phục

SQL>  ALTER DISKGROUP DATA  DROP DISK DATA_0002;
Diskgroup altered.

DG_NAME    DG_STATE   TYPE   NAME     DSK_NO MOUNT_S HEADER_STATU MODE_ST STATE    PATH                 FAILGROUP
---------- ---------- ------ ---------- ------- ------- ------------ ------- -------- ------------------------------ ---------------
DATA       MOUNTED    NORMAL DATA_0000          0 CACHED    MEMBER         ONLINE  NORMAL   /dev/asmdisk1_udev_sdb1         DATA_0000
DATA       MOUNTED    NORMAL DATA_0001          1 CACHED    MEMBER         ONLINE  NORMAL   /dev/asmdisk1_udev_sdc1         DATA_0001
DATA       MOUNTED    NORMAL DATA_0002          2 CACHED    MEMBER         ONLINE  DROPPING /dev/asm_data_10G_disk2         DATA_0002
DATA       MOUNTED    NORMAL DATA_0003          3 CACHED    MEMBER         ONLINE  NORMAL   /dev/asm_data_10G_disk3         DATA_0003
DISK_GRP               GROUP_NUMBER OPERA EST_MINUTES
------------------------------ ------------ ----- -----------
DATA                      1 REBAL       14

SQL> ALTER DISKGROUP data UNDROP DISKS;
Diskgroup altered.

G_NAME    DG_STATE   TYPE   NAME     DSK_NO MOUNT_S HEADER_STATU MODE_ST STATE    PATH                 FAILGROUP
---------- ---------- ------ ---------- ------- ------- ------------ ------- -------- ------------------------------ ---------------
DATA       MOUNTED    NORMAL DATA_0000          0 CACHED    MEMBER         ONLINE  NORMAL   /dev/asmdisk1_udev_sdb1         DATA_0000
DATA       MOUNTED    NORMAL DATA_0001          1 CACHED    MEMBER         ONLINE  NORMAL   /dev/asmdisk1_udev_sdc1         DATA_0001
DATA       MOUNTED    NORMAL DATA_0002          2 CACHED    MEMBER         ONLINE  NORMAL   /dev/asm_data_10G_disk2         DATA_0002
DATA       MOUNTED    NORMAL DATA_0003          3 CACHED    MEMBER         ONLINE  NORMAL   /dev/asm_data_10G_disk3         DATA_0003
DISK_GRP               GROUP_NUMBER OPERA EST_MINUTES
------------------------------ ------------ ----- -----------
DATA                      1 REBAL        4
--> đĩa DATA_0002 được chuyển từ DROPPING sang NORMAL Sẽ mất 4 phút cho đến khi hoạt động của UNDROP kết thúc  

5. THAY ĐỔI DISK
-- Thay đổi kích thước một đĩa cụ thể.
SQL-ASM> ALTER DISKGROUP disk_group_1
  RESIZE DISK diska1 SIZE 100G;

-- Thay đổi kích thước tất cả các đĩa trong một nhóm thất bại.
SQL-ASM> ALTER DISKGROUP disk_group_1
  RESIZE DISKS IN FAILGROUP failure_group_1 SIZE 100G;

-- Thay đổi kích thước tất cả các đĩa trong một nhóm đĩa.
SQL-ASM> ALTER DISKGROUP disk_group_1
  RESIZE ALL SIZE 100G;

6. Cân bằng tải diskgroup
SQL-ASM> ALTER DISKGROUP DATA REBALANCE POWER 4;

SQL-ASM> select INST_ID, OPERATION, STATE, POWER, SOFAR, EST_WORK, EST_RATE, EST_MINUTES from GV$ASM_OPERATION;

SQL-ASM> ALTER DISKGROUP DATA REBALANCE POWER 1;

7. Mount/Unmount diskgroup
SQL-ASM> ALTER DISKGROUP ALL DISMOUNT;
SQL-ASM> ALTER DISKGROUP ALL MOUNT;
SQL-ASM> ALTER DISKGROUP disk_group_1 DISMOUNT;
SQL-ASM> ALTER DISKGROUP disk_group_1 MOUNT;

8. Khác
-- Kiểm tra dung lượng
asmcmd lsdg

-- Giám sát IO của diskgroup

 select

     '+'||g.name as diskgroup,

     s.bytes_read,

     s.reads/s.read_time as avg_read_time,

     s.bytes_written,

     s.writes/s.write_time as avg_write_time

  from

     v$asm_disk_stat s

     join

     v$asm_diskgroup g

     on s.group_number = g.group_number;

 

 

DISKGROUP  BYTES_READ AVG_READ_TIME BYTES_WRITTEN AVG_WRITE_TIME

---------- ---------- ------------- ------------- --------------

+DATA      7167120896       2.03586    1619842560     1.31321153

+REDO        43447808    .494166224     392464384     .541298912

+VOTE      6473881600       .865554    4196446720     1.83263873


Tag: Quản lý Oracle ASM Diskgroup 

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master