Wie hast du deine Datenbank konfiguriert? Haben Sie die Option für Pluggable database
aktiviert? ? Wenn ja, stellen Sie bitte sicher, dass Sie sich bei PDB
anmelden und nicht CDB
.
Bitte lesen Sie Oracle 12c Post Installation Obligatorisch Schritte .
Standardmäßig pre-installed
Benutzer wie SCOTT
, HR
usw. befindet sich in container database
und nicht in pluggable database
.
tnsnames.ora
Bearbeiten Sie Ihre tnsnames.ora-Datei, um die PDB-Details hinzuzufügen. Zum Beispiel
PDBORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdborcl)
)
)
Alle PDBs öffnen
Um alle/bestimmte PDBs sofort nach der Anmeldung zu öffnen, erstellen Sie ein AFTER STARTUP Trigger auf Systemebene in CDB.
Da die PDBs nicht durch einen CDB-Start geöffnet werden. Mal sehen :
SHUTDOWN IMMEDIATE;
STARTUP;
SQL> SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READ ONLY
PDBP6 MOUNTED
Damit alle PDBs automatisch geöffnet werden, tun Sie dies:
Führen Sie „SQLPLUS / AS SYSDBA
“, und führen Sie dann Folgendes aus:
CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
/
Es erstellt einen Trigger auf Systemebene nach dem Start in CDB.
SQLPLUS / AS SYSDBA
Das häufigste Missverständnis betrifft die Verwendung von „SQLPLUS / AS SYSDBA“.
Da wir die Option zum Erstellen einer einzelnen CDB aktiviert haben , meldet sich der Befehl „SQLPLUS / AS SYSDBA“ immer bei CDB an. Normalerweise entsperrten Entwickler das „SCOTT“-Konto direkt nach der Anmeldung als SYSDBA. Aber hier ist der Trick:
„SCOTT“ und andere Musterschemata befinden sich in der PDB und nicht in der CDB . Sie müssen sich also als sysdba bei PDB anmelden.
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"