Tôi có một máy chủ Oracle 18c XE có lỗi trong tệp system01.dbf của cơ sở dữ liệu XE chính.
Tất cả dữ liệu người dùng đều nằm trong cơ sở dữ liệu PDB, điều may mắn là có vẻ ổn (hiện tại PDB đang hoạt động trong sản xuất).
Vấn đề là tôi không thể tạo bản sao lưu của PDB với expdp
, bởi vì expdp
thất bại với lỗi này:
UDE-00604: lỗi ORACLE 604 do hoạt động tạo ra
ORA-00604: lỗi riscontrato trong SQL ricorsivo livello 2
ORA-01578: khối dữ liệu ORACLE danneggiato (tệp #1, khối # 636)
ORA-01110: tệp trong dữ liệu 1: '/opt/oracle/oradata/XE/system01.dbf'
Tương tự, tôi không thể kết nối với RMAN, vì cùng một lỗi:
RMAN-00571: ================================================= =============
RMAN-00569: =============== Ngăn xếp thông báo LỖI SAU =================================
RMAN-00571: ================================================= =============
RMAN-00554: khởi tạo gói trình quản lý khôi phục nội bộ không thành công
RMAN-04005: lỗi từ cơ sở dữ liệu đích:
ORA-00604: lỗi riscontrato trong SQL ricorsivo livello 2
ORA-01578: khối dữ liệu ORACLE danneggiato (tệp #1, khối # 636)
ORA-01110: tệp trong dữ liệu 1: '/opt/oracle/oradata/XE/system01.dbf'
RMAN-04015: lỗi đặt ký tự cơ sở dữ liệu đích được đặt thành US7ASCII
Để đơn giản, tôi chỉ muốn sao lưu PDB, sau đó xóa và cài đặt lại toàn bộ cơ sở dữ liệu XE 18c từ đầu rồi khôi phục PDB (không cần khôi phục gì cả, vì lỗi nằm trong cơ sở dữ liệu XE chính, trong khi PDB vẫn ổn ).
Có cách nào để làm việc này không?
Tôi không có bản sao lưu RMAN nào trước đó, vì tôi luôn tạo tất cả các bản sao lưu bằng expdp
, nhưng các bản sao lưu hiện đã cũ, bởi vì expdp
đã ngừng hoạt động vài ngày trước khi tham nhũng có thể xảy ra.
CẬP NHẬT
Cuối cùng, giải pháp khả thi duy nhất là:
- Cài đặt Oracle 18c XE trên máy khác
- Khôi phục lược đồ db không có hàng trên máy mới từ máy cũ
expdp
bãi rác
- Tạo liên kết cơ sở dữ liệu từ máy mới đến máy chủ ban đầu với PDB đang chạy
- thủ công
CHÈN VÀO... CHỌN
tất cả các bảng từ máy chủ được liên kết ban đầu sang máy mới
- làm một
expdp
đổ từ máy mới
- cài đặt lại Oracle trên máy chủ ban đầu và nhập kết xuất mới được tạo