Comment as-tu configuré ta base de données ? Avez-vous coché l'option pour Pluggable database
? Si oui, assurez-vous de vous connecter à PDB
et non CDB
.
Veuillez lire Oracle 12c Post Installation Obligatoire Étapes .
Par défaut, pre-installed
des utilisateurs comme SCOTT
, HR
etc. réside dans container database
et non dans la pluggable database
.
tnsnames.ora
Modifiez votre fichier tnsnames.ora pour ajouter les détails de l'APB. Par exemple,
PDBORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdborcl)
)
)
Ouvrir tous les PDB
Pour ouvrir tous/des PDB spécifiques immédiatement après la connexion, créez un APRÈS LE DÉMARRAGE déclencheur au niveau du système dans CDB.
Depuis, les PDB ne sont pas ouverts via un démarrage CDB. Voyons :
SHUTDOWN IMMEDIATE;
STARTUP;
SQL> SELECT name, open_mode FROM v$pdbs;
NAME OPEN_MODE
------------------------------ ----------
PDB$SEED READ ONLY
PDBP6 MOUNTED
Donc, pour que tous les PDB s'ouvrent automatiquement, faites ceci :
Faites "SQLPLUS / AS SYSDBA
”, puis exécutez :
CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN';
END open_pdbs;
/
Il crée un déclencheur au niveau du système après le démarrage dans CDB.
SQLPLUS / AS SYSDBA
Le malentendu le plus courant concerne l'utilisation de "SQLPLUS / AS SYSDBA".
Depuis que nous avons coché l'option de création d'un seul CDB , la commande "SQLPLUS / AS SYSDBA" se connectera toujours à CDB. Habituellement, les développeurs avaient l'habitude de déverrouiller le compte "SCOTT" directement après s'être connecté en tant que SYSDBA. Mais voici l'astuce :
"SCOTT" et d'autres exemples de schémas sont dans la PDB et non dans la CDB . Donc, vous devez vous connecter en tant que sysdba dans 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"