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

Oracle Database12c ORA 01918 và lỗi kết nối

Bạn đã cấu hình cơ sở dữ liệu của mình như thế nào? Bạn đã kiểm tra tùy chọn cho Pluggable database chưa ? Nếu có, hãy đảm bảo rằng bạn đăng nhập vào PDB chứ không phải CDB .

Vui lòng đọc Bắt buộc cài đặt Oracle 12c Các bước .

Theo mặc định, pre-installed người dùng thích SCOTT , HR v.v ... nằm trong container database và không có trong pluggable database .

tnsnames.ora

Chỉnh sửa tệp tnsnames.ora của bạn để thêm chi tiết PDB. Ví dụ:

PDBORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = pdborcl)
    )
  )

Mở tất cả PDB

Để mở tất cả / PDB cụ thể ngay sau khi đăng nhập, hãy tạo SAU KHI BẮT ĐẦU kích hoạt mức hệ thống trong CDB.

Kể từ đó, các PDB không được mở thông qua khởi động CDB. Hãy xem:

SHUTDOWN IMMEDIATE;
STARTUP;

SQL> SELECT name, open_mode FROM v$pdbs;

NAME                           OPEN_MODE
------------------------------ ----------
PDB$SEED                       READ ONLY
PDBP6                          MOUNTED

Vì vậy, để tất cả các PDB tự động mở, hãy làm như sau:

Thực hiện, “ SQLPLUS / AS SYSDBA ”, Và sau đó thực thi:

CREATE OR REPLACE TRIGGER open_pdbs 
  AFTER STARTUP ON DATABASE 
BEGIN 
   EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN'; 
END open_pdbs;
/

Nó tạo ra một trình kích hoạt cấp hệ thống sau khi khởi động trong CDB.

SQLPLUS / AS SYSDBA

Sự hiểu lầm phổ biến nhất là về cách sử dụng “SQLPLUS / AS SYSDBA”.

Vì chúng tôi đã chọn tùy chọn để tạo một CDB , lệnh “SQLPLUS / AS SYSDBA” sẽ luôn đăng nhập vào CDB. Thông thường các nhà phát triển sử dụng để mở khóa tài khoản “SCOTT” trực tiếp sau khi đăng nhập bằng SYSDBA. Nhưng đây là mẹo:

“SCOTT” và các lược đồ mẫu khác nằm trong PDB chứ không phải trong CDB . Vì vậy, bạn cần đăng nhập bằng sysdba vào PDB.

sqlplus SYS/[email protected] AS SYSDBA

SQL> ALTER USER scott ACCOUNT UNLOCK IDENTIFIED BY tiger;

sqlplus scott/[email protected]

SQL> show user;
USER is "SCOTT"



  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 SQL ORA-22814 thuộc tính hoặc giá trị phần tử lớn hơn giá trị được chỉ định trong loại

  2. Cần trợ giúp để hiểu hành vi của SELECT ... FOR UPDATE gây ra bế tắc

  3. ORA-27154 / ORA-27146

  4. Oracle PL / SQL:khối thực thi song song

  5. MySQL 'tạo lược đồ' và 'tạo cơ sở dữ liệu' - Có sự khác biệt nào không