Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

ORA-00257:lỗi trình lưu trữ. Chỉ kết nối nội bộ, cho đến khi được giải phóng.

ORA-00257 là một trong những lỗi phổ biến nhất trong đời Oracle DBA. Anh ấy / Cô ấy thường xuyên phải đối phó với nó. Cơ sở dữ liệu Thần kỳ gần như bị đóng băng vì nó và tất cả các giao dịch bị dừng lại. Hãy để chúng tôi xem cách đối phó với lỗi ORA-00257

Thông báo lỗi

ORA-00257:lỗi trình lưu trữ. Chỉ kết nối nội bộ, cho đến khi được giải phóng.

Theo lỗi ORA-00257 có nghĩa là

ORA-00257:lỗi trình lưu trữ. Chỉ kết nối nội bộ, cho đến khi được giải phóng. Nguyên nhân:Quá trình lưu trữ gặp lỗi khi cố gắng lưu trữ nhật ký làm lại. Nếu sự cố không được giải quyết sớm, cơ sở dữ liệu sẽ ngừng thực hiện các giao dịch. Nguyên nhân rất có thể của thông báo này là thiết bị đích hết dung lượng để lưu trữ tệp nhật ký làm lại.

Hành động:Kiểm tra tệp theo dõi của trình lưu trữ để biết mô tả chi tiết về sự cố. Ngoài ra, hãy xác minh rằng thiết bị được chỉ định trong tham số khởi tạo archive_log_dest được thiết lập đúng cách để lưu trữ.

Bạn thấy thông báo lỗi này ở đâu

1) Bạn sẽ thấy loại thông báo lỗi bên dưới trong nhật ký cảnh báo

Sau đây là một số nếu thông tin từ nhật ký cảnh báo:

 Lỗi trong tệp \ u01 \ oracle \ product \ 11.2.0 \ Diag \ rdbms \ TEST \ test \ trace \ test_arc1_1010.trc:ORA-19815:CẢNH BÁO:db_recovery_file_dest_size of 21474836480 byte is 100.00% used and còn lại 0 byte byte có sẵn .Wed jan 21 02:44:02 2016 ************************************** ********************************** Bạn có các lựa chọn sau để giải phóng dung lượng khỏi vùng khôi phục flash:1. Xem xét việc thay đổi CHÍNH SÁCH THUÊ KHOẢN CỦA RMAN. Nếu bạn đang sử dụng Data Guard, hãy xem xét việc thay đổi CHÍNH SÁCH XÓA ARCHIVELOG của RMAN. Sao lưu các tập tin vào thiết bị cấp ba chẳng hạn như băng bằng lệnh RMANBACKUP RECOVERY AREA.3. Thêm dung lượng ổ đĩa và tăng tham số db_recovery_file_dest_size để phản ánh dung lượng mới. Xóa các tệp không cần thiết bằng lệnh RMAN DELETE. Nếu một lệnh hệ điều hành được sử dụng để xóa tệp, thì hãy sử dụng các lệnh RMAN CROSSCHECK và DELETE EXPIRED. ******************************** **************************************** ARC1:Không thể lưu trữ chuỗi 1 chuỗi 1459 ( 1809) ARCH:Đã dừng lưu trữ, xảy ra lỗi. Sẽ tiếp tục thử lại. :vượt quá giới hạn cho các tệp khôi phụcORA-00312:nhật ký trực tuyến 3 luồng 1:'\ u01 \ oracle \ oradata \ TEST \ redo03.LOG' 

2) Nếu bạn cố gắng đăng nhập bằng người dùng không phải sysdba, bạn sẽ nhận được thông báo lỗi bên dưới

 sqlplus / as sysdbaSQL * Plus:Bản phát hành 11.2.0.4.0 - Sản xuất onCopyright (c) 1982, 2008, Oracle. Mọi quyền được bảo lưu. Chỉ kết nối nội bộ, cho đến khi được giải phóng. Cảnh báo:Bạn không còn được kết nối với ORACLE.SQL 

3) Nếu bạn cố gắng đăng nhập bằng người dùng sysdba và kiểm tra sự kiện chờ phiên, bạn sẽ thấy sự kiện chuyển đổi lưu trữ nhật ký chờ phiên
Tại sao xảy ra lỗi ORA-00257

Lỗi này xảy ra vì vị trí đích cho nhật ký lưu trữ đã đầy hoặc không có sẵn. Quá trình nền Oracle ARCH chịu trách nhiệm lấy nhật ký làm lại từ hệ thống tệp nhật ký làm lại trực tuyến và việc ghi chúng vào tệp phẳng không thể ghi vào hệ thống tệp

Cách giải quyết lỗi ORA-00257

1) Trước hết, chúng ta nên tìm đích đến của nhật ký lưu trữ cho cơ sở dữ liệu

 sqlplus / as sysdbaSQL> danh sách nhật ký lưu trữ; 

bạn cũng có thể tìm thấy các điểm đến của kho lưu trữ bằng USE_DB_RECOVERY_FILE_DEST

 SQL> hiển thị tham số db_recovery_file_dest; 

Cũng lấy kích thước của db_recovery_file_dest

 hiển thị tham số db_recovery_file_dest_size; 

2) Bước tiếp theo trong việc giải quyết ORA-00257 là tìm hiểu giá trị nào đang được sử dụng cho db_recovery_file_dest_size, sử dụng:

 SQL> CHỌN * TỪ V $ RECOVERY_FILE_DEST; 

Bạn có thể thấy rằng SPACE_USED giống với SPACE_LIMIT, nếu đúng như vậy, để khắc phục ORA-00257 cần được khắc phục bằng cách di chuyển nhật ký lưu trữ đến một số đích khác.

 SQL> CHỌN * TỪ V $ RECOVERY_FILE_DEST; TÊN SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES + FLASH 21474836480 21474836480 212428800 200 

3) Chúng ta có thể có nhiều giải pháp trong tình huống này

a) Tăng kích thước của db_recovery_file_dest nếu bạn có dung lượng trống trong Oracle ASM hoặc hệ thống tệp bất cứ thứ gì bạn đang sử dụng

 thay đổi bộ hệ thống db_recovery_file_dest_size =40g; 

b) Chúng tôi có thể xóa nhật ký lưu trữ đã được sao lưu

 rman target / delete archivelog UNTIL TIME ='SYSDATE-1' đã sao lưu 1 lần vào sbt_tape; rman target / RMAN> xóa archivelogu cho đến thời điểm 'SYSDATE-3'; hoặc RMAN> xóa tất cả archivelog; sắp xếp archivelog UNTIL TIME ='SYSDATE-1.5' được sao lưu 1 lần vào sbt_tape; 

c) Nếu bạn chưa thực hiện sao lưu, thì bạn nên sao lưu và sau đó xóa các tệp nhật ký lưu trữ

 rman target / run {phân bổ đĩa loại kênh d1; tệp lưu trữ sao lưu tất cả xóa định dạng đầu vào '/ u11 / ora / Arch_% d_% u_% s'; phát hành kênh d1;} 

d) Đôi khi đoạn sao lưu cũ, nhật ký hồi tưởng có thể chiếm dung lượng trong db_recovery_file_dest, bạn kiểm tra nội dung của db_recovery_file_dest

 SQL> Chọn file_type, phần trăm_ không gian_sử dụng như được sử dụng, phần trăm_ không gian_có thể xác nhận là có thể truy xuất, số_tài_trình làm "số" từ v $ flash_recovery_area_usage; FILE_TYPE đã sử dụng số RECLAIMABLE ---------------- - ----------- ---------- CONTROLFILE 0 0 0ONLINELOG 0 0 0ARCHIVELOG 4,77 0 2BACKUPPIECE 56,80 0 10IMAGECOPY 0 0 0FLASHBACKLOG 11,68 11,49 63 

Đôi khi có thể có điểm khôi phục được đảm bảo cũ, việc thả xuống sẽ giải phóng dung lượng.

Cơ sở dữ liệu hồi tưởng được giải thích và hạn chế

cách Flashback khi chúng ta có thẻ dữ liệu

10 truy vấn hữu ích hàng đầu cho cơ sở dữ liệu hồi tưởng

e) Nếu chúng ta không cần nhật ký lưu trữ, thì chỉ cần xóa cũng sẽ phục vụ mục đích

 rman target / XÓA TẤT CẢ CÁC LƯU TRỮ NOPROMPT; 

Lệnh hữu ích khác trong trường hợp này

 DANH SÁCH BẢN SAO CỦA ARCHIVELOG TẤT CẢ ĐỀU ĐƯỢC HOÀN THÀNH SAU 'SYSDATE-1'; XÓA BẢN SAO LƯU NOPROMPT ĐƯỢC HOÀN THÀNH TRƯỚC KHI 'SYSDATE-4'; DANH SÁCH BẢN SAO CỦA ARCHIVELOG ĐẾN THỜI GIAN ='SYSDATE-18'; BACKUP ARCHIVELOG HOÀN THÀNH THỜI GIAN KẾT THÚC TRÊN TUỔI 28 ' VÀ 'SYSDATE-7'; 

Lưu ý quan trọng

Vui lòng không xóa tệp nhật ký lưu trữ theo cách thủ công khỏi hệ thống tệp, nó sẽ không cập nhật tệp điều khiển và sẽ không giải quyết được sự cố. Sau đó, bạn đã kiểm tra chéo tất cả trong rman và xóa lỗi thời và hết hạn

f) Chúng tôi có thể chỉ định đường dẫn thay thế để lưu trữ

Việc lưu trữ được tự động thực hiện đối với đích 2 thay thế

log_archive_dest_1='LOCATION=use_db_recovery_file_dest NOREOPEN ALTERNATE=LOG_ARCHIVE_DEST_2'log_archive_dest_2='LOCATION=/other_dest_for_archiving'log_archive_dest_state_1='enable'log_archive_dest_state_2='alternate'db_recovery_file_dest='/u01/app/oradata/flash_recovery_area'db_recovery_file_dest_size=200G

4) Sau khi có dung lượng trong db_recovery_file_dest, Vui lòng kiểm tra hệ thống bằng cách thực hiện thay đổi tệp nhật ký chuyển đổi hệ thống

 thay đổi tệp nhật ký chuyển đổi hệ thống; hệ thống cảnh báo 

Ngoài ra, hãy thử kết nối với người dùng không phải sysdba để đảm bảo rằng vấn đề đã được giải quyết

 sqlplus / as sysdbaSQL * Plus:Bản phát hành 11.2.0.4.0 - Sản xuất onCopyright (c) 1982, 2008, Oracle. Mọi quyền được bảo lưu. 

Nên thường xuyên sao lưu nhật ký lưu trữ và xóa chúng. Chúng ta nên đặt một tập lệnh giám sát để kiểm tra không gian vùng khôi phục flash.

Các bài viết có liên quan
ORA-00936 thiếu biểu thức
ORA-01017:tên người dùng / mật khẩu không hợp lệ; đăng nhập bị từ chối
ORA-29913 với bảng bên ngoài
hoặc-00904 mã định danh không hợp lệ
ORA-00001 đã vi phạm ràng buộc duy nhất
ORA-01111 trong MRP
Cách tìm lịch sử nhật ký lưu trữ
RMAN-06059:không tìm thấy nhật ký được lưu trữ dự kiến, mất khả năng khôi phục của nhật ký đã lưu trữ làm ảnh hưởng đến khả năng khôi phục

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle Database Explorer:Đào tạo và Công nhận Miễn phí

  2. Tạo ứng dụng Java trong Oracle JDeveloper, Phần 2

  3. .Patch_storage lớn

  4. các cách để tránh các bảng tạm thời toàn cục trong oracle

  5. Tạo trình kích hoạt để chỉ chạy khi một bảng mới đang được tạo