DBASK問答集萃第三期

enmotech發表於2019-07-03

引言

近期我們在DBASK小程式增加了眾多專欄,其中包括蓋國強、楊廷琨、羅海雄、張樂奕、黃廷忠、崔華、熊軍、李真旭、何劍敏等專家欄目,還有2019年6月SCN相容性問題、XTTS、備份恢復等技術專欄,另外螞蟻金服OceanBase入駐小程式。歡迎大家閱讀分享小程式中的專題欄目。

問答集萃

接下來,我們分享本期整理出的問題和診斷總結,供大家參考學習,詳細的診斷分析過程可以透過標題連結跳轉到小程式中檢視。


問題一、RMAN-20039: format requires %c when duplexing

備份時報錯:
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03009: failure of backup command
RMAN-20039: format requires %c when duplexing


備份資料檔案不加%C就會報錯,加%C有兩份一樣的?

----備份指令碼
run{ 
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
allocate channel c4 device type disk;
crosscheck backup;
sql 'alter system archive log current';
backup spfile format '/bak/backup/spfile_%T_%s_%p_%c';
#backup database format '/bak/backup/dbbk_0_%d_%t_%u_%s_%p';
backup as compressed backupset incremental level 0 database format '/bak/backup/dbbk_0_%d_%t_%u_%s_%p';
sql 'alter system archive log current';
backup archivelog all format '/bak/backup/arc_%T_%s_%p_%c' delete all input;
backup current controlfile format '/bak/backup/cntrl_%T_%s_%p_%c';
crosscheck archivelog all;
delete noprompt expired backup;
delete noprompt obsolete;
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}


診斷結論:如果設定不冗餘就不需要加c%,否則就會出現你的報錯。如果設定了冗餘必須加%c,那麼也就會產生相應的備份片。

問題二、RAC例項無法啟動ORA-01157 ORA-01110 ORA-27041 OSD-04002

伺服器未知原因故障恢復後,啟動資料庫例項報錯,錯誤資訊如下:

ALTER DATABASE OPEN /* db agent *//* {2:38813:23181} */
This instance was first to open
Errors in file D:\APP\...\orcl2_ora_7780.trc:
ORA-01157: ????/?????? 11 - ??? DBWR ????
ORA-01110: ???? 11: 'D:\APP\...\NXPT.DBF'
ORA-1157 signalled during: ALTER DATABASE OPEN /* db agent *//* {2:38813:23181} */...
Fri Mar 01 10:00:59 2019
Shutting down instance (abort)
License high water mark = 2
USER (ospid: 13460): terminating the instance
Instance terminated by USER, pid = 13460
Fri Mar 01 10:01:16 2019
Instance shutdown complete
Fri Mar 01 10:34:34 2019


診斷結論:從報錯看,這個是一個本地資料檔案'D:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\NTBS.DBF',應該是將RAC中的資料庫檔案誤建到本地磁碟,所以其他例項無法啟動,導致錯誤。

問題三、Oracle 12.2 expdp 非常慢

我有一個12.2.0.1的庫,非容器單例項。使用expdp匯出,匯出檔案總共不到4G,但要花將近6個小時。alert沒有任何報錯。新庫基本都是空的分割槽表。

診斷結論:請先嚐試收集系統、資料字典統計資訊。另外可以嘗試如下方法:
1、 最小配置stream_pool_size最小到256M,可能的話設定512M或者1GB;
2、加大expdp的並行度,如果CPU壓力不大,可以設定為CPU核數的1半或更多;
3、EXCLUDE=GRANT exclude = statistic
4、METRICS=YES
5、如果匯出停留在TABLE_DATA階段,並且上述處理無效,可以打補丁Bug 28100495

問題四、RAC CTSS狀態觀察模式,時間不同步

2節點RAC,其中一臺物理故障。修復後RAC報CTSS狀態為觀察模式,時間不同步

Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 0
PL/SQL Release 12.2.0.1.0 - Production 0
CORE 12.2.0.1.0 Production 0
TNS for Linux: Version 12.2.0.1.0 - Production 0
NLSRTL Version 12.2.0.1.0 - Production 0
CPUs:56 Cores:28 Sockets:2
記憶體188.26G


診斷結論:CTSS狀態為觀察模式通常是因為本地的NTP服務啟動了。所以可以先檢查一下新修復的那臺伺服器上是不是預設啟動了NTP。如果是,禁用掉通常就可以了。

問題五、OGG-00665 OCI Error (status = 3114-ORA-03114)


OGG 同步序列,程式ABENDING,重啟程式問題仍然存在,資料庫正常,其他ogg的程式正常,且排除掉該序列的同步後程式可以正常啟動

2019-03-07 17:06:39  ERROR   OGG-00665 Oracle GoldenGate Delivery for Oracle, rptsqe.prm:  OCI Error describe for query
(status = 3114-ORA-03114: not connected to ORACLE), SQL<select status, deferrable from dba_constraints where owner =UPPER('BOSDATA') and table_name='TASK_SEQ' and constraint_type = 'P' >.
2019-03-07 17:06:39  ERROR   OGG-01668 Oracle GoldenGate Delivery for Oracle, rptsqe.prm:  PROCESS ABENDING.


診斷結論:
1、我昨天查了很多資料,有一個同樣的報錯,RAC環境,OGG版本也是11.2,不過是抽取程式,說是重啟叢集后問題消失,所以以後再遇到SEQ同步報錯了,可以嘗試下。
2、有可能是複製程式中的這個引數引起,或者未知BUG
DBOPTIONS _NOAUTOMATICSEQUENCEFLUSH
3、一般情況下目標端不會使用sequence,所以可以考慮排除所有SEQ的同步
4、升級OGG版本,至少12

問題六、資料庫大量殭屍程式未自動清理

資料庫出現客戶端連線不上,檢視alert日誌

Wed Mar 13 09:21:50 2019
ORA-00020: No more process state objects available
ORA-20 errors will not be written to the alert log for
 the next minute. Please look at trace files to see all
 the ORA-20 errors.
Process J002 submission failed with error = 20
kkjcre1p: unable to spawn jobq slave process
Errors in file /export/home/u01/app/oracle/diag/rdbms///trace/_cjq0_25517.trc:


此時檢視 v$process 為738個程式,引數process程式數設定為800.以下語句查詢結果為380

select count(*) from v$process where addr not in (select paddr from v$session);


殺掉這些程式,客戶端可以正常連線。總體程式維持在400左右。
問題點:1、pmon為何沒有清理掉這380個沒有會話的程式。2、是否有引數設定pmon清除殭屍程式的條件,比如空閒時間之類的。
診斷結論:一般kill session後會出現這種情況,但是不會出現幾百個的情況。首先請檢查是否存在頻繁kill session的操作,和應用建立連線、斷開連線的方式是否規範;其次,臨時將資料庫的process引數調高,避免應用出錯。最後,提供一個自動清理殭屍process的指令碼。

問題七、oracle 10gR2 expdp報錯ORA-00376

expdp匯出報錯

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
ORA-39001: invalid argument value
ORA-00376: file 53 cannot be read at this time
ORA-01110: data file 53: '/oracle/oracle/oradata/xxx/xxx.dbf'


53號資料檔案由於硬體故障導致檔案損壞,無法修復。庫為非歸當模式,所以將53號資料檔案offline drop,將庫強制啟起來了。現在備份的時候報錯了,匯出命令如下;

expdp user/passwd parfile=cfg_except_tables.cfg
cat  cfg_except_tables.cfg
EXCLUDE=TABLE
COMPRESSION=METADATA_ONLY
DIRECTORY=DPUMP_DIR1
DUMPFILE=auto_backup.dmp
LOGFILE=auto_backup.log


透過如下SQL查為空,我把53號資料檔案已經清空了,但還是報上面的錯

select * from dba_extents where file_id=53


診斷結論:ASSM 管理模式下dba_extents是存放在資料檔案中的,離線檔案是看不到物件的。因為你這種報錯說明53號檔案還是有物件存在的,原則上是可以跳過這些物件匯出正常的物件的,要確認53號的物件需要使用如下SQL。

問題八、oracle 10G 建立dblink 訪問9i的遠端庫執行sql很慢

oracle 10G 建立了dblink 連線9i 資料庫 執行了 select * from table --table中只有兩條記錄 耗時 20s 兩臺伺服器間網路正常 再9i 直接執行sql 很快 還可能是什麼原因呢?檢視等待事件為 SQL*Net message from dblink
診斷結論:是因為 10g 的伺服器作業系統版本是 windows server 2012 從windows server 2008 以後 增加了 接收視窗自動調諧級別 功能導致,調整接收視窗自動調諧級別解決。

問題九、安裝rac,IO有什麼要求?
安裝rac,IO有什麼要求麼?參考過 rac安裝有最佳實踐,但是官方並沒有指出IO具體參考範圍(IOPS)。所以,想諮詢下,貴司有沒有針對RAC安裝對IO的要求或IO範圍參考值?我想對比下自己的儲存IO效能,看是否達標。
診斷結論:是因為 10g 的伺服器作業系統版本是 windows server 2012 從windows server 2008 以後 增加了 接收視窗自動調諧級別 功能導致,調整接收視窗自動調諧級別解決。

問題十、雙機切換後TNS-12537 ORA-609
資料庫是Oracle,作業系統是Windows,高可用是rose雙機。把主伺服器切換到備用伺服器時,會出現程式連線不上,報錯如下:

但是切回來以後就正常了,經過檢視日誌,發現如下報錯:

Fatal NI connect error 12537, connecting to:
 (LOCAL=NO)
  VERSION INFORMATION:
TNS for 64-bit Windows: Version 11.2.0.1.0 - Production
Oracle Bequeath NT Protocol Adapter for 64-bit Windows: Version 11.2.0.1.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 64-bit Windows: Version 11.2.0.1.0 - Production
 Time: 12-3月 -2019 20:15:08
 Tracing not turned on.
 Tns error struct:
    ns main err code: 12537
TNS-12537: TNS: 連線關閉
    ns secondary err code: 12560
    nt main err code: 0
    nt secondary err code: 0
    nt OS err code: 0
opiodr aborting process unknown ospid (10796) as a result of ORA-609
Tue Mar 12 20:15:28 2019


請問是什麼原因導致的呢?怎麼去解決這個問題呢
診斷結論:檢查雙機各自監聽日誌,發現節點監聽日誌4G,清空問題節點監聽日誌問題解決。

問題十一、oracle 匯入資料包ORA-39242錯誤
提示由於表屬性原因,無法匯入入成功

ORA-39242: Unable to export/import TABLE_DATA: … due to table attributes.
診斷結論:檢查表上面索引的狀態是否正常,如果不是VALID就做下rebuild再匯入DBASK問答集萃第三期

診斷結論:檢查表上面索引的狀態是否正常,如果不是VALID就做下rebuild再匯入


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

相關文章