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