Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Oracle Database12c ORA 01918 und Verbindungsfehler

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"