[20161111]数据库文件头的修复.txt

简介: [20161111]数据库文件头的修复.txt --这里指文件头实际上数据文件第1块(从0算起)。 --找到一个链接,http://www.cnblogs.com/hrhguanli/p/4708273.html --要修改的信息相对较多。

[20161111]数据库文件头的修复.txt

--这里指文件头实际上数据文件第1块(从0算起)。

--找到一个链接,http://www.cnblogs.com/hrhguanli/p/4708273.html
--要修改的信息相对较多。

1 .改动数据的DBA,rdba_kcbh
2 .改动文件的大小,kccfhfsz
3 .改动文件号,kccfhfno
4 .改动文件创建时SCN,kcvfhcrs
5 .改动文件创建时间,kcvfhcrt
6 .改动表空间号,kcvfhtsn
7 .改动相对文件号,kcvfhrfn
8 .改动表空间的名称, kcvfhtnm
9 .改动表空间的长度,kcvfhtln
10.改动检查点的SCN,kcvfhckp
11.改动检查点的时间,kcvcptim
12.改动检查点的计数器,kcvfhcpc
13.改动检查点的控制文件备份的计数器, kcvfhccc
14.假设你改动是1号文件的1号块他的root rdba针指向bootstrap$

--实际上修改没有这么多,不过还是按照这个过程操作修改内容。

1.环境:
SCOTT@book> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

CREATE TABLESPACE SUGAR DATAFILE
  '/mnt/ramdisk/book/sugar01.dbf' SIZE 40M AUTOEXTEND ON NEXT 16M MAXSIZE UNLIMITED
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;

create table t1 tablespace sugar as select rownum id ,lpad('A',32,'A') name from dual connect by level<=1e5;
--建立大小5M的表。

alter system checkpoint;
alter system checkpoint;
...
alter system checkpoint;

CREATE TABLESPACE TEA DATAFILE
  '/mnt/ramdisk/book/tea01.dbf' SIZE 40M AUTOEXTEND ON NEXT 16M MAXSIZE UNLIMITED
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;

alter system checkpoint;

--建立的数据文件大小一致,可以减少一些修改内容。执行alter system checkpoint;这样可以导致2个文件的改动检查点的计数器不同。
SCOTT@book> alter database  datafile 6 offline ;
Database altered.

SCOTT@book> alter database  datafile 7 offline ;
Database altered.

--做这种offline,最好顺手做一个recover datafile N,避免时间上了online时要recover没有归档文件。当然这里测试不需要。
SCOTT@book> SELECT file#, CHECKPOINT_CHANGE#, CHECKPOINT_TIME,CREATION_CHANGE#  , RESETLOGS_CHANGE#,status, CHECKPOINT_COUNT,fuzzy,name,tablespace_name  FROM v$datafile_header;
FILE# CHECKPOINT_CHANGE# CHECKPOINT_TIME     CREATION_CHANGE# RESETLOGS_CHANGE# STATUS  CHECKPOINT_COUNT FUZ NAME                            TABLESPACE_NAME
----- ------------------ ------------------- ---------------- ----------------- ------- ---------------- --- ------------------------------- ----------------
    1            6317588 2016-11-11 15:08:38                7           2002065 ONLINE               419 YES /mnt/ramdisk/book/system01.dbf  SYSTEM
    2            6317588 2016-11-11 15:08:38             1834           2002065 ONLINE               416 YES /mnt/ramdisk/book/sysaux01.dbf  SYSAUX
    3            6317588 2016-11-11 15:08:38           923328           2002065 ONLINE               337 YES /mnt/ramdisk/book/undotbs01.dbf UNDOTBS1
    4            6317588 2016-11-11 15:08:38            16143           2002065 ONLINE               415 YES /mnt/ramdisk/book/users01.dbf   USERS
    5            6317588 2016-11-11 15:08:38           952916           2002065 ONLINE               335 YES /mnt/ramdisk/book/example01.dbf EXAMPLE
    6            6317503 2016-11-11 15:07:28          6316871           2002065 OFFLINE                3 NO  /mnt/ramdisk/book/sugar01.dbf   SUGAR
    7            6317588 2016-11-11 15:08:38          6317214           2002065 OFFLINE               11 YES /mnt/ramdisk/book/tea01.dbf     TEA
7 rows selected.

2.备份数据文件6.

$ cp /mnt/ramdisk/book/sugar01.dbf /u01/backup/sugar01.dbf_20161110
$ bvi -b 8192 -s 8192 /mnt/ramdisk/book/sugar01.dbf
--全部置为0

$ dd if=/dev/zero of=/mnt/ramdisk/book/sugar01.dbf count=1 bs=8192 conv=notrunc seek=1
1+0 records in
1+0 records out
8192 bytes (8.2 kB) copied, 4.0611e-05 seconds, 202 MB/s

BBED> copy dba 7,1 to dba 6,1
Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y
File: /mnt/ramdisk/book/sugar01.dbf (6)
Block: 1                                                    Offsets:    0 to  255                                               Dba:0x01800001
------------------------------------------------------------------------------------------------------------------------------------------------
0ba20000 0100c001 00000000 00000104 c54f0000 00000000 0004200b 6e21b74f 424f4f4b 00000000 fc6b0000 00140000 00200000 07000300 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 9e646000 00000000 68bc4a37 e6702c37 918c1e00 00000000 00000000
00000000 00000000 00000400 0b000000 cabc4a37 0a000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
<64 bytes per line>

--这样使用数据文件7的文件头替换了数据文件6的文件头。

3.开始修改。
1.改动数据的DBA,rdba_kcbh

BBED> set dba 6,1
        DBA             0x01800001 (25165825 6,1)

BBED> p dba 6,1 kcvfh.kcvfhbfh.rdba_kcbh
ub4 rdba_kcbh                               @4        0x01c00001

BBED> assign dba 6,1 kcvfh.kcvfhbfh.rdba_kcbh = 0x01800001
ub4 rdba_kcbh                               @4        0x01800001
--查看执行set dba 6,1的输出就知道dba地址。

2 .改动文件的大小,kccfhfsz
--这个忽略,大小一样。

BBED> p dba 6,1 kcvfh.kcvfhhdr.kccfhfsz
ub4 kccfhfsz                                @44       0x00001400
-- 0x1400 = 5120, 5120*8192/1024/1024=40M

3 .改动文件号,kccfhfno
BBED> p dba 6,1 kcvfh.kcvfhhdr.kccfhfno
ub2 kccfhfno                                @52       0x0007

BBED> assign dba 6,1 kcvfh.kcvfhhdr.kccfhfno=0x0006
ub2 kccfhfno                                @52       0x0006

4 .改动文件创建时SCN,kcvfhcrs
SCOTT@book> SELECT CREATION_CHANGE#,CREATION_TIME ,file#,NAME from v$datafile where file#=6 or file#=7;
CREATION_CHANGE# CREATION_TIME       FILE# NAME
---------------- ------------------- ----- --------------------------------------------------
         6316871 2016-11-11 15:05:44     6 /mnt/ramdisk/book/sugar01.dbf
         6317214 2016-11-11 15:06:16     7 /mnt/ramdisk/book/tea01.dbf

BBED> p /d dba 6,1 kcvfh.kcvfhhdr.kcvfhcrs
struct kcvfhcrs, 8 bytes                    @100
   ub4 kscnbas                              @100      6317214
   ub2 kscnwrp                              @104      0

BBED> assign dba 6,1 kcvfh.kcvfhhdr.kcvfhcrs.kscnbas=6316871
ub4 kscnbas                                 @100      0x00606347

5 .改动文件创建时间,kcvfhcrt
SCOTT@book> SELECT CREATION_CHANGE#,CREATION_TIME ,file#,NAME from v$datafile where file#=6 or file#=7;
CREATION_CHANGE# CREATION_TIME       FILE# NAME
---------------- ------------------- ----- --------------------------------------------------
         6316871 2016-11-11 15:05:44     6 /mnt/ramdisk/book/sugar01.dbf
         6317214 2016-11-11 15:06:16     7 /mnt/ramdisk/book/tea01.dbf

BBED> p /d dba 6,1 kcvfh.kcvfhhdr.kcvfhcrt
ub4 kcvfhcrt                                @108      927644776
--注意现在file#=7的时间。

SCOTT@book> select (to_date('2016-11-11 15:06:16','yyyy-mm-dd hh24:mi:ss')-to_date('2016-11-11 15:05:44','yyyy-mm-dd hh24:mi:ss'))*86400 N10 from dual;
                  N10
---------------------
                   32

-- 927644776-32=927644744

BBED> assign  dba 6,1 kcvfh.kcvfhhdr.kcvfhcrt=927644744
ub4 kcvfhcrt                                @108      0x374abc48

--补充说明:第4,5步我开始忽略,我认为可以不改。但是实际上在recover时报错。
SCOTT@book> recover datafile 6;
ORA-00283: recovery session canceled due to errors
ORA-01110: data file 6: '/mnt/ramdisk/book/sugar01.dbf'
ORA-01122: database file 6 failed verification check
ORA-01110: data file 6: '/mnt/ramdisk/book/sugar01.dbf'
ORA-01202: wrong incarnation of this file - wrong creation time

6 .改动表空间号,kcvfhtsn

SCOTT@book> select ts#,name from sys.ts$ where name in ('SUGAR','TEA');
         TS# NAME
------------ --------------------------------------------------
           7 SUGAR
           8 TEA

BBED> p dba 6,1 kcvfh.kcvfhhdr.kcvfhtsn
sword kcvfhtsn                              @332      8

BBED> assign  dba 6,1 kcvfh.kcvfhhdr.kcvfhtsn=7
sword kcvfhtsn                              @332      7

7 .改动相对文件号,kcvfhrfn
BBED> p dba 6,1 kcvfh.kcvfhhdr.kcvfhrfn
ub4 kcvfhrfn                                @368      0x00000007

BBED> assign  dba 6,1 kcvfh.kcvfhhdr.kcvfhrfn=0x00000006
ub4 kcvfhrfn                                @368      0x00000006

8 .改动表空间的名称, kcvfhtnm
BBED> p /c dba 6,1 kcvfh.kcvfhhdr.kcvfhtnm
text kcvfhtnm[0]                            @338     T
text kcvfhtnm[1]                            @339     E
text kcvfhtnm[2]                            @340     A
text kcvfhtnm[3]                            @341     .
text kcvfhtnm[4]                            @342     .

SCOTT@book> select dump('S',16) from dual ;
DUMP('S',16)
----------------
Typ=96 Len=1: 53

BBED> assign dba 6,1 kcvfh.kcvfhhdr.kcvfhtnm[0]=0x53
text kcvfhtnm[0]                            @338     S

BBED> assign dba 6,1 kcvfh.kcvfhhdr.kcvfhtnm[1]=0x55
text kcvfhtnm[0]                            @339     U

BBED> assign dba 6,1 kcvfh.kcvfhhdr.kcvfhtnm[2]=0x47
text kcvfhtnm[0]                            @340     G

BBED> assign dba 6,1 kcvfh.kcvfhhdr.kcvfhtnm[3]=0x41
text kcvfhtnm[0]                            @341     A

BBED> assign dba 6,1 kcvfh.kcvfhhdr.kcvfhtnm[4]=0x52
text kcvfhtnm[0]                            @343     R

--检查略。

9 .改动表空间的长度,kcvfhtln

BBED> p  dba 6,1 kcvfh.kcvfhhdr.kcvfhtln
ub2 kcvfhtln                                @336      0x0003

BBED> assign  dba 6,1 kcvfh.kcvfhhdr.kcvfhtln=0x0005
ub2 kcvfhtln                                @336      0x0005
--修改长度5,SUGAR占5个字符。

10.改动检查点的SCN,kcvfh.kcvfhhdr.kcvfhckp.kcvcpscn
SCOTT@book>  SELECT file#, CHECKPOINT_CHANGE#,CHECKPOINT_TIME,UNRECOVERABLE_CHANGE#,UNRECOVERABLE_TIME,LAST_CHANGE#,LAST_TIME, OFFLINE_CHANGE#, ONLINE_CHANGE#,status,name FROM v$datafile where file#=6;
FILE# CHECKPOINT_CHANGE# CHECKPOINT_TIME     UNRECOVERABLE_CHANGE# UNRECOVERABLE_TIME  LAST_CHANGE# LAST_TIME           OFFLINE_CHANGE# ONLINE_CHANGE# STATUS  NAME
----- ------------------ ------------------- --------------------- ------------------- ------------ ------------------- --------------- -------------- ------- --------------------------------------------------
    6            6317503 2016-11-11 15:07:28                     0                          6317503 2016-11-11 15:07:28               0              0 OFFLINE /mnt/ramdisk/book/sugar01.dbf

BBED> p /d dba 6,1 kcvfh.kcvfhhdr.kcvfhckp.kcvcpscn
struct kcvcpscn, 8 bytes                    @484
   ub4 kscnbas                              @484      6317588
   ub2 kscnwrp                              @488      0

BBED> assign  /d dba 6,1 kcvfh.kcvfhhdr.kcvfhckp.kcvcpscn.kscnbas=6317503
ub4 kscnbas                                 @484      0x006065bf

11.改动检查点的时间,kcvcptim
BBED> p /d dba 6,1 kcvfh.kcvfhhdr.kcvfhckp.kcvcptim
ub4 kcvcptim                                @492      927644918

SCOTT@book> SELECT file#, CHECKPOINT_CHANGE#,CHECKPOINT_TIME,UNRECOVERABLE_CHANGE#,UNRECOVERABLE_TIME,LAST_CHANGE#,LAST_TIME, OFFLINE_CHANGE#, ONLINE_CHANGE#,status,name FROM v$datafile where file# in (6,7);
FILE# CHECKPOINT_CHANGE# CHECKPOINT_TIME     UNRECOVERABLE_CHANGE# UNRECOVERABLE_TIME  LAST_CHANGE# LAST_TIME           OFFLINE_CHANGE# ONLINE_CHANGE# STATUS  NAME
----- ------------------ ------------------- --------------------- ------------------- ------------ ------------------- --------------- -------------- ------- --------------------------------------------------
    6            6317503 2016-11-11 15:07:28                     0                          6317503 2016-11-11 15:07:28               0              0 OFFLINE /mnt/ramdisk/book/sugar01.dbf
    7            6317588 2016-11-11 15:08:38                     0                          6317624 2016-11-11 15:10:02               0              0 RECOVER /mnt/ramdisk/book/tea01.dbf
--注意现在file#=7的时间。

SCOTT@book> select (to_date('2016-11-11 15:08:38','yyyy-mm-dd hh24:mi:ss')-to_date('2016-11-11 15:07:28','yyyy-mm-dd hh24:mi:ss'))*86400 N10 from dual;
                  N10
---------------------
                   70

--927644918-70=927644848

BBED> assign /d dba 6,1 kcvfh.kcvfhhdr.kcvfhckp.kcvcptim=927644848
ub4 kcvcptim                                @492      0x374abcb0

12.改动检查点的计数器,kcvfhcpc

--如果你看前面的查询v$datafile_header;CHECKPOINT_COUNT=3,现在是11.
BBED> p /d dba 6,1 kcvfh.kcvfhrdb.kcvfhcpc
ub4 kcvfhcpc                                @140      11

--这个信息来源于控制文件,你可以转储alter session set events 'immediate trace name controlf level 12';
DATA FILE #6:
  name #10: /mnt/ramdisk/book/sugar01.dbf
creation size=5120 block size=8192 status=0xc head=10 tail=10 dup=1
tablespace 7, index=7 krfil=6 prev_file=0
unrecoverable scn: 0x0000.00000000 01/01/1988 00:00:00
Checkpoint cnt:3 scn: 0x0000.006065bf 11/11/2016 15:07:28
Stop scn: 0x0000.006065bf 11/11/2016 15:07:28
Creation Checkpointed at scn:  0x0000.00606347 11/11/2016 15:05:44
thread:1 rba:(0x9f.5897.10)
enabled  threads:  01000000 00000000 00000000 00000000 00000000 00000000
  00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000

BBED> p /d dba 6,1 kcvfh.kcvfhrdb.kcvfhcpc
ub4 kcvfhcpc                                @140      11

BBED> assign /d dba 6,1 kcvfh.kcvfhrdb.kcvfhcpc=2
ub4 kcvfhcpc                                @140      0x00000002

13.改动检查点的控制文件备份的计数器, kcvfhccc
--就是比减少kcvfhcpc-1

BBED> p /d dba 6,1 kcvfh.kcvfhrdb.kcvfhccc
ub4 kcvfhccc                                @148      10

BBED> assign /d dba 6,1 kcvfh.kcvfhrdb.kcvfhccc=1
ub4 kcvfhccc                                @148      0x00000001
--先这样修改看看。
--补充说明,我开始没改,但是执行recover时报错。估计这个是11太大,我设置比原来的3小就ok了。
SCOTT@book> recover datafile 6;
ORA-00283: recovery session canceled due to errors
ORA-01122: database file 6 failed verification check
ORA-01110: data file 6: '/mnt/ramdisk/book/sugar01.dbf'
ORA-01207: file is more recent than control file - old control file

14.假设你改动是1号文件的1号块他的root rdba针指向bootstrap$
--不是系统文件,这个不修改了。
BBED> p dba 1,1 kcvfh.kcvfhrdb
ub4 kcvfhrdb                                @96       0x00400208

BBED> p dba 6,1 kcvfh.kcvfhrdb
ub4 kcvfhrdb                                @96       0x00000000

BBED> set dba 0x00400208
        DBA             0x00400208 (4194824 1,520)
--这个位置在dba=1,520,大家可以自行验证。
SCOTT@book> @ &r/which_obj 1 520
OWNER  SEGMENT_NAME          SEGMENT_TYPE       TABLESPACE_NAME                   EXTENT_ID      FILE_ID     BLOCK_ID        BYTES       BLOCKS RELATIVE_FNO
------ --------------------  ------------------ ------------------------------ ------------ ------------ ------------ ------------ ------------ ------------
SYS    BOOTSTRAP$            TABLE              SYSTEM                                    0            1          520        65536            8            1

15.计算检查和。

BBED> sum apply dba 6,1
Check value for File 6, Block 1:
current = 0x1edf, required = 0x1edf

SCOTT@book> recover datafile 6;
ORA-00283: recovery session canceled due to errors
ORA-01110: data file 6: '/mnt/ramdisk/book/sugar01.dbf'
ORA-01122: database file 6 failed verification check
ORA-01110: data file 6: '/mnt/ramdisk/book/sugar01.dbf'
ORA-01203: wrong incarnation of this file - wrong creation SCN

16.执行恢复

SCOTT@book> recover datafile 6;
Media recovery complete.

--ok.
SCOTT@book> alter database datafile 6 online ;

Database altered.

SCOTT@book> select count(*) from t1;
    COUNT(*)
------------
      100000

-- 总结:
1 .改动数据的DBA,rdba_kcbh                                     kcvfh.kcvfhbfh.rdba_kcbh
2 .改动文件的大小,kccfhfsz                                    kcvfh.kcvfhhdr.kccfhfsz
3 .改动文件号,kccfhfno                                        kcvfh.kcvfhhdr.kccfhfno
4 .改动文件创建时SCN,kcvfhcrs                                 kcvfh.kcvfhhdr.kcvfhcrs
5 .改动文件创建时间,kcvfhcrt                                  kcvfh.kcvfhhdr.kcvfhcrt
6 .改动表空间号,kcvfhtsn                                      kcvfh.kcvfhhdr.kcvfhtsn
7 .改动相对文件号,kcvfhrfn                                    kcvfh.kcvfhhdr.kcvfhrfn
8 .改动表空间的名称, kcvfhtnm                                 kcvfh.kcvfhhdr.kcvfhtnm
9 .改动表空间的长度,kcvfhtln                                  kcvfh.kcvfhhdr.kcvfhtln
10.改动检查点的SCN,kcvfhckp                                   kcvfh.kcvfhhdr.kcvfhckp.kcvcpscn
11.改动检查点的时间,kcvcptim                                  kcvfh.kcvfhhdr.kcvfhckp.kcvcptim
12.改动检查点的计数器,kcvfhcpc                                kcvfh.kcvfhrdb.kcvfhcpc
13.改动检查点的控制文件备份的计数器, kcvfhccc                 kcvfh.kcvfhrdb.kcvfhccc
14.假设你改动是1号文件的1号块他的root rdba针指向bootstrap$     kcvfh.kcvfhrdb
15.计算检查和。
16.千万不要在生产系统做这个测试!!

目录
相关文章
|
3月前
|
SQL 关系型数据库 MySQL
数据库导入SQL文件:全面解析与操作指南
在数据库管理中,将SQL文件导入数据库是一个常见且重要的操作。无论是迁移数据、恢复备份,还是测试和开发环境搭建,掌握如何正确导入SQL文件都至关重要。本文将详细介绍数据库导入SQL文件的全过程,包括准备工作、操作步骤以及常见问题解决方案,旨在为数据库管理员和开发者提供全面的操作指南。一、准备工作在导
712 0
|
1月前
|
关系型数据库 MySQL 数据库
数据库数据恢复—MYSQL数据库文件损坏的数据恢复案例
mysql数据库文件ibdata1、MYI、MYD损坏。 故障表现:1、数据库无法进行查询等操作;2、使用mysqlcheck和myisamchk无法修复数据库。
|
1月前
|
SQL 关系型数据库 MySQL
MySQL导入.sql文件后数据库乱码问题
本文分析了导入.sql文件后数据库备注出现乱码的原因,包括字符集不匹配、备注内容编码问题及MySQL版本或配置问题,并提供了详细的解决步骤,如检查和统一字符集设置、修改客户端连接方式、检查MySQL配置等,确保导入过程顺利。
|
2月前
|
Oracle 关系型数据库 数据库
Oracle数据恢复—Oracle数据库文件有坏快损坏的数据恢复案例
一台Oracle数据库打开报错,报错信息: “system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。管理员联系我们数据恢复中心寻求帮助,并提供了Oracle_Home目录的所有文件。用户方要求恢复zxfg用户下的数据。 由于数据库没有备份,无法通过备份去恢复数据库。
|
3月前
|
SQL 关系型数据库 MySQL
|
3月前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
60 2
|
3月前
|
SQL 存储 关系型数据库
SQL文件导入MySQL数据库的详细指南
数据库中的数据转移是一项常规任务,无论是在数据迁移过程中,还是在数据备份、还原场景中,导入导出SQL文件显得尤为重要。特别是在使用MySQL数据库时,如何将SQL文件导入数据库是一项基本技能。本文将详细介绍如何将SQL文件导入MySQL数据库,并提供一个清晰、完整的步骤指南。这篇文章的内容字数大约在
495 1
|
3月前
|
Java 关系型数据库 数据库连接
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第3天】Spring Boot项目中数据库连接问题可能源于配置错误或依赖缺失。YAML配置文件的格式不正确,如缩进错误,会导致解析失败;而数据库驱动不匹配、连接字符串或认证信息错误同样引发连接异常。解决方法包括检查并修正YAML格式,确认配置属性无误,以及添加正确的数据库驱动依赖。利用日志记录和异常信息分析可辅助问题排查。
458 10
|
3月前
|
Java 关系型数据库 MySQL
SpringBoot项目使用yml文件链接数据库异常
【10月更文挑战第4天】本文分析了Spring Boot应用在连接数据库时可能遇到的问题及其解决方案。主要从四个方面探讨:配置文件格式错误、依赖缺失或版本不兼容、数据库服务问题、配置属性未正确注入。针对这些问题,提供了详细的检查方法和调试技巧,如检查YAML格式、验证依赖版本、确认数据库服务状态及用户权限,并通过日志和断点调试定位问题。
321 6
|
3月前
|
Oracle 关系型数据库 数据库
oracle数据恢复—Oracle数据库文件损坏导致数据库打不开的数据恢复案例
打开oracle数据库时报错,报错信息:“system01.dbf需要更多的恢复来保持一致性,数据库无法打开”。急需恢复zxfg用户下的数据。 出现上述报错的原因有:控制文件损坏、数据文件损坏、数据文件与控制文件的SCN不一致等。数据恢复工程师对数据库文件做进一步检测分析后发现sysaux01.dbf文件有坏块。修复sysaux01.dbf文件,启动数据库依然有许多查询报错。export和data pump工具无法使用,查询告警日志并分析报错,确认发生上述错误的原因就是sysaux01.dbf文件损坏。由于该文件损坏,从数据库层面无法修复数据库。由于system和用户表空间的数据文件是正常的,