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).