Hvordan konfigurerede du din database? Har du markeret muligheden for Pluggable database ? Hvis ja, så sørg for at logge ind på PDB og ikke CDB .
Læs venligst Oracle 12c Post Installation Obligatorisk Trin .
Som standard pre-installed brugere som SCOTT , HR osv. ligger i container database og ikke i pluggable database .
tnsnames.ora
Rediger din tnsnames.ora-fil for at tilføje PDB-detaljerne. For eksempel,
PDBORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdborcl)
)
)
Åbn alle PDB'er
For at åbne alle/specifikke PDB'er umiddelbart efter logon skal du oprette en EFTER OPSTART systemniveauudløser i CDB.
Da PDB'erne ikke er åbne gennem en CDB-start. Lad os se :
SHUTDOWN IMMEDIATE;
STARTUP;
SQL> SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READ ONLY
PDBP6 MOUNTED
Så gør dette for at få alle PDB'erne automatisk til at åbne:
Gør, "SQLPLUS / AS SYSDBA ”, og kør derefter :
CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
/
Det opretter en trigger på systemniveau efter opstart i CDB.
SQLPLUS / AS SYSDBA
Den mest almindelige misforståelse handler om "SQLPLUS / AS SYSDBA"-brug.
Da vi har markeret muligheden for at oprette en enkelt CDB , vil kommandoen "SQLPLUS / AS SYSDBA" altid logge på CDB. Normalt plejede udviklere at låse op for "SCOTT"-kontoen direkte efter at have logget som SYSDBA. Men her er tricket :
"SCOTT" og andre eksempelskemaer er i FBF og ikke i CDB . Så du skal logge ind som sysdba i PDB.
sqlplus SYS/example@sqldat.com AS SYSDBA
SQL> ALTER USER scott ACCOUNT UNLOCK IDENTIFIED BY tiger;
sqlplus scott/example@sqldat.com
SQL> show user;
USER is "SCOTT"