问题 如何解决此“ORA-01109:数据库未打开”错误?


我正在尝试使用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

为什么它会给我这样的错误?


10826
2017-12-03 19:50


起源



答案:


由于错误状态 - 数据库未打开 - 它先前已关闭,有人在启动过程中将其保留。它们可能是有意的,也可能是无意的(即,它应该是开放的,但未能这样做)。

假设数据库本身没有任何问题,您可以使用一个简单的语句打开它:

ALTER DATABASE OPEN

9
2017-12-03 19:54



谢谢 !!出于某种原因,当我输入该命令时,它告诉我“Oracle不可用”..不确定 - Coffee
我想我应该避免使用 sysdba 用户? - Coffee
请注意,如果语句末尾没有分号(;),这将无效(至少从SqlPlus内部) - Hakam Fostok


答案:


由于错误状态 - 数据库未打开 - 它先前已关闭,有人在启动过程中将其保留。它们可能是有意的,也可能是无意的(即,它应该是开放的,但未能这样做)。

假设数据库本身没有任何问题,您可以使用一个简单的语句打开它:

ALTER DATABASE OPEN

9
2017-12-03 19:54



谢谢 !!出于某种原因,当我输入该命令时,它告诉我“Oracle不可用”..不确定 - Coffee
我想我应该避免使用 sysdba 用户? - Coffee
请注意,如果语句末尾没有分号(;),这将无效(至少从SqlPlus内部) - Hakam Fostok


你有没有尝试过 SQL> alter database open; ?首次登录后?


2
2017-12-03 19:54



嗯,我做这个代码,它告诉我“Oracle不可用”? - Coffee
如果没有,您如何登录?检查数据库和侦听器服务,然后重试 - Null
我想因为我登录使用: sqlplus sys/sys_password as sysdba  - 我想我应该使用普通用户? - Coffee
好的会试试,谢谢 - Coffee
SYS拥有所有特权,您很受欢迎 - Null


如果您的数据库已关闭,那么在登录期间作为SYSDBA,您可以假设这一点。虽然login命令将像sqlplus sys / sys_password一样执行为sysdba,那时你将从数据库中获得“连接到空闲实例”的回复。此消息表明您的数据库已关闭。您应该首先检查一下alert.log文件,了解数据库关闭的原因。如果您发现它已正常关闭,那么您可以发出“startup”命令来启动数据库,然后执行create user命令。如果您发现数据库存在缺少数据文件或其他问题,则需要先恢复数据库并打开数据库以执行create user命令。

“alter database open”命令仅在Mount阶段时由数据库接受。如果数据库已关闭,则它将不接受“alter database open”命令。


1
2018-01-02 04:39





我遇到了同样的问题。以下是我解决问题的方法。我正在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应该是开放的,用于读/写,你应该能够创建模式等。


1
2017-10-17 04:05





同样的问题带我到这里来。 毕竟,我找到了链接,这对我有好处。

来源链接

检查可插拔数据库的状态。

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
  迁移


0
2018-05-03 07:29