How many times have you had maintenance or a release complete and everyone is sure that everything’s been put back the way it should have been, all t’s crossed, all i’s dotted and then you release it to the customers only to find out that NOPE, something was forgotten in the moving parts of technology? As the Database Administrator, you can do a bit of CYA and not be (more...)
This note is about a little detail I hadn’t noticed about the merge command until a question came up on the OTN database forum a few days ago. The question was about the impact of the clustering_factor on the optimizer’s choice of execution plan – but the example supplied in the question displayed an oddity I couldn’t explain. Here’s the code and execution plan as originally supplied:
MERGE INTO gtt_ord t1 USING X t2 ON (more...)
I attended the BGOUG Spring Conference last week as a speaker. While in BGOUG Conference, I had a chance to listen Kamil Stawiarski’s session about hacking Oracle. Kamil spoke about potential security issues of high level privileges such as create any index and create directory. At the end of the session, he also showed a tool written by himself. The tool (I do not remember its name right now), reads a datafile, searches for object (more...)
Here is a list of download options for APR2016 (22.214.171.124.160419) PSU.
OJVM PSU (Linux/Unix) 22674697 Combo OJVM + DB PSU 22738777 Combo OJVM + DB SPU 22738732 Combo OJVM + GI PSU 22738793
That’s not enough and there should be more (sarcasm).
FYI: GI PSU includes DB and DB PSU does not include GI.
There is a thread from MOS – OJVM PSU and RAC: What happened to high availability? and I (more...)
I hit this issue by accident, developers wanted to disable inserts to child table so they could perform some one-time maintenance operation, and this maintenance only affected one rown from the parent table (and all it’s children). I started wondering if there is any smaller level impact solution possible than taking a shared read lock on child table.
Database version: 126.96.36.199, but the same behaviour was also present in 11.2.0. (more...)
- Bring your own licenses for a self managed Oracle installation on an EC2 instance
- Bring your own licenses for an Oracle Relational Databases Service instance
- Use pay as you go licensing for an Oracle Relational Database Service instance
I occasionally get questions from customers and colleagues about performance expectations for the Oracle Database procedure called calibrate_io on XtremIO storage. This procedure must be executed in order to update the data dictionary. I assert, however, that it shouldn’t be used to measure platform suitability for Oracle Database physical I/O. The main reason I say this is because calibrate_io is a black box, as it were.
The procedure is, indeed, documented so it can’t (more...)
I know Werner DeGruyter will like the title of this post, so here’s a post dedicated to him as my last week at Oracle is off to a busy start….
As I attempt to wrap up any open tasks at Oracle, I’m still Training Days 2017 Conference Director for RMOUG, have a planning meeting for the 800 member Girl Geek Dinner Boulder/Denver Meetup group that I’m the owner of, (more...)
If you’re reading this post, you most likely are trying to run the Oracle Database 11g or 12c
runInstaller program, and it’s failing a critical dependency check and displaying an error like the one below. If so, choose
n because if you choose
y it won’t launch the Oracle Installer.
Starting Oracle Universal Installer... Checking Temp space: must be greater than 500 MB. Actual 30824 MB Passed Checking swap space: must be greater than (more...)
Oracle NoSQL Database uses Major and Minor key values to influence record co-location. Records are stored based on the hash of the major key, so all of the records with the same major key will be co-located on the same server.
A JSON document could be divided into sub-parts, with each sub-part having a different minor key. For example, customer meta data could be stored in the main customer record, transactions in a different record, (more...)
A few years ago, I taught an online class in Oracle database administration for the University of Washington. Every student was given their own virtual machine for the duration of the class, courtesy of Amazon. It was ridiculously simple to clone, start, stop, and destroy virtual machines using the Amazon CLI (command line interface). All students had full SSH and SQL*Net access to their virtual machines in the Amazon cloud. At that time, Oracle had (more...)
In a previous article called ‘memory allocation on startup’ I touched on the subject of NUMA; Non Uniform Memory Access. This article is about how to configure NUMA, how to look into NUMA usage and a real life case of NUMA optimisation using in-memory parallel execution.
At this point in time (start of the summer of 2016) we see that the CPU speed competition has stagnated and settled at somewhere below maximally 4 gigahertz, and (more...)
Previous work and motivations
Tools for dynamic tracing are very useful for troubleshooting and internals investigations of Oracle workloads. Dynamic tracing probes on the OS/kernel, can be used to measure the details for I/O latency for example. Moreover probes on the Oracle (more...)
In my last post I wrote down some notes about my experience while experimenting with the ZFSSA simulator. A simulator is a great way to get familiar with the user interface and general usability of a product. What I wanted to find out using the ZFSSA simulator was the answer to the question: “what happens to a clone of a database when I roll the master copy forward?”
In the first part of the (more...)
Installing any Oracle database is tedious, but the installing the pre-requisites can be tedious. This post tries to simplify the process by creating a single
prereq.sh file for all the pre-requisite libraries. The file should contain the following:
yum install -y binutils \ compat-libstdc++-33 \ compat-libstdc++-33.i686 \ gcc \ gcc-c++ \ glibc \ glibc.i686 \ glibc-devel \ glibc-devel.i686 \ ksh \ libgcc \ libgcc.i686 \ libstdc++ \ libstdc++. (more...)
I have 12c setup on OEL 6.7 on my VM and while trying to access EM express, I was receiving the error
Just for the notes, a user can log into EM Express using URL
and port details can be found using
lsnrctl status | grep HTTP or select dbms_xdb_config.getHttpsPort() from dual;
Clicking on the “Get Flash” takes you to abode flash page from where you can download the rpm for flash.
Oracle 12c Unified Auditing is a brand new feature in the latest Oracle version which consolidates database level auditing records into a single location. DBAs can access the audit information from the view UNIFIED_AUDIT_TRAIL for all kind audit records, and they are
SQL> select distinct COMPONENT from all_unified_audit_actions; COMPONENT ---------------------------------------------------------------- Direct path API RMAN_AUDIT Database Vault XS Label Security Datapump Standard FineGrainedAudit 8 rows selected.
UNIFIED_AUDIT_TRAIL is a view owned by SYS and a public (more...)
This post shows you how to add the menu option and GUI to set users and groups. It’s quite a bit easier than mastering all the command-line syntax. It makes setting up the required user and group accounts for an Oracle Enterprise or MySQL database solution much easier.
You add the utility by calling the yum (Yellowdog Updater, Modified) utility like this:
yum installed -y system-config_users
You should see the following:
Loaded plugins: langpacks Usage: (more...)