一些互联网用户删除dual表还有一个问题:

删除dual时间表hang直播,然后直接shutdown abort。话又说回来,当您启动数据库。发现open时间已经hang直播。但该数据库是真正开放的另一个窗口已经打开。

下面的模拟:

SYS@orcl11g>drop table dual;

一直hang在这不动

在另外一个窗体:

SYS@orcl11g>shutdown abort
ORACLE instance shut down.

重新启动数据库:

SYS@orcl11g>startup mount
ORACLE instance started.
Total System Global Area 417546240 bytes
Fixed Size 2213936 bytes
Variable Size 327157712 bytes
Database Buffers 83886080 bytes
Redo Buffers 4288512 bytes
Database mounted.
SYS@orcl11g>alter database open;

一直hang这个不动。打开另外一个窗体:

SYS@orcl11g>select open_mode from v$database;
OPEN_MODE
----------------------------------------
READ WRITE SYS@orcl11g>

发现数据库已经打开

这是由于系统触发器造成,在初始化參数中增加:

_system_trig_enabled=flase

再次启动数据库:

SYS@orcl11g>startup mount
ORACLE instance started.
Total System Global Area 417546240 bytes
Fixed Size 2213936 bytes
Variable Size 327157712 bytes
Database Buffers 83886080 bytes
Redo Buffers 4288512 bytes
Database mounted.
SYS@orcl11g>show parameter _sys
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
_system_trig_enabled boolean FALSE
audit_sys_operations boolean FALSE
audit_syslog_level string
filesystemio_options string none
ldap_directory_sysauth string no
SYS@orcl11g>alter database open; Database altered.

最開始删除dual表的时候也是由于系统触发器的存在。

如今我们禁用了系统触发器将dual删除看是什么效果:

SYS@orcl11g>drop table dual;

Table dropped.

重新启动数据库:

SYS@orcl11g>startup nomount pfile=initorcl11g.ora
ORACLE instance started.
Total System Global Area 417546240 bytes
Fixed Size 2213936 bytes
Variable Size 327157712 bytes
Database Buffers 83886080 bytes
Redo Buffers 4288512 bytes
SYS@orcl11g>show parameter rep
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
replication_dependency_tracking boolean TRUE
SYS@orcl11g>
SYS@orcl11g>
SYS@orcl11g>
SYS@orcl11g>
SYS@orcl11g>alter database mount; Database altered. SYS@orcl11g>alter database open;
alter database open
*
ERROR at line 1:
ORA-01092: ORACLE instance terminated. Disconnection forced
ORA-01775: looping chain of synonyms
Process ID: 2485
Session ID: 1 Serial number: 3

这里我们不用trace就知道是由于dual表的缘故,所以dual也是非常重要的。不要乱玩

这时候我们须要将REPLICATION_DEPENDENCY_TRACKING參数设置为False才干打开数据库:

官方文档给出的解释:

REPLICATION_DEPENDENCY_TRACKING enables or disables dependency tracking for

read/write operations to the database. Dependency tracking is essential for

propagating changes in a replicated environment in parallel

增加參数打开数据库:

SYS@orcl11g>startup mount
ORACLE instance started.
Total System Global Area 417546240 bytes
Fixed Size 2213936 bytes
Variable Size 327157712 bytes
Database Buffers 83886080 bytes
Redo Buffers 4288512 bytes
Database mounted.
SYS@orcl11g>show parameter rep
NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
replication_dependency_tracking boolean FALSE
SYS@orcl11g>ak^H
SP2-0042: unknown command "a" - rest of line ignored.
SYS@orcl11g>a;ter^H
SYS@orcl11g>alter database open; Database altered. SYS@orcl11g>select * from dual;
select * from dual
*
ERROR at line 1:
ORA-01775: looping chain of synonyms

这时候我们呢须要重建dual表:

SYS@orcl11g>CREATE TABLE "SYS"."DUAL"
2 ( "DUMMY" VARCHAR2(1)
3 ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
4 NOCOMPRESS LOGGING
5 STORAGE(INITIAL 16384 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
6 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
7 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
8 TABLESPACE "SYSTEM" ; Table created. SYS@orcl11g>SYS@orcl11g>GRANT SELECT ON "SYS"."DUAL" TO PUBLIC WITH GRANT OPTION; Grant succeeded. SYS@orcl11g>SYS@orcl11g>@?/rdbms/admin/utlrp.sql

至此我们dual已经恢复完毕

SYS@orcl11g>select 'www.zbdba.com' from dual;
'WWW.ZBDBA.COM'
--------------------------
www.zbdba.com

版权声明:本文博客原创文章,博客,未经同意,不得转载。

Drop dual的更多相关文章

  1. oralce中的dual详解 转 http://blog.sina.com.cn/s/blog_a5a24bcb0100zeay.html

    dual是属于sys的只有一个X varchar2(1)列查询虚拟列不会产生逻辑IO========================================================== ...

  2. MySQL 保留字

    ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL CASCADE C ...

  3. MySQL关键字

    MySQL关键字 ADD ALL ALTER ANALYZE AND AS ASC ASENSITIVE BEFORE BETWEEN BIGINT BINARY BLOB BOTH BY CALL ...

  4. Mysql关键字 Mysql保留字列表 Mysql字段名

    Mysql保留字列表.吠品整理. 尝试使用一个识别符,例如使用嵌入式MySQL 数据类型或函数名作为表名或列名,例如TIMESTAMP 或GROUP,会造成一个常见问题.允许你这样操作( 例如,ABS ...

  5. MySQL关键字(保留字)列表

    在使用MySQL的时候,一般尽量避免用关键字作为表名,如使用关键字做表名,需要按标准写法给SQL语句加[](或是“)区分字段名和表名. 下面列出MySQL所有关键字,希望给使用MySQL的朋友提供一些 ...

  6. Mysql 练习 总结

    insert into Course values ('); #---------------Teacher--添加信息---- insert into Teacher values (','李成', ...

  7. mysql5.5手册读书日记(1)

    <?php //mysql语句使用技巧 /* * 我的数据库是5.5.2 * * 查询当前用户的登陆的名字 * select user(); * * 查询当前mysql服务器时间和服务器版本 * ...

  8. Weka链接Mysql数据库

    Weka简介 Weka的全名是怀卡托智能分析环境(Waikato Environment for Knowledge Analysis),是一款免费的,非商业化(与之对应的是SPSS公司商业数据挖掘产 ...

  9. MySQL中的保留字

    本文转载自:http://www.cnblogs.com/lawdong/archive/2010/08/08/2357903.html ADD ALL ALTER ANALYZE AND AS AS ...

随机推荐

  1. [LeetCode119]Pascal's Triangle II

    题目: Given an index k, return the kth row of the Pascal's triangle. For example, given k = 3,Return [ ...

  2. ATL 创COM物

    我原来以前写dll创建过程,而直接使用LoadLibrary加载动态库. 但ATL提出了一个非常重要的特点是引入COM对象的概念. 首先. ATL active template library该活动 ...

  3. Cocos2d-X 使用CCTableView创建滚动视图

    CCTableView和CCScrollView如创建滚动视图,CCTableView该函数将是更,制造更多麻烦 实例1:使用CCTableView创建滚动视图 首先创建一个TableView类 Ta ...

  4. rhel6使用的版本数部分intel xeon处理器时间bug

    可惜在总前几天"oracle操作和维护的高级别小组"于.BBQ 上帝说,大量RHEL的bug.这bug在这个例子中,下面的URL: https://access.redhat.co ...

  5. struts2于validate要使用

    package com.test.action; import com.opensymphony.xwork2.ActionSupport; import com.test.model.User; p ...

  6. HDOJ 4821 String

    串hash String Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Tot ...

  7. VOJ 1067 Warcraft III 守望者的烦恼 (矩阵高速功率+dp)

    主题链接 明显的 dp[n] = dp[n-k] + dp[n-k+1] + ... +dp[n-1]; 然后要用矩阵来优化后面的状态转移. 也就是矩阵 0 1 0 0    a     b 0 0 ...

  8. Jquery在线咨询地址

    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js" type=&quo ...

  9. COM Interop

    1.MSDN上的文章:COM Interop教程 2.接口的三种类型:IDispatch.IUnknown和Dual 3.使用TlbImp来更灵活地自动生成RCW 4.托管事件基于委托,而非托管事件( ...

  10. nodejs 递归创建目录

    nodejs没有递归创建目录的方法,以前创建的时候是将目录通过path.sep,然后再一步步判断,这个方法在windows下面遇到盘符的时候,然后蛋疼了.今天又用到了这个功能,突然想到了另外一种方法, ...