一些互联网用户删除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. 开源NetWorkSocket通讯组件

    开源NetWorkSocket通讯组件   前言 在<化茧成蝶,开源NetWorkSocket通讯组件>发表之后,收到大家很多个star,在此感谢!更可贵的是,一些网友提出了许多好建议,经 ...

  2. java提高篇(十)-----强制类型转换

    在java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换. 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需 ...

  3. NEON简单介绍

    个128位四字寄存器Q0-Q15,32个64位双字寄存器D0-D31,两个寄存器是重叠的,在使用的时候须要特别注意,不小心就会被覆盖掉. NEON的数据类型:无符号整数.有符号整数.未指定类型的整数. ...

  4. 大约C++ const 全面总结

    C++中的const关键字的使用方法很灵活,而使用const将大大改善程序的健壮性,本人依据各方面查到的资料进行总结例如以下,期望对朋友们有所帮助. Const 是C++中经常使用的类型修饰符,常类型 ...

  5. crm创建基于fetch自己的自定义报告

    在解决方案资源管理器,右键点击"报表"目录.然后点击"增加了新的报告". 打开"报表向导". 在"欢迎来到报表向导"前, ...

  6. flask+gevent+gunicorn+nginx 初试

    1.安装flask pip install flask 2.安装gevent pip install gevent 3.安装gunicorn pip install gunicorn 版本信息例如以下 ...

  7. DOM手术台

    CSS分类 排队: <div id="box" style="width:200px;border:1px solid red color:red;font-siz ...

  8. w3wp占用CPU过高

    w3wp占用CPU过高 在此之前项目有发生过两次类似的状况,都得以解决,但最近又会发现偶尔CPU会跑满,虽然之前使用过WinDbg解决过两次问题但人的记忆是不可靠的,今天处理同样问题的时候还是遇到了一 ...

  9. mfc配置GDI+有106个错误

    mfc配置GDI+有106个错误,处理如下,参考http://bbs.csdn.net/topics/380054079 一开始#include...放在stdafx.h里有错误,后来上面修改好了,放 ...

  10. Code digest

    private void travelDir(String filepath) { String threadName = Thread.currentThread().toString(); log ...