ASM là viết tắt của “Automatic Storage Management” trong hệ thống quản lý cơ sở dữ liệu của Oracle. ASM là một công nghệ của Oracle Database được thiết kế để quản lý lưu trữ dữ liệu cơ sở dữ liệu một cách tự động và hiệu quả.
Dưới đây là một số điểm quan trọng về ASM:
Quản lý ổ đĩa: ASM quản lý lưu trữ dữ liệu bằng cách tự động phân phối dữ liệu trên các ổ đĩa vật lý. Nó tự động cân bằng tải và quản lý việc sao lưu dữ liệu.
Tối ưu hóa hiệu suất: ASM được thiết kế để tối ưu hóa hiệu suất của cơ sở dữ liệu. Nó có khả năng phân chia dữ liệu và I/O một cách cân bằng trên các ổ đĩa để đảm bảo tốc độ truy xuất dữ liệu cao.
Bảo đảm tính sẵn sàng và bảo đảm lỗi: ASM cung cấp các tùy chọn bảo đảm lỗi cho dữ liệu. Bạn có thể cấu hình các tùy chọn như NORMAL REDUNDANCY hoặc HIGH REDUNDANCY để đảm bảo rằng dữ liệu được sao lưu và bảo vệ đúng cách.
Tích hợp với Oracle Database: ASM là một phần của Oracle Database và được tích hợp chặt chẽ với cơ sở dữ liệu Oracle. Nó là một phần quan trọng của Oracle Grid Infrastructure và giúp quản lý lưu trữ cho cơ sở dữ liệu Oracle.
Dễ quản lý: ASM cung cấp các công cụ quản lý và giám sát đơn giản, giúp quản trị viên dễ dàng quản lý lưu trữ dữ liệu.
ASM giúp cải thiện tính sẵn sàng, hiệu suất và quản lý lưu trữ dữ liệu trong môi trường Oracle Database, đặc biệt là trong các hệ thống có nhu cầu lưu trữ dữ liệu lớn và đòi hỏi tính ổn định cao.
Dưới đây là cách ASM ứng phó khi một ổ đĩa vật lý bị hỏng:
Redundancy Levels (Mức độ Bảo đảm lỗi): Khi bạn tạo một disk group ASM, bạn có thể cấu hình mức độ bảo đảm lỗi (REDUNDANCY). Có một số cấu hình khác nhau, như NORMAL REDUNDANCY, HIGH REDUNDANCY và EXTERNAL REDUNDANCY, mỗi cấu hình cung cấp mức độ bảo đảm lỗi khác nhau.
External REDUNDANCY (Không có bảo đảm): Đây là mức độ bảo đảm lỗi thấp nhất. Trong chế độ này, ASM không cung cấp sự bảo đảm lỗi cho dữ liệu. Dữ liệu không được sao lưu tự động bởi ASM. Bạn cần phải tự quản lý và bảo đảm tính sẵn sàng và bảo đảm lỗi của dữ liệu bằng các giải pháp bên ngoài.
Normal REDUNDANCY (Bảo đảm bình thường): Trong chế độ này, ASM cung cấp sự bảo đảm lỗi cho dữ liệu bằng cách sao lưu dữ liệu trên nhiều ổ đĩa ASM. Thông thường, dữ liệu được sao lưu hai lần (mirrored) để đảm bảo rằng nếu một ổ đĩa bị hỏng, dữ liệu vẫn có thể truy cập từ bản sao lặp lại trên các ổ đĩa khác. => Lưu data 2 lần trên các đĩa khác nhau
High REDUNDANCY (Bảo đảm cao): Chế độ này tăng mức bảo đảm lỗi lên một bậc cao hơn so với chế độ NORMAL REDUNDANCY. Dữ liệu được lặp lại trên nhiều ổ đĩa ASM hơn để tăng cường khả năng bảo đảm lỗi. Dữ liệu được sao lưu nhiều lần (mirror) hơn, tiêu tốn nhiều không gian hơn so với NORMAL REDUNDANCY. => Lưu data 3 lần trên các đĩa khác nhau
Unprotected REDUNDANCY (Bảo đảm không bảo vệ): Chế độ này không sao lưu dữ liệu và chỉ sử dụng một ổ đĩa để lưu trữ dữ liệu. Không có bảo đảm lỗi trong trường hợp ổ đĩa bị hỏng.
ASM Disk: Là các ổ đĩa vật lý được quản lý bởi ASM. Những ổ đĩa này thường là các phân vùng hoặc thiết bị lưu trữ như ổ đĩa cứng, ổ đĩa SSD hoặc Logical Unit Numbers (LUNs) từ bộ lưu trữ ngoài.
ASM Diskgroup: Là một khái niệm trừu tượng được sử dụng để tổ chức và quản lý các ASM disk. Một diskgroup là một nhóm các ASM disk có cùng một mức độ hiệu suất và bảo mật, và được sử dụng để lưu trữ dữ liệu cơ sở dữ liệu Oracle.
Khởi tạo và quản trị:
Thư viện tạo đĩa ASM: oracleasm-support.x86_64
Install: yum install oracleasm-support.x86_64 -y
Tổ chức cấu tạo ASM disk như sau: Đĩa vật lý => ASM disk => ASM disk group (DG)
Diskgroup là tổ hợp của nhiều disk ASM được tạo từ disk vật lý, dữ liệu được ASM quản lý lưu trữ phân tán trên nhiều đĩa khác nhau để đảm bảo tăng tốc độ truy xuất và xử lý cùng lúc, và có thể được lưu trữ dưới dạng nhiều bản sao trên cùng một diskgroup gọi là các chế độ redundancy (dư thừa, bản sao dữ liệu)
Thủ tục tạo ASM disk group:
Fomart đĩa cứng vật lý và tạo phân vùng partition cho nó
fdisk /dev/sdb
Cài đặt thư viện oracleasm:
oracleasm configure -i
Nhập thông tin user và group quản trị ASM:
oracle
oinstall
y
y
Kiểm tra status và init asm service:
oracleasm status oracleasm init oracleasm status
Tạo đĩa asm:
oracleasm createdisk data1 /dev/sdb1 oracleasm createdisk data2 /dev/sdc1 oracleasm createdisk data3 /dev/sdd1 oracleasm createdisk data4 /dev/sde1
Kiểm tra và check đĩa sau khi tạo:
oracleasm listdisks oracleasm scandisks
Kiểm tra xem đĩa vật lý nào đang được mapping vào ASM disk nào:
oracleasm querydisk /dev/sdb1
Ngoài ra còn một số lệnh kiểm tra khác:
oracleasm status
…deletedisk
…renamedisk
… listiids
Oracle khuyến cáo nên có ít nhất 4 đĩa vật lý cho ASM diskgroup để có thể tối ưu và tăng tốc truy vấn.
Tạo ASM diskgroup từ ASM disk đã được tạo:
Login với quyền sysASM (nhớ tạo biến môi trường và các thông số ASM home)
sqlplus / as sysasm create diskgroup data2222 external redundancy disk '/dev/oracleasm/disks/data1', '/dev/oracleasm/disks/data2' ;
Chế độ redundancy: HIGH, NORMAL, EXTERNAL
External: cần ít nhất có 1 asm disk
Normal cần ít nhất có 2 asm disk (2 bản sao data)
High cần ít nhất 3 asm disk (3 bản sao data)
Kiểm tra trạng thái của diskgroup
select name, state, type, total_mb, free_mb from v$asm_diskgroup;
Xoá Diskgroup:
drop diskgroup data including contents;
Thêm disk vào diskgroup:
alter diskgroup data add disk '/dev/rdsk/c0t4d0s2' name a5, '/dev/rdsk/c0t5d0s2' name a6, '/dev/rdsk/c0t6d0s2' name a7, '/dev/rdsk/c0t7d0s2' name a8; alter diskgroup data2222 add disk '/dev/oracleasm/disks/DUONG6'; alter diskgroup data2222 add disk '/dev/oracleasm/disks/DUONG5' name nana;
Xoá asm disk khỏi Diskgroup:
alter diskgroup data drop disk ten_disk; alter diskgroup data2222 drop disk 'duong6'; alter diskgroup data2222 drop disk 'nana';
Tạo đường dẫn, thư mục trong Diskgroup:
alter diskgroup data add directory '+data/mydir'
Xoá đường dẫn:
alter diskgroup data drop directory '+data/mydir'
Xoá file trong Diskgroup:
alter diskgroup data drop file '+data/thread_1_seq_57.333.741349511'
Sao chép dữ liệu trong diskgroup:
alter diskgroup fra22 move data to data2222;
Thủ tục thay đổi kiểu redundancy của diskgroup:
Diskgroup sau khi đã tạo ra thì không thể thay đổi kiểu redundancy được => nếu muốn thay đổi thì chúng ta có 2 cách:
- Tạo mới diskgroup với redundancy mong muốn và chuyển dữ liệu hiện có sang diskgroup này => sau đó xoá diskgroup cũ đi.
- Backup data hiện có sau đó xoá diskgroup và tạo mới diskgroup với redundancy mong muốn.
Một số lệnh giám sát thông tin ASM:
select name,state,type,total_mb,free_mb from v$asm_diskgroup; select name,path,group_number from v$asm_disk; select name,state,total_mb,free_mb from v$asm_disk;