#SMARTDB
09.01.2020

The curious case of enq: TX – row lock contention

So we had a doubtful pleasure of migrating a few databases from Oracle Exadata X3-2 to Oracle Exadata X7-2 Cloud at Customer. Why doubtful? Well, this a material for a whole different story with a lot of beer – let me just say, that CC gen 1 was a bit rough around the edges 😉 […]


Read more
XE18c
27.09.2019

How to install Oracle XE 18c in Oracle Cloud Free Tier

You probably heard by now about Oracle Cloud Free Tier While it sounds good, the only databases that you can use are in fact autonomous databases (which are not interesting for a tech, geeky guy like me). Of course, you have also "2 virtual machines with 1/8 OCPU and 1 GB memory each." I thought: […]


Read more
GO
20.03.2019

Golang chatting with Oracle

Python is awesome. I like Python very much, but there are some cases where Python’s performance is just not enough. What other options do we have? Well, there’s for example GoLang Problem with GoLang is that there is not a lot on the Internet about using it with Oracle Databases. Let me show you some […]


Read more
ODBV3 & ASM
04.10.2018

ODBV3 and ASM

At Trivadis Performance Days 2018 (awesome event by the way) I promised to deliver ODBV3 with support for ASM – and here it is! 🙂 https://github.com/ora600pl/odbv To use it, you have to have access to a user at ASM level with at least SYSDBA privilege. In the connect string you don’t have to add AS […]


Read more
ODBV3
17.09.2018

ODBV3 – more comfortable usage

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 […]


Read more
SGADUMP
10.07.2018

Dumping SGA to read encrypted blocks

After my last article AMM vs security, Martin Berger wrote to me: well, even without AMM you can do it: write your own process which attaches to the same shm segments – and use its memory mapping (?) My response was that it is also possible with ASMM but AMM makes it extremely easy. And […]


Read more
AMM
18.05.2018

AMM vs security

Most of us already know that AMM sucks. But usually, we think about disadvantages of AMM in terms of performance. Let’s see why it sucks in the terms of security 😉 Let’s create an encrypted tablespace for HR.EMPLOYEES and protect HR schema with Database Vault. Contents of sqlnet.ora Now we will use dbca to configure […]


Read more
RICO2 & BBED
14.02.2018

Project RICO2 and the history of APEX upgrade that went terribly wrong.

In my last blog post I explained a XOR alghorithm that is used to count Oracle database block checksum. I also wrote, that sometimes you are facing problems, that are unresolvable without a low-level knowledge. This is the story of this kind of situation. The story of misread documentation. The story of haste and hex. […]


Read more
GDB
28.01.2018

Oracle database block checksum XOR algorithm explained

Recently I’ve started to write my own clone of BBED to have something handy and useful in extreme cases when you have to go deep and fix stuff on low level (I have only like 2 such cases a year but each time it is really fun and a nice money 😉 ) When I’ll […]


Read more
ODBV
21.12.2017

ODBVv2 – ghostdata busters

Some time ago I wrote a simple tool to learn about Oracle data block internals – ODBV. The series of articles can be found here: https://blog.ora-600.pl/?s=odbv&submit= and the github repo is here: https://github.com/ora600pl/odbv This is not a production tool but during the last session in Birmingham at UKOUG_TECH17 – where I was doing a presentation […]


Read more
STATSPACK + Python
28.10.2017

Visualize your STATSPACK reports with Python Plotly

If you work as a consultant, getting remote access to your customer is sometimes a nightmare! Even when you’ll get one, there a times when you just want to get your job done and finish this nightmare. For example, there are times when it is easier to dump a statspack repo and do offline analyzes. […]


Read more
V00D00 & APUD
02.10.2017

Direct path insert and IOTs

(Please tell me that I’m not the only one who thinks "Index Organized Table" instead of "Internet Of Things" when hearing IOT…) This post is inspired by Connor McDonald and his blog post from a year ago about direct mode operations and IOTs. You can read it here: https://connor-mcdonald.com/2016/07/04/direct-mode-operations-on-iots/amp/ While writing a redo parser for […]


Read more
VOODOO
20.09.2017

rollback internals

While researching redo log internals for V00D00 we had to face the fact, that we know shit about real transactional behavior. When I say "real", I mean – under the hood. Even with a very simple stuff like COMMIT and ROLLBACK we were constantly amazed by the internal mechanisms. Today let’s take ROLLBACK under the […]


Read more
V00D00
21.08.2017

How Oracle stores numbers internally

Before you proceed, please check out this short article written by Tanel Poder: https://blog.tanelpoder.com/2010/09/02/which-number-takes-more-space-in-an-oracle-row/ In the documentation, you can find the following explanation about the internal numeric format: Oracle stores numeric data in variable-length format. Each value is stored in scientific notation, with 1 byte used to store the exponent and up to 20 bytes […]


Read more
VOODOO
24.07.2017

When UPDATE becomes an INSERT

During a research for VOODOO, we came across a lot of interesting stuff inside REDO. One of my favourites is an UPDATE, becoming an INSERT 🙂 So let’s see what has happened – I performed the following update on a sample table: The regular dump of redo log with an UPDATE looks like this: In […]


Read more
POUG
05.07.2017

POUG voucher – contest

Contest time! I had a cool function in my database: When executed, it returned a -15% voucher for POUG conference. And POUG is a REALLY COOL confernece 🙂 Check it out: poug.org The problem is that I was cleaning my training database and dropped the function by accident. Fortunately, I have archivelogs and I wrote […]


Read more
VOODOO
28.05.2017

How to recover a dropped package from archivelogs – based on research for VOODOO engine

Sorry for long time without post, but we are writing with Marcin Rydz a new heterogenous replication product based on archivelogs and it’s consuming a looooooot of our time 🙂 Yes I know it’s nothing new on the market. There are other cool products and I know they’ll be probably be better. But we want […]


Read more
ODBV
12.03.2017

ODBV improvements

Thanks to suggestions made by Frits Hoogland, I made some improvements to the ODBV. The new version can be found here: http://ora-600.pl/oinstall/odbv.x86_64 The changes are: Recognition of first, second and third level bitmap block Recognition of pagetable segment header Block number ranges on the left side The blocks will be coloured properly to belonging segment. […]


Read more
1 2 3 4 6

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