oracle asm dd所出要的块
发表于:2025-11-17 作者:千家信息网编辑
千家信息网最后更新 2025年11月17日,前一篇写了asm里dd出文件,这篇里只dd出块,主要是针对文件大的情况。以scott模式为例:修改前的表信息SQL>select * from emp where mgr=7566 and empno
千家信息网最后更新 2025年11月17日oracle asm dd所出要的块
前一篇写了asm里dd出文件,这篇里只dd出块,主要是针对文件大的情况。
以scott模式为例:
修改前的表信息
SQL>select * from emp where mgr=7566 and empno=77887788 SCOTT ANALYST 7566 1987/4/19 3000.00 20
1 AU计算:
SQL> selectextent_Id,block_id,blocks,file_id 2 fromdba_extents where segment_name='EMP'SQL> / EXTENT_ID BLOCK_ID BLOCKS FILE_ID-------------------- ---------- ---------- 0 144 8 5
SQL> selectname from v$datafile where file#=5;NAME--------------------------------------------------------------+DATA/db/datafile/users.276.899048797SQL> selectname,group_number,file_number from v$asm_alias where name like '%USERS%' andfile_number=276;NAME GROUP_NUMBER FILE_NUMBER---------------------------------------------------------------------------------- -----------USERS.276.899048797 1 276SQL> selectdisk_kffxp,au_kffxp,xnum_kffxp from x$kffxp where group_kffxp=1 andnumber_kffxp=276;DISK_KFFXP AU_KFFXP XNUM_KFFXP---------- ---------- ---------- 1 426 0 0 289 1
这里计算一下,其block_id为144,块大小为8KB,那么其位置为144*8/1024=1.125M,加上块头8*8/1024=0.0625M,一共不超过4M;应当在第一个AU上(AU大小为4M),第二块盘的第426个AU上,取第二个盘路径:
SQL> selectdisk_number,path from v$asm_disk where disk_number=1;DISK_NUMBERPATH------------------------------------------------------------------------------------------- 1 /dev/raw/raw2
取出该表的最大和最小data_object_id,然后dd.
SQL> select dbms_rowid.rowid_relative_fno(rowid)rel_fno, max(dbms_rowid.rowid_block_number(rowid))max_block, min(dbms_rowid.rowid_block_number(rowid))min_block from emp group by dbms_rowid.rowid_relative_fno(rowid); REL_FNO MAX_BLOCK MIN_BLOCK-------------------- ---------- 5 149 149[oracle@mysql-1]$ddif=/dev/raw/raw2 bs=1024 count=8 skip=1746088 of=emp.dd
说明一下:skip=426*4*1024+149*8
检查一下:
[oracle@mysql-1~]$ strings emp.ddMILLERCLERKFORDANALYSTJAMESCLERKADAMSCLERKTURNERSALESMANKING PRESIDENTSCOTTANALYSTSMITHCLERK
从上可以看出,是emp的内容。
2 bbed修改内容
11g里首先要安装bbed,安装过程记录一下:
copy oracle 10g的sbbdpt.o,ssbbded.o到$ORACLE_HOME/rdbms/lib下copybbedus.msb 到$ORACLE_HOME/mesg下cd$ORACLE_HOME/rdbms/libmake -fins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbedcp bbed$ORACLE_HOME/bin
[oracle@mysql-1~]$ bbedBBED> set filename'/home/oracle/emp.dd'; FILENAME /home/oracle/emp.dd
#用bbed校验下块。BBED> verifyDBVERIFY - Verification startingFILE = /home/oracle/emp.ddBLOCK = 0Block 0 is corruptCorrupt block relative dba: 0x01400000(file 0, block 0)Bad header found during verificationData in bad block: type: 6 format: 2 rdba: 0x01400095 lastchange scn: 0x0000.0004dec0 seq: 0x1 flg: 0x06 spare1: 0x0 spare2: 0x0 spare3: 0x0 consistency value in tail: 0x00000000 check value in block header: 0x89af computed block checksum: 0xd6b DBVERIFY - Verification completeTotal Blocks Examined : 1Total Blocks Processed (Data) : 0Total Blocks Failing (Data) : 0Total Blocks Processed (Index): 0Total Blocks Failing (Index): 0Total Blocks Empty : 0Total Blocks Marked Corrupt : 1Total Blocks Influx : 0Message 531 not found; product=RDBMS; facility=BBED
用bbed查看dd出文件内容
BBED> set blocksize 8192 BLOCKSIZE 8192BBED> p kdbrBBED> find /c SCOTT File: /home/oracle/emp.dd (0) Block: 1 Offsets: 7864 to 8191 Dba:0x00000000------------------------------------------------------------------------ 53434f54 5407414e 414c5953 5403c24c 430777bb04130101 0102c21f ff02c115BBED> dump /v File: /home/oracle/emp.dd (0) Block: 1 Offsets: 7864 to 8191 Dba:0x00000000------------------------------------------------------- 53434f54 5407414e 414c5953 5403c24c lSCOTT.ANALYST..L 430777bb 04130101 0102c21f ff02c115 lC.w............. 2c010803 c24e5305 434c4152 4b074d41 l,....NS.CLARK.MA 4e414745 5203c24f 280777b5 06090101 lNAGER..O(.w..... 0103c219 33ff02c1 0b2c0108 03c24d63 l....3....,....Mc
用bbed修改:
set mode editset blocksize 8192find /c SCOTTm /c SNOWHBBED> dump /v File: /home/oracle/emp.dd (0) Block: 1 Offsets: 7864 to 8191 Dba:0x00000000------------------------------------------------------- 534e4f57 4807414e 414c5953 5403c24c lSNOWH.ANALYST..LBBED> sumCheck value for File 0, Block 1:current = 0x89af, required = 0x87b3 BBED> sum applyCheck value for File 0, Block 1:current = 0x87b3, required = 0x87b3
关库,导入修改后数据:
[oracle@mysql-1~]$ srvctl stop database -d db[oracle@mysql-1~]$dd of=/dev/raw/raw2 bs=1024 count=8 seek=1746088 if=emp.dd8+0 records in8+0 records out8192 bytes (8.2 kB) copied, 0.00208818 s,3.9 MB/s
查询表信息:
[oracle@mysql-1~]$ srvctl start database -d db
SQL> select* from emp where mgr=7566 and empno=7788 2 ;EMPNOENAME JOB MGR HIREDATE SAL COMM DEPTNO--------------- --------- ----- ----------- --------- --------- ------ 7788 SNOWH ANALYST 7566 1987/4/19 3000.00 20
OVER
内容
文件
信息
大小
最大
最小
位置
块头
情况
数据
查询表
模式
路径
过程
查询
检查
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
行业管理平台服务器
新中大无法连接服务器36985
网络数据库的基本检索方法不包括
深圳java软件开发报价
学计算机网络安全的专科
数据库技术三级考试几场
软件开发属于生产性服务业吗
永劫无间有大陆服务器吗
数据库日志文件 iq
网络安全建议书作文
宜昌有搞软件开发的吗
传奇云服务器推荐
软件开发啥专业好
双阳区网络技术咨询诚信服务
我国网络技术覆盖范围
linux服务器创建用户
服务器管理器命令快捷
计算机网络技术哪家强
进入云服务器安全吗
淮北企业软件开发公司哪家好
鹰潭个人服务器价格
vbs导出数据库txt
win打开gdbm数据库工具
数据库技术的书
杭州杭州软件开发要学些什么
手机店搭建服务器
丰台区专业网络技术服务介绍
上海技术网络技术参考价
本土网络安全
数据库创建规范