關(guān)于dual表的破壞性測試,既然是破壞性測試,就需要確定這個測試僅限于測試或者個人學(xué)習(xí)所用,可能有些sql看似極為簡單,但是一旦
關(guān)于dual表的破壞性測試,既然是破壞性測試,就需要確定這個測試僅限于測試或者個人學(xué)習(xí)所用,可能有些sql看似極為簡單,但是一旦運行就會導(dǎo)致整個業(yè)務(wù)系統(tǒng)崩潰。
比如說我們拿dual表開刀,這個表是一個dummy表,里面的內(nèi)容沒有特定的意義,就是為了存在而存在。但是一旦這個表出現(xiàn)問題,所有相關(guān)的基礎(chǔ)操作都會受到影響,后果不敢想象。
來簡單模擬一下,在個人的機(jī)器上開始做下面的嘗試,drop 表dual
SQL> show user
USER is "SYS"
SQL>
SQL> show parameter insta
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
active_instance_count integer
cluster_database_instances integer 1
instance_groups string
instance_name string TEST01
instance_number integer 0
instance_type string RDBMS
open_links_per_instance integer 4
parallel_instance_group string
parallel_server_instances integer 1
SQL> drop table dual; --運行這個命令也沒有出現(xiàn)任何的問題
Table dropped.
SQL> select count(*)from dual; --但是一旦開始嘗試查詢操作就會報出1775的錯誤。
select count(*)from dual
*
ERROR at line 1:
ORA-01775: looping chain of synonyms
SQL> select *from dual; --再次嘗試,問題依舊,可以想象在線業(yè)務(wù)系統(tǒng)出現(xiàn)這個問題是致命的影響。
select *from dual
*
ERROR at line 1:
ORA-01775: looping chain of synonyms
--如果沒有嘗試重啟數(shù)據(jù)庫的情況下,完全可以采用如下的方式來解決,我們可以完全重建表dual,插入dummy的數(shù)據(jù)
SQL> CREATE TABLE "SYS"."DUAL"
( "DUMMY" VARCHAR2(1)
) TABLESPACE "SYSTEM" ;
Table created.
SQL> GRANT SELECT ON "SYS"."DUAL" TO PUBLIC WITH GRANT OPTION;
Grant succeeded.
SQL> select *from dual;
no rows selected
SQL> insert into dual values('X');
1 row created.
SQL> commit;
Commit complete.
SQL> select *from dual; --簡單的驗證,會發(fā)現(xiàn)問題似乎解決了。
D
-
X
SQL> select sysdate from dual; --嘗試使用dual來查詢時間,也沒有發(fā)現(xiàn)問題。
SYSDATE
------------------
20-NOV-14
這個時候可以查看相關(guān)的sys下的失效對象,會發(fā)現(xiàn)受到影響的還不少,這個時候可以重新編譯。
SQL> select object_name,owner ,object_type from dba_objects where status='INVALID'
OBJECT_NAME OWNER OBJECT_TYPE
------------------------------ ------------------------------ -------------------
AQ$_ALERT_QT_V SYS EVALUATION CONTEXT
ALERT_QUE_R SYS RULE SET
ALERT_QUE_N SYS RULE SET
DBMS_RCVMAN SYS PACKAGE BODY
DBMS_BACKUP_RESTORE SYS PACKAGE BODY
DBMS_CDC_UTILITY SYS PACKAGE BODY
DBMS_CDC_ISUBSCRIBE SYS PACKAGE BODY
AQ$_AQ$_MEM_MC_V SYS EVALUATION CONTEXT
AQ$_AQ_PROP_TABLE_V SYS EVALUATION CONTEXT
AQ_PROP_NOTIFY_R SYS RULE SET
AQ_PROP_NOTIFY_N SYS RULE SET
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com