sql >> Database >  >> RDS >> Oracle

Oracle Database12c ORA 01918 en verbindingsfout

Hoe heb je je database geconfigureerd? Heb je de optie voor Pluggable database . aangevinkt? ? Zo ja, zorg er dan voor dat u inlogt op PDB en niet CDB .

Lees a.u.b. Oracle 12c Post-installatie Verplicht Stappen .

Standaard pre-installed gebruikers houden van SCOTT , HR enz. bevindt zich in container database en niet in pluggable database .

tnsnames.ora

Bewerk uw tnsnames.ora-bestand om de PDB-details toe te voegen. Bijvoorbeeld,

PDBORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = pdborcl)
    )
  )

Alle PDB's openen

Om alle/specifieke PDB's direct na het inloggen te openen, maakt u een NA HET OPSTARTEN trigger op systeemniveau in CDB.

Sindsdien zijn de VOB's niet open via een CDB-start. Eens kijken:

SHUTDOWN IMMEDIATE;
STARTUP;

SQL> SELECT name, open_mode FROM v$pdbs;

NAME                           OPEN_MODE
------------------------------ ----------
PDB$SEED                       READ ONLY
PDBP6                          MOUNTED

Dus, om alle PDB's automatisch te openen, doe dit:

Doen, "SQLPLUS / AS SYSDBA ”, en voer dan uit:

CREATE OR REPLACE TRIGGER open_pdbs 
  AFTER STARTUP ON DATABASE 
BEGIN 
   EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN'; 
END open_pdbs;
/

Het creëert een trigger op systeemniveau na het opstarten in CDB.

SQLPLUS / AS SYSDBA

Het meest voorkomende misverstand gaat over het gebruik van "SQLPLUS / AS SYSDBA".

Aangezien we de optie hebben aangevinkt om een ​​enkele CDB te maken , logt de opdracht "SQLPLUS / AS SYSDBA" altijd in op CDB. Gewoonlijk ontgrendelden ontwikkelaars het "SCOTT" -account direct na het inloggen als SYSDBA. Maar hier is de truc:

'SCOTT' en andere voorbeeldschema's staan ​​in de PDB en niet in de CDB . U moet dus inloggen als sysdba in 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"



  1. Wijzig het scheidingsteken in een komma in SQLite-queryresultaten

  2. Database-onafhankelijke SQL String Concatenatie in Rails

  3. hoe uitvoer in een CSV-formaat te exporteren via een procedure

  4. SQL Server SOMMIGE operator uitgelegd