日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Oracle OS Block Header

發(fā)布時間:2025/5/22 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Oracle OS Block Header 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

oracle文件的第一個塊(block 0)是OS block header,在數(shù)據(jù)庫中查詢不到信息,記錄的是OS信息,以及文件大小的等信息:

SQL> select file_name,bytes from dba_data_files;FILE_NAME BYTES -------------------------------------------------- ---------- /u01/app/oracle/oradata/PROD/user01.dbf 67108864$ls -lrt total 1390268 -rw-r----- 1 oracle oinstall 67117056 Apr 12 09:31 user01.dbf


從上面可以看出,OS上的大小比數(shù)據(jù)庫里的大小多了一個BLOCK。

如果OS block header損壞,并不影響數(shù)據(jù)庫打開、使用,但重建控制文件時會報錯,用dbverify/rman也檢測不到壞塊,不過可以使用dbfsize來查看:
正常狀態(tài):

$dbfsize user01.dbfDatabase file: user01.dbf Database file type: file system Database file size: 8192 8192 byte blocks

損壞:

$dbfsize user01.dbf user01.dbf: Header block magic number is bad

編緝BLOCK 0,模擬損壞,可以正常啟動、使用:

SQL> startup; ORACLE instance started.Total System Global Area 184549376 bytes Fixed Size 1266488 bytes Variable Size 100666568 bytes Database Buffers 79691776 bytes Redo Buffers 2924544 bytes Database mounted. ORA-01113: file 4 needs media recovery ORA-01110: data file 4: '/u01/app/oracle/oradata/PROD/user01.dbf'SQL> recover datafile 4; Media recovery complete. SQL> alter database open;Database altered.SQL> create table test01 tablespace USERS as select * from dba_objects;Table created.

用dbv檢查,未發(fā)現(xiàn)壞塊:

$dbv file=user01.dbfDBVERIFY: Release 10.2.0.4.0 - Production on Mon Apr 16 16:38:33 2012Copyright (c) 1982, 2007, Oracle. All rights reserved.DBVERIFY - Verification starting : FILE = user01.dbfDBVERIFY - Verification completeTotal Pages Examined : 8192 Total Pages Processed (Data) : 357 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 0 Total Pages Failing (Index): 0 Total Pages Processed (Other): 11 Total Pages Processed (Seg) : 0 Total Pages Failing (Seg) : 0 Total Pages Empty : 7824 Total Pages Marked Corrupt : 0 Total Pages Influx : 0 Highest block SCN : 336969 (0.336969)

用dbfsize檢查,報錯:

$dbfsize user01.dbf user01.dbf: Header block magic number is bad

如果重建控制文件,則會報錯:

SQL> startup nomount; ORACLE instance started.Total System Global Area 184549376 bytes Fixed Size 1266488 bytes Variable Size 100666568 bytes Database Buffers 79691776 bytes Redo Buffers 2924544 bytes SQL> CREATE CONTROLFILE REUSE DATABASE "PROD" NORESETLOGS ARCHIVELOG2 MAXLOGFILES 53 MAXLOGMEMBERS 54 MAXDATAFILES 1005 MAXINSTANCES 26 MAXLOGHISTORY 2927 LOGFILE8 GROUP 1 (9 '/u01/app/oracle/oradata/PROD/REDO1_1.log',10 '/u01/app/oracle/oradata/PROD/REDO1_2.log',11 '/u01/app/oracle/oradata/PROD/REDO1_3.log'12 ) SIZE 100M,13 GROUP 2 (14 '/u01/app/oracle/oradata/PROD/REDO2_1.log',15 '/u01/app/oracle/oradata/PROD/REDO2_2.log',16 '/u01/app/oracle/oradata/PROD/REDO2_3.log'17 ) SIZE 100M18 -- STANDBY LOGFILE19 DATAFILE20 '/u01/app/oracle/oradata/PROD/SYSTEM01.dbf',21 '/u01/app/oracle/oradata/PROD/undotbs01.dbf',22 '/u01/app/oracle/oradata/PROD/SYSAUX01.dbf',23 '/u01/app/oracle/oradata/PROD/user01.dbf'24 CHARACTER SET AL32UTF825 ; CREATE CONTROLFILE REUSE DATABASE "PROD" NORESETLOGS ARCHIVELOG * ERROR at line 1: ORA-01503: CREATE CONTROLFILE failed ORA-01565: error in identifying file '/u01/app/oracle/oradata/PROD/user01.dbf' ORA-27047: unable to read the header block of file Additional information: 2

報ORA-27047錯誤。這里可以在數(shù)據(jù)庫打開狀態(tài)下,resize datafile,這樣就可以重寫OS block header信息:

SQL> alter database open;Database altered.SQL> alter database datafile '/u01/app/oracle/oradata/PROD/user01.dbf' resize 65M;Database altered.SQL> select file_name,bytes from dba_data_files;FILE_NAME BYTES -------------------------------------------------- ---------- /u01/app/oracle/oradata/PROD/user01.dbf 68157440

dbfsize檢查正常,重建控制文件正常:

$dbfsize user01.dbfDatabase file: user01.dbf Database file type: file system Database file size: 8320 8192 byte blocksSQL> CREATE CONTROLFILE REUSE DATABASE "PROD" NORESETLOGS ARCHIVELOG2 MAXLOGFILES 53 MAXLOGMEMBERS 54 MAXDATAFILES 1005 MAXINSTANCES 26 MAXLOGHISTORY 2927 LOGFILE8 GROUP 1 (9 '/u01/app/oracle/oradata/PROD/REDO1_1.log',10 '/u01/app/oracle/oradata/PROD/REDO1_2.log',11 '/u01/app/oracle/oradata/PROD/REDO1_3.log'12 ) SIZE 100M,13 GROUP 2 (14 '/u01/app/oracle/oradata/PROD/REDO2_1.log',15 '/u01/app/oracle/oradata/PROD/REDO2_2.log',16 '/u01/app/oracle/oradata/PROD/REDO2_3.log'17 ) SIZE 100M18 -- STANDBY LOGFILE19 DATAFILE20 '/u01/app/oracle/oradata/PROD/SYSTEM01.dbf',21 '/u01/app/oracle/oradata/PROD/undotbs01.dbf',22 '/u01/app/oracle/oradata/PROD/SYSAUX01.dbf',23 '/u01/app/oracle/oradata/PROD/user01.dbf'24 CHARACTER SET AL32UTF825 ;Control file created.SQL> alter database open;Database altered.

注:resize 原大小,重建還是報錯,需要resize一個不同的大小。

總結

以上是生活随笔為你收集整理的Oracle OS Block Header的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。