RMAN深入解析之--BlockRecover恢复坏块 案例环境: 操作系统:RedHat EL5 Oracle: Oracle 11gR2 案例描述: 通过块介质恢复(Block Media Recover:BMR)执行块级别的恢复操作来修复Oracle数据库上的逻辑或物理上损坏的数据块。 1、模拟数据块被破坏 10:26:48
RMAN深入解析之--BlockRecover恢复坏块
案例环境:
操作系统:RedHat EL5
Oracle: Oracle 11gR2
案例描述:
通过块介质恢复(Block Media Recover:BMR)执行块级别的恢复操作来修复Oracle数据库上的逻辑或物理上损坏的数据块。
1、模拟数据块被破坏
10:26:48 SYS@ prod>conn scott/tiger Connected. 10:26:51 SCOTT@ prod>select * from tab; TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- BONUS TABLE DEPT TABLE EMP TABLE EMP1 TABLE SALGRADE TABLE Elapsed: 00:00:00.10 10:26:55 SCOTT@ prod> 10:27:37 SYS@ prod>desc dba_segments Name Null? Type ----------------------------------------------------------------- -------- ------------- OWNER VARCHAR2(30) SEGMENT_NAME VARCHAR2(81) PARTITION_NAME VARCHAR2(30) SEGMENT_TYPE VARCHAR2(18) SEGMENT_SUBTYPE VARCHAR2(10) TABLESPACE_NAME VARCHAR2(30) HEADER_FILE NUMBER HEADER_BLOCK NUMBER BYTES NUMBER BLOCKS NUMBER EXTENTS NUMBER INITIAL_EXTENT NUMBER NEXT_EXTENT NUMBER MIN_EXTENTS NUMBER MAX_EXTENTS NUMBER MAX_SIZE NUMBER RETENTION VARCHAR2(7) MINRETENTION NUMBER PCT_INCREASE NUMBER FREELISTS NUMBER FREELIST_GROUPS NUMBER RELATIVE_FNO NUMBER BUFFER_POOL VARCHAR2(7) FLASH_CACHE VARCHAR2(7) CELL_FLASH_CACHE VARCHAR2(7) 10:27:41 SYS@ prod>col segment_name for a20 10:27:59 SYS@ prod>select owner,segment_name,SEGMENT_TYPE,HEADER_BLOCK from dba_segments 10:29:06 2 where owner='SCOTT' and segment_name='EMP1'; OWNER SEGMENT_NAME SEGMENT_TYPE HEADER_BLOCK ------------------------------ -------------------- ------------------ ------------ SCOTT EMP1 TABLE 170
通过以上查询,可以知道EMP1 table的segment header block为170;利用Uedit32,打开数据文件(users01.dbf)进行编辑破坏!
以下是计算block 170和block 171在Uedit32编辑中的offset:
10:29:24 SYS@ prod>select to_char(170*8*1024, 'xxxxxxxxxxxxxxxxxxxxx') from dual;
TO_CHAR(170*8*1024,'XX
----------------------
154000
10:30:27 SYS@ prod>select to_char(171*8*1024, 'xxxxxxxxxxxxxxxxxxxxx') from dual;
TO_CHAR(171*8*1024,'XX
----------------------
156000
以下是Uedit32编辑users01.dbf图片:
通过转储数据块验证:
10:30:37 SYS@ prod>alter system dump datafile 4 block 170;
System altered.
[oracle@rh6 ~]$ ls -lt /u01/app/oracle/diag/rdbms/prod/prod/trace/|more
total 14300
-rw-r----- 1 oracle oinstall 4492 Jul 15 11:34 prod_ora_2883.trc -rw-r----- 1 oracle oinstall 69 Jul 15 11:34 prod_ora_2883.trm -rw-r----- 1 oracle oinstall 557756 Jul 15 10:17 alert_prod.log -rw-r----- 1 oracle oinstall 947 Jul 15 10:17 prod_ckpt_2541.trc -rw-r----- 1 oracle oinstall 59 Jul 15 10:17 prod_ckpt_2541.trm -rw-r----- 1 oracle oinstall 1783 Jul 15 10:12 prod_j000_2588.trc -rw-r----- 1 oracle oinstall 80 Jul 15 10:12 prod_j000_2588.trm
查看转储文件:
[oracle@rh6 ~]$ cat /u01/app/oracle/diag/rdbms/prod/prod/trace/prod_ora_2883.trc|more
Trace file /u01/app/oracle/diag/rdbms/prod/prod/trace/prod_ora_2883.trc Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1 System name: Linux Node name: rh6 Release: 2.6.32-358.el6.x86_64 Version: #1 SMP Tue Jan 29 11:47:41 EST 2013 Machine: x86_64 Instance name: prod Redo thread mounted by this instance: 1 Oracle process number: 26 Unix process pid: 2883, image: oracle@rh6 (TNS V1-V3) *** 2014-07-15 11:34:50.092 *** SESSION ID:(37.32) 2014-07-15 11:34:50.092 *** CLIENT ID:() 2014-07-15 11:34:50.092 *** SERVICE NAME:(SYS$USERS) 2014-07-15 11:34:50.092 *** MODULE NAME:(sqlplus@rh6 (TNS V1-V3)) 2014-07-15 11:34:50.092 *** ACTION NAME:() 2014-07-15 11:34:50.092 Start dump data blocks tsn: 4 file#:4 minblk 170 maxblk 170 Block dump from cache: Dump of buffer cache at level 4 for tsn=4, rdba=16777386 Block dump from disk: buffer tsn: 4 rdba: 0x010000aa (4/170) scn: 0x0000.001f891c seq: 0x02 flg: 0x04 tail: 0x891c2302 frmt: 0x02 chkval: 0x8eee type: 0x23=PAGETABLE SEGMENT HEADER Hex dump of block: st=0, typ_found=1 Dump of memory from 0x00007F7DFC5C7A00 to 0x00007F7DFC5C9A00
7F7DFC5C7A00 0000A223 010000AA 001F891C 04020000 [#...............]
---此行内容与Uedit32打开内容一致
7F7DFC5C7A10 00008EEE 00000000 00000000 00000000 [................] 7F7DFC5C7A20 00000000 00000001 00000008 00000A9C [................] 7F7DFC5C7A30 00000000 00000008 00000008 010000B0 [................] 7F7DFC5C7A40 00000000 00000000 00000000 00000008 [................] 7F7DFC5C7A50 00000000 00000000 00000000 00000000 [................] 7F7DFC5C7A60 00000008 00000008 010000B0 00000000 [................] 7F7DFC5C7A70 00000000 00000000 00000008 010000A8 [................] 7F7DFC5C7A80 010000A8 00000000 00000000 00000000 [................] 7F7DFC5C7A90 00000000 00000000 00000000 00000000 [................] Repeat 3 times 7F7DFC5C7AD0 00000001 00002000 00000000 00001434 [..... ......4...] 7F7DFC5C7AE0 00000000 010000A9 00000001 010000A8 [................] 7F7DFC5C7AF0 010000A9 00000000 00000000 00000000 [................] 7F7DFC5C7B00 00000000 00000000 00000001 00000000 [................] 7F7DFC5C7B10 0001257B 10000000 010000A8 00000008 [{%..............] 7F7DFC5C7B20 00000000 00000000 00000000 00000000 [................] Repeat 152 times 7F7DFC5C84B0 010000A8 010000AB 00000000 00000000 [................] 7F7DFC5C84C0 00000000 00000000 00000000 00000000 [................] Repeat 151 times 7F7DFC5C8E40 00000000 00000000 010000A9 00000000 [................] 7F7DFC5C8E50 00000000 00000000 00000000 00000000 [................] Repeat 185 times 7F7DFC5C99F0 00000000 00000000 00000000 891C2302 [.............#..] Extent Control Header ----------------------------------------------------------------- Extent Header:: spare1: 0 spare2: 0 #extents: 1 #blocks: 8 last map 0x00000000 #maps: 0 offset: 2716 Highwater:: 0x010000b0 ext#: 0 blk#: 8 ext size: 8 #blocks in seg. hdr's freelists: 0 #blocks below: 8 mapblk 0x00000000 offset: 0 Unlocked -------------------------------------------------------- Low HighWater Mark : Highwater:: 0x010000b0 ext#: 0 blk#: 8 ext size: 8 #blocks in seg. hdr's freelists: 0 #blocks below: 8 mapblk 0x00000000 offset: 0 Level 1 BMB for High HWM block: 0x010000a8 Level 1 BMB for Low HWM block: 0x010000a8 -------------------------------------------------------- Segment Type: 1 nl2: 1 blksz: 8192 fbsz: 0 L2 Array start offset: 0x00001434 First Level 3 BMB: 0x00000000 L2 Hint for inserts: 0x010000a9 Last Level 1 BMB: 0x010000a8 Last Level II BMB: 0x010000a9 Last Level III BMB: 0x00000000 Map Header:: next 0x00000000 #extents: 1 obj#: 75131 flag: 0x10000000 Inc # 0 Extent Map ----------------------------------------------------------------- 0x010000a8 length: 8 Auxillary Map -------------------------------------------------------- Extent 0 : L1 dba: 0x010000a8 Data dba: 0x010000ab -------------------------------------------------------- Second Level Bitmap block DBAs -------------------------------------------------------- DBA 1: 0x010000a9 End dump data blocks tsn: 4 file#: 4 minblk 170 maxblk 170
2、将Uedit32(通过16进制编辑功能)编辑过的数据文件上传到数据库
13:59:58 SYS@ prod>alter system flush buffer_cache;
System altered.
读取数据出错:
14:00:05 SYS@ prod>select * from scott.emp1; select * from scott.emp1 * ERROR at line 1: ORA-01578: ORACLE data block corrupted (file # 4, block # 170) ORA-01110: data file 4: '/u01/app/oracle/oradata/prod/users01.dbf'
验证数据文件:
[oracle@rh6 ~]$ dbv file=/u01/app/oracle/oradata/prod/users01.dbf blocksize=8192
DBVERIFY: Release 11.2.0.1.0 - Production on Tue Jul 15 13:59:41 2014 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. DBVERIFY - Verification starting : FILE = /u01/app/oracle/oradata/prod/users01.dbf Page 170 is marked corrupt Corrupt block relative dba: 0x010000aa (file 4, block 170) Bad check value found during dbv: Data in bad block: type: 35 format: 2 rdba: 0x010000aa last change scn: 0x0000.001f891c seq: 0x2 flg: 0x04 spare1: 0x0 spare2: 0x0 spare3: 0x0 consistency value in tail: 0x891c2302 check value in block header: 0x8eee computed block checksum: 0x2020 Page 171 is marked corrupt Corrupt block relative dba: 0x010000ab (file 4, block 171) Bad header found during dbv: Data in bad block: type: 6 format: 2 rdba: 0x012020ab last change scn: 0x2020.201f890b seq: 0x2 flg: 0x04 spare1: 0x20 spare2: 0x20 spare3: 0x2020 consistency value in tail: 0x890b0602 check value in block header: 0xcf8b computed block checksum: 0x2e00 Page 172 is marked corrupt Corrupt block relative dba: 0x010000ac (file 4, block 172) Bad header found during dbv: Data in bad block: type: 6 format: 2 rdba: 0x012020ac last change scn: 0x2020.201f891c seq: 0x3 flg: 0x06 spare1: 0x20 spare2: 0x20 spare3: 0x2020 consistency value in tail: 0x891c0603 check value in block header: 0xa5b1 computed block checksum: 0x0 Page 173 is marked corrupt Corrupt block relative dba: 0x010000ad (file 4, block 173) Bad header found during dbv: Data in bad block: type: 6 format: 2 rdba: 0x012020ad last change scn: 0x2020.201f891c seq: 0x1 flg: 0x04 spare1: 0x20 spare2: 0x20 spare3: 0x2020 consistency value in tail: 0x891c0601 check value in block header: 0xf6ab computed block checksum: 0x2020 Page 174 is marked corrupt Corrupt block relative dba: 0x010000ae (file 4, block 174) Bad header found during dbv: Data in bad block: type: 6 format: 2 rdba: 0x012020ae last change scn: 0x2020.201f891c seq: 0x1 flg: 0x04 spare1: 0x20 spare2: 0x20 spare3: 0x2020 consistency value in tail: 0x891c0601 check value in block header: 0xcef0 computed block checksum: 0x20 Page 175 is marked corrupt Corrupt block relative dba: 0x010000af (file 4, block 175) Bad header found during dbv: Data in bad block: type: 6 format: 2 rdba: 0x012020af last change scn: 0x2020.201f891c seq: 0x1 flg: 0x04 spare1: 0x20 spare2: 0x20 spare3: 0x2020 consistency value in tail: 0x891c0601 check value in block header: 0x146a computed block checksum: 0x0 Page 176 is marked corrupt Corrupt block relative dba: 0x010000b0 (file 4, block 176) Bad header found during dbv: Data in bad block: type: 6 format: 2 rdba: 0x012020b0 last change scn: 0x2020.201e6219 seq: 0x1 flg: 0x04 spare1: 0x20 spare2: 0x20 spare3: 0x2020 consistency value in tail: 0x62190601 check value in block header: 0x2185 computed block checksum: 0x2020
DBVERIFY - Verification complete
Total Pages Examined : 12800
Total Pages Processed (Data) : 757
Total Pages Failing (Data) : 0
Total Pages Processed (Index): 2
Total Pages Failing (Index): 0
Total Pages Processed (Other): 12024
Total Pages Processed (Seg) : 0
Total Pages Failing (Seg) : 0
Total Pages Empty : 10
Total Pages Marked Corrupt : 7
Total Pages Influx : 0
Total Pages Encrypted : 0
Highest block SCN : 2066716 (0.2066716)
从以上验证结果看:总共有7个数据块(170-176)被破坏!
3、利用RMAN进行修复
[oracle@rh6 ~]$ rman target /
Recovery Manager: Release 11.2.0.1.0 - Production on Tue Jul 15 14:02:16 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.
connected to target database: PROD (DBID=239333010)
RMAN> list backup of database;
using target database control file instead of recovery catalog List of Backup Sets =================== BS Key Type LV Size Device Type Elapsed Time Completion Time ------- ---- -- ---------- ----------- ------------ --------------- 17 Full 1.13G DISK 00:01:21 03-JUL-14 BP Key: 17 Status: AVAILABLE Compressed: NO Tag: TAG20140703T171545 Piece Name: /u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1 List of Datafiles in backup set 17 File LV Type Ckp SCN Ckp Time Name ---- -- ---- ---------- --------- ---- 1 Full 2066885 03-JUL-14 /u01/app/oracle/oradata/prod/system01.dbf 2 Full 2066885 03-JUL-14 /u01/app/oracle/oradata/prod/sysaux01.dbf 3 Full 2066885 03-JUL-14 /u01/app/oracle/oradata/prod/undotbs1.dbf 4 Full 2066885 03-JUL-14 /u01/app/oracle/oradata/prod/users01.dbf 5 Full 2066885 03-JUL-14 /u01/app/oracle/oradata/prod/example01.dbf 6 Full 2066885 03-JUL-14 /u01/app/oracle/oradata/prod/tbs1.dbf 7 Full 2066885 03-JUL-14 /u01/app/oracle/oradata/prod/undotbs2.dbf 8 Full 2066885 03-JUL-14 /u01/app/oracle/oradata/prod/perftbs01.dbf
RMAN> blockrecover datafile 4 block 170,171,172,173,174,175,176;
Starting recover at 15-JUL-14 using channel ORA_DISK_1 channel ORA_DISK_1: restoring block(s) channel ORA_DISK_1: specifying block(s) to restore from backup set restoring blocks of datafile 00004 channel ORA_DISK_1: reading from backup piece /u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1 channel ORA_DISK_1: piece handle=/u01/app/oracle/product/11.2.0/db_1/dbs/0lpcfu61_1_1 tag=TAG20140703T171545 channel ORA_DISK_1: restored block(s) from backup piece 1 channel ORA_DISK_1: block restore complete, elapsed time: 00:00:01 starting media recovery media recovery complete, elapsed time: 00:00:07 Finished recover at 15-JUL-14
恢复完成,验证:
RMAN> backup validate database;
Starting backup at 15-JUL-14 using channel ORA_DISK_1 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00001 name=/u01/app/oracle/oradata/prod/system01.dbf input datafile file number=00002 name=/u01/app/oracle/oradata/prod/sysaux01.dbf input datafile file number=00008 name=/u01/app/oracle/oradata/prod/perftbs01.dbf input datafile file number=00004 name=/u01/app/oracle/oradata/prod/users01.dbf input datafile file number=00005 name=/u01/app/oracle/oradata/prod/example01.dbf input datafile file number=00007 name=/u01/app/oracle/oradata/prod/undotbs2.dbf input datafile file number=00006 name=/u01/app/oracle/oradata/prod/tbs1.dbf input datafile file number=00003 name=/u01/app/oracle/oradata/prod/undotbs1.dbf channel ORA_DISK_1: backup set complete, elapsed time: 00:00:45 List of Datafiles ================= File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ --------------- ---------- 1 OK 0 13407 99852 2117516 File Name: /u01/app/oracle/oradata/prod/system01.dbf Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data 0 67302 Index 0 15344 Other 0 3787 File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ --------------- ---------- 2 OK 0 17342 66627 2117514 File Name: /u01/app/oracle/oradata/prod/sysaux01.dbf Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data 0 11719 Index 0 7882 Other 0 29617 File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ --------------- ---------- 3 OK 0 1 128 2056342 File Name: /u01/app/oracle/oradata/prod/undotbs1.dbf Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data 0 0 Index 0 0 Other 0 127 File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ --------------- ---------- 4 OK 0 11873 12800 2066716 File Name: /u01/app/oracle/oradata/prod/users01.dbf Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data 0 763 Index 0 2 Other 0 162 File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ --------------- ---------- 5 OK 0 1680 12804 1715036 File Name: /u01/app/oracle/oradata/prod/example01.dbf Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data 0 3987 Index 0 1132 Other 0 6001 File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ --------------- ---------- 6 OK 0 2 1281 2051631 File Name: /u01/app/oracle/oradata/prod/tbs1.dbf Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data 0 1 Index 0 0 Other 0 1277 File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ --------------- ---------- 7 OK 0 8833 12800 2117516 File Name: /u01/app/oracle/oradata/prod/undotbs2.dbf Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data 0 0 Index 0 0 Other 0 3967 File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ --------------- ---------- 8 OK 0 23967 25600 2006072 File Name: /u01/app/oracle/oradata/prod/perftbs01.dbf Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data 0 867 Index 0 261 Other 0 505 channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set including current control file in backup set including current SPFILE in backup set channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01 List of Control File and SPFILE =============================== File Type Status Blocks Failing Blocks Examined ------------ ------ -------------- --------------- SPFILE OK 0 2 Control File OK 0 594 Finished backup at 15-JUL-14
[oracle@rh6 ~]$ sqlplus '/as sysdba' SQL*Plus: Release 11.2.0.1.0 Production on Tue Jul 15 14:16:27 2014 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options 14:16:27 SYS@ prod>select count(*) from scott.emp1; COUNT(*) ---------- 28 Elapsed: 00:00:00.02 14:16:35 SYS@ prod>select * from scott.emp1; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 7369 SMITH CLERK 7902 17-DEC-80 800 20 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- ---------- ---------- ---------- 7566 JONES MANAGER 7839 02-APR-81 2975 20 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7782 CLARK MANAGER 7839 09-JUN-81 2450 10 7788 SCOTT ANALYST 7566 19-APR-87 3000 20 7839 KING PRESIDENT 17-NOV-81 5000 10 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7876 ADAMS CLERK 7788 23-MAY-87 1100 20 7900 JAMES CLERK 7698 03-DEC-81 950 30 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7934 MILLER CLERK 7782 23-JAN-82 1300 10 28 rows selected. Elapsed: 00:00:00.07
读取数据成功!
[oracle@rh6 ~]$ dbv file=/u01/app/oracle/oradata/prod/users01.dbf blocksize=8192
DBVERIFY: Release 11.2.0.1.0 - Production on Tue Jul 15 14:17:22 2014 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. DBVERIFY - Verification starting : FILE = /u01/app/oracle/oradata/prod/users01.dbf DBVERIFY - Verification complete Total Pages Examined : 12800 Total Pages Processed (Data) : 763 Total Pages Failing (Data) : 0 Total Pages Processed (Index): 2 Total Pages Failing (Index): 0 Total Pages Processed (Other): 12025 Total Pages Processed (Seg) : 0 Total Pages Failing (Seg) : 0 Total Pages Empty : 10 Total Pages Marked Corrupt : 0 Total Pages Influx : 0 Total Pages Encrypted : 0 Highest block SCN : 2066716 (0.2066716) [oracle@rh6 ~]$
4、查看告警日志信息
告警日志:
dbv校验生成的日志:
Reading datafile '/u01/app/oracle/oradata/prod/users01.dbf' for corruption at rdba: 0x010000aa (file 4, block 170) Reread (file 4, block 170) found same corrupt data Corrupt Block Found TSN = 4, TSNAME = USERS RFN = 4, BLK = 170, RDBA = 16777386 OBJN = -1, OBJD = 75131, OBJECT = USERS, SUBOBJECT = SEGMENT OWNER = , SEGMENT TYPE = Temporary Segment Tue Jul 15 14:00:25 2014 Trace dumping is performing id=[cdmp_20140715140025] Tue Jul 15 14:00:25 2014 Errors in file /u01/app/oracle/diag/rdbms/prod/prod/trace/prod_m000_8954.trc (incident=121488): ORA-01578: ORACLE data block corrupted (file # 4, block # 170) ORA-01110: data file 4: '/u01/app/oracle/oradata/prod/users01.dbf' Hex dump of (file 4, block 176) in trace file /u01/app/oracle/diag/rdbms/prod/prod/incident/incdir_121443/prod_m000_8954_i121443_a.trc Corrupt block relative dba: 0x010000b0 (file 4, block 176) Bad header found during validation Data in bad block: type: 6 format: 2 rdba: 0x012020b0 last change scn: 0x2020.201e6219 seq: 0x1 flg: 0x04 spare1: 0x20 spare2: 0x20 spare3: 0x2020 consistency value in tail: 0x62190601 check value in block header: 0x2185 computed block checksum: 0x2020 Reread of blocknum=176, file=/u01/app/

Der Hauptunterschied zwischen MySQL und SQLite ist das Design-Konzept und die Nutzungsszenarien: 1. MySQL eignet sich für große Anwendungen und Lösungen auf Unternehmensebene, die hohe Leistung und hohe Parallelität unterstützen. 2. SQLite ist für mobile Anwendungen und Desktop -Software geeignet, leicht und leicht einzubetten.

Indizes in MySQL sind eine geordnete Struktur einer oder mehrerer Spalten in einer Datenbanktabelle, die zur Beschleunigung der Datenabnahme verwendet wird. 1) Indexe verbessern die Abfragegeschwindigkeit durch Reduzierung der Menge an gescannten Daten. 2) B-Tree-Index verwendet eine ausgewogene Baumstruktur, die für die Reichweite und Sortierung geeignet ist. 3) Verwenden Sie CreateIndex -Anweisungen, um Indizes zu erstellen, z. 4) Zusammengesetzte Indizes können Multi-Säulen-Abfragen optimieren, z. 5) Erklärung verwenden, um Abfragepläne zu analysieren und zu vermeiden

Durch die Verwendung von Transaktionen in MySQL wird die Datenkonsistenz gewährleistet. 1) Starten Sie die Transaktion über starttransaction und führen Sie dann SQL -Operationen aus und senden Sie sie mit Commit oder Rollback. 2) Setzen Sie SavePoint, um einen Speicherpunkt zu setzen, um teilweise Rollback zu ermöglichen. 3) Vorschläge zur Leistungsoptimierung umfassen die Verkürzung der Transaktionszeit, die Vermeidung großer Abfragen und die Verwendung von Isolationsniveaus.

Szenarien, in denen PostgreSQL anstelle von MySQL ausgewählt wird, umfassen: 1) komplexe Abfragen und erweiterte SQL -Funktionen, 2) strenge Datenintegrität und Säurekonformität, 3) Fortgeschrittene räumliche Funktionen erforderlich, und 4) Eine hohe Leistung ist bei der Verarbeitung großer Datensätze erforderlich. PostgreSQL funktioniert in diesen Aspekten gut und eignet sich für Projekte, die eine komplexe Datenverarbeitung und eine hohe Datenintegrität erfordern.

Die Sicherheit der MySQL -Datenbank kann durch folgende Maßnahmen erreicht werden: 1. Benutzerberechtigungsverwaltung: Strikt auf Zugriffsrechte durch CREATEUSER- und GRANT -Befehle kontrollieren. 2. Verschlüsselte Übertragung: Konfigurieren Sie SSL/TLS, um die Sicherheit der Datenübertragung zu gewährleisten. 3.. Datenbanksicherung und Wiederherstellung: Verwenden Sie MySQLDUMP oder MySQLPump, um regelmäßig Daten zu sichern. 4. Fortgeschrittene Sicherheitsrichtlinie: Verwenden Sie eine Firewall, um den Zugriff einzuschränken und die Protokollierungsvorgänge zu aktivieren. 5. Leistungsoptimierung und Best Practices: Berücksichtigung von Sicherheit und Leistung durch Indexierung und Abfrageoptimierung und regelmäßige Wartung.

Wie kann ich die MySQL -Leistung effektiv überwachen? Verwenden Sie Tools wie MySQLADMIN, ShowGlobalstatus, Perconamonitoring and Management (PMM) und MySQL Enterprisemonitor. 1. Verwenden Sie MySQLADMIN, um die Anzahl der Verbindungen anzuzeigen. 2. Verwenden Sie ShowglobalStatus, um die Abfragenummer anzuzeigen. 3.PMM bietet detaillierte Leistungsdaten und grafische Schnittstelle. 4.MysqlenterPrisemonitor bietet reichhaltige Überwachungsfunktionen und Alarmmechanismen.

Der Unterschied zwischen MySQL und SQLServer ist: 1) MySQL ist Open Source und für Web- und Embedded-Systeme geeignet, 2) SQLServer ist ein kommerzielles Produkt von Microsoft und für Anwendungen auf Unternehmensebene geeignet. Es gibt signifikante Unterschiede zwischen den beiden in der Speicher -Engine-, der Leistungsoptimierung und den Anwendungsszenarien. Bei der Auswahl müssen Sie die Projektgröße und die zukünftige Skalierbarkeit berücksichtigen.

In Anwendungsszenarien auf Unternehmensebene, die eine hohe Verfügbarkeit, eine erweiterte Sicherheit und eine gute Integration erfordern, sollte SQLServer anstelle von MySQL ausgewählt werden. 1) SQLServer bietet Funktionen auf Unternehmensebene wie hohe Verfügbarkeit und fortschrittliche Sicherheit. 2) Es ist eng in Microsoft -Ökosysteme wie Visualstudio und PowerBi integriert. 3) SQLServer führt hervorragende Leistungsoptimierung durch und unterstützt speicheroptimierte Tabellen und Spaltenspeicherindizes.


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

VSCode Windows 64-Bit-Download
Ein kostenloser und leistungsstarker IDE-Editor von Microsoft

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

MantisBT
Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

mPDF
mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),