ORA-30046: Undo tablespace UNDOTBS1 not found in control file 無undo啟動庫

yewushang發表於2014-02-16

本來是要模擬ora 1173,但是出現其他的情況,簡單記錄下。

環境:win7+11.2.0.1

點選(此處)摺疊或開啟

  1. C:\Users\Administrator>net start oracleserviceorcl    --啟動服務 語法為:net start oracleservice+sid
  2. OracleServiceORCL 服務正在啟動 ......
  3. OracleServiceORCL 服務已經啟動成功。


  4. C:\Users\Administrator>sqlplus / as sysdba

  5. SQL*Plus: Release 11.2.0.1.0 Production on 星期日 2月 16 14:55:49 2014  

  6. Copyright (c) 1982, 2010, Oracle. All rights reserved.


  7. 連線到:
  8. Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production  --版本
  9. With the Partitioning, OLAP, Data Mining and Real Application Testing options

  10. SQL> shutdown immediate;
  11. 資料庫已經關閉。
  12. 已經解除安裝資料庫。
  13. ORACLE 例程已經關閉。
  14. SQL>

  15. SQL> startup nomount;
  16. ORACLE 例程已經啟動。

  17. Total System Global Area 1043886080 bytes
  18. Fixed Size 2182344 bytes
  19. Variable Size 603980600 bytes
  20. Database Buffers 432013312 bytes
  21. Redo Buffers 5709824 bytes
  22. SQL> alter database mount;

  23. 資料庫已更改。

  24. SQL> alter database backup controlfile to trace;  --跟蹤控制檔案到trace

  25. 資料庫已更改。

  26. CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS NOARCHIVELOG   --完整的控制檔案資訊
  27.     MAXLOGFILES 16
  28.     MAXLOGMEMBERS 3
  29.     MAXDATAFILES 100
  30.     MAXINSTANCES 8
  31.     MAXLOGHISTORY 292
  32. LOGFILE
  33.   GROUP 1 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG' SIZE 50M BLOCKSIZE 512,
  34.   GROUP 2 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG' SIZE 50M BLOCKSIZE 512,
  35.   GROUP 3 'F:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG\' SIZE 50M BLOCKSIZE 512
  36. -- STANDBY LOGFILE
  37. DATAFILE
  38.   'F:\\APP\\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF\,
  39.   'F:\\APP\\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF',
  40.   'F:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF',
  41.   'F:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF'
  42. CHARACTER SET ZHS16GBK
  43. ;


  44. C:\\Users\\Administrator>sqlplus / as sysdba

  45. SQL*Plus: Release 11.2.0.1.0 Production on 星期日 2月 16 15:01:56 2014

  46. Copyright (c) 1982, 2010, Oracle. All rights reserved.


  47. 連線到:
  48. Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
  49. With the Partitioning, OLAP, Data Mining and Real Application Testing options

  50. SQL> shutdown immediate;
  51. ORA-01109: 資料庫未開啟


  52. 已經解除安裝資料庫。
  53. ORACLE 例程已經關閉。
  54. SQL> startup nomount;
  55. ORACLE 例程已經啟動。

  56. Total System Global Area 1043886080 bytes
  57. Fixed Size 2182344 bytes
  58. Variable Size 603980600 bytes
  59. Database Buffers 432013312 bytes
  60. Redo Buffers 5709824 bytes
  61. SQL>
  62. SQL> CREATE CONTROLFILE REUSE DATABASE \"ORCL\" NORESETLOGS NOARCHIVELOG   --重建控制檔案 但是少寫undo的資訊.
  63.   2 MAXLOGFILES 16
  64.   3 MAXLOGMEMBERS 3
  65.   4 MAXDATAFILES 100
  66.   5 MAXINSTANCES 8
  67.   6 MAXLOGHISTORY 292
  68.   7 LOGFILE
  69.   8 GROUP 1 \'F:\\APP\\ADMINISTRATOR\\ORADATA\\ORCL\\REDO01.LOG\' SIZE 50M BLOCKSIZE 512,
  70.   9 GROUP 2 \'F:\\APP\\ADMINISTRATOR\\ORADATA\\ORCL\\REDO02.LOG\' SIZE 50M BLOCKSIZE 512,
  71.  10 GROUP 3 \'F:\\APP\\ADMINISTRATOR\\ORADATA\\ORCL\\REDO03.LOG\' SIZE 50M BLOCKSIZE 512
  72.  11 -- STANDBY LOGFILE
  73.  12 DATAFILE
  74.  13 \'F:\\APP\\ADMINISTRATOR\\ORADATA\\ORCL\\SYSTEM01.DBF\',
  75.  14 \'F:\\APP\\ADMINISTRATOR\\ORADATA\\ORCL\\SYSAUX01.DBF\',
  76.  15 \'F:\\APP\\ADMINISTRATOR\\ORADATA\\ORCL\\USERS01.DBF\'
  77.  16 CHARACTER SET ZHS16GBK
  78.  17 ;

  79. 控制檔案已建立。

  80. SQL> alter database open;
  81. alter database open
  82. *
  83. 第 1 行出現錯誤:
  84. ORA-01092: ORACLE instance terminated. Disconnection forced
  85. ORA-30046: Undo tablespace UNDOTBS1 not found in control file.   --報此錯誤
  86. 程式 ID: 3932
  87. 會話 ID: 125 序列號: 3

  88.   在引數檔案中新增引數 :*.undo_management='MANUAL'

  89. SQL>

  90. SQL> conn / as sysdba
  91. 已連線到空閒例程。
  92. SQL> create spfile from pfile;

  93. 檔案已建立。

  94. SQL> startup
  95. ORACLE 例程已經啟動。

  96. Total System Global Area 1043886080 bytes
  97. Fixed Size 2182344 bytes
  98. Variable Size 603980600 bytes
  99. Database Buffers 432013312 bytes
  100. Redo Buffers 5709824 bytes
  101. 資料庫裝載完畢。
  102. ORA-01113: 檔案 1 需要介質恢復
  103. ORA-01110: 資料檔案 1: \'F:\\APP\\ADMINISTRATOR\\ORADATA\\ORCL\\SYSTEM01.DBF\'


  104. SQL> recover database;
  105. 完成介質恢復。
  106. SQL> alter database open;  --成功open.

  107. 資料庫已更改。

  108. SQL> select status from v$instance;

  109. STATUS
  110. ------------
  111. OPEN

  112. SQL> show parameter undo

  113. NAME TYPE VALUE
  114. ------------------------------------ ----------- ------------------------------
  115. undo_management string MANUAL
  116. undo_retention integer 900
  117. undo_tablespace string UNDOTBS1
  118. SQL>

  119. SQL> select segment_name from dba_rollback_segs;

  120. SEGMENT_NAME
  121. ------------------------------
  122. SYSTEM
  123. _SYSSMU10_378818850$
  124. _SYSSMU9_3186340089$
  125. _SYSSMU8_1682283174$
  126. _SYSSMU7_1101470402$
  127. _SYSSMU6_1439239625$
  128. _SYSSMU5_2520346804$
  129. _SYSSMU4_1451910634$
  130. _SYSSMU3_478608968$
  131. _SYSSMU2_1531987058$
  132. _SYSSMU1_3086899707$

  133. 已選擇11行。

  134. SQL> conn scott/tiger  --解鎖下scott使用者
  135. ERROR:
  136. ORA-28000: the account is locked


  137. 警告: 您不再連線到 ORACLE。
  138. SQL> alter user scott account unlock;
  139. SP2-0640: 未連線
  140. SQL> conn / as sysdba
  141. 已連線。
  142. SQL> alter user scott account unlock;

  143. 使用者已更改。

  144. SQL> conn scott/tiger
  145. ERROR:
  146. ORA-28001: the password has expired


  147. 更改 scott 的口令
  148. 新口令:
  149. 重新鍵入新口令:
  150. 口令已更改
  151. 已連線。
  152. SQL> select * from cat;

  153. TABLE_NAME TABLE_TYPE
  154. ------------------------------ -----------
  155. BONUS TABLE
  156. DEPT TABLE
  157. EMP TABLE
  158. SALGRADE TABLE

  159. SQL> create table yws as select * from emp;
  160. create table yws as select * from emp
  161.                                   *
  162. 第 1 行出現錯誤:
  163. ORA-01552: cannot use system rollback segment for non-system tablespace \'USERS\'  --當建立表的時候會報沒有回滾段

  164. SQL> alter session set events \'10046 trace name context forever, level 12\';  --本想做個10046 許可權不夠
  165. ERROR:
  166. ORA-01031: insufficient privileges
  167. 用sys 使用者登入發現
  168. SQL>
  169. SQL> conn / as sysdba
  170. 已連線。
  171. SQL> create table yws as select * from scott.emp;  --但是sys使用者可以

  172. 表已建立。

  173. SQL> select segment_name from dba_rollback_segs;

  174. SEGMENT_NAME
  175. ------------------------------
  176. SYSTEM
  177. _SYSSMU10_378818850$
  178. _SYSSMU9_3186340089$
  179. _SYSSMU8_1682283174$
  180. _SYSSMU7_1101470402$
  181. _SYSSMU6_1439239625$
  182. _SYSSMU5_2520346804$
  183. _SYSSMU4_1451910634$
  184. _SYSSMU3_478608968$
  185. _SYSSMU2_1531987058$
  186. _SYSSMU1_3086899707$

  187. 已選擇11行。

  188. SQL> select segment_name,status from dba_rollback_segs;

  189. SEGMENT_NAME STATUS
  190. ------------------------------ ----------------
  191. SYSTEM ONLINE                                              --是online的
  192. _SYSSMU10_378818850$ OFFLINE
  193. _SYSSMU9_3186340089$ OFFLINE
  194. _SYSSMU8_1682283174$ OFFLINE
  195. _SYSSMU7_1101470402$ OFFLINE
  196. _SYSSMU6_1439239625$ OFFLINE
  197. _SYSSMU5_2520346804$ OFFLINE
  198. _SYSSMU4_1451910634$ OFFLINE
  199. _SYSSMU3_478608968$ OFFLINE
  200. _SYSSMU2_1531987058$ OFFLINE
  201. _SYSSMU1_3086899707$ OFFLINE

  202. 已選擇11行。

  203. SQL>

  204. SQL> grant alter session to scott;

  205. 授權成功。

  206. SQL> alter session set events \'10046 trace name context forever, level 12\';

  207. 會話已更改。

  208. SQL> create table yws as select * from emp;
  209. create table yws as select * from emp
  210.                                   *
  211. 第 1 行出現錯誤:
  212. ORA-01552: 非系統表空間 \'USERS\' 不能使用系統回退段


  213. SQL> exit


10046的trace已經生成,抽時間寫下。
主要是是自己庫,基本就是屬於靜止庫,無事務發生,模擬失敗,簡單記錄下,繼續ing。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29477587/viewspace-1082131/,如需轉載,請註明出處,否則將追究法律責任。

相關文章