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/[email protected] AS SYSDBA
SQL> ALTER USER scott ACCOUNT UNLOCK IDENTIFIED BY tiger;
sqlplus scott/[email protected]
SQL> show user;
USER is "SCOTT"