Thứ Bảy, 11 tháng 1, 2020

Quy trình vận hành cơ sở dữ liệu Oracle - 3.Hướng dẫn kiểm tra lỗi lock bảng và tồn session

1 Tiếp nhận yêu cầu

    DBA tiếp nhận phản ánh về các vấn đề liên quan đến lock session: import vào bảng chậm, delete dữ liệu từ bảng chậm, update dữ liệu vào bảng chậm hay thay đổi cấu trúc bảng không thành công. Với phạm vi những phản ánh này không có yêu cầu cụ thể về biểu mẫu, DBA có trách nhiệm phối hợp với nhân viên quản trị ứng dụng từ các phòng, ban để xử lý:
    + Từ các phòng sử dụng cơ sở dữ liệu
    + Từ cảnh báo tinh nhắm qua SMS
    + Từ các công cụ monitor

2 Kiểm tra DB

    Kiểm tra số lượng session active và inactive
-   Dùng câu lệnh sau để kiểm tra session active <--- Rất quan trọng
select   username, machine, status,server, count (*)
from v$session
where status = 'ACTIVE'
group by username, machine, status, server
order by count (*) desc;

-   Dùng câu lệnh sau để kiểm tra session inactive
select   username, machine, status,server, count (*)
from v$session
where status = 'INACTIVE'
group by username, machine, status, server
order by count (*) desc;

-       Nếu thấy số lượng session active >80 (tùy thuộc vào ngưỡng của mỗi hệ thống) thì cần restart lại ứng dụng này
-       Nếu thấy số lượng session inactive >250 thì cần restart lại ứng dụng này

    Kiểm tra số lượng lock session
-       Dùng câu lệnh sau để kiểm tra lock session <--- Rất quan trọng
select sid,SERIAL#,username, machine, server, sql_address
from v$session
where blocking_session is not null;

-       Dùng câu lệnh sau để kiểm tra lock bảng
select a.session_id, a.oracle_username, a.os_user_name, a.process, b.owner,  b.object_name, b.subobject_name, b.object_type
from v$locked_object a, all_objects b
where a.object_id = b.object_id and locked_mode = 3
 order by oracle_username, session_id;

-   Nếu session, hoặc bảng nào lâu không giải phóng thì kiểm tra cụ thể session đó đang chạy câu lệnh gì
select   *
from v$sqltext
where address = '0000000A90D92F52'
order by piece;

-       Trong quá trình thực hiện yêu cầu lưu các file kết quả view ra file excel phục vụ việc đánh giá khi cần.

3 Tác động DB để giải phóng lock

Nếu câu lệnh gây lock bảng của ứng dụng thuộc về người dùng thì thực hiện kill session này.
alter system kill session 'sid,SERIAL#';
    
Nếu câu lệnh gây lock thuộc về ứng dụng cần xin ý kiến của lãnh đạo để thực hiện việc restart ứng dụng nhằm giải phóng session.

4 Test ứng dụng và kiểm tra DB

    Kiểm tra lại số lượng lock session:
-       Dùng câu lệnh sau để kiểm tra lock session
select sid,serial#,username, machine, server, sql_address
from v$session
where blocking_session is not null;

-       Dùng câu lệnh sau để kiểm tra lock bảng
select a.session_id,a.oracle_username,a.os_user_name,a.process,b.owner, b.object_name,b.subobject_name,b.object_type
from v$locked_object a, all_objects b
where a.object_id = b.object_id and locked_mode = 3
order by oracle_username, session_id;
    Yêu cầu các session có locked_mode=3 giải phóng liên tục không bị tồn, hoạt động của ứng dụng sau khi tác động nằm trong giới hạn KPI cho phép.

5 Thực hiện restart database

    Trong vòng 45p mà DB vẫn duy trì trạng thái lock các bảng ứng dụng hoặc DB chậm cần xin ý kiến để thực hiện việc restart DB này:
-     Tắt hết ứng dụng trỏ vào DB
-     Tắt listener của DB
-     Switch log DB
-     Kiểm tra CPU của DB
-     Shutdown DB ở chế độ immediate, nếu cần abort
-     Start DB và kiểm tra lại DB, ứng dụng. nếu vẫn không giải quyết được cần phải Reboot OS

6 Restart OS

    DBA xin ý kiến các cấp lãnh đạo Công ty thực hiện restart OS, chuyển yêu cầu  ban phần cứng reboot OS khi ý đề xuất được chấp thuận.

7 Kết thúc

Báo cáo trực tiếp lãnh đạo phòng về nguyên nhân, cách xử lý và đánh giá lại nguyên nhân để tránh gây ra tình trạng tương tự.


*****
Hãy nhanh tay đăng ký khóa học "Quản trị cơ sở dữ liệu Oracle 12c cơ bản" trên Unica giành cho những bạn mới học cơ sở dữ liệu Oracle hoặc cần nâng cao kiến thức, kinh nghiệm thực tiễn trên Unica (giá gốc 900K, giá khi đăng ký HÔM NAY là 299K):

Bước 1: Truy cập Unica.vn, bấm ĐĂNG KÝ nếu chưa có tài khoản
Bước 2: Đăng nhập tài khoản học viên trên Unica.vn
Bước 4: Bấm KÍCH HOẠT NGAYđể thanh toán và bắt đầu vào học.
*****
@ Trần Văn Bình - Founder of Oracle DBA AZ 

 #học oracle #oracle database #khóa học oracle online #khóa học oca #học oca ở đâu #oca là gì #oca oracle #BossData #OraAz #OracleDBAAz #OracleTutorial #Quản_trị_cơ_sở_dữ_liệu_Oracle #OracleDBA #OracleDatabaseAdministration

ĐỌC NHIỀU

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