Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 在PDB数据库中解锁用户_Database_Oracle_Oracle12c_Pluggable Database - Fatal编程技术网

Database 在PDB数据库中解锁用户

Database 在PDB数据库中解锁用户,database,oracle,oracle12c,pluggable-database,Database,Oracle,Oracle12c,Pluggable Database,每次我打开计算机并尝试连接到HR数据库时,都会弹出一个错误,说明已阻止,然后我转到SQLPLUS并以SYSDBA身份登录,并执行以下脚本: 我的问题是,我总是必须这样做吗?有没有办法让它一直处于解锁状态 1.- sqlplus / as sysdba 2.- show con_name; 3.- ALTER SESSION SET CONTAINER = orclpdb; 4.- COLUMN name FORMAT a20; 5.- SELECT name, open_mode fro

每次我打开计算机并尝试连接到
HR
数据库时,都会弹出一个错误,说明已阻止,然后我转到SQLPLUS并以
SYSDBA
身份登录,并执行以下脚本:

我的问题是,我总是必须这样做吗?有没有办法让它一直处于解锁状态

1.- sqlplus / as sysdba

2.- show con_name;

3.- ALTER SESSION SET CONTAINER = orclpdb;

4.- COLUMN name FORMAT a20;

5.- SELECT name, open_mode from v$pdbs;

6.- ALTER PLUGGABLE DATABASE open;

7.- ALTER USER hr IDENTIFIED BY hr ACCOUNT UNLOCK;

8- conn hr/hr@orclpdb

9.- SHOW USER;
请阅读

要在登录后立即打开所有/特定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仍处于装载状态,未打开以进行读/写操作

因此,要使所有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 SYS/password@PDBORCL AS SYSDBA

SQL> ALTER USER hr ACCOUNT UNLOCK IDENTIFIED BY hr;

sqlplus hr/hr@pdborcl

SQL> show user;
USER is "HR"
现在您不需要手动打开PDB,只需连接到PDB和您想要的用户

12.1.0.2开始,您可以通过CDB重启来保持PDB启动状态:

ALTER PLUGGABLE DATABASE pdb_name OPEN;
ALTER PLUGGABLE DATABASE pdb_name SAVE STATE;
要放弃保存的状态,请执行以下操作:

ALTER PLUGGABLE DATABASE pdb_name DISCARD STATE;

@从12.1.0.2开始,通过应用补丁集,PDB保存状态选项可用。我在答案中添加了更多细节,谢谢!