sql >> Databasteknik >  >> RDS >> Oracle

Oracle Database12c ORA 01918 och anslutningsfel

Hur konfigurerade du din databas? Har du markerat alternativet för Pluggable database ? Om ja, se till att du loggar in på PDB och inte CDB .

Vänligen läs Oracle 12c Post Installation Obligatorisk Steg .

Som standard är pre-installed användare som SCOTT , HR etc. finns i container database och inte i pluggable database .

tnsnames.ora

Redigera din tnsnames.ora-fil för att lägga till PDB-detaljerna. Till exempel,

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

Öppna alla PDB

För att öppna alla/specifika PDB omedelbart efter inloggning, skapa en EFTER START systemnivåutlösare i CDB.

Eftersom PDB inte är öppna genom en CDB-start. Låt oss se :

SHUTDOWN IMMEDIATE;
STARTUP;

SQL> SELECT name, open_mode FROM v$pdbs;

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

Så, för att alla PDB ska öppnas automatiskt, gör du så här :

Gör, "SQLPLUS / AS SYSDBA ”, och kör sedan :

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

Den skapar en trigger på systemnivå efter start i CDB.

SQLPLUS / AS SYSDBA

Det vanligaste missförståndet handlar om "SQLPLUS / AS SYSDBA".

Eftersom vi har markerat alternativet att skapa en enda CDB , kommer kommandot "SQLPLUS / AS SYSDBA" alltid att logga in på CDB. Vanligtvis använde utvecklare för att låsa upp "SCOTT"-kontot direkt efter att ha loggat som SYSDBA. Men här är tricket :

"SCOTT" och andra exempelscheman finns i det preliminära budgetförslaget och inte i CDB . Så du måste logga in 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"



  1. Hur kopierar man endast de första 4000 tecknen från Oracle NCLOB till NVARCHAR2(4000)-värde?

  2. Grundläggande versionskontroll för MySQL-tabell

  3. Hur kan jag skicka en parameter till ett t-sql-skript?

  4. Hur man visar de inledande nollorna i ett antal orakel