Heim > Datenbank > MySQL-Tutorial > Hauptteil

ORA-01200错误的分析

WBOY
Freigeben: 2016-06-07 17:31:36
Original
1161 Leute haben es durchsucht

一 触发ora-01200错误的原因 [Oracle@oracle ~]$ oerr ora 0120001200, 00000, actual file size of %s is smaller than correc

一 触发ora-01200错误的原因
 
[Oracle@oracle ~]$ oerr ora 01200
01200, 00000, "actual file size of %s is smaller than correct size of %s blocks"
// *Cause: The size of the file as returned by the operating system is smaller
//        than the size of the file as indicated in the file header and the
//        control file. Somehow the file has been truncated. Maybe it is the
//        result of a half completed copy.
// *Action: Restore a good copy of the data file and do recovery as needed.

数据文件实际块数小于数据文件头部记录的数据文件块数

二 用bbed构造一个ora-01200错误
 
1 数据文件/oracle/test/jiujian1.dbf实际占用块数如下:
 
SQL> select file_name,blocks from dba_data_files where file_id=11;
 
FILE_NAME                          BLOCKS
----------------------------------------          ---------
/oracle/test/jiujian1.dbf                1048
 
2 用bbed修改数据文件头部记录的数据文件占用块数
BBED> info
 File# Name                                                        Size(blks)
 ----- ----                                                        ----------
    1 /oracle/CRM2/system1.dbf                                        61440
    2 /oracle/CRM2/zxb.dbf                                              1280
    3 /oracle/CRM2/CRM/sysaux01.dbf                                    37120
    4 /oracle/CRM2/CRM/users01.dbf                                      640
    5 /oracle/CRM2/zxa.dbf                                            12800
    6 /oracle/CRM2/CRM/undotbs2.dbf                                    25600
    7 /oracle/CRM2/zxc.dbf                                              1280
    8 /oracle/CRM2/CRM/zxbig1.dbf                                    262144
    11 /oracle/test/jiujian1.dbf                                          128
 
BBED> set dba 11,1
        DBA            0x02c00001 (46137345 11,1)
 
BBED> p  offset 44     
kcvfh.kcvfhhdr.kccfhfsz
-----------------------
ub4 kccfhfsz                                @44      0x00000418 (十进制1048)
 
BBED> set offset 44
        OFFSET          44
 
BBED> dump /v count 30
 File: /oracle/test/jiujian1.dbf (11)
 Block: 1      Offsets:  44 to  73 Dba:0x02c00001
-------------------------------------------------------
 18040000 00200000 0b000300 00000000 l ..... ..........
 00000000 00000000 00000000 0000    l ..............
 
 
 
BBED> modify /x 1904
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
 File: /oracle/test/jiujian1.dbf (11)
 Block: 1                Offsets:  44 to  73          Dba:0x02c00001
------------------------------------------------------------------------
 19040000 00200000 0b000300 00000000 00000000 00000000 00000000 0000
 
 
 
BBED> p offset 44
kcvfh.kcvfhhdr.kccfhfsz
-----------------------
ub4 kccfhfsz                                @44      0x00000419(10进制为1049)
 
BBED> sum apply
Check value for File 11, Block 1:
current = 0x34f4, required = 0x34f4
 
3 启动数据库便可触发ora-01200错误
SQL> startup
ORACLE instance started.
 
Total System Global Area 322961408 bytes
Fixed Size                  2020480 bytes
Variable Size              92277632 bytes
Database Buffers          222298112 bytes
Redo Buffers                6365184 bytes
Database mounted.
ORA-01122: database file 11 failed verification check
ORA-01110: data file 11: '/oracle/test/jiujian1.dbf'
ORA-01200: actual file size of 1048 is smaller than correct size of 1049 blocks
 
三ora-01200错误的解决
 
方式1 通过bbed 改数据文件头部偏移量44处的值为数据文件实际占用块数
 
方式2 通过dd命令填充数据文件实际大小为correct size of 1049 blocks中的值
dd if=/dev/zero of=/oracle/test/jiujian1.dbf bs=8192 count=1 seek=1049

相关阅读:

SPFILE 错误导致数据库无法启动(ORA-01565) 

ORA-01172、ORA-01151错误处理 

ORA-00600 [2662]错误解决

linux

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage