Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

73

积分

0

好友

0

主题
1#
发表于 2012-3-5 12:51:23 | 查看: 7320| 回复: 10
一个oracle9i的数据库,alertlog报了一个很常见的错误
Errors in file /user/oracle/app/oracle/admin/yxsw/bdump/yxsw_ora_3240088.trc:
ORA-01114: IO error writing block to file 208 (block # 699653)
ORA-27063: skgfospo: number of bytes read/written is incorrect
IBM AIX RISC System/6000 Error: 28: No space left on device
Additional information: -1
Additional information: 32768
Mon Mar  5 12:49:08 2012
Trace dumping is performing id=[cdmp_20120305124908]

可稀奇的是,数据库内竟然根本没有这个file 208的文件存在,难道说,208这个文件有特殊含义?

SQL> select max(file#) from v$datafile;

MAX(FILE#)
----------
        20

SQL> select max(file#) from v$tempfile;

MAX(FILE#)
----------
         8

~

[ 本帖最后由 ccshu 于 2012-3-5 13:09 编辑 ]

yxsw_ora_3240088.trc.txt

50.99 KB, 下载次数: 1280

2#
发表于 2012-3-5 12:56:50
IBM AIX RISC System/6000 Error: 28: No space left on device
与这有关系不?

回复 只看该作者 道具 举报

3#
发表于 2012-3-5 13:10:35
show parameter db_files (可能是200)

208应该是指临时文件了。

回复 只看该作者 道具 举报

4#
发表于 2012-3-5 13:13:10
原帖由 kevinlin.ora 于 2012-3-5 13:10 发表
show parameter db_files (可能是200)

208应该是指临时文件了。


db_files 的确是200,这么说,是不是208这个文件就是第8个临时文件的意思?

回复 只看该作者 道具 举报

5#
发表于 2012-3-5 13:15:01
select * from V$lock where id1=208;

回复 只看该作者 道具 举报

6#
发表于 2012-3-5 13:17:10
原帖由 kevinlin.ora 于 2012-3-5 13:15 发表
select * from V$lock where id1=208;


SQL> select * from V$lock where id1=208;

ADDR             KADDR                   SID TYPE        ID1        ID2
---------------- ---------------- ---------- ---- ---------- ----------
     LMODE    REQUEST      CTIME      BLOCK
---------- ---------- ---------- ----------
07000000B56100F8 07000000B5610118          5 MR          208          0
         4          0   44319691          0

回复 只看该作者 道具 举报

7#
发表于 2012-3-5 13:17:27
[oracle@test2:/oracle] oerr ora 1114
01114, 00000, "IO error writing block to file %s (block # %s)"
// *Cause:  The device on which the file resides is probably offline. If the
//          file is a temporary file, then it is also possible that the device
//          has run out of space. This could happen because disk space of
//          temporary files is not necessarily allocated at file creation time.
// *Action: Restore access to the device or remove unnecessary files to free
//          up space.

临时文件不是创建时就预分配空间的:
[oracle@test2:/oracle] ls -lrt /oratest/tsm/rlv_tmp_10g_01
-rw-r-----    1 oracle   dba      10737426432 Mar 05 22:00 /oratest/tsm/rlv_tmp_10g_01
[oracle@test2:/oracle] du -k /oratest/tsm/rlv_tmp_10g_01
9228    /oratest/tsm/rlv_tmp_10g_01

回复 只看该作者 道具 举报

8#
发表于 2012-3-5 13:22:59
原帖由 kevinlin.ora 于 2012-3-5 13:17 发表
[oracle@test2:/oracle] oerr ora 1114
01114, 00000, "IO error writing block to file %s (block # %s)"
// *Cause:  The device on which the file resides is probably offline. If the
//          file is a  ...


谢谢,这个机制我是知道的,也猜到很可能是temp file满了。

但是之前不了解Oracle在ORA-01114报错信息中对于 IO error writing block to file 208 ,其中file xxx的命名规则。

以前一直以为就是v$datafile视图中的file#,不了解tempfile的命名规则。现在明白了,谢谢!

回复 只看该作者 道具 举报

9#
发表于 2012-3-5 13:31:56
你这个报错应该跟磁盘空间已满有关
IBM AIX RISC System/6000 Error: 28: No space left on device

“可稀奇的是,数据库内竟然根本没有这个file 208的文件存在,难道说,208这个文件有特殊含义?”
可以下面的链接:
http://www.dbtan.com/2010/04/direct-path-readwrite.html#comment-9681

[ 本帖最后由 dbtan 于 2012-3-5 13:36 编辑 ]

回复 只看该作者 道具 举报

10#
发表于 2012-3-5 21:25:12
好贴 , 加精!




SQL> desc x$kcctf
Name                                      Null?    Type
----------------------------------------- -------- ----------------------------
ADDR                                               RAW(8)
INDX                                               NUMBER
INST_ID                                            NUMBER
TFNUM                                              NUMBER
TFAFN                                              NUMBER
TFCSZ                                              NUMBER
TFBSZ                                              NUMBER
TFSTA                                              NUMBER
TFCRC_SCN                                          VARCHAR2(16)
TFCRC_TIM                                          VARCHAR2(20)
TFFNH                                              NUMBER
TFFNT                                              NUMBER
TFDUP                                              NUMBER
TFTSN                                              NUMBER
TFTSI                                              NUMBER
TFRFN                                              NUMBER
TFPFT                                              NUMBER
TFMSZ                                              NUMBER
TFNSZ                                              NUMBER


TFAFN(Temp File Absolute File Number)

也可以通过以下SQL 定位 Tempfile 及其 Absolute File Number
  1. SELECT TFNUM FILENO,
  2.        TO_NUMBER(TF.TFCRC_SCN) CREATE_SCN,
  3.        TO_DATE(TF.TFCRC_TIM,
  4.                 'MM/DD/RR
  5. HH24:MI:SS') CREATE_TIME,
  6.        TF.TFTSN TSNUM,
  7.        TF.TFAFN "Tempfile AFN",
  8.        FN.FNNAM FNAME,
  9.        DECODE(NVL(FH.FHTMPFSZ, 0), 0, TF.TFCSZ, FH.FHTMPFSZ) FSIZE,
  10.        TF.TFBSZ BLOCK_SIZE,
  11.        TF.TFRFN RFILENO,
  12.        DECODE(BITAND(TF.TFSTA, 16), 0, 'OFF', 'ON') AUTOEXTEND,
  13.        TF.TFMSZ MAX_SIZE,
  14.        TF.TFNSZ NEXT_SIZE
  15.   FROM X$KCCTF TF, X$KCCFN FN, X$KCVFHTMP FH
  16. WHERE FN.FNFNO = TF.TFNUM
  17.    AND FN.FNFNO = FH.HTMPXFIL
  18.    AND TF.TFFNH = FN.FNNUM
  19.    AND TF.TFDUP != 0
  20.    AND FN.FNTYP = 7
  21.    AND FN.FNNAM IS NOT NULL
  22. ORDER BY TF.TFNUM;
复制代码

回复 只看该作者 道具 举报

11#
发表于 2012-3-8 21:05:46
发现通过 dump filehdrs 也可以得到这个 temp file  number

SQL> set linesize 200 pagesize 1400
SQL> SELECT TFNUM FILENO,
  2         TO_NUMBER(TF.TFCRC_SCN) CREATE_SCN,
  3         TO_DATE(TF.TFCRC_TIM,
  4                  'MM/DD/RR
  5  HH24:MI:SS') CREATE_TIME,
  6         TF.TFTSN TSNUM,
  7         TF.TFAFN "Tempfile AFN",
  8         FN.FNNAM FNAME,
  9         DECODE(NVL(FH.FHTMPFSZ, 0), 0, TF.TFCSZ, FH.FHTMPFSZ) FSIZE,
10         TF.TFBSZ BLOCK_SIZE,
11         TF.TFRFN RFILENO,
12         DECODE(BITAND(TF.TFSTA, 16), 0, 'OFF', 'ON') AUTOEXTEND,
13         TF.TFMSZ MAX_SIZE,
14         TF.TFNSZ NEXT_SIZE
15    FROM X$KCCTF TF, X$KCCFN FN, X$KCVFHTMP FH
16  WHERE FN.FNFNO = TF.TFNUM
17     AND FN.FNFNO = FH.HTMPXFIL
18     AND TF.TFFNH = FN.FNNUM
19     AND TF.TFDUP != 0
20     AND FN.FNTYP = 7
21     AND FN.FNNAM IS NOT NULL
22  ORDER BY TF.TFNUM;

    FILENO CREATE_SCN CREATE_TI      TSNUM Tempfile AFN
---------- ---------- --------- ---------- ------------
FNAME
----------------------------------------------------------------------------------------------------
     FSIZE BLOCK_SIZE    RFILENO AUT   MAX_SIZE  NEXT_SIZE
---------- ---------- ---------- --- ---------- ----------
         1     525959 07-NOV-11          3          201
/s01/oradata/G10R21/datafile/o1_mf_temp_7ch81b2t_.tmp
    382336       8192          1 ON     4194302         80

         2   11348968 22-DEC-11          3          202
/s01/oradata/G10R21/datafile/o1_mf_temp_7h6t7wnp_.tmp
    256000       8192          2 ON     4194302      12800

         3   11348974 22-DEC-11          3          203
/s01/oradata/G10R21/datafile/o1_mf_temp_7h6t80xy_.tmp
    243200       8192          3 ON     4194302      12800

         4   11348982 22-DEC-11          3          204
/s01/oradata/G10R21/datafile/o1_mf_temp_7h6t87ss_.tmp
    243200       8192          4 ON     4194302      12800

         5   11348988 22-DEC-11          3          205
/s01/oradata/G10R21/datafile/o1_mf_temp_7h6t89yr_.tmp
    243200       8192          5 ON     4194302      12800

         6   11348994 22-DEC-11          3          206
/s01/oradata/G10R21/datafile/o1_mf_temp_7h6t8d2l_.tmp
    243200       8192          6 ON     4194302      12800

         7   11349000 22-DEC-11          3          207
/s01/oradata/G10R21/datafile/o1_mf_temp_7h6t8g9h_.tmp
    243200       8192          7 ON     4194302      12800


SQL> oradebug setmypid;
Statement processed.
SQL> oradebug dump file_hdrs 3 ;
Statement processed.
SQL> oradebug tracefile_name;
/s01/admin/G10R21/udump/g10r21_ora_4278.trc

TEMP FILE #1: External File #201
  (name #11) /s01/oradata/G10R21/datafile/o1_mf_temp_7ch81b2t_.tmp
creation size=2560 block size=8192 status=0x1e head=11 tail=11 dup=1
tablespace 3, index=5 krfil=1 prev_file=0
unrecoverable scn: 0x0000.00080687 11/07/2011 04:08:58
V10 STYLE FILE HEADER:
        Compatibility Vsn = 169869568=0xa200100
        Db ID=2807279631=0xa753b00f, Db Name='G10R21'
        Activation ID=0=0x0
        Control Seq=19018=0x4a4a, File size=382336=0x5d580
        File Number=1, Blksiz=8192, File Type=6 TEMP FILE
Tablespace #3 - TEMP  rel_fn:1
Creation   at   scn: 0x0000.00080687 11/07/2011 04:08:58
Backup taken at scn: 0x0000.00000000 01/01/1988 00:00:00 thread:0
reset logs count:0x0 scn: 0x0000.00000000 reset logs terminal rcv data:0x0 scn: 0x0000.00000000
prev reset logs count:0x0 scn: 0x0000.00000000 prev reset logs terminal rcv data:0x0 scn: 0x0000.00000000
recovered at 01/01/1988 00:00:00
status:0x0 root dba:0x00000000 chkpt cnt: 0 ctl cnt:0


TEMP FILE #2: External File #202
  (name #24) /s01/oradata/G10R21/datafile/o1_mf_temp_7h6t7wnp_.tmp
creation size=12800 block size=8192 status=0x1e head=24 tail=24 dup=1
tablespace 3, index=5 krfil=2 prev_file=1
unrecoverable scn: 0x0000.00ad2be8 12/22/2011 12:29:32
V10 STYLE FILE HEADER:
        Compatibility Vsn = 169869568=0xa200100
        Db ID=2807279631=0xa753b00f, Db Name='G10R21'
        Activation ID=0=0x0
        Control Seq=19019=0x4a4b, File size=256000=0x3e800
        File Number=2, Blksiz=8192, File Type=6 TEMP FILE
Tablespace #3 - TEMP  rel_fn:2
Creation   at   scn: 0x0000.00ad2be8 12/22/2011 12:29:32
Backup taken at scn: 0x0000.00000000 01/01/1988 00:00:00 thread:0
reset logs count:0x0 scn: 0x0000.00000000 reset logs terminal rcv data:0x0 scn: 0x0000.00000000
prev reset logs count:0x0 scn: 0x0000.00000000 prev reset logs terminal rcv data:0x0 scn: 0x0000.00000000
recovered at 01/01/1988 00:00:00
status:0x0 root dba:0x00000000 chkpt cnt: 0 ctl cnt:0

TEMP FILE #3: External File #203
  (name #25) /s01/oradata/G10R21/datafile/o1_mf_temp_7h6t80xy_.tmp
creation size=12800 block size=8192 status=0x1e head=25 tail=25 dup=1
tablespace 3, index=5 krfil=3 prev_file=2
unrecoverable scn: 0x0000.00ad2bee 12/22/2011 12:29:36
V10 STYLE FILE HEADER:
        Compatibility Vsn = 169869568=0xa200100
        Db ID=2807279631=0xa753b00f, Db Name='G10R21'
        Activation ID=0=0x0
        Control Seq=19013=0x4a45, File size=243200=0x3b600
        File Number=3, Blksiz=8192, File Type=6 TEMP FILE
Tablespace #3 - TEMP  rel_fn:3
Creation   at   scn: 0x0000.00ad2bee 12/22/2011 12:29:36
Backup taken at scn: 0x0000.00000000 01/01/1988 00:00:00 thread:0
reset logs count:0x0 scn: 0x0000.00000000 reset logs terminal rcv data:0x0 scn: 0x0000.00000000
prev reset logs count:0x0 scn: 0x0000.00000000 prev reset logs terminal rcv data:0x0 scn: 0x0000.00000000
recovered at 01/01/1988 00:00:00
status:0x0 root dba:0x00000000 chkpt cnt: 0 ctl cnt:


X$KCCTF.TFAFN    External File Number

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-12-23 23:59 , Processed in 0.052355 second(s), 25 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569