Search

Top 60 Oracle Blogs

Recent comments

tips&tricks

Linux Containers (LXD) and Oracle 18cXE – installation

There’s a lot of articles about installing Oracle XE 18c on Docker. But Docker is not the only containerization technology on the market.

In this article, we are going to create Oracle XE 18c installation in Linux Containers (LXD)

A bit of history – LXC vs LXD

When we start our adventure with Linux Containers we might get confused by 2 different naming conventions – LXC and LXD. To clarify let’s talk about some history.

In the year 2000 FreeBSD developers introduced the jail command, which was used to isolate an application process from the main operating system space, but it was not very intuitive and functional.

When AWR is not enough, a.k.a. Why your app is not cloud-ready. #SMARTDB

In my previous post I described a case of "enq: TX – row lock contention" that was actually a network latency problem.

More and more those kinds of problems (it seems like history happens all over again) caused my friend (Radosław Kut) and me to write a simple tool to analyze SQL performance from a network perspective.

We called this tool STADO (SQL Tracefile Analyzer Designed for Oracle). It parses a tcpdump outout from application server to identify the longest running queries from application and network perspective.

For now it can show you:

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: that’s cool because I could install an Oracle XE 18c database in there and play a bit… But no. The machines will have actually 971MB of RAM which is to low for Oracle XE 18c and you will get an error while trying to install the RPM file.

"[SEVERE] Oracle Database 18c Express Edition requires a minimum of 1GB of physical
memory (RAM).  This system has 971 MB of RAM and does not meet minimum
requirements."

This is due to one piece of script in the RPM file:

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 basic steps for configuring the environment.

The first step is to install GoLang – instructions can be found in here: https://golang.org/doc/install

To connect to Oracle, you need Oracle Client (it can be Oracle Instant Client).
I will configure my environment on my MAC and use Oracle Instant Client for MAC

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! </p />
</p></div>

    	  	<div class=

ODBV3 – more comfortable usage

It has been crazy few months – organizing POUG2018 took a lot of energy but it was satisfying as hell! </p />
</p></div>

    	  	<div class=

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 this is because you can treat memory as regular binary files when operating on AMM.

Today I want to show you how dump blocks from SGA which is configured as ASMM to get into encrypted data which is also protected by Oracle Database Vault. To set up the environment I will use examples from a previous blog post.

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 </p />
</p></div>

    	  	<div class=

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.

About a year ago, I got a call from one company that did an APEX upgrade for one of their customers. Very big customer. Quite a big database and a very important one, working 24/7.

They told me that they upgraded APEX on a database with one PDB and a week later they tried to apply some patches and restarted the database. After the restart they got the following error:

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 </p />
</p></div>

    	  	<div class=