ODBV3 – more comfortable usage


17.09.2018
by Kamil Stawiarski

It has been crazy few months – organizing POUG2018 took a lot of energy but it was satisfying as hell! 😀

This weekend I had some time to prepare a new version of ODBV for Trivadis Performance Days 2018 where I’ll be talking about the internals of database block storage.

The series of articles about ODBV can be found here: https://blog.ora-600.pl/?s=odbv&submit=

I decided to write a new version of ODBV for 3 reasons:

  • I wanted to give you a tool, that you can use as a binary – without a necessity to compile or install anything on your system
  • I thought that it will be a nice option to add recognition of chained and migrated rows.
  • I wanted to learn a new language – GO – and what is better to learn a new language then rewriting your tool and adding some new features 😉

Source code for the tool, binary version for Linux x86_64 and previous versions can be found here: https://github.com/ora600pl/odbv

If you want to compile this tool on your system, you have to install GoLang – instructions can be found in here: https://golang.org/doc/install

Next steps:

[oracle@skiper ~]$ go get github.com/fatih/color
[oracle@skiper ~]$ go get github.com/ora600pl/odbv
package github.com/ora600pl/odbv: C++ source files not allowed when not using cgo or SWIG: odbv.cpp
[oracle@skiper ~]$ go get gopkg.in/goracle.v2
[oracle@skiper odbv]$ go build odbv3.go
[oracle@skiper odbv]$ ./odbv3
THIS TOOL IS NOT FOR PRODUCTION USE!!! Only for fun and learn ;)
created by Kamil Stawiarski (@ora600pl kstawiarski@ora-600.pl ora-600.pl)

./odbv3 -f path_to_a_data_file -b block_size -c user/password@host:port/service

Of course, you can just download binary version and use it after setting oracle ENV.

[oracle@mysikura ~]$ wget https://github.com/ora600pl/odbv/raw/master/odbv3.x86_64_OEL7
--2018-09-17 13:38:27--  https://github.com/ora600pl/odbv/raw/master/odbv3.x86_64_OEL7
Translacja github.com (github.com)... 192.30.253.112, 192.30.253.113
Łączenie się z github.com (github.com)|192.30.253.112|:443... połączono.
Żądanie HTTP wysłano, oczekiwanie na odpowiedź... 302 Found
Lokalizacja: https://raw.githubusercontent.com/ora600pl/odbv/master/odbv3.x86_64_OEL7 [podążanie]
--2018-09-17 13:38:28--  https://raw.githubusercontent.com/ora600pl/odbv/master/odbv3.x86_64_OEL7
Translacja raw.githubusercontent.com (raw.githubusercontent.com)... 151.101.12.133
Łączenie się z raw.githubusercontent.com (raw.githubusercontent.com)|151.101.12.133|:443... połączono.
Żądanie HTTP wysłano, oczekiwanie na odpowiedź... 200 OK
Długość: 3500216 (3,3M) [application/octet-stream]
Zapis do: `odbv3.x86_64_OEL7'

100%[=============================================================================================>] 3.500.216   3,42MB/s   w  1,0s

2018-09-17 13:38:30 (3,42 MB/s) - zapisano `odbv3.x86_64_OEL7' [3500216/3500216]
[oracle@mysikura ~]$ . rokoko.env
[oracle@mysikura ~]$ chmod +x odbv3.x86_64_OEL7
[oracle@mysikura ~]$ ./odbv3.x86_64_OEL7
THIS TOOL IS NOT FOR PRODUCTION USE!!! Only for fun and learn ;)
created by Kamil Stawiarski (@ora600pl kstawiarski@ora-600.pl ora-600.pl)

./odbv3 -f path_to_a_data_file -b block_size -c user/password@host:port/service

And here you can see the sample usage:

Next step: adding support for ASM.
Have fun! 🙂

P.S.
If you haven’t heard it yet, Frits and I started a new project – you can now search for oracle database c functions (or oracle internal error first arguments) at http://orafun.info , and paste a stack trace at http://orafun.info/stack (experimental).


Contact us

Database Whisperers sp. z o. o. sp. k.
al. Jerozolimskie 200, 3rd floor, room 342
02-486 Warszawa
NIP: 5272744987
REGON:362524978
+48 508 943 051
+48 661 966 009
info@ora-600.pl

Newsletter Sign up to be updated