Come hai configurato il tuo database? Hai selezionato l'opzione per Pluggable database
? Se sì, assicurati di accedere a PDB
e non CDB
.
Si prega di leggere Oracle 12c Post installazione obbligatoria Passi .
Per impostazione predefinita, pre-installed
agli utenti piace SCOTT
, HR
ecc. risiedono in container database
e non in pluggable database
.
tnsnames.ora
Modifica il tuo file tnsnames.ora per aggiungere i dettagli PDB. Ad esempio,
PDBORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdborcl)
)
)
Apri tutti i PDB
Per aprire tutti/specifici PDB subito dopo l'accesso, crea un AFTER STARTUP trigger a livello di sistema in CDB.
Poiché, i PDB non sono aperti tramite un avvio CDB. Vediamo :
SHUTDOWN IMMEDIATE;
STARTUP;
SQL> SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READ ONLY
PDBP6 MOUNTED
Quindi, per avere tutti i PDB aperti automaticamente, fai questo :
Fare, "SQLPLUS / AS SYSDBA
”, e quindi eseguire :
CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
/
Crea un trigger a livello di sistema dopo l'avvio in CDB.
SQLPLUS/AS SYSDBA
Il malinteso più comune riguarda l'utilizzo di "SQLPLUS / AS SYSDBA".
Poiché abbiamo selezionato l'opzione per creare un singolo CDB , il comando "SQLPLUS / AS SYSDBA" accederà sempre a CDB. Di solito gli sviluppatori sbloccavano l'account "SCOTT" direttamente dopo aver effettuato l'accesso come SYSDBA. Ma ecco il trucco :
"SCOTT" e altri schemi di esempio si trovano nel PDB e non nel CDB . Quindi, devi accedere come 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"