How to view and edit data on ASM using BBED ver. 1.0

Marcin Przepiorowski, July 2009 [email protected] http://oracleprof.blogspot.com/

How to view and edit data on ASM using BBED Marcin Przepiorowski – [email protected]

Contents Introduction ...................................................................................................................................... 3 Preparation ....................................................................................................................................... 4 Data access ....................................................................................................................................... 5 Final comment ................................................................................................................................ 14 Bibliography .................................................................................................................................... 14

2

How to view and edit data on ASM using BBED Marcin Przepiorowski – [email protected]

Introduction The following document describes my work related to check if it is possible to read and write data which are placed inside ASM structures. An idea of that article comes to my mind when I recall that Oracle has been shipped with a Binary Block Editor which is an internal Oracle tool to view and edit database block. I was trying to read data files based on ASM but with no luck. So I decide to investigate it a little bit deeper. This article is an example only and I can’t take responsibility for any damages of your databases. Do not edit database block on production or other important system without assistance from Oracle Support.

3

How to view and edit data on ASM using BBED Marcin Przepiorowski – [email protected]

Preparation First problem appear on very beginning – there is no BBED in 11g. But with little help from Miladin Modrakovic blog I have solve it. Now I got a tool – BBED was running so what I needed was a data to view. There second problem appeared – database file had been placed on ASM and not a file system. BBED is a very old tool and it not working with ASM. There are two possibilities to fix that – I could use a RMAN to copy a data file from ASM into file system but this is not a good idea if your files are big and you want to see a live data. Second option is to copy only a required database blocks (related to data which you want to see) directly from ASM into file system and then view it. But how to copy only some block from ASM into file system ? ASM is based on disks, so if we now where the data are placed we can use “dd” command to copy them. Some important information about ASM structure I have found in Luca Canali presentation for UKOUG. After I read it I was ready to perform some tests. Here are results of my work.

Creating of test table 1. Create a table which has been used in my test [oracle@piorovm ~]$ sqlplus / as sysdba SQL*Plus: Release 11.1.0.7.0 - Production on Thu Jun 18 09:18:57 2009 Copyright (c) 1982, 2008, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production With the Partitioning, Oracle Label Security, OLAP, Data Mining, Oracle Database Vault and Real Application Testing options SQL> connect pioro/pioro Connected. SQL> create table secret_table (id number, name varchar2(100), cardnum varchar2(20)) tablespace users; Table created. SQL> insert into secret_table values (1,'Marcin Przepiorowski','4444-11112222-3333'); 1 row created. SQL> insert into secret_table values (2,'Jim Smith','4444-2222-3333-5555'); 1 row created. SQL> commit; Commit complete.

4

How to view and edit data on ASM using BBED Marcin Przepiorowski – [email protected] SQL> select id, name, cardnum from pioro.secret_table; ID NAME CARDNUM ---------- --------------------------------------------------------------------------------------------------- -------------------1 Marcin Przepiorowski 4444-1111-2222-3333 2 Jim Smith 4444-2222-3333-5555 SQL>

2. Check if DBA can see a data SQL> connect / as sysdba Connected. SQL> select count(*) from pioro.secret_table; COUNT(*) ---------2

Data access Now I need some information related to table structure and location of the table.

SQL> desc pioro.secret_table Name Null? ----------------------------------------- -------ID NAME CARDNUM

Type ---------------------------NUMBER VARCHAR2(100) VARCHAR2(20)

SQL> select EXTENT_ID, BLOCK_ID, BLOCKS, FILE_ID from dba_extents where SEGMENT_NAME='SECRET_TABLE' and OWNER='PIORO'; EXTENT_ID BLOCK_ID BLOCKS FILE_ID ---------- ---------- ---------- ---------0 3465 8 4

SQL> SQL> select name from v$datafile where file#=4; NAME -------------------------------------------------------------------------------+DATA/pioro/datafile/users.262.689687725

5

How to view and edit data on ASM using BBED Marcin Przepiorowski – [email protected]

From above queries I have got enough information to find a database blocks related to SECRET_TABLE and I have a table structure too. This is a time to find a database blocks on disks. Let’s start with some ASM research. All information about ASM has been taken from Luca Canali presentation – thanks. Information which should be kept in mind is that AU size is equal to 1MB and database block size has been set to 8 kB. ASM file number a part of database file name and in that case this number is 262. So what is a first allocation unit (AU) for that file ?

[oracle@piorovm ~]$ export ORACLE_SID=+ASM [oracle@piorovm ~]$ sqlplus / as sysdba SQL*Plus: Release 11.1.0.7.0 - Production on Thu Jun 18 10:08:45 2009 Copyright (c) 1982, 2008, Oracle.

All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production With the Partitioning, Oracle Label Security, OLAP, Data Mining, Oracle Database Vault and Real Application Testing options SQL> select min(AUNUM_KFDAT) from X$KFDAT where fnum_kfdat=262; MIN(AUNUM_KFDAT) ---------------2697

Now I have information about first AU in data file, so using a information from dba_extents I can find a allocation unit where SECRET_TABLE exist. To do that I need to recalculate number of a first block in table into number of allocation unit offset. Block number is equal to 3456 so after multiplication with database block size (8 kb) I have a bytes offset where table begin in datafile, if I truncate that number into number of AU (remember 1 AU = 1MB) we will find a number of AU where first block of table exist. If we do that same with a last block from extend (block_id+blocks) we will find a last AU. SQL> select AUNUM_KFDAT from X$KFDAT where AUNUM_KFDAT >= (select min(AUNUM_KFDAT)+trunc(3465*8/1024) from X$KFDAT where fnum_kfdat=262) 2 and AUNUM_KFDAT <= (select min(AUNUM_KFDAT)+trunc((3465+8)*8/1024) from X$KFDAT where fnum_kfdat=262); AUNUM_KFDAT ----------2724

3465 – block_id – first block of table

6

How to view and edit data on ASM using BBED Marcin Przepiorowski – [email protected] 8 – blocks – size of table in blocks 8 kb – database block size

Now I need an ASM disk and group number for AU SQL> select GROUP_KFDAT Group# ,NUMBER_KFDAT Disk#, AUNUM_KFDAT AU# from X$KFDAT where fnum_kfdat=262 and AUNUM_KFDAT = 2724; GROUP# DISK# AU# ---------- ---------- ---------1 0 2724

After that I need to translate a disk and group number into physical disk name SQL> select name, path from v$asm_disk where group_number=1 and disk_number=0; NAME PATH ------------------------------ -----------------------------DATA ORCL:DATA SQL>

Ok still not physical disk but one step closer [oracle@piorovm ~]$ /etc/init.d/oracleasm querydisk -d DATA Disk "DATA" is a valid ASM disk on device [253, 1] [oracle@piorovm ~]$ cat /proc/partitions | grep 253 253 0 5242880 dm-0 253 1 5242880 dm-1 253 2 7340032 dm-2 [root@piorovm ~]# ls -l /dev/mapper/ total 0 crw------- 1 root root 10, 63 Jun 19 09:39 control brw-rw---- 1 root disk 253, 0 Jun 19 09:39 VGora-oraclebin brw-rw---- 1 root disk 253, 1 Jun 19 09:39 VGora-tabaza brw-rw---- 1 root disk 253, 2 Jun 19 09:39 VGora-tenbackup

7

How to view and edit data on ASM using BBED Marcin Przepiorowski – [email protected]

Disk number 253,1 is accessible as /dev/VGora/VGora-tabaza Now some additional calculations: First table block is 3465 First AU for datafile is 2697 Offset between first AU and AU with table blocks is 2724 – 2697 = 27

First database block in AU where table exist 27 * 1024 / 8 kb = 3456 where 8 kb is a database block size and 1024 allow recalculating number of AU into kB.

Offset of first table block in AU 3465 - 3456 = 9

First AU block in number of database blocks 2724 * 1024 / 8 = 348672

This will be used for „dd” command Add offset of first table block to first AU block 348672 + 9 = 348681

This will be skip parameter for „dd”

8

How to view and edit data on ASM using BBED Marcin Przepiorowski – [email protected]

Because I don’t know which block of table contain my rows I have to display all blocks dd if=/dev/VGora/tabaza bs=8k count=8 skip=348681 | strings [root@piorovm ~]# dd if=/dev/VGora/tabaza bs=8k count=8 skip=348681 | strings 8+0 records in 8+0 records out 65536 bytes (66 kB) copied, 0.000390783 seconds, 168 MB/s Jim Smith 4444-2222-3333-5555, Marcin Przepiorowski 4444-1111-2222-3333 [root@piorovm ~]#

Where I have seen that information? O yes in my SECRET_TABLE. But how to check what is it ? I have to create a file which is a copy of database block used by my table. dd if=/dev/VGora/tabaza bs=8k count=8 skip=348681 of=secure_table.bbed

After that I can prepare a dummy file for BBED which has a information about my datafiles. Where -

4 is a database block number

-

Secure_table.bbed is a file name for dd

-

65536 is a file size

[oracle@piorovm bin]$ cat fl1.txt 4 /oracle/app/product/11.1.0/db_1 /secure_table.bbed 65536

Now I can start BBED [oracle@piorovm bin]$ ./bbed listfile=fl1.txt BBED: Release 2.0.0.0.0 - Limited Production on Thu Jun 18 11:12:01 2009 Copyright (c) 1982, 2007, Oracle. All rights reserved. ************* !!! For Oracle Internal Use only !!! *************** BBED>

I will check my table using a brilliant BBED documentation provided by Graham Thornton. Because I don’t know which block is filled by data I have to check all – if block is empty a BBED can exist but don’t worry and check other one

9

How to view and edit data on ASM using BBED Marcin Przepiorowski – [email protected]

BBED> set blocksize 8192 BLOCKSIZE 8192 BBED> set dba 4,8 DBA 0x01000008 (16777224 4,8) BBED> p kdbr sb2 kdbr[0] @118 sb2 kdbr[1] @120

8041 8005

Ok we have block with 2 rows inside. Check a first one BBED> p *kdbr[1] rowdata[0] ---------ub1 rowdata[0]

@8105

BBED> x /r rowdata[0] ---------flag@8105: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8106: 0x01 cols@8107: 3

0x2c

@8105

col 0[2] @8108: 0xc1 0x03 col 1[9] @8111: 0x4a 0x69 0x6d 0x20 0x53 0x6d col 2[19] @8121: 0x34 0x34 0x34 0x34 0x2d 0x32 0x33 0x33 0x33 0x33 0x2d 0x35 0x35 0x35 0x35

0x69 0x32

0x74 0x32

0x68 0x32

0x2d

Because I know what a structure of table is I can display it in more human readable format.

BBED> x /rncc rowdata[0] ---------flag@8105: 0x2c (KDRHFL, KDRHFF, KDRHFH) lock@8106: 0x01 cols@8107: 3 col col col

@8105

0[2] @8108: 2 1[9] @8111: Jim Smith 2[19] @8121: 4444-2222-3333-5555

What else I can do with data? I can change it and try to put inside DB again. Let’s try. First of all BBED has be started in edit mode

10

How to view and edit data on ASM using BBED Marcin Przepiorowski – [email protected] [oracle@piorovm bin]$ ./bbed listfile=fl1.txt mode=edit BBED: Release 2.0.0.0.0 - Limited Production on Fri Jun 19 15:39:52 2009 Copyright (c) 1982, 2007, Oracle.

All rights reserved.

************* !!! For Oracle Internal Use only !!! *************** BBED> set blocksize 8192 BLOCKSIZE 8192 BBED>

set dba 4,8 DBA

0x01000008 (16777224 4,8)

BBED> p *kdbr[0] rowdata[36] ----------ub1 rowdata[36]

@8141

0x2c

This is first row from table. I will change a first 4 digits of credit card number from 4444 to 0000. BBED> d /v File: secure_table.bbed (4) Block: 8 Offsets: 8141 to 8191 Dba:0x01000008 ------------------------------------------------------2c010302 c102144d 61726369 6e205072 l ,...Á..Marcin Pr 7a657069 6f726f77 736b6913 34343434 l zepiorowski.4444 2d313131 312d3232 32322d33 33333301 l -1111-2222-3333. 069792 l ... <16 bytes per line>

Check and set offset BBED> d /v offset 8169 File: secure_table.bbed (4) Block: 8 Offsets: 8169 to 8191 Dba:0x01000008 ------------------------------------------------------34343434 2d313131 312d3232 32322d33 l 4444-1111-2222-3 33333301 069792 l 333.... <16 bytes per line> BBED> set offset 8169 OFFSET

8169

11

How to view and edit data on ASM using BBED Marcin Przepiorowski – [email protected]

Change of data BBED> m /c 0000 Warning: contents of previous BIFILE will be lost. Proceed? (Y/N) y File: secure_table.bbed (4) Block: 8 Offsets: 8169 to 8191 Dba:0x01000008 -----------------------------------------------------------------------30303030 2d313131 312d3232 32322d33 33333301 069792 <32 bytes per line>

Last check like it look after change BBED> d /v offset 8169 File: secure_table.bbed (4) Block: 8 Offsets: 8169 to 8191 Dba:0x01000008 ------------------------------------------------------30303030 2d313131 312d3232 32322d33 l 0000-1111-2222-3 33333301 069792 l 333.... <16 bytes per line>

OK so I can generate a new block check sum BBED> sum Check value for File 4, Block 8: current = 0x0c2b, required = 0x0c2b BBED> sum apply Check value for File 4, Block 8: current = 0x0c2b, required = 0x0c2b BBED> exit

Now a last part – I have to copy that block back. Just to make you aware database can blow up with ORA-00600 during that operation. I don’t need copy back all tables block but only one which I have changed. I need to generate a file with my block. It was block number 8 (set dba 4,8) so last block allocated to that table. dd if=secure_table.bbed of=myblock bs=8k skip=7 count=1

First block table was 348681 and I need to add 7 to point dd exactly to last table block dd if=/oracle/app/product/11.1.0/db_1/bin/myblock of=/dev/VGora/tabaza bs=8k count=1 seek=348688

12

How to view and edit data on ASM using BBED Marcin Przepiorowski – [email protected]

Uff database is still working. Final check [oracle@piorovm bin]$ sqlplus / as sysdba SQL*Plus: Release 11.1.0.7.0 - Production on Fri Jun 19 15:46:55 2009 Copyright (c) 1982, 2008, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - Production With the Partitioning, Oracle Label Security, OLAP, Data Mining, Oracle Database Vault and Real Application Testing options SQL> connect pioro/pioro Connected. SQL> set linesize 200 SQL> select * from secret_table; ID NAME CARDNUM ---------- --------------------------------------------------------------------------------------------------- -------------------1 Marcin Przepiorowski 0000-1111-2222-3333 2 Jim Smith 4444-2222-3333-5555 SQL>

If I have compared it to first result of my query I can see that CARDNUM has been changed from 4444-1111-2222-3333 into 0000-1111-2222-3333 SQL> select id, name, cardnum from pioro.secret_table; ID NAME CARDNUM ---------- --------------------------------------------------------------------------------------------------- -------------------1 Marcin Przepiorowski 4444-1111-2222-3333 2 Jim Smith 4444-2222-3333-5555 SQL>

There is no entries about that activities in redo logs, audit table, undo tablespace – nowhere.

13

How to view and edit data on ASM using BBED Marcin Przepiorowski – [email protected]

Final comment If you are working as DBA always remember that people who have access to files, block devices or any storage where tour DB exist can be potential intruder and can change a data without authorization.

Bibliography All my work was based on these excellent papers, blogs and presentations: -

Graham Thornton – Disassembling the Oracle Data Block – September 2005

-

Luca Canali, CERN IT - A Closer Look inside Oracle ASM – UKOUG Conference 2007

-

Miladin Modrakovic blog

14

How to view and edit data on ASM using BBED

Jun 18, 2009 - Data access . ... An idea of that article comes to my mind when I recall that Oracle has been shipped with a Binary. Block Editor which is an ..... I will change a first 4 digits of credit card number from 4444 to 0000. BBED> d /v.

305KB Sizes 0 Downloads 217 Views

Recommend Documents

How to Edit your Personal Settings on Bb.pdf
There was a problem previewing this document. Retrying... Download. Connect more apps... Try one of the apps below to open or edit this item. How to Edit your ...

File Edit View Tools Help -
9 Cisco WebEx Meetings Cisco WebEx LLC 6/21/2012. Q Citrix Receiver Citrix Systems, Inc. 6/14/2012. E Comfort On-Screen Keyboard Pro 5.1.4.0 Comfort ...

Create, View, and Edit Google Docs Offline with the Chrome ...
Create, View, and Edit Google Docs Offline with the Chrome Browser. You must be ​online ​to complete these steps to enable offline access. This will allow ...

HOW TO VIEW AND ADJUST TRANSIT.pdf
HOW TO VIEW AND ADJUST TRANSIT.pdf. HOW TO VIEW AND ADJUST TRANSIT.pdf. Open. Extract. Open with. Sign In. Main menu. Displaying HOW TO ...

A Note on Heterogeneity and Aggregation Using Data ...
Abstract: Using data from Indonesia, I show that both household- and ... (i) the Pareto being more appropriate than the exponential distribution for Yiv and Riv, ...

How Google is using Linked Data Today and ... - Semantic Scholar
3 DERI, NUI Galway IDA Business Park, Lower Dangan Galway, Ireland, ... The Web is the seminal part of the Application Layer of network architectures. Two major trends are currently ... the Social Web (also called Web 2.0). The Web of Data ...

ASM Handout.pdf
Page 1 of 3. UNLV Writing Center. American Society of Microbiology (ASM). Format Guidelines. Created for UNLV Writing Center by Sotodeh Ebrahimi, 2017. Adapted from: http://aem.asm.org/site/misc/journal-ita_org.xhtml. For more handouts visit writingc

406< Download Edit Your Digital PhotosFree / Edit and ...
Learn How To Use Adobe Photoshop To Quickly And Easily Edit Your Digital Photos Like The Professionals. Related Content: ... For beginners Part 2 (Shakira).

MJ no more: Using Concurrent Wikipedia Edit ... - Semantic Scholar
ABSTRACT. We have developed an application called Wikipedia Live. Monitor that monitors article edits on different language versions of Wikipedia—as they ...

ASM Proceedings.pdf
Luke Cashen, Nicholls State University. UNDERSTANDING ... William B. Edgar, Missouri State University. Chris A. ... Page 3 of 40. ASM Proceedings.pdf.

Using Naming Authority to Rank Data and Ontologies ...
Domain variety: the web contains data about many topics (e.g., from social networks to protein pathways to .... syntax, and exploit naming mechanisms such as the domain name system. Consider Dan's ... at a TLD registrar. PLDs may be one ...

Using Mathematics and Statistics to Understand Data ...
The Most Useful Techniques for Analyzing Sports Data One of the greatest ... the use of mathematical methods to analyze performances, recognize trends and.

Molecular techniques to interrogate and edit the ...
Feb 19, 2015 - under development, and the CRISPR/Cas9 system ...... assist in developing this organism for advanced biotechno- ... IOS-1359682 to MCJ.

Molecular techniques to interrogate and edit the ... - Wiley Online Library
19 Feb 2015 - and microRNAs (miRNAs) (Molnár et al., 2007; Zhao et al.,. 2007), that ..... sas-Mollano et al., 2008) and as a global transcriptional .... 2008). A YFP gene optimized for expression in mammalian cells has been successfully visualized

USING BIG DATA TO IDENTIFY, PREDICT AND ... - Automotive Digest
many businesses and industries – and fleet management ... of things to identify patterns, trends, and associations. ... 2016 report by McKinsey & Company, while.

Edit (Solution manual) Introduction to chemical engineering ...
Edit (Solution manual) Introduction to chemical engine ... thermodynamics - 7th ed - Smith, Van Ness & Abbot.pdf. Edit (Solution manual) Introduction to chemical engine ... thermodynamics - 7th ed - Smith, Van Ness & Abbot.pdf. Open. Extract. Open wi

to view press release
Aug 11, 2017 - “Company”), a diversified owner of ocean going cargo vessels, announces ... September October and December of 2017; and (viii) 6 offshore support vessels, ... Forward-looking statements reflect the Company's current views ...