2026年8月28日 星期五

CRS-4548 造成無法停止 crs 案例

Oracle 版本: 19.27 , RAC

OS 版本: Linux 8.6


問題描述:

使用 crsctl stop crs 停止 crs 發生 CRS-4548: Unable to connect to CRSD ,造成 crs 無法停止的情況 :


問題分析:

檢查 crs 狀態,確認當前 crs 服務是正常且處於啟動的狀態 :


檢查 crs init process , crsd 確實也是處於 ONLINE 狀態 :


就是一個怪異的情境,明明 crs 狀態都是正常的,但是 crsctl stop crs 卻出現 

CRS-4548: Unable to connect to CRSD ,理論上一般出現這個訊息都是在 crs 沒有啟動的時候才會發生,

進一步檢查 crs alert.log ,的確是有 stop 的訊息,但是系統又自動啟動 crs ,最後才報 CRS-4548 :


只要 crsctl stop crs ,由 alert.log 來看還是會自動開啟,這一個循環造成無法停止的情況。


解決方法:

先停止 ora.crsd 之後再 crsctl stop crs :

[root@db19c01 bin]# ./crsctl stop res ora.crsd -init


ora.crsd 先停止之後,整個 cluster 就可以正常下來了 :


2026年7月27日 星期一

Timezone Upgrade 異常案例

資料庫執行 impdp 作業時發生 time zone 相關錯誤 :

A black screen with white text

AI-generated content may be incorrect.

這個訊息表示 export 的來源資料庫 time zone version 為 44 ,而 import 到這個資料庫的 time zone 

為 32 低於來源資料庫,檢查目前的 time zone 資訊 :

SQL> select property_name,substr(property_value,1,30) value

     from database_properties where property_name like 'DST_%';

A screen shot of a computer

AI-generated content may be incorrect.

目前 time zone 已經從 32 upgrade 到 44 ,但是 upgrade 沒有完成導致 DST_UPGRADE_STATE 

的狀態仍為 UPGRADE ,檢視 time zone upgrade 過程的錯誤訊息如下 :

SQL> set serveroutput on

SQL> var numfail number

SQL> begin

      dbms_dst.upgrade_database(:numfail,

        parallel => true,

        log_errors => true,

        log_errors_table => 'SYS.DST$ERROR_TABLE',

        log_triggers_table => 'SYS.DST$TRIGGER_TABLE',

        error_on_overlap_time => false,

        error_on_nonexisting_time => false);

      dbms_output.put_line('Failures:'||:numfail);

    end;

    /

A screenshot of a computer program

AI-generated content may be incorrect.

結果顯示在 refresh materialized view 的時候發生 ORA-00942 table 不存在的錯誤。

經查證此 MView 已經不再使用,所以會產生 table 不存在的問題,將此不使用的 MView drop 

之後再檢查 time zone upgrade 已無錯誤 :

SQL> DROP MATERIALIZED VIEW GNC.MV_MERCH_DATA;

A computer screen shot of white text

AI-generated content may be incorrect.

upgrade 已無錯誤即可 end upgrade session :

SQL> var fail number

SQL> begin

      dbms_dst.end_upgrade(:fail);

      dbms_output.put_line('Failures:'||:fail);

    end;

    /

A computer screen shot of white text

AI-generated content may be incorrect.


end upgrade session 之後 DST_UPGRADE_STATE 狀態恢復正常 :

A screen shot of a computer

AI-generated content may be incorrect.


2026年6月26日 星期五

Grid Patch 造成 CRS-2549 錯誤案例

Oracle 版本: 19.31 

OS 版本: Linux 8.5


問題描述:

將 GI 從 19.27 apply RU 至 19.31 之後,無法啟動 ACFS 並顯示 CRS-2549 錯誤如下 :

A black screen with white text

AI-generated content may be incorrect.


檢查 CRS 相關 resource ,其中有不少 resource 的狀態為 OFFLINE ,另一個節點尚未 apply patch 

狀態則是正常 :

A screenshot of a computer

AI-generated content may be incorrect.


問題分析:

使用 crsctl stat server -f 檢查 CRS 相關參數,發現其中已經 apply patch 第一節點的 

RESOURCE_USE_ENABLED 設定為 0 ,尚未 patch 的另一節點的設定為 1 :

A screenshot of a computer program

AI-generated content may be incorrect.


這是因為在執行 patch 的過程中, rootcrs.pl -prepatch 這個步驟會將參數 RESOURCE_USE_ENABLED 

設定為 0 ,主要的目的就是確保 patch 作業的過程中不會有任何的服務啟動,照理說在 patch 完成之後此

參數應該要恢復為 1 ,但結果卻沒有變為 1 ,造成 patch 成功後服務卻無法啟動的狀態。


解決方法:

將參數 RESOURCE_USE_ENABLED 改為 1 之後服務便可正常啟動 :

[root@devdb1 bin]# ./crsctl set resource use 1

CRS-4416: Server attribute 'RESOURCE_USE_ENABLED' successfully changed. 

Restart Oracle High Availability Services for new value to take effect.