Jak jste nakonfigurovali databázi? Zaškrtli jste možnost Pluggable database ? Pokud ano, ujistěte se, že jste přihlášeni do PDB a ne CDB .
Přečtěte si prosím Oracle 12c po instalaci povinné Kroky .
Ve výchozím nastavení pre-installed uživatelé jako SCOTT , HR atd. se nachází v container database a nikoli v pluggable database .
tnsnames.ora
Upravte svůj soubor tnsnames.ora a přidejte podrobnosti PDB. Například,
PDBORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdborcl)
)
)
Otevřít všechny PNR
Chcete-li otevřít všechny/konkrétní PDB ihned po přihlášení, vytvořte PO SPUŠTĚNÍ spouštění na systémové úrovni v CDB.
Protože PDB nejsou otevřeny prostřednictvím spuštění CDB. Podívejme se:
SHUTDOWN IMMEDIATE;
STARTUP;
SQL> SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READ ONLY
PDBP6 MOUNTED
Takže, aby se všechny PNR automaticky otevřely, udělejte toto:
Proveďte „SQLPLUS / AS SYSDBA “ a poté spusťte :
CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
/
Vytvoří spouštěč na úrovni systému po spuštění v CDB.
SQLPLUS / AS SYSDBA
Nejběžnější nedorozumění se týká použití „SQLPLUS / AS SYSDBA“.
Protože jsme zaškrtli možnost vytvořit jeden CDB , příkaz “SQLPLUS / AS SYSDBA” se vždy přihlásí do CDB. Vývojáři obvykle používali k odemknutí účtu „SCOTT“ přímo po přihlášení jako SYSDBA. Ale tady je trik :
SCOTT a další vzorová schémata jsou v PNR a ne v CDB . Musíte se tedy přihlásit jako sysdba do PDB.
sqlplus SYS/example@sqldat.com AS SYSDBA
SQL> ALTER USER scott ACCOUNT UNLOCK IDENTIFIED BY tiger;
sqlplus scott/example@sqldat.com
SQL> show user;
USER is "SCOTT"