我正在尝试使用SQLPlus创建自己的数据库。所以首先我以管理员身份登录:
sqlplus sys/sys_password as sysdba
然后我尝试创建一个名为sqlzoo的新用户:
CREATE USER sqlzoo IDENTIFIED BY sqlzoo
DEFAULT TABLESPACE tbs_perm_01sqlzoo
TEMPORARY TABLESPACE tbs_perm_01sqlzoo
QUOTA 20M ON tbs_perm_01sqlzoo;
这给了我以下错误:
ERROR at line 1:
ORA-01109: database not open
为什么它会给我这样的错误?
由于错误状态 - 数据库未打开 - 它先前已关闭,有人在启动过程中将其保留。它们可能是有意的,也可能是无意的(即,它应该是开放的,但未能这样做)。
假设数据库本身没有任何问题,您可以使用一个简单的语句打开它:
ALTER DATABASE OPEN
由于错误状态 - 数据库未打开 - 它先前已关闭,有人在启动过程中将其保留。它们可能是有意的,也可能是无意的(即,它应该是开放的,但未能这样做)。
假设数据库本身没有任何问题,您可以使用一个简单的语句打开它:
ALTER DATABASE OPEN
你有没有尝试过 SQL> alter database open; ?首次登录后?
如果您的数据库已关闭,那么在登录期间作为SYSDBA,您可以假设这一点。虽然login命令将像sqlplus sys / sys_password一样执行为sysdba,那时你将从数据库中获得“连接到空闲实例”的回复。此消息表明您的数据库已关闭。您应该首先检查一下alert.log文件,了解数据库关闭的原因。如果您发现它已正常关闭,那么您可以发出“startup”命令来启动数据库,然后执行create user命令。如果您发现数据库存在缺少数据文件或其他问题,则需要先恢复数据库并打开数据库以执行create user命令。
“alter database open”命令仅在Mount阶段时由数据库接受。如果数据库已关闭,则它将不接受“alter database open”命令。
我遇到了同样的问题。以下是我解决问题的方法。我正在Windows 10上的oracle数据库12c可插拔数据库(pdb)上工作。
- 使用sqlplus从终端登录为sysdba;以下是一个例子:
sqlplus sys / @ orclpdb as sysdba
- 首先检查您的数据库状态;
SQL> select name,v_ pdbs中的open_mode;
- 它显示数据库已安装在我的情况下。如果未安装您的,则应首先安装数据库。
- 接下来打开数据库进行读/写
SQL> ALTER PLUGGABLE DATABASE OPEN;
- 再次检查状态。
SQL> select name,v_ pdbs中的open_mode;
- 现在你的dababase应该是开放的,用于读/写,你应该能够创建模式等。
同样的问题带我到这里来。
毕竟,我找到了链接,这对我有好处。
来源链接
检查可插拔数据库的状态。
SQL> STARTUP; ORACLE实例启动了。
系统全局总面积788529152字节固定大小2929352
bytes变量大小541068600字节数据库缓冲区239075328
bytes重做缓冲区5455872字节数据库已安装。数据库
打开。 SQL> select name,v_ pdbs中的open_mode;
名称OPEN_MODE
------------------------------ ---------- PDB $ SEED安装PDBORCL安装PDBORCL2安装PDBORCL1
MOUNTED
我们需要在UPGRADE状态下启动PDB $ SEED PLOGGABLE DATABASE
SQL> SHUTDOWN IMMEDIATE;
数据库关闭。数据库已卸下。 ORACLE实例关闭。
SQL> STARTUP UPGRADE;
ORACLE实例启动了。
系统全局总面积788529152字节固定大小2929352
bytes变量大小541068600字节数据库缓冲区239075328
bytes重做缓冲区5455872字节数据库已安装。数据库
打开。
SQL> ALTER PLUGGABLE DATABASE ALL OPEN UPGRADE;可插拔数据库
改变。
SQL> select name,v_ pdbs中的open_mode;
名称OPEN_MODE
------------------------------ ---------- PDB $ SEED MIGRATE PDBORCL MIGRATE PDBORCL2 MIGRATE PDBORCL1
迁移