Mục đích: Checklist kiểm tra đảm bảo Oracle Database RAC hoạt động bình thường
STT | Nội dung kiểm tra | Phương pháp thực hiện | Kết quả | Đánh giá |
1 | Kiểm tra log của Database | Truy nhập với user ‘oracle’chạy lệnh và thay tham số phù hợp: $tail -1000f $ORACLE_BASE/diag/rdbms/<DB name>/<Instance name>/trace/alert_<Instance name>.log | Giá trị trả về: - Không có các giá trị Error, Fatal | Đạt Không đạt |
2 | Kiểm tra active session, session, blocking session | SELECT /*1.ActiveSession*/ distinct s.inst_id i#, s.username, s.SID SID, s.osuser, s.machine,DECODE(S.WAIT_TIME, 0, S.EVENT, 'CPU') ACTION, s.sql_id, SUBSTR(DECODE(SS.SQL_TEXT, NULL, AA.NAME, SS.SQL_TEXT), 1, 1000) SQLTEXT,s.logon_time,s.p1text, S.P1, s.p2text, S.P2, s.p3text, S.P3 FROM GV$SESSION S, GV$SQLSTATS SS, AUDIT_ACTIONS AA WHERE S.STATUS = 'ACTIVE' AND S.SQL_ID = SS.SQL_ID (+) AND AA.ACTION = S.COMMAND and s.type != 'BACKGROUND' AND S.TYPE = 'USER' and s.username NOT in ('SYS','SYSMAN','DBSNMP','GGATE') --AND username in 'USER1' --and DECODE(S.WAIT_TIME, 0, S.EVENT, 'CPU') like '%cell single block physical read%' --and lower(ss.sql_text) like lower('%parallel%') --and s.sid=4588 --and s.machine like '%USER1%' --and s.sql_id ='ccwg0nqr1zbu7' ORDER BY username,sql_id; select /* 2.Total_ActiveSessioins*/ USERNAME,count(*) from gv$session where status='ACTIVE' group by USERNAME order by count(*) desc; select /* 3.Total_Session*/ username,status, count(*) from gv$session group by username,status order by count(*) desc; Select /*4.Blocking_session*/ inst_id,blocking_session, sid, serial#, sql_id, wait_class, seconds_in_wait, username,STATUS,SCHEMANAME,OSUSER,MACHINE,PROGRAM,TYPE,LOGON_TIME From gv$session where blocking_session is not NULL and type not like 'BACKGROUND' order by inst_id;
select /*6.SQL_Detail*/ sql_id,sql_fulltext from gv$sql where sql_id in ('67bm8d2ah3xhk'); | Active, session trong ngưỡng, lock nhỏ (tuỳ từng hệ thống) | Đạt Không đạt |
3 | Kiểm tra trạng thái của resource | Truy nhập với user ‘grid’, chạy lệnh: $ cd $ORACLE_HOME/bin $ ./crsctl stat res –t | Giá trị trả về: - Các resource ora.ons; ora.diskmon không cần check - Các resource phải ở trạng thái ONLINE | Đạt Không đạt |
4 | Kiểm tra trạng thái listener | Truy nhập với user ‘grid’, chạy lệnh: $ cd $ORACLE_HOME/bin $ ./srvctl status listener | Giá trị trả về: - Kết quả trả về “LISTENER is running on” - Instance READY | Đạt Không đạt |
5 | Kiểm tra trạng thái ASM | Truy nhập với user ‘grid’, chạy lệnh: $ srvctl status asm –detail | Giá trị trả về: - ASM is running” | Đạt Không đạt |
6 | Kiểm tra hoạt động Database | Truy nhập với user ‘oracle’, chạy lệnh: $ cd $ORACLE_HOME/bin $ srvctl status asm –detail | Giá trị trả về: - Database is running” | Đạt Không đạt |
7 | Kiểm tra trạng thái Instance Database | Truy nhập với user ‘oracle’, chạy lệnh: $ sqlplus /as sysdba SQL>select instance_name, status from gv$instance; | Giá trị trả về: - Trạng thái: Open | Đạt Không đạt |
8 | Kiểm tra log của Cluster | Truy nhập với user ‘grid’ chạy lệnh và thay tham số phù hợp: $ $tail -1000f $ORACLE_BASE/diag/crs/<DB server>/crs/trace/alert.log $ tail -1000f $ORACLE_BASE/diag/asm/+asm/<Instance ASM>/trace/*alert*.log | Giá trị trả về: - Không có các giá trị Error, Fatal | Đạt Không đạt |
9 | Kiểm tra dung lượng ASM Diskgroup | Truy nhập với user ‘oracle’, chạy lệnh $sqlplus / as sysdba SQL> Select name, type, total_mb, free_mb, (total_mb-free_mb)/total_mb) as PCT, required_mirror_free_mb, usable_file_mb from v$asm_diskgroup; | Giá trị trả về: - Các giá trị PCT <=90% | Đạt Không đạt |
10 | Kiểm tra dung lượng Tablespace | Truy nhập với user ‘oracle’, chạy lệnh: SELECT a.tablespace_name,100 - ROUND ( (NVL (b.bytes_free, 0) / a.bytes_alloc) * 100) "%Usage", ROUND (a.bytes_alloc / 1024 / 1024/1024) "Size_GB", ROUND (NVL (b.bytes_free, 0) / 1024 / 1024/1024) "Free_GB", (ROUND (a.bytes_alloc / 1024 / 1024/1024)- ROUND (NVL (b.bytes_free, 0) / 1024 / 1024/1024)) "Used_GB", ROUND ( (NVL (b.bytes_free, 0) / a.bytes_alloc) * 100) "%Free", ROUND (maxbytes / 1048576/1024) "Max_GB", ROUND (maxbytes / 1048576/1024)- (ROUND (a.bytes_alloc / 1024 / 1024/1024)- ROUND (NVL (b.bytes_free, 0) / 1024 / 1024/1024)) "Free_Max_GB", ROUND (ROUND ( (a.bytes_alloc - NVL (b.bytes_free, 0)) / 1024 / 1024/1024)/ ROUND (maxbytes / 1048576/1024) * 100) "%Used of Max" FROM ( SELECT f.tablespace_name, SUM (f.bytes) bytes_alloc, SUM (DECODE (f.autoextensible, 'YES', f.maxbytes, 'NO', f.bytes)) maxbytes FROM dba_data_files f GROUP BY tablespace_name) a, ( SELECT f.tablespace_name, SUM (f.bytes) bytes_free FROM dba_free_space f GROUP BY tablespace_name) b WHERE a.tablespace_name = b.tablespace_name(+) --and a.tablespace_name in ('SH_ICC202008') and ROUND (maxbytes / 1048576/1024) - (ROUND (a.bytes_alloc / 1024 / 1024/1024)- ROUND (NVL (b.bytes_free, 0) / 1024 / 1024/1024)) <500 and ROUND (ROUND ( (a.bytes_alloc - NVL (b.bytes_free, 0)) / 1024 / 1024/1024)/ ROUND (maxbytes / 1048576/1024) * 100) > 90 order by "%Used of Max" desc;
hoặc SQL> select substr(f.tablespace_name,1,30) tbspce, round(f.tsbytes/(1024*1024),0) "ALLOCATED(MB)", round(nvl(s.segbytes,0)/(1024*1024),0) "USED(MB)", round((nvl(s.segbytes,0)/f.tsbytes)*100,2) PCT, lower(vc.name) as container from (select con_id,tablespace_name,sum(bytes) tsbytes from cdb_data_files group by con_id,tablespace_name) f, (select con_id,tablespace_name,sum(bytes) segbytes from cdb_segments group by con_id,tablespace_name) s, v$containers vc where f.con_id=s.con_id(+) and f.tablespace_name=s.tablespace_name(+) and f.con_id=vc.con_id order by container, tbspce; | Giá trị trả về: - Các giá trị PCT <=90% | Đạt Không đạt |
11 | Kiểm tra dung lượng mountpoint | Truy nhập với user ‘root’, chạy lệnh: $df -h | Giá trị trả về: - User% <=90 | Đạt Không đạt |
12 | Kiểm tra invalid object | select owner,object_type, object_name,status from dba_objects where status = 'invalid' order by owner, object_type, object_name; | Không có invalid object | Đạt Không đạt |
13 | Kiểm tra index unusable | SQL> Select idxp.index_name, idxp.partition_name, idxp.status from dba_ind_partitions idxp where idxp.status<>'usable' union all select idx.index_name,idx.table_name,idx.status from dba_indexes idx where idx.partitioned='no' and idx.status not in ('n/a','valid'); | Không có index unusable hoặc index đó không sử dụng | Đạt Không đạt |
14 | Kiểm tra thông tin statistic | select table_name, partition_name, last_analyzed from DBA_TAB_PARTITIONS where trunc(last_analyzed) > sysdate-7 --and table_owner=‘TEST_OWNER’ and table_name like upper(‘TEST_TAB1’) order by last_analyzed desc; select owner, table_name, partition_name,last_analyzed from DBA_TAB_STATISTICS where trunc(last_analyzed) > sysdate-7 --and owner=‘TEST_OWNER’ and table_name =‘TEST_TAB1’ order by last_analyzed desc; - Bảng ko partition: select owner, table_name,last_analyzed from dba_tables where --owner=‘TEST_OWNER’ and -- table_name like upper('TEST_TAB1') and trunc(last_analyzed) > sysdate-7 order by last_analyzed desc; select owner, table_name, partition_name,last_analyzed from DBA_TAB_STATISTICS where --owner=‘TEST_OWNER’ and table_name =‘TEST_TAB1’ and trunc(last_analyzed) > sysdate-7 order by last_analyzed desc; | Ngày hiện tại với bảng partition Bảng không partition có thể chậm hơn 10 ngày | Đạt Không đạt |
Hy vọng hữu ích cho bạn.
=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox
https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile: 0902912888
⚡️ Skype: tranbinh48ca
👨 Facebook:
https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger:
https://m.me/101036604657441 (profile)
👨 Fanpage:
https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage:
https://m.me/tranvanbinh.vn
👨👩 Group FB:
https://www.facebook.com/groups/DBAVietNam
👨 Website:
https://www.tranvanbinh.vn
👨 Blogger:
https://tranvanbinhmaster.blogspot.com
🎬 Youtube:
http://bit.ly/ytb_binhoraclemaster
👨 Tiktok:
https://www.tiktok.com/@binhoraclemaster?lang=vi
👨 Linkin:
https://www.linkedin.com/in/binhoracle
👨 Twitter:
https://twitter.com/binhoracle
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội
=============================
học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,khóa học pl/sql, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle weblogic, middleware, hoc solaris, hoc linux, hoc aix, unix, oracle oca, oracle ocp, oracle ocm