暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

20211102_xbbed一键读取ASM block到文件系统

1. 目标说明

xbbed主要实现一键读取asm数据块到文件系统或更新文件系统数据块到asm。 下载地址: https://www.modb.pro/download/221215 欢迎关注公众号交流沟通“xaoug”

2. Oracle sudo权限设置

--root用户执行 grep 'oracle' /etc/sudoers echo "oracle ALL=(ALL) NOPASSWD: ALL" >>/etc/sudoers grep 'oracle' /etc/sudoers su - oracle sudo su - grid -c pwd

3. 测试表创建

drop table hsql.t1 purge; create table hsql.t1(c1 char(10)); insert into hsql.t1 values('enmo'); commit; alter system flush buffer_cache; select dbms_rowid.rowid_object(rowid) object_id, dbms_rowid.rowid_relative_fno(rowid) file_id, dbms_rowid.rowid_block_number(rowid) block_id, dbms_rowid.rowid_row_number(rowid) row_number,* from hsql.t1; OBJECT_ID FILE_ID BLOCK_ID ROW_NUMBER C1 ---------- ---------- ---------- ---------- ------------------------------ 87925 4 182 0 enmo

4. cp asm block to os

[oracle@snyxdb1 x_recovery]$ sh x_reco.sh -------------------------------------------------------------------------------- |**********************WELCOME: x_rec for Oracle*******************************| |1). install_bbed: bbed install one key | |2). xbbed: cp asm block to os block or reverse. | |3). exit: quit the x_rec | |*****************if you need any help contact my wechat: xidoublestar*********| -------------------------------------------------------------------------------- pls,input operation name:xbbed ********************************WELCOM XBBED******************************** |method: | |1) get dba a,b <-- cp file#: a,blk#: b from asm to /tmp/xbbed/a_b.dd | |2) save dba a,b <-- cp /tmp/xbbed/a_b.dd to asm | |3) exit | **************************************************************************** xbbed>get dba 4,182 **********get dba 4,182********** block_id_in_datafile: 182 file_number: 4 filesystem_filename: /tmp/xbbed/4_182.dd asm_datafile_name: +OCR_VOTE/epmsn/datafile/users.259.1076411313 PL/SQL procedure successfully completed. xbbed>

5. 使用bbed修改数据内容

[oracle@snyxdb1 bbed]$ cat listfile.txt 1 /tmp/xbbed/4_182.dd [oracle@snyxdb1 bbed]$ sh l_bbed.sh BBED: Release 2.0.0.0.0 - Limited Production on Mon Nov 1 10:27:13 2021 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED> set dba 1,1 DBA 0x00400001 (4194305 1,1) BBED> BBED> p *kdbr[0] rowdata[0] ---------- ub1 rowdata[0] @8174 0x2c BBED> x /rccc rowdata[0] @8174 ---------- flag@8174: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8175: 0x01 cols@8176: 1 col 0[10] @8177: enmo BBED> d offset 8177 count 16 File: /tmp/xbbed/4_182.dd (1) Block: 1 Offsets: 8177 to 8191 Dba:0x00400001 ------------------------------------------------------------------------ 0a656e6d 6f202020 20202001 065139 <32 bytes per line> BBED> m /x 65 offset 8182 Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y File: /tmp/xbbed/4_182.dd (1) Block: 1 Offsets: 8182 to 8191 Dba:0x00400001 ------------------------------------------------------------------------ 65202020 20200106 5139 <32 bytes per line> BBED> sum apply Check value for File 1, Block 1: current = 0x233d, required = 0x233d BBED> d offset 8177 count 16 File: /tmp/xbbed/4_182.dd (1) Block: 1 Offsets: 8177 to 8191 Dba:0x00400001 ------------------------------------------------------------------------ 0a656e6d 6f652020 20202001 065139 <32 bytes per line> BBED> p *kdbr[0] rowdata[0] ---------- ub1 rowdata[0] @8174 0x2c BBED> x /rccc rowdata[0] @8174 ---------- flag@8174: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8175: 0x01 cols@8176: 1 col 0[10] @8177: enmoe BBED>

5. cp os block to asm

xbbed>save dba 4,182 **********save dba 4,182********** file_with_patched_block: /tmp/xbbed/4_182.dd file_to_patch_in_ASM: +OCR_VOTE/epmsn/datafile/users.259.1076411313 v_offstart: 182 PL/SQL procedure successfully completed. xbbed>

6. 结果检查

[oracle@snyxdb1 ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.4.0 Production on Mon Nov 1 10:29:17 2021 Copyright (c) 1982, 2013, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, Automatic Storage Management, OLAP, Data Mining and Real Application Testing options SQL> alter system flush buffer_cache; System altered. SQL> select * from hsql.t1; C1 ------------------------------ enmoe SQL>

7. 重置Oracle sudo权限设置

grep 'oracle' /etc/sudoers sed -ri 's/^oracle/#oracle/' /etc/sudoers grep 'oracle' /etc/sudoers su - oracle sudo su - grid -c pwd

欢迎关注公众号交流沟通“xaoug”
xaoug.jpg

最后修改时间:2021-11-08 15:31:10
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论