備份失敗疑難排解

資料庫備份可能會因為各種原因而失敗。通常,備份會失敗,因為資料庫主機無法存取物件存放區,或者主機上發生問題或資料庫組態。

本文包含的資訊可協助您判斷失敗原因並修正問題。系統會根據錯誤情況,將資訊組織成數個區段。

如果您已經知道原因,可以使用建議的解決方案跳至主題。否則,請使用識別失敗原因主題開始作業。

本文涵蓋下列主題:

秘訣:

您也可以建立序列主控台連線,以在單一使用者模式對系統進行疑難排解。如需在 OCI 主控台中建立序列主控台連線的相關資訊,請參閱管理資料庫系統的序列主控台連線

識別失敗原因

在 OCI 主控台中,失敗的資料庫備份會顯示失敗備份進行中建立中狀態的擱置狀態。如果錯誤訊息包含的資訊不足以指向解決方案,您可以使用資料庫 CLI 與日誌檔來收集更多資料。然後,如需解決方案,請參閱本主題中適用的章節。

涵蓋的主題如下:

識別備份失敗的根本原因

  1. 以 root 使用者身分登入主機,然後瀏覽至 /opt/oracle/dcs/bin/

  2. 決定在資料庫上執行的作業順序。

    dbcli list-jobs | grep -i <dbname>

    請注意列出的最後一個工作 ID,其狀態不是成功

  3. 使用上一個步驟所記下的工作 ID,使用下列命令檢查該工作的詳細資訊:

    dbcli describe-job -i <job_ID> -j

    一般而言,執行此命令足以透露失敗的根本原因。

  4. 如果需要更多資訊,請檢閱 /opt/oracle/dcs/log/dcs-agent.log 檔案。

    您可以使用工作報告在步驟 2 中傳回的時間戳記,在此檔案中找到工作 ID。

  5. 如果問題詳細資訊建議 RMAN 問題,請複查下列目錄中的 RMAN 日誌。

    /opt/oracle/dcs/log/<hostname>/rman/bkup/<db_unique_name>/rman_backup/<yyyy-mm-dd>

附註:

如果資料庫失敗發生在雙節點 RAC 資料庫上,請在兩個節點上執行步驟 3 與 4。

資料庫服務代理程式問題

您的 OCI 資料庫使用代理程式架構,可讓您透過雲端平台管理資料庫。有時候,如果 dcsagent 程式的狀態為停止 / 等待以解決備份失敗,您可能需要重新啟動該程式。

涵蓋的主題如下:

重新啟動資料庫服務代理程式

附註:

使用 OL6 時,請使用 initctl 而非 systemctl
  1. 從命令提示中,檢查代理程式的狀態:

    systemctl status initdcsagent
  2. 如果代理程式處於停止 / 等待狀態,請嘗試重新啟動代理程式:

    systemctl start initdcsagent
  3. 再次檢查代理程式的狀態,以確認代理程式的狀態為啟動 / 執行中

    systemctl status initdcsagent

Oracle Clusterware 問題

Oracle Clusterware 可讓伺服器彼此通訊,使其成為集體單位。有時候您可能需要重新啟動「叢集軟體」程式來解決備份失敗。

資料庫主機上的一或多個下列條件可能會導致備份失敗:

重新啟動 Oracle Clusterware

  1. 從命令提示檢查 Oracle Clusterware 的狀態:

    crsctl check crs
    crsctl stat res -t
  2. 如果 Oracle Clusterware 未連線,請嘗試重新啟動程式:

    crsctl start crs
  3. 檢查 Oracle Clusterware 的狀態,確認它已上線:

    crsctl check crs

物件存放區連線問題

若要將您的資料庫備份至 OCI 物件儲存,主機必須能夠連線至適用的 Swift 端點。您可以使用 Swift 使用者測試此連線。

確定您的資料庫主機可以連線至物件存放區

  1. 在您的租用戶中建立 Swift 使用者。如需詳細資訊,請參閱管理使用者證明資料中的使用認證記號
  2. 使用您在上一個步驟中建立的使用者,使用下列命令驗證主機可以存取物件存放區。

    curl -v -X HEAD -u <user_ID>:'<auth_token>' https://swiftobjectstorage.<region_name>.oraclecloud.com/v1/<object_storage_namespace>
  3. 如果您無法連線物件存放區,請參閱使用主控台備份資料庫,瞭解如何設定物件存放區連線。

主機問題

資料庫主機上的一或多個下列條件可能會導致備份失敗:

Oracle 設定檔中的互動式命令

如果將互動式命令 (例如 oraenv) 或任何可能傳回錯誤或警告訊息的命令新增至網格 oracle 使用者的 .bash_profile 檔案,則自動備份之類的資料庫服務作業可能會中斷且無法完成。檢查 .bash_profile 檔案中是否有這些指令,並加以移除。

檔案系統已完整

備份作業需要主機檔案系統上 /u01 目錄中的空間。使用主機上的 df -h 命令來檢查可供備份的空間。如果檔案系統的空間不足,您可以移除舊的日誌或追蹤檔來釋出空間。

Oracle Database Cloud Backup Module 的版本不正確

您的系統可能沒有必要的備份模組版本 (opc_installer.jar)。請參閱無法在您的資料庫系統中使用受管理備份以瞭解此已知問題。若要修正此問題,您可以依照該區段中的程序進行,或是使用最新的組合更新來更新資料庫系統和資料庫。

網站設定檔檔案的變更 (glogin.sql)

自訂網站設定檔檔案 ($ORACLE_HOME/sqlplus/admin/glogin.sql) 可能會導致 OCI 中的受管理備份失敗。請參閱 SQL*Plus 組態。特別是互動式命令可能會導致備份失敗。Oracle 建議您不要修改 OCI 中代管之資料庫的這個檔案。

資料庫問題

不正確的資料庫狀態或組態可能會導致失敗的備份。

備份時未執行資料庫

備份進行時,資料庫必須是作用中且在執行中 (最好是在所有節點上)。

檢查資料庫是否作用中且在執行中

使用下列命令檢查資料庫的狀態,並確保解決任何可能使資料庫處於不適當狀態的問題:

srvctl status database -d <db_unique_name> -verbose

系統會傳回包含資料庫實例狀態的訊息。執行處理狀態必須是開啟,備份才能成功。如果資料庫未執行,請使用下列命令啟動資料庫:

srvctl start database -d <db_unique_name> -o open

如果資料庫已掛載但狀態不是開啟,請使用下列命令來存取 SQL*Plus 命令提示,並將狀態設為開啟

sqlplus / as sysdba
alter database open;

存檔模式設為 NOARCHIVELOG

啟動設定新資料庫時,預設會將存檔模式設為 ARCHIVELOG。這是備份作業的必要存檔模式。檢查資料庫的存檔模式設定,並將它變更為 ARCHIVELOG (如果適用)。

檢查並設定存檔模式

開啟 SQL*Plus 命令提示並輸入下列命令:

select log_mode from v$database;

如果您需要將存檔模式設為 ARCHIVELOG,請以掛載狀態 (而非開啟狀態) 啟動資料庫,然後在 SQL*Plus 命令提示中使用下列命令:

alter database archivelog;

確認 db_recovery_file_dest 參數指向 +RECO,且 log_archive_dest_1 參數設為 USE_DB_RECOVERY_FILE_DEST

若為 RAC 資料庫,一個執行處理在啟用存檔日誌模式時必須處於掛載狀態。若要啟用 RAC 資料庫的存檔日誌模式,請執行下列步驟:

  1. 關閉所有資料庫執行處理。

    srvctl stop database -d
  2. 啟動掛載狀態的其中一個資料庫執行處理。

    srvctl start instance -d <db_unique_name> -i <instance_name> -o mount
  3. 存取 SQL*Plus 命令提示字元。

    sqlplus / as sysdba
  4. 啟用存檔日誌模式並結束。

    alter database archivelog;
    exit;
  5. 停止資料庫。

    srvctl stop instance -d <db_unique_name> -i <instance_name>
  6. 重新啟動所有資料庫執行處理。

    srvctl start database -d <db_unqiue_name>
  7. 在 SQL*Plus 命令提示符號處,確認存檔模式已設為 ARCHIVELOG

    select log_mode from v$database;

停滯的資料庫存檔器處理作業和備份失敗

資料庫執行處理若有停滯的存檔器處理作業,備份可能會失敗。例如,當瞬間復原區域 (FRA) 已滿時,就會發生這種情況。您可以使用下列指令來檢查此狀況。

srvctl status database -db <db_unique_name> -v

如果命令傳回下列輸出,您必須先解決停滯存檔器處理作業問題,才能順利備份:

Instance <instance_identifier> is running on node *<node_identifier>. Instance status: Stuck Archiver

請參閱 ORA-00257:存檔器錯誤 (文件 ID 2014425.1),瞭解解決停滯存檔器處理作業的資訊。

解析停滯處理作業之後,命令應該傳回下列輸出:

Instance <instance_identifier> is running on node *<node_identifier>. Instance status: Open

如果在解決裝置或資源已滿或無法使用之後,執行處理狀態不會變更,請嘗試下列其中一個解決方法:

  • 使用 srvctl 命令重新啟動資料庫,以更新叢集軟體中的資料庫狀態
  • 將資料庫升級至最新的修正程式集層次

暫時表格空間錯誤

如果資料庫上的固定表格統計資料不是最新的,備份可能會因參照 dcs-agent.log 檔案中之暫時表格空間的錯誤而失敗。舉例而言:

select status from v$rman_status where COMMAND_ID=<backup_id>

輸出:

ERROR at line 1:
ORA-01652: unable to extend temp segment by 128 in tablespace TEMP

依照下列方式收集您的固定表格靜態以解決此問題。

conn / as sysdba
exec dbms_stats.gather_fixed_objects_stats();

RMAN 組態和備份失敗

編輯某些 RMAN 組態參數可能會導致 OCI 的備份失敗。如果要檢查您的 RMAN 組態,請在 RMAN 命令行提示中使用 show all 命令。

請參閱下列參數清單,瞭解不應更改 OCI 中資料庫之組態設定值的詳細資訊。

不應更改的 RMAN 組態設定值

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 30 DAYS;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 5 BACKUP TYPE TO COMPRESSED BACKUPSET;
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 2 G;
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' MAXPIECESIZE 2 G FORMAT   '%d_%I_%U_%T_%t' PARMS  
    'SBT_LIBRARY=/opt/oracle/dcs/commonstore/pkgrepos/oss/odbcs/libopc.so 
    ENV=(OPC_PFILE=/opt/oracle/dcs/commonstore/objectstore/opc_pfile/1578318329/opc_tiger_iad3c8.ora)';
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO 'SBT_TAPE';
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 2 G;
CONFIGURE ENCRYPTION FOR DATABASE ON;

RMAN 保留原則與備份失敗

RMAN 保留原則組態可以是備份失敗的來源。使用 REDUNDANCY 保留原則組態 (而非 RECOVERY WINDOW 原則) 可能會導致備份失敗。請務必使用 RECOVERY WINDOW OF 30 DAYS 組態。

設定 RMAN 保留原則設定

  1. 使用下列命令尋找資料庫 ID:

    dbcli list-databases
  2. 使用下列命令尋找資料庫的 BackupConfigId 值:

    dbcli describe-database -i <database_id>
  3. 將保留原則組態更新為 RECOVERY WINDOW OF 30 DAYS

    dbcli update-backupconfig -i <backup_config_id> --recoverywindow 30

遺失物件存放區公事包檔案和備份失敗

遺失物件存放區公事包檔案時,RMAN 備份會失敗。必須要有公事包檔案,才能連線至物件存放區。

確認物件存放區公事包檔案存在且具有正確的權限

  1. 使用下列命令尋找資料庫 ID:

    dbcli list-databases
  2. 使用下列命令尋找資料庫的 BackupConfigId 值:

    dbcli describe-database -i <database_id>
  3. 使用下列命令尋找資料庫的 BackupLocation 值:

    dbcli describe-backupconfig <backup_config_id>
  4. 使用下列命令尋找備份組態參數檔 (opc_<backup_location_value>_BC.ora) 的檔案路徑:

    locate opc_<backup_location_value>_BC.ora

    舉例而言:

    locate opc_b9naijWMAXzi9example_BC.ora

    輸出:

    /opt/oracle/dcs/commonstore/objectstore/opc_pfile/13aef284-9d6b-4eb6-8751-2988a9example/opc_b9naijWMAXzi9example_BC.ora
  5. 檢查儲存在 OPC_WALLET 參數中的值,以尋找備份組態參數檔中公事包檔案的檔案路徑。若要這麼做,請瀏覽至包含備份組態參數檔的目錄,然後使用下列 cat 命令:

    cat <backup_config_parameter_file>

    舉例而言:

    cat opc_b9naijWMAXzi9example_BC.ora

    輸出:

    OPC_HOST=https://swiftobjectstorage.us-ashburn-1.oraclecloud.com/v1/dbbackupiad
    OPC_WALLET='LOCATION=file:/opt/oracle/dcs/commonstore/objectstore/wallets/13aef284-9d6b-4eb6-8751-2988aexample CREDENTIAL_ALIAS=alias_opc'
    OPC_CONTAINER=b9naijWMAXzi9example
  6. 確認 cwallet.sso 檔案存在於 OPC_WALLET 參數中指定的目錄中,並確認檔案的權限正確。檔案權限的八進位值應為 "600" (-rw-------)。使用以下命令:

    ls -ltr /opt/oracle/dcs/commonstore/objectstore/wallets/<backup_config_id>

    舉例而言:

    ls -ltr /opt/oracle/dcs/commonstore/objectstore/wallets/13aef284-9d6b-4eb6-8751-2988aexample

    輸出:

    total 4
    -rw------- 1 oracle oinstall    0 Apr 20 06:45 cwallet.sso.lck
    -rw------- 1 oracle oinstall 1941 Apr 20 06:45 cwallet.sso

TDE 公事包問題

TDE 公事包位置規格不正確

若要讓備份作業能夠運作,$ORACLE_HOME/network/admin/sqlnet.ora 檔案必須包含格式如下的 ENCRYPTION_WALLET_LOCATION 參數:

ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))

附註:

在此公事包位置項目中,$ORACLE_UNQNAME 是環境變數,不應以實際值取代。

檢查 TDE 公事包位置規格

使用 cat 命令檢查 TDE 公事包位置設定。舉例而言:

cat $ORACLE_HOME/network/admin/sqlnet.ora

輸出:

ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))

使用 SQL*Plus 啟動資料庫時,未設定 ORACLE_UNQNAME 環境變數

如果資料庫是使用 SQL*Plus 啟動,但未設定 ORACLE_UNQNAME 環境變數,公事包便無法正確開啟。

若要修正問題,請使用 srvctl 公用程式啟動資料庫:

srvctl start database -d <db_unique_name>

可插拔資料庫新增的主要加密金鑰不正確

在支援 PDB 層次金鑰存放區的 Oracle Database 版本多用戶環境中,每個 PDB 都有自己的主要加密金鑰。此加密金鑰儲存在所有容器使用的單一金鑰存放區。建立或插入新 PDB 之後,您必須為其建立並啟用主要加密金鑰。如果不這麼做,v$encryption_wallet 視觀表中的 STATUS 資料欄會顯示值 OPEN_NO_MASTER_KEY

若要檢查主要加密金鑰狀態及建立主要金鑰,請執行下列動作:

  1. 複查 v$encryption_wallet 視觀表中的 STATUS 資料欄,如下列範例所示:

    alter session set container=pdb2;
    select WRL_TYPE,WRL_PARAMETER,STATUS,WALLET_TYPE from v$encryption_wallet;

    輸出:

    WRL_TYPE  WRL_PARAMETER                                           STATUS             WALLET_TYPE
    --------- ------------------------------------------------------- ------------------ -----------
    FILE      /opt/oracle/dcs/commonstore/wallets/tde/example_iadxyz/ OPEN_NO_MASTER_KEY AUTOLOGIN
  2. 確認 PDB 處於 READ WRITE 開啟模式且未受到限制,如下列範例所示:

    show pdbs

    輸出:

    CON_ID CON_NAME   OPEN MODE   RESTRICTED
    ------ ---------- ----------- -----------
    2      PDB$SEED   READ ONLY   NO
    3      PDB1       READ WRITE  NO
    4      PDB2       READ WRITE  NO

    PDB 無法以限制模式開啟 (RESTRICTED 資料欄必須顯示 NO)。如果 PDB 目前處於限制模式,請先複查 PDB_PLUG_IN_VIOLATIONS 視觀表中的資訊並解決問題,再繼續進行。如需有關 PDB_PLUG_IN_VIOLATIONS 視觀表和限制狀態的詳細資訊,請複查您 Oracle Database 版本之可插拔資料庫的文件。

  3. 執行下列 DBCLI 指令,將狀態變更為 OPEN

    sudo su –
    dbcli list-database
    dbcli update-tdekey -i <database_ID> -n <PDB_name> -p

    顯示的 update-tdekey 命令將會提示您輸入管理員密碼。

  4. 查詢 v$encryption_wallet 視觀表,確認公事包的狀態已從 OPEN_NO_MASTER_KEY 變更為 OPEN,如步驟 1 所示。

檢查與 TDE 公事包相關的組態

有數個與 TDE 公事包相關的組態參數可能會導致備份失敗。

  1. 使用下列命令檢查環境的資料庫唯一名稱參數 (ORACLE_UNQNAME) 是否正確設定:

    srvctl getenv database -d <db_unique_name>

    舉例而言:

    srvctl getenv database -d orclbkp_iadxyz

    輸出:

    orclbkp_iadxyz:
    ORACLE_UNQNAME=orclbkp_iadxyz
    TZ=UTC
  2. 檢查您的 sqlnet.ora 設定值,確認檔案的 ENCRYPTION_WALLET_LOCATION 參數具有正確的 DIRECTORY 值。使用以下命令:

    cat $ORACLE_HOME/network/admin/sqlnet.ora

    舉例而言:

    cat $ORACLE_HOME/network/admin/sqlnet.ora

    輸出:

    ENCRYPTION_WALLET_LOCATION=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=/opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME)))
  3. 檢查 v$encryption_wallet 檢視,確認公事包狀態為開啟,而公事包類型為自動登入。舉例而言:

    select status, wrl_parameter,wallet_type from v$encryption_wallet;

    輸出:

    STATUS  WRL_PARAMETER                                            WALLET_TYPE
    ------- -------------------------------------------------------- ------------
    OPEN    /opt/oracle/dcs/commonstore/wallets/tde/example_iadxyz/  AUTOLOGIN

    對於可插拔資料庫 (PDB),請確定先切換至適當的容器,再查詢 v$encryption_wallet 視觀表。舉例而言:

    sqlplus / as sysdba
    alter session set container=pdb1;
    select WRL_TYPE,WRL_PARAMETER,STATUS,WALLET_TYPE from v$encryption_wallet;

    輸出:

    WRL_TYPE  WRL_PARAMETER                                          STATUS  WALLET_TYPE
    --------- ------------------------------------------------------ ------- ------------
    FILE      /opt/oracle/dcs/commonstore/wallets/tde/tiger_iad3c8/  OPEN    AUTOLOGIN

遺漏 TDE 公事包檔案

TDE 公事包檔案 (ewallet.p12) 若遺漏備份或檔案系統權限不相容或擁有權,可能會導致備份失敗。請檢查檔案,如下列範例所示:

ls -ltr /opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME/ewallet.p12

輸出:

-rwx------ 1 oracle oinstall 5680 Apr 18 13:09 /opt/oracle/dcs/commonstore/wallets/tde/orclbkp_iadxzy/ewallet.p12

TDE 公事包檔案應具有八進位值 "700" (-rwx------) 的檔案權限,且此檔案的擁有者應為 oinstall 作業系統群組的一部分。

遺漏自動登入公事包檔案

自動登入公事包檔案 (cwallet.sso) 若遺漏備份,或檔案系統權限或擁有權不相容,就會導致備份失敗。請檢查檔案,如下列範例所示:

ls -ltr /opt/oracle/dcs/commonstore/wallets/tde/$ORACLE_UNQNAME/cwallet.sso

輸出:

-rwx------ 1 oracle oinstall 5725 Apr 18 13:09 /opt/oracle/dcs/commonstore/wallets/tde/orclbkp_iadxyz/cwallet.sso

自動登入公事包檔案應具有八進位值 "700" (-rwx------) 的檔案權限,且此檔案的擁有者應為 oinstall 作業系統群組的一部分。

備份失敗的其他原因

卸載的 Commonstore 掛載點

必須掛載掛載點 /opt/oracle/dcs/commonstore,否則備份將會失敗。

檢查 Commonstore 掛載點

確認已掛載掛載點 /opt/oracle/dcs/commonstore,如下列範例所示:

srvctl config filesystem -volume commonstore -diskgroup data

輸出:

Volume device: /dev/asm/commonstore-5
Diskgroup name: data
Volume name: commonstore
Canonical volume device: /dev/asm/commonstore-5
Accelerator volume devices:
Mountpoint path: /opt/oracle/dcs/commonstore
Mount point owner: oracle
Mount users:
Type: ACFS

確認 ora.data.commonstore.acfs 為線上狀態

  1. ora.data.commonstore.acfs 的狀態必須是線上狀態,否則備份將會失敗。確認,如下列範例所示:

    crsctl stat resource ora.data.commonstore.acfs -v

    輸出:

    NAME=ora.data.commonstore.acfs
    TYPE=ora.acfs.type
    LAST_SERVER=orcl
    STATE=OFFLINE
    TARGET=OFFLINE
    ...
    STATE_DETAILS=admin unmounted /opt/oracle/dcs/commonstore
    ...
  2. 列出 commonstore 目錄的內容,以確認已掛載

    ls -ltr /opt/oracle/dcs/commonstore
  3. 如果 STATE_DETAILS 值為 unmounted,請如下列範例所示掛載檔案系統:

    srvctl start filesystem -volume commonstore -diskgroup data
  4. 確認變更成功,如下列範例所示:

    crsctl stat resource ora.data.commonstore.acfs -v

    輸出:

    NAME=ora.data.commonstore.acfs
    TYPE=ora.acfs.type
    LAST_SERVER=orcl
    STATE=ONLINE on orcl
    TARGET=ONLINE
    CARDINALITY_ID=ONLINE
    ...
    STATE_DETAILS=mounted on /opt/oracle/dcs/commonstore
  5. 列出 commonstore 目錄的內容以確認是否已掛載,如下列範例所示:

    ls -ltr /opt/oracle/dcs/commonstore

    輸出:

    total 220
    drwx------ 2 root   root     65536 Apr 18 10:50 lost+found
    drwx------ 3 oracle oinstall 20480 Apr 18 11:02 wallets
    drwxr-xr-x 3 root   root     20480 Apr 20 06:41 pkgrepos
    drwxr-xr-x 4 oracle oinstall 20480 Apr 20 06:41 objectstore

資料庫未正確註冊

如果資料庫未在 dcs-agent 註冊,資料庫備份就會失敗。如果您手動將資料庫移轉至 OCI 且未執行 dbcli register-database 命令,就會發生此情況。

若要檢查資料庫是否已正確註冊,請複查執行 srvctl config database 命令和 dbcli list-databases 命令所傳回的資訊。如果任一命令未傳回資料庫記錄,請洽詢 Oracle Support Services。

如需如何註冊資料庫的指示,請參閱下列主題:

取得其他說明

如果您無法使用本主題中的資訊來解決問題,請遵循以下程序來收集相關的資料庫和診斷資訊。收集這些資訊之後,請聯絡 Oracle Support

收集用於問題報表的資料庫資訊

請使用下列命令來收集資料庫的詳細資訊。記錄每個命令的輸出以供參考:

dbcli list-databases
dbcli describe-database -i <database_id>
dbcli describe-component

收集失敗工作的診斷資訊

  1. 以 root 使用者身分登入主機,然後瀏覽至 /opt/oracle/dcs/bin/ 目錄。

  2. 執行下列兩個命令以產生失敗工作的相關資訊:

    dbcli list-jobs
    dbcli describe-job -i <job_ID> -j

    第二個指令中的 <job_ID> 應該是第一個指令所報告之最新失敗工作的 ID。

  3. 執行診斷收集器命令檔,以建立包含 Oracle Support Services 診斷資訊的壓縮檔。

    diagcollector.py

    此指令會在 /tmp 目錄中建立名為 diagLogs -<timestamp>.zip 的檔案。

收集 DCS 代理程式日誌檔

若要收集 DCS 代理程式日誌檔,請執行下列動作:

  1. 以 opc 使用者身分登入。
  2. 執行下列命令:

    sudo /opt/oracle/dcs/bin/diagcollector.py

    系統會傳回訊息,指出代理程式日誌可在指定目錄的 zip 檔案中使用。舉例而言:

    Logs are being collected to: /tmp/dcsdiag/diagLogs-1234567890.zip

收集 TDE 組態詳細資訊

  1. 執行 srvctl getenv database -d <db_unique_name> 指令並記錄輸出以供參考。
  2. 記錄檢視 v$encryption_wallet 的輸出。舉例而言:

    select status, wrl_parameter,wallet_type from v$encryption_wallet;

    輸出:

    STATUS   WRL_PARAMETER                                           WALLET_TYPE
    -------- ------------------------------------------------------- ---------
    OPEN     /opt/oracle/dcs/commonstore/wallets/tde/example_iadxyz/ AUTOLOGIN
  3. 記錄 ls -ltr <wrl_parameter> command.For 範例輸出的輸出:

    ls -ltr /opt/oracle/dcs/commonstore/wallets/tde/example_iadxyz/

    輸出:

    total 28
    -rw----- 1 oracle asmadmin 2400 May  2 09:42 ewallet_2018050209420381_defaultTag.p12
    -rw----- 1 oracle asmadmin 5680 May  2 09:42 ewallet.p12
    -rw----- 1 oracle asmadmin 5723 May  2 09:42 cwallet.sso

收集 RMAN 備份報表檔案

使用下列命令產生「RMAN 備份報表檔案」:

dbcli create-rmanbackupreport -i <db_id> -w detailed -rn <report_name>

舉例而言:

dbcli create-rmanbackupreport -i 57fvwxyz-9dc4-45d3-876b-5f850example -w detailed -rn bkpreport1

使用 dbcli describe-rmanbackupreport -in <report_name> 命令找出報表檔案。報表的位置是在輸出中指定。舉例而言:

dbcli describe-rmanbackupreport -in bkpreport1

輸出:

Backup Report details                                           
----------------------------------------------------------------
ID: b55vwxyz-c49f-4af3-a956-acccdexample
Report Type: detailed
Location: Node patchtst: /opt/oracle/dcs/log/patchtst/rman/bkup/example_iadxyz/rman_list_backup_detail
    /2018-05-02/rman_list_backup_detail_2018-05-02_11-46-51.0359.log
Database ID: 57fvwxyz-9dc4-45d3-876b-5f850example
CreatedTime: May 2, 2018 11:46:38 AM UTC