【問題處理】9i客戶端無法“直接”使用purge recyclebin命令清理10g資料庫回收站資訊
偶遇9i客戶端在連線10g資料庫時,無法直接使用“purge recyclebin”命令清理回收站資訊的問題。現將問題現象、處理方法及其原因總結在此,供參考。
1.建立測試表T,模擬生成T表DROP後的回收站資訊。
sec@ora10g> create table t (x int);
Table created.
sec@ora10g> select * from cat;
TABLE_NAME TABLE_TYPE
------------------------------ ----------------------
T TABLE
sec@ora10g> drop table t;
Table dropped.
sec@ora10g> select * from cat;
TABLE_NAME TABLE_TYPE
------------------------------ ----------------------
BIN$fq7Ry1Hzz1DgQAB/AQAMLA==$0 TABLE
OK,此時便可得到T表刪除後的殘留資訊(存放在recyclebin中)。
2.再現一下9i客戶端無法刪除10g回收站問題。
C:\>sqlplus sec/sec@ora10g
SQL*Plus: Release 9.2.0.1.0 - Production on Wed Feb 3 16:07:33 2010
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning and Data Mining options
SQL> purge recyclebin;
SP2-0734: unknown command beginning "purge recy..." - rest of line ignored.
提示“SP2-0734”錯誤,這個錯誤表示語法不對,使用的命令不存在。
ora10g@secDB /home/oracle$ oerr sp2 734
00734, 0, "unknown command beginning \"%s...\" - rest of line ignored.\n"
// *Cause: The command entered was invalid.
// *Action: Check the syntax of the command you used for the correct
// options.
是拼寫錯誤導致的問題?可以肯定,不是這個原因。那是為什麼呢?
3.嘗試使用10g的客戶端完成回收站的清理。“同樣的命令”可以完成回收站清理任務。
C:\>sqlplus sec/sec@ora10g
SQL*Plus: Release 10.2.0.3.0 - Production on Wed Feb 3 16:27:56 2010
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning and Data Mining options
sec@ora10g> select * from cat;
TABLE_NAME TABLE_TYPE
------------------------------ ----------------------
BIN$fq7Ry1Hzz1DgQAB/AQAMLA==$0 TABLE
sec@ora10g> purge recyclebin;
Recyclebin purged.
sec@ora10g> select * from cat;
no rows selected
4.問題原因分析
仔細思考一下,為什麼同樣的命令在10g客戶端中可以執行,但是在9i客戶端環境下無法使用呢?
其實,根本原因已經浮出水面,“purge recyclebin”在9i的SQL*Plus中並不存在,這個命令是在10g中才被引入。所以在9i的客戶端中是無法直接使用這個命令來完成回收站清理的。
5.問題解決途徑
1)第一種解決方法:升級Oracle客戶端版本,保證客戶端與伺服器端Oracle版本一致。
這是根本解決方法,如果條件允許,客戶端與伺服器端的資料庫版本應保持一致。
2)第二種解決方法:使用PL/SQL塊完成回收站清理
既然直接使用“purge recyclebin”無法完成我們的任務,我們可以迂迴的完成這個任務:在PL/SQL塊中使用“purge recyclebin”命令完成清理。
(1)重新模擬一下drop過程
C:\>sqlplus sec/sec@ora10g
SQL*Plus: Release 9.2.0.1.0 - Production on Wed Feb 3 17:37:34 2010
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning and Data Mining options
SQL> create table t (x int);
Table created.
SQL> col table_name for a30
SQL> select * from cat;
TABLE_NAME TABLE_TYPE
------------------------------ ----------------------
T TABLE
SQL> drop table t;
Table dropped.
SQL> col table_name for a30
SQL> select * from cat;
TABLE_NAME TABLE_TYPE
------------------------------ ----------------------
BIN$frAD2zWA6LzgQAB/AQAYJA==$0 TABLE
重新模擬完畢。
(2)直接使用purge recyclebin無法清理回收站。
SQL> purge recyclebin;
SP2-0734: unknown command beginning "purge recy..." - rest of line ignored.
(3)迂迴處理,成功!
SQL> begin
2 execute immediate 'purge recyclebin';
3 end;
4 /
PL/SQL procedure successfully completed.
SQL> select * from cat;
no rows selected
6.小結
為了規避不必要的麻煩和問題,請儘量保證Oracle客戶端版本與伺服器端版本一致。
透過問題現象看本質,發現問題,解決問題,總結經驗。
Good luck.
secooler
10.02.03
-- The End --
1.建立測試表T,模擬生成T表DROP後的回收站資訊。
sec@ora10g> create table t (x int);
Table created.
sec@ora10g> select * from cat;
TABLE_NAME TABLE_TYPE
------------------------------ ----------------------
T TABLE
sec@ora10g> drop table t;
Table dropped.
sec@ora10g> select * from cat;
TABLE_NAME TABLE_TYPE
------------------------------ ----------------------
BIN$fq7Ry1Hzz1DgQAB/AQAMLA==$0 TABLE
OK,此時便可得到T表刪除後的殘留資訊(存放在recyclebin中)。
2.再現一下9i客戶端無法刪除10g回收站問題。
C:\>sqlplus sec/sec@ora10g
SQL*Plus: Release 9.2.0.1.0 - Production on Wed Feb 3 16:07:33 2010
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning and Data Mining options
SQL> purge recyclebin;
SP2-0734: unknown command beginning "purge recy..." - rest of line ignored.
提示“SP2-0734”錯誤,這個錯誤表示語法不對,使用的命令不存在。
ora10g@secDB /home/oracle$ oerr sp2 734
00734, 0, "unknown command beginning \"%s...\" - rest of line ignored.\n"
// *Cause: The command entered was invalid.
// *Action: Check the syntax of the command you used for the correct
// options.
是拼寫錯誤導致的問題?可以肯定,不是這個原因。那是為什麼呢?
3.嘗試使用10g的客戶端完成回收站的清理。“同樣的命令”可以完成回收站清理任務。
C:\>sqlplus sec/sec@ora10g
SQL*Plus: Release 10.2.0.3.0 - Production on Wed Feb 3 16:27:56 2010
Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning and Data Mining options
sec@ora10g> select * from cat;
TABLE_NAME TABLE_TYPE
------------------------------ ----------------------
BIN$fq7Ry1Hzz1DgQAB/AQAMLA==$0 TABLE
sec@ora10g> purge recyclebin;
Recyclebin purged.
sec@ora10g> select * from cat;
no rows selected
4.問題原因分析
仔細思考一下,為什麼同樣的命令在10g客戶端中可以執行,但是在9i客戶端環境下無法使用呢?
其實,根本原因已經浮出水面,“purge recyclebin”在9i的SQL*Plus中並不存在,這個命令是在10g中才被引入。所以在9i的客戶端中是無法直接使用這個命令來完成回收站清理的。
5.問題解決途徑
1)第一種解決方法:升級Oracle客戶端版本,保證客戶端與伺服器端Oracle版本一致。
這是根本解決方法,如果條件允許,客戶端與伺服器端的資料庫版本應保持一致。
2)第二種解決方法:使用PL/SQL塊完成回收站清理
既然直接使用“purge recyclebin”無法完成我們的任務,我們可以迂迴的完成這個任務:在PL/SQL塊中使用“purge recyclebin”命令完成清理。
(1)重新模擬一下drop過程
C:\>sqlplus sec/sec@ora10g
SQL*Plus: Release 9.2.0.1.0 - Production on Wed Feb 3 17:37:34 2010
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning and Data Mining options
SQL> create table t (x int);
Table created.
SQL> col table_name for a30
SQL> select * from cat;
TABLE_NAME TABLE_TYPE
------------------------------ ----------------------
T TABLE
SQL> drop table t;
Table dropped.
SQL> col table_name for a30
SQL> select * from cat;
TABLE_NAME TABLE_TYPE
------------------------------ ----------------------
BIN$frAD2zWA6LzgQAB/AQAYJA==$0 TABLE
重新模擬完畢。
(2)直接使用purge recyclebin無法清理回收站。
SQL> purge recyclebin;
SP2-0734: unknown command beginning "purge recy..." - rest of line ignored.
(3)迂迴處理,成功!
SQL> begin
2 execute immediate 'purge recyclebin';
3 end;
4 /
PL/SQL procedure successfully completed.
SQL> select * from cat;
no rows selected
6.小結
為了規避不必要的麻煩和問題,請儘量保證Oracle客戶端版本與伺服器端版本一致。
透過問題現象看本質,發現問題,解決問題,總結經驗。
Good luck.
secooler
10.02.03
-- The End --
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/519536/viewspace-626767/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 9i客戶端無法“直接”使用purge recyclebin命令清理10g資料庫回收站資訊客戶端資料庫
- 客戶端無法連線資料庫的小問題客戶端資料庫
- 客戶端無法同步時間伺服器問題處理客戶端伺服器
- Oracle日常問題處理-資料庫無法啟動Oracle資料庫
- Windows 下處理資料庫無法啟動問題Windows資料庫
- Redis 是如何處理命令的(客戶端)Redis客戶端
- 應用使用JNDI,資料庫無法連線,導致的程序無法啟動問題處理資料庫
- Oracle資料庫無效物件問題處理Oracle資料庫物件
- Winform客戶端引用WCF客戶端後,部分類無法正常使用ORM客戶端
- Oracle Recyclebin - purgeOracle
- 資料清理的遺留問題處理(二)
- PLSQL Developer 客戶端沒有TNS監聽,無法連線資料庫SQLDeveloper客戶端資料庫
- 虛擬平臺客戶端無法登陸問題記錄客戶端
- 8i,9i,10g Standby 資料庫引數配置,後臺程式,問題處理等資料庫
- 處理客戶小機問題[一則]
- 如何配置oracle客戶端連線10g rac 資料庫Oracle客戶端資料庫
- 【轉】Oracle 9i客戶端匯出10g資料庫時報ora-33262錯誤Oracle客戶端資料庫
- 10g資料庫例項使用11g asm錯誤問題處理資料庫ASM
- standby無法使用歸檔日誌問題處理
- 關於oracle 11g客戶端匯出10g庫的問題Oracle客戶端
- 一次資料庫無法啟動問題的處理-ORA-00845資料庫
- 資料庫異常關閉後無法啟動問題處理一例資料庫
- Mac下SVN客戶端CornerStone使用問題Mac客戶端
- 客戶端連不上資料庫客戶端資料庫
- 【故障處理】通過重建資料庫物件解決因EXPDP/IMPDP工具損壞無法使用問題資料庫物件
- 本機資料庫資料庫鏈無法訪問遠端資料庫資料庫
- GitHub Windows客戶端無法登入GithubWindows客戶端
- Kafka 處理器客戶端介紹Kafka客戶端
- JAVA FTP客戶端問題JavaFTP客戶端
- 9i資料庫hang死分析處理資料庫
- 客戶端使用sysdba許可權登入資料庫客戶端資料庫
- 資料庫無響應問題的緊急處理和分析資料庫
- 網路問題或客戶端異常可能導致資料庫會話處於僵死狀態客戶端資料庫會話
- 命令列客戶端MySQL如何使用命令列客戶端MySql
- 資料庫響應慢問題處理資料庫
- 資料預處理-資料清理
- 【問題處理】因ASM磁碟組空間不足導致資料庫例項無法啟動的故障處理ASM資料庫
- Dede呼叫資料庫失敗,無法實現資料處理資料庫