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"