中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

【報錯處理】ORA-00600: internal error code, arguments: [ktstgdi2], [], []...

發布時間:2020-08-07 19:16:29 來源:ITPUB博客 閱讀:239 作者:595642573 欄目:關系型數據庫
錯誤原因:
   如果數據庫中的參數文件或靜態數據字典中產生了沒有經過校驗的錯誤數值,就會報出錯誤。


經驗總結:
   盡量不要直接修改數據庫中的靜態數據字典、盡量不要直接修改Oracle數據庫相關文件,雖然Oracle也提供了諸如bbed等工具,對Oracle相關的物理文件進行直接修改,但這些工具都是救急修補用的。



問題分析:
   以數據庫配置信息的修改為例,可以通過直接修改database_properties中的列值來達到修改數據庫配置信息的目的,也可以通過alter database句柄間接來修改數據庫配置信息,區別是,直接修改靜態數據字典是沒有任何校驗的,如果修改的數值不對,或修改后的數值可能會引起數據庫出現宕庫或部分功能無法使用,這些都不會提示。而使用alter database句柄,會在修改database_properties之前先校驗要修改的值是否正確,評估修改后是否會引起數據庫故障,還會做大寫轉換操作,確保安全正確的修改數據庫配置


實驗:
設計思路:修改數據庫的一個配置屬性,以修改數據庫默認臨時表空間組為例。分別使用alter database句柄和直接修改保存配置屬性的靜態數據字典兩種方式進行修改,分別使用正確的配置屬性值和錯誤的配置屬性值進行修改,報出ORA-00600錯誤。


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SYS@PROD1>
SYS@PROD1>
SYS@PROD1>
SYS@PROD1>
SYS@PROD1>
創建兩個臨時表空間,并組成一個臨時表空間組
SYS@PROD1> create temporary tablespace temp1
  2  tempfile '/u01/app/oracle/oradata/PROD1/temp101.dbf'
  3  size 50M
  4  tablespace group temp_grp;

Tablespace created.

SYS@PROD1> create temporary tablespace temp2
  2  tempfile '/u01/app/oracle/oradata/PROD1/temp201.dbf'
  3  size 50M
  4  tablespace group temp_grp;

Tablespace created.

查詢靜態數據字典,查看當前數據庫默認的臨時表空間組
SYS@PROD1> select * from database_properties where property_name= 'DEFAULT_TEMP_TABLESPACE';

PROPERTY_NAME                            PROPERTY_VALUE                           DESCRIPTION
---------------------------------------- ----------------------------------------
DEFAULT_TEMP_TABLESPACE                  TEMP                                     Name of default temporary tablespace

1 rows selected.

使用alter database句柄修改數據庫默認的臨時表空間組
SYS@PROD1> alter database default temporary tablespace temp_grp;

Database altered.

查詢靜態數據字典,證明修改成功
SYS@PROD1> select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';

PROPERTY_NAME                            PROPERTY_VALUE                           DESCRIPTION
---------------------------------------- ---------------------------------------- ----------------------------------------------------------------------------------------------------
DEFAULT_TEMP_TABLESPACE                  TEMP_GRP                                 Name of default temporary tablespace



使用alter database句柄修改數據庫默認的臨時表空間,并輸入一個命名規范錯誤的臨時表空間組的值
SYS@PROD1> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE 'temp_grp';
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE 'temp_grp'
報錯,修改失敗                                            *
ERROR at line 1:
ORA-02216: tablespace name expected

使用alter database句柄修改數據庫默認的臨時表空間,并輸入一個根本不存在的臨時表空間組的組名
SYS@PROD1> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TETE;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TETE
*

報錯,修改失敗   
ERROR at line 1:
ORA-00959: tablespace 'TETE' does not exist


直接修改靜態數據字典,來修改數據庫默認的臨時表空間,并輸入一個命名規范錯誤的臨時表空間組的值
SYS@PROD1> UPDATE DATABASE_PROPERTIES SET PROPERTY_VALUE='temp_grp' where PROPERTY_NAME ='DEFAULT_TEMP_TABLESPACE';
沒有報錯,且修改成功,這就是說,直接修改靜態數據字典,是沒有任何校驗的,這樣操作非常不安全!
1 row updated.
再次修改數據庫磨人的臨時表空間組,發現無法修改,報錯
SYS@PROD1> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [ktstgdi2], [], [], [], [], [], [], [], [], [], [], []

直接修改靜態數據字典,并將錯誤的值修改回正確的值

SYS@PROD1> UPDATE DATABASE_PROPERTIES SET PROPERTY_VALUE='TEMP_GRP' where PROPERTY_NAME ='DEFAULT_TEMP_TABLESPACE';

1 row updated.
數據庫恢復正常,又可以繼續維護該配置屬性
SYS@PROD1> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP;

Database altered.




向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

鲁甸县| 孙吴县| 扶沟县| 田阳县| 长兴县| 林口县| 彩票| 金华市| 宜兰市| 双流县| 清丰县| 宁乡县| 伊宁县| 吉林省| 海口市| 福贡县| 韩城市| 河曲县| 巴林左旗| 历史| 文登市| 宁津县| 松江区| 宁海县| 香河县| 银川市| 察雅县| 洛宁县| 朔州市| 克什克腾旗| 蒙阴县| 南投县| 开平市| 白沙| 五河县| 芒康县| 永吉县| 陕西省| 额济纳旗| 子长县| 托克逊县|