Sửa lỗi ORA-03113 end of file on communication channel

Tác giả wecommit, T.M.Hai 20, 2019, 11:43:23 SÁNG

« Chủ đề trước - Chủ đề tiếp »

0 Thành viên và 1 Khách đang xem chủ đề.

Sửa lỗi ORA-03113 end of file on communication channel


Lỗi này xuất hiện trên các phiên bản:

Oracle Database – Enterprise Edition – Version 9.2.0.1 to 12.1.0.1 [Release 9.2 to 12.1] Oracle Net Services – Version 12.1.0.2 to 12.1.0.2 [Release 12.1] (trên bất kì nền tảng OS nào)

1. Nguyên nhân :

Lỗi ORA-03113 end of file on communication channel là lỗi xuất hiện sau khi quá trình kết nối của một máy client hay ứng dụng đến database xảy ra vấn đề. Vì nó là một lỗi chung chung nên cần thu thập nhiều thông tin để xác định được chính xác điều gì đã xảy ra với database.

Lỗi này không chỉ ra nguyên nhân gốc rễ của các vấn đề gặp phải. 
Ví dụ lỗi ORA-03113 có thể gặp phải bằng các vấn đề sau đây:

  • Máy server chứa database bị down
  • Process Oracle Database bị kill trên OS
  • Vấn đề về mạng kết nối
  • Lỗi nội bộ trong bản thân Oracle (bug ORA-600, ORA-7445)
  • Khách hàng không đúng chuỗi kết nối đến database
  • vv .. vv .còn rất nhiều nguyên nhân khác có thể gây nên lỗi này
  • Bài viết này mô tả những thông tin được thu thập để hình thành lỗi ORA-03113

2. Các Bước fix lỗi:

Các vấn đề đề cập đến trong bài viết này:

  • Khi khởi động Oracle Database gặp lỗi ORA-03113
  • Khi một máy client kết nối đến database
  • Khách hàng bị lỗi khi chạy trên SQL/PLSQL
  • Lỗi ORA-03113 xuất hiện trong alert log, trace file –
  • Ở phần 1 chúng ta sẽ tiếp cận vấn đề: khi khởi động Oracle Database gặp phải lỗi ORA-03113, sau đó bị shutdown abort các instance và phải startup lại sử dụng thứ tự theo các bước bên dưới
  • Nếu bạn gặp phải lỗi ORA-03113 trong bất kì bước nào thì có thể làm các bước tiếp theo

a. Khi start bất kì services nào

Ví dụ: trên windows, start OracleServiceSID

b. Kết nối đến database bằng SYSDBA

Ví dụ:

sqlplus /nolog
SQL> connect / as sysdba
startup nomount (A1)
SQL> startup nomount
Mount database (A1,A2)
SQL> alter database mount;
Recover database (A3)
SQL> recover database
Open database (A4)
SQL> alter database open;

Hoặc sau khi database đã online mà khi truy xuất gặp lỗi(A4)

SQL> select count(*) from DBA_OBJECTS;
c. Lỗi kết nối đến database bằng SYSDBA hoặc khi startup nomount

Khi vấn đề này xảy ra có thể xác định được rằng có gì đó sai lầm khi cài đặt Oracle Database hoặc môi trường OS... nếu như không thể kết nối bình thường với sqlplus / as sysdba

d. Nếu có thể bạn nên restart lại database để chắc chắn rằng mình đang làm việc ở một điểm "starting point"

e. Kiểm tra các biến môi trường ORACLE_HOME và ORACLE_SID
Kiểm tra tham số USER_DUMP_DEST và BACKGROUND_DUMP_DEST mặc định (theo dõi các thư mục trong môi trường này để có giúp chỉ ra nguyên nhân của vấn đề)

Ví Dụ: ORA-600[SKGMINVALID] có thể chỉ ra một vấn đề với tham số "shared memory" của UNIX parameter trên hệ thống UNIX'

Cố gắng tìm hiểu các thông tin thật sự và thời điểm xảy ra lỗi ORA-03113 để có thể xác định được nguyên nhân gây lỗi và tìm ra phương án xử lý

f. Chỉ xảy ra trên hệ điều hành thuộc nền tảng UNIX
Một số nền tảng UNIX cần thiết lập tham số LD_LIBRARY_PATH một cách chuẩn xác để cập nhật các thư viện biến môi trường

Các bước thực hiện: sử dụng trên user có quyền lớn nhất)

Mã nguồn [Chọn]
% script /tmp/ldd.out
% id
% cd $ORACLE_HOME/bin
% ldd oracle
% exit

g. Chỉ xảy ra trên hệ điều hành thuộc nền tảng UNIX
User OS Oracle của bạn có thể bị corrupt. Relink lại thông qua các câu lệnh sau
Log in vào user 'oracle'

Mã nguồn [Chọn]
% script /tmp/relink.out
% cd $ORACLE_HOME/rdbms/lib
% mv $ORACLE_HOME/bin/oracle $ORACLE_HOME/bin/oracle.dd.mon.yy
% rm -f ./oracle
% make -f ins_rdbms.mk ioracle
% exit

Tùy thuộc vào phiên bản OS mà bạn có thể sử dụng câu lệnh.