Hur konfigurerade du din databas? Har du markerat alternativet för Pluggable database
? Om ja, se till att du loggar in på PDB
och inte CDB
.
Vänligen läs Oracle 12c Post Installation Obligatorisk Steg .
Som standard är pre-installed
användare som SCOTT
, HR
etc. finns i container database
och inte i pluggable database
.
tnsnames.ora
Redigera din tnsnames.ora-fil för att lägga till PDB-detaljerna. Till exempel,
PDBORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdborcl)
)
)
Öppna alla PDB
För att öppna alla/specifika PDB omedelbart efter inloggning, skapa en EFTER START systemnivåutlösare i CDB.
Eftersom PDB inte är öppna genom en CDB-start. Låt oss se :
SHUTDOWN IMMEDIATE;
STARTUP;
SQL> SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READ ONLY
PDBP6 MOUNTED
Så, för att alla PDB ska öppnas automatiskt, gör du så här :
Gör, "SQLPLUS / AS SYSDBA
”, och kör sedan :
CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
/
Den skapar en trigger på systemnivå efter start i CDB.
SQLPLUS / AS SYSDBA
Det vanligaste missförståndet handlar om "SQLPLUS / AS SYSDBA".
Eftersom vi har markerat alternativet att skapa en enda CDB , kommer kommandot "SQLPLUS / AS SYSDBA" alltid att logga in på CDB. Vanligtvis använde utvecklare för att låsa upp "SCOTT"-kontot direkt efter att ha loggat som SYSDBA. Men här är tricket :
"SCOTT" och andra exempelscheman finns i det preliminära budgetförslaget och inte i CDB . Så du måste logga in som sysdba i 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"