Как конфигурирахте вашата база данни? Проверихте ли опцията за Pluggable database
? Ако да, моля, уверете се, че сте влезли в PDB
а не CDB
.
Моля, прочетете Oracle 12c след инсталирането задължително Стъпките .
По подразбиране, pre-installed
потребители като SCOTT
, HR
и т.н. се намира в container database
а не в pluggable database
.
tnsnames.ora
Редактирайте файла tnsnames.ora, за да добавите подробностите за PDB. Например,
PDBORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdborcl)
)
)
Отворете всички PDBs
За да отворите всички/конкретни PDB веднага след влизане, създайте СЛЕД СТАРТИРАНЕ тригер на системно ниво в CDB.
Тъй като PDB не се отварят чрез стартиране на CDB. Да видим:
SHUTDOWN IMMEDIATE;
STARTUP;
SQL> SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READ ONLY
PDBP6 MOUNTED
И така, за да отворите всички PDB автоматично, направете следното:
Направете „SQLPLUS / AS SYSDBA
”, и след това изпълнете :
CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
/
Той създава тригер на системно ниво след стартиране в CDB.
SQLPLUS / AS SYSDBA
Най-често срещаното недоразумение е относно използването на „SQLPLUS / AS SYSDBA“.
Тъй като проверихме опцията за създаване на единична CDB , командата “SQLPLUS / AS SYSDBA” винаги ще влиза в CDB. Обикновено разработчиците отключваха акаунта „SCOTT“ директно след влизане като SYSDBA. Но тук е трикът:
„SCOTT“ и други примерни схеми са в PDB, а не в CDB . Така че трябва да влезете като sysdba в 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"