ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 【DUAL】数据库nomount状态下DUAL的内容

【DUAL】数据库nomount状态下DUAL的内容

原创 Linux操作系统 作者:secooler 时间:2009-10-24 17:06:24 0 删除 编辑
从数据库在nomount状态下dual可查询谈起。

1.关闭数据库
sys@ora10g> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

2.启动数据库到nomount状态
sys@ora10g> startup nomount;
ORACLE instance started.

Total System Global Area 2147483648 bytes
Fixed Size                  2074152 bytes
Variable Size             637536728 bytes
Database Buffers         1493172224 bytes
Redo Buffers               14700544 bytes

3.查看一下dual的内容
结论:首先是可以查询这个dual,然后就是显示的结果和正常加载数据库后的效果是不一样的。多出来的ADDR、INDX和INST_ID三列做什么用的呢?
sys@ora10g> select * from dual;

ADDR                   INDX    INST_ID DUM
---------------- ---------- ---------- ---
00000000056B1C5C          0          1 X

进一步,可以利用这个dual进行辅助查询,如查询当前的时间
sys@ora10g> select sysdate from dual;

SYSDATE
-------------------
2009-10-24 16:41:57

4.open数据库后的查看dual的亲切效果如下
sys@ora10g> alter database mount;

Database altered.


sys@ora10g> alter database open;

Database altered.

sys@ora10g> select * from dual;

D
-
X

5.到底为什么在nomount没有加载数据库的情况下可以进行查询呢(比如上面有关dual的查询)?
原因很简单,因为在nomount状态下也是有大量的数据库维护工作可以做的,比如备份恢复工具RMAN在nomount下的一些维护工作,RMAN要获得实例的一些信息,所以一定要通过某种途径获得。这就是为什么只在启动数据库实例,没有加载数据库的情况下也可以完成某些查询的原因。

6.在nomount下还可以查询一些视图,这些都是在nomount下辅助功能的一部分
sys@ora10g> select count(*) from v$instance;

  COUNT(*)
----------
         1

sys@ora10g> select * from v$version;

BANNER
----------------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bi
PL/SQL Release 10.2.0.3.0 - Production
CORE    10.2.0.3.0      Production
TNS for Linux: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production


sys@ora10g> select count(*) from v$spparameter;

  COUNT(*)
----------
       260

sys@ora10g> select * from v$sga;

NAME                                VALUE
------------------------------ ----------
Fixed Size                        2074152
Variable Size                   637536728
Database Buffers               1493172224
Redo Buffers                     14700544


sys@ora10g> select count(*) from v$bh;

  COUNT(*)
----------
         0

7.小结
通过这个小实验,只是想给大家展示一下在没有打开数据库,甚至没有加载数据库,仅仅在启动实例的阶段,也是可以进行某些查询的。思路要开阔一些。

-- The End --

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/519536/viewspace-617354/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE 总监,阿里云MVP,北京大学理学硕士,恩墨学院创始人,教育专家,中国区 Cloudera 首位官方授权大数据讲师,金牌培训专家,BDA大数据联盟创始人,OCM联盟创始人,ACCUG创始人、ACOUG核心专家,Blogger。

注册时间:2008-03-16

  • 博文量
    797
  • 访问量
    7975962