国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

記錄幾種壞塊處理方式

IT那活兒 / 1626人閱讀
記錄幾種壞塊處理方式

點擊上方“IT那活兒”,關注后了解更多精彩內容!!!


01

壞塊概述


物理壞塊:
通常由于硬件問題導致,比如磁盤異常,存儲鏈路問題,HBA卡問題,文件系統問題,第三方軟件問題等。
邏輯壞塊:
大部分是由于軟件問題導致,比如說oracle bug,導致數據塊和索引塊數據不一致。

02

壞塊檢測


2.1 RMAN 工具

生產接入rman備份,遇到壞塊會備份失敗,不會接著備份,如下圖:
結合rman命令,查詢相關視圖可以查看出具體壞塊信息:
backup validate check logical database;命令檢查全庫,如下如圖:
backup validate check logical datafile 5;命令檢查單個文件。
可以參考:How to identify all the Corrupted Objects in the Database with RMAN ( Doc ID 472231.1 )。
存在一種特殊情況,標記是有壞塊,但狀態是OK。如下圖:

2.2 DBV工具

dbv help=y
DBVERIFY: Release 12.2.0.1.0 - Production on Tue Jan 19 17:24:26 2021
Copyright (c) 1982, 2017, Oracle and/or its affiliates. All rights reserved.
Keyword Description (Default)
----------------------------------------------------
FILE        File to Verify                 (NONE)
START       Start Block                    (First Block of File)
END         End Block                      (Last Block of File)
BLOCKSIZE   Logical Block Size             (8192)
LOGFILE     Output Log                     (NONE)
FEEDBACK Display Progress (0)
PARFILE Parameter File                 (NONE)
USERID Username/Password              (NONE)
SEGMENT_ID Segment ID (tsn.relfile.block) (NONE)
HIGH_SCN Highest Block SCN To Verify    (NONE)
(scn_wrap.scn_base OR scn)
注意:dbv不更新數據字典以及alert日志
示例1:檢測全庫。
dbv file=+DATADG/xxx/DATAFILE/system.1135.1061813741 
blocksize=8192 USERID=sys/xxxx
logfile=system.1135.1061813741.1.log
示例2:檢測單個segment header_block。
示例3:每個分區都是獨立的segment,有獨立的header_block。

2.3 EXP/EXPDP檢測

 exp導出直接報錯(更新alert日志,只打印出遇到的壞塊,不能全部打印,數據字典)。

2.4 ANALYZE命令

遇到壞塊就報錯,但不能檢測出有多少個壞塊,遇到第一個壞塊就返回報錯,打印alert日志,和rman發起真實的備份類似。



03

壞塊修復


3.1 RMAN工具

使用Data Recovery Advisor
3.1.1 LIST FAILURE;
3.1.2 ADVISE FAILURE;
3.1.3 REPAIR FAILURE;
使用RECOVER...BLOCK命令:
RECOVER DATAFILE 8 BLOCK 13 DATAFILE 2 BLOCK 19;
RECOVER CORRUPTION LIST;(V$DATABASE_BLOCK_CORRUPTION)
注:
By default, RMAN first searches for good blocks in the real-
time query physical standby database, then flashback logs
and then blocks in full or level 0 incremental backups.
<https://docs.oracle.com/database/121/BRADV/rcmblock.htm#BRADV89782>

3.2 EXPDP

既可以用來做檢測也可以用來搶救數據,跳過壞塊導出。

3.3 DBMS_REPAIR

代碼如下:
REM Create the repair table in a given tablespace:

BEGIN
  DBMS_REPAIR.ADMIN_TABLES (
  TABLE_NAME => REPAIR_TABLE,
  TABLE_TYPE => dbms_repair.repair_table,
  ACTION => dbms_repair.create_action,
  TABLESPACE => &tablespace_name);
END;
/

REM Identify corrupted blocks for schema.object (it also can be done at partition level with parameter PARTITION_NAME):

set serveroutput on
DECLARE num_corrupt INT;
BEGIN
  num_corrupt := 0;
  DBMS_REPAIR.CHECK_OBJECT (
  SCHEMA_NAME => &schema_name,
  OBJECT_NAME => &object_name,
  REPAIR_TABLE_NAME => REPAIR_TABLE,
  corrupt_count => num_corrupt);
  DBMS_OUTPUT.PUT_LINE(number corrupt:  || TO_CHAR (num_corrupt));
END;
/

REM Optionally display any corrupted block identified by check_object:

select BLOCK_ID, CORRUPT_TYPE, CORRUPT_DESCRIPTION
from REPAIR_TABLE;

REM Mark the identified blocks as corrupted
DECLARE num_fix INT;
BEGIN
  num_fix := 0;
  DBMS_REPAIR.FIX_CORRUPT_BLOCKS (
  SCHEMA_NAME => &schema_name,
  OBJECT_NAME=> &object_name,
  OBJECT_TYPE => dbms_repair.table_object,
  REPAIR_TABLE_NAME => REPAIR_TABLE,
  FIX_COUNT=> num_fix);
  DBMS_OUTPUT.PUT_LINE(num fix:  || to_char(num_fix));
END;
/

REM Allow future DML statements to skip the corrupted blocks:

BEGIN
  DBMS_REPAIR.SKIP_CORRUPT_BLOCKS (
  SCHEMA_NAME => &schema_name,
  OBJECT_NAME => &object_name,
  OBJECT_TYPE => dbms_repair.table_object,
  FLAGS => dbms_repair.SKIP_FLAG);
END;
/
可以通過REPAIR_TABLE來查看跳過了多少壞塊。
NO_SKIP取消標記:

3.4 Event 10231

啟用10231內部事件 :
alter system set events=10231 trace name context forever,level 10’;
關閉10231內部事件:
alter system set events=10231 trace name context off;
設置該事件后可以進行move表操作。

3.5 特殊情況

DBV或者rman validata命令標記有壞塊,但V$DATABASE_BLOCK_CORRUPTION查不到file#,block#。
可以參考How to Format Corrupted Block Not Part of Any Segment (Doc ID 336133.1)

04

總   結


4.1 有備份或者有adg環境且主備有一端是好的,backup validate后,可以使用recover block方式進行修復;
4.2 無備份或者無adg環境可以使用dbms_repair包,event 10231,expdp常規手段去搶救正常數據。


本 文 原 創 來 源:IT那活兒微信公眾號(上海新炬王翦團隊)


文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129681.html

相關文章

  • 微軟為OCP計算項目推出云SSD存儲新規范

    摘要:微軟正在繼續向提交潛在的新規范。微軟方面表示,預計在未來幾個月內完成規范,并在今年晚些時候推出。此外,微軟還在推進另一個開放計算貢獻的項目。去年年底,微軟推出了加密微控制器標準。微軟正在繼續向Open Compute Project提交潛在的新規范。在美國圣何塞舉行的Open Compute Project(OCP)美國峰會上,微軟推出了Project Denali,一項用于SSD固件接口標...

    mmy123456 評論0 收藏0
  • Vue.js中引入圖片路徑的幾種方式

    摘要:記錄總結一下的中引入圖片路徑的幾種書寫方式中靜態資源的引入機制關于靜態資源的官方文檔靜態資源可以通過兩種方式進行處理在被導入或在中通過相對路徑以開頭被引用。如果是一個絕對路徑,例如,它將會被保留不變。 vue --version 3.6.3記錄總結一下的Vue中引入圖片路徑的幾種書寫方式 vue中靜態資源的引入機制 Vue.js關于靜態資源的官方文檔 靜態資源可以通過兩種方式進行處理...

    adam1q84 評論0 收藏0
  • 總結跨域的幾種方式

    摘要:比如域的頁面通過嵌入了一個域的頁面,可以通過以下方法實現和的通信通過跨域以上幾種都是雙向通信的,即兩個,頁面與或是頁面與頁面之間的,下面說幾種單項跨域的一般用來獲取數據,因為通過標簽引入的是不受同源策略的限制的。 跨域整理@(前端筆記) 跨域 只要協議、域名、端口有任何一個不同,都被當作是不同的域。由于瀏覽器的同源策略,其限制之一是不能通過ajax的方法情趣請求不同源的文檔。第二個限制...

    diabloneo 評論0 收藏0
  • Java日志組件間關系

    摘要:一總覽本文章不對日志組件進行優劣評價,只是對關系進行對比。在日志中組件中存在這樣的幾種關系,這幾種關系理解清楚,有助于我們對日志的引入和使用。 一、 總覽 本文章不對日志組件進行優劣評價,只是對關系進行對比。在日志中組件中存在這樣的幾種關系, 這幾種關系理解清楚, 有助于我們對日志的引入和使用。 showImg(https://segmentfault.com/img/bVbow7o?...

    warmcheng 評論0 收藏0
  • 淺析前端上傳

    摘要:項目上也用到很多上傳文件的地方,七牛云,阿里云,訊飛上傳都接觸過,所以在這里做一個記錄,總結一下前端上傳的幾種方式。類型的文件名七牛云上傳淺析是一個基于七牛開發的前端。 showImg(https://segmentfault.com/img/bVbvibu?w=1920&h=1080); 圖片,音頻,視頻等等這幾種常見的資源類型,如果需要從前端上傳到服務端,有幾種方式呢?不妨回顧一下...

    terro 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<