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

ORA-1114 đang chạy Datapatch

Tôi có cơ sở dữ liệu Oracle 19.3 Multitenant mà tôi đang cố gắng áp dụng Bản cập nhật phát hành 19.7. RU đã được cài đặt bằng opatch tốt. Nhưng bản ghi dữ liệu sẽ bị lỗi ORA-1114. Tôi gặp các lỗi như sau ở một trong các nhật ký:

SQL> thay đổi cơ sở dữ liệu có thể cắm được GOLD2020_06_18_123653 open read write instance =all;
thay đổi cơ sở dữ liệu có thể cắm được GOLD2020_06_18_123653 mở các phiên bản ghi đọc =tất cả
*
LỖI ở dòng 1:
ORA-65107:Lỗi gặp phải khi xử lý tác vụ hiện tại trên ví dụ:1
ORA-17500:Lỗi ODM:Đối số không hợp lệ
ORA-01114:Lỗi IO ghi khối vào tệp 12346 (khối # 1)
ORA-17500:Lỗi ODM:Đối số không hợp lệ
ORA-01114:Lỗi IO ghi khối vào tệp 12345 (khối # 1)
ORA-17500:Lỗi ODM:Đối số không hợp lệ

Trước khi tôi có thể giải thích vấn đề là gì, hãy để tôi thảo luận về cách chúng tôi sử dụng Multitenant trong môi trường của tôi. Mỗi tuần một lần, chúng tôi có một công việc cron là tạo bản sao của cơ sở dữ liệu sản xuất của chúng tôi (sử dụng ảnh chụp nhanh phần cứng dựa trên đĩa). Chúng tôi gọi bản sao sản xuất này là “hình ảnh vàng” của chúng tôi. Hình ảnh vàng này được cắm vào cơ sở dữ liệu của chúng tôi như một trong những PDB của chúng tôi. Tên PDB có định dạng GOLD yyyy_mm_dd_hhmiss để chúng tôi biết khi nào thì PDB đó được tạo.

Tất cả cơ sở dữ liệu thử nghiệm và nhà phát triển của chúng tôi sau đó được tạo từ PDB hình ảnh vàng này. Khi tôi cần làm mới DEV1 hoặc TEST, chúng tôi chỉ cần tắt PDB cho DEV1 hoặc TEST và thả nó xuống. Sau đó, chúng tôi tạo một bản sao ảnh chụp nhanh của hình ảnh vàng mới nhất. PDB hình ảnh vàng đang ở chế độ CHỈ ĐỌC để tạo điều kiện sao chép ảnh chụp nhanh.

Như tôi đã viết ở đây, khi một PDB được sử dụng làm nguồn cho một bản sao ảnh chụp nhanh, Oracle sẽ thay đổi quyền đối với tệp thành 220. Đây là Oracle bảo vệ chúng ta khỏi chính chúng ta. Chúng tôi không được phép sửa đổi nguồn của bản sao ảnh chụp nhanh để Oracle chỉ đọc các tệp dữ liệu. Bất kỳ ai tại Oracle quyết định thay đổi quyền đối với tệp là một ý kiến ​​hay, đừng nói về điều đó với các nhà phát triển bản đồ dữ liệu.

Datapatch nhìn thấy PDB CHỈ ĐỌC và muốn mở nó dưới dạng ĐỌC VIẾT, vá phần bên trong của PDB, sau đó đặt lại thành CHỈ ĐỌC. Tuy nhiên, bản ghi dữ liệu không thể mở PDB ở chế độ đọc ghi vì quyền đối với tệp sẽ không cho phép. Do đó những lỗi tôi đang nhận được.

Oracle đã làm điều này với tôi… họ đã buộc quyền đối với tệp theo một cách và sau đó bản đồ dữ liệu không thể làm những gì họ muốn nó làm.

Tôi chưa nhận được thông báo chính thức về Yêu cầu dịch vụ của mình, nhưng tôi hy vọng điều này sẽ trở thành một lỗi. Datapatch nên bỏ qua bất kỳ PDB nào là nguồn để sao chép ảnh chụp nhanh, theo ý kiến ​​của tôi.

Trong khi chờ đợi, bạn có thể vũ phu theo cách của mình để vượt qua điều này. Tôi đã cố gắng sử dụng tham số -exclude_pdbs cho bản đồ dữ liệu nhưng điều đó không hoạt động. Rõ ràng có một lỗi đã biết khi thông số đó không hoạt động nếu danh sách PDB của bạn có dấu phẩy. Vì vậy, tôi phải chạy datapatch như sau:\

./datapatch -verbose -pdbs cdb \ $ root
./datapatch -verbose -pdbs pdb \ $ seed
./datapatch -verbose -pdbs dev1, dev2

Đầu tiên, tôi chạy datapatch để vá CDB $ ROOT. Sau đó, tôi đã vá PDB $ SEED. Sau đó, tôi đã vá các PDB dành cho nhà phát triển của mình. Tôi chỉ không vá các PDB hình ảnh vàng của mình.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tạo màn hình đăng nhập tùy chỉnh trong Oracle Forms 10g

  2. Làm thế nào để nhập ký tự dòng mới trong Oracle?

  3. Cập nhật nhiều giá trị cột trong bảng bằng cách sử dụng một truy vấn

  4. Ngày của Javascript thành đối tượng ngày sql

  5. Hàm COS () trong Oracle