Oracle 12c升級檢查問題分析
今天計劃把一個測試環境升級到12c,為了練練手,先在備庫上來做。資料庫版本是11.2.0.3.0,計劃升級到12.1.0.2.0。
為了不影響原有的測試主庫,我在備庫上做了Failover,兩個命令下去就立刻生效了。
SQL> select open_mode from v$database; OPEN_MODE -------------------- READ ONLY SQL>alter database recover managed standby database finish force; Database altered. SQL>alter database commit to switchover to primary; Database altered.
然後使用克隆安裝12c的資料庫軟體,使用下面的命令即可安裝。
$ORACLE_HOME/clone/bin/perl clone.pl ORACLE_BASE=$ORACLE_BASE ORACLE_HOME=$ORACLE_HOME ORACLE_HOME_NAME=OraDb12c_home1
檢視資料庫已經部署了最新的補丁
$ opatch lsinventory ... Patch 23054246 : applied on Mon Oct 17 17:01:16 CST 2016 Unique Patch ID: 20464632 Patch description: "Database Patch Set Update : 12.1.0.2.160719 (23054246)" Created on 5 Jul 2016, 07:07:59 hrs PST8PDT
看了下官方文件,發現對於12c的升級和升級11g差別不大,手工升級的步驟很多指令碼都是一樣的,思路完全可以複用。
升級前的檢查需要跑一個指令碼/preupgrd.sql
本來想速戰速決,沒想到檢查的時候竟然丟擲了一個錯誤。
DECLARE * ERROR at line 1: ORA-01157: cannot identify/lock data file 1003 - see DBWR trace file ORA-01110: data file 1003: '+DATA' ORA-06512: at "SYS.DBMS_PREUP", line 2380 ORA-06512: at "SYS.DBMS_PREUP", line 981 ORA-06512: at "SYS.DBMS_PREUP", line 5471 ORA-06512: at line 73
這個錯誤看得我有些懵,因為我這個備庫是沒有使用ASM的,怎麼會丟擲和ASM相關的錯誤呢。
檢視引數檔案裡面,倒是有一行這樣的內容
*.db_file_name_convert='+DATA/sgstatdb3/datafile','/U01/app/oracle/oradata/statdb2','+ARCH','/U01/app/oracle/oradata/statdb2','/U01/....
可見原來的主庫是使用了ASM,但是在備庫端壓根沒有用到,怎麼會丟擲這個錯誤呢。
檢視alert日誌,發現這個錯誤還挺特別。
Mon Oct 31 22:27:02 2016 WARNING: ASM communication error: op 36 state 0x40 (15077) ERROR: slave communication error with ASM Mon Oct 31 22:28:56 2016 WARNING: ASM communication error: op 36 state 0x40 (15077) ERROR: slave communication error with ASM Mon Oct 31 22:30:00 2016 Thread 1 advanced to log sequence 3 (LGWR switch)
從錯誤日誌可以看出,是在和ASM例項通訊的時候出問題了。這個環境壓根沒有用ASM,肯定出問題了。
看錯誤是檔案1003,檢視v$datafile,檔案號最大才是800多,怎麼會冒出一個1003的檔案呢。繼續檢視alert日誌,發現1001也有問題,看來有問題的還不止一個檔案,但是資料庫Open沒有任何問題。
Dictionary check beginning Mon Oct 31 22:05:05 2016 Errors in file /U01/app/oracle/diag/rdbms/sstatdb2/statdb2/trace/statdb2_dbw0_27706.trc: ORA-01186: file 1001 failed verification tests ORA-01157: cannot identify/lock data file 1001 - see DBWR trace file ORA-01110: data file 1001: '+DATA' File 1001 not verified due to error ORA-01157
腦袋裡盤算著,一邊翻找日誌,發現資料庫啟動的時候丟擲了下面的錯誤。
Verifying file header compatibility for 11g tablespace encryption.. Verifying 11g file header compatibility for tablespace encryption completed SMON: enabling tx recovery Cannot re-create tempfile +DATA, the same name file exists Cannot re-create tempfile +DATA, the same name file exists Cannot re-create tempfile +DATA, the same name file exists
如此一來,問題就很明顯了,臨時表空間的檔案對映存在問題,導致沒有建立成功,而臨時檔案有無不會影響資料庫的啟動,所以這個問題就這樣暫時擱置下來了。
進一步驗證,可以看到存著多個臨時檔案
SQL> SELECT FILE#,NAME FROM V$TEMPFILE FILE# NAME ---------- ------------------------------ 3 +DATA 4 +DATA 1 +DATA 2 +DATA 5 +DATA 6 +DATA 7 +DATA
同時使用dba_temp_files會直接丟擲之前的錯誤。
SQL> select file_name from dba_temp_files; select file_name from dba_temp_files * ERROR at line 1: ORA-01157: cannot identify/lock data file 1003 - see DBWR trace file ORA-01110: data file 1003: '+DATA'
問題的原因找到了,解決起來就很容易了。我們可以重新建立一個臨時表空間,然後刪除原來的。
SQL> create temporary tablespace temp1 tempfile '/U01/app/oracle/oradata/statdb2/temp01.dbf' size 100M; Tablespace created. SQL> alter database default temporary tablespace temp1; Database altered. SQL> drop tablespace temp including contents and datafiles; Tablespace dropped.
後臺會繼續檢查+DATA這個不存在的虛擬儲存,然後最終從資料字典層面統一這些資訊。
再次做升級前的檢查,就沒有任何問題了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23718752/viewspace-2127380/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 12c升級指南Oracle
- 檢查oracle的patch的升級情況Oracle
- oracle11.2.0.3升級到11.2.0.4出現查詢效能問題,分析處理Oracle
- ORACLE EXADATA升級—從11.2.3.1.0到11.2.3.3.0–(9)升級後的檢查Oracle
- Oracle 11g升級到12COracle
- Oracle 12C升級到18COracle
- oracle 升級12c引數樣例Oracle
- Oracle 12c資料庫升級實戰Oracle資料庫
- 通過 oracle 12c ocp 升級考試Oracle
- 11g升級到Oracle 12c碰到的問題(11g中不存在問題) - ORA-01792Oracle
- 【OCM】Oracle 12C OCMU 12c OCM升級考試大綱Oracle
- 11g升級到Oracle 12c碰到的問題 - ORA-00904 WM_CONCATOracle
- 【資料庫升級】Oracle指令碼升級12c CDB to 19c CDB資料庫Oracle指令碼
- 前端問題檢查前端
- Oracle效能問題檢查 - 常用查詢指令碼(final)Oracle指令碼
- 升級iOS 11後需注意的一個問題:檢查圖片/影片預設格式iOS
- oracle 12c non-cdb升級成cdb模式Oracle模式
- HP UNIX - oracle rac 10.2.0.3 升級10.2.0.4問題Oracle
- Oracle多層級查詢相容的效能問題Oracle
- 使用汙點分析檢查log4j問題
- 升級到oracle 12c 的相容性矩陣Oracle矩陣
- JDK升級問題小結JDK
- Oracle 12C TDE問題引發DG不同步案例分析Oracle
- Oracle RAC 10.2.0.5升級到11.2.0.4遇到的問題Oracle
- 【RMAN】Oracle11g透過rman升級到12cOracle
- Oracle 12c升級需遵循的簡單步驟NFOracle
- ReactNative升級0.56.0注意問題React
- 探索Oracle之資料庫升級七 11gR2 to 12c 升級完成後插入PDBOracle資料庫
- Oracle 10g升級psu的兩個小問題Oracle 10g
- Windows 系統安裝Oracle升級到9.2.0.8 後,exp問題WindowsOracle
- 檢查Oracle的鎖狀態並清除問題會話Oracle會話
- oracle sql tuning 3--常用檢查問題語句OracleSQL
- 【問題處理】升級12c之後,10G密碼版本使用者無法登陸問題密碼
- Oracle 12c 使用(Full Transportable Export/Import)進行升級/遷移OracleExportImport
- 使用DBUA升級 Oracle 11.2.0.4到Oracle 19C的問題記錄Oracle
- 生產庫升級:oracle 9.2.0.1升級oracle 9.2.0.8Oracle
- oracle 9.2.0.4升級到9.2.0.8時exp匯出時遇到的問題Oracle
- AIX Oracle RAC 升級到10.2.0.4.0要特別注意的問題AIOracle