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/[email protected] AS SYSDBA
SQL> ALTER USER scott ACCOUNT UNLOCK IDENTIFIED BY tiger;
sqlplus scott/[email protected]
SQL> show user;
USER is "SCOTT"