Month End

A question about parallel query and cardinality estimates appeared on OTN a little while ago that prompted me to write this note about helping the optimizer do the best job with the least effort.  (A critical point in the correct answer to the original question is that parallel query may lead to “unexpected” dynamic sampling, which can make a huge difference to the choice of execution plans, but that’s another matter.)

The initial (more...)

OTN Tour of Latin America 2016 : It’s a Wrap!

laotn16The OTN Tour of Latin America (Northern Leg) is now over for another year.

Each tour comes with its own set of challenges. As the tour progresses you get increasingly more tired and less able to cope with those challenges. The journey from Guatemala to Pereira broke me. It was like my adrenal glands had burnt out and there was nothing left in the tank. When I get into that state I just want to be quiet (more...)

Why Mask Data

I’ve been involved in two data masking projects in my time as a database administrator.  One was to mask and secure credit card numbers and the other was to protect personally identifiable information, (PII) for a demographics company.  I remember the pain, but it was better than what could have happened if we hadn’t protected customer data….

blowup

Times have changed and now, as part of a company that (more...)

Automatic PuTTY window title



One of the guys in the team seems to have discovered a neat trick with PuTTY that i certainly didn't know that has proven quite useful.

Normally when you ssh to a server the window title defaults to the host name you ssh'd - unless you set an explicit window name in the putty settings - this works fine and if you save all your config it all works out nicely.



However in our setup (more...)

SCAN Listener Crash After Applying July 2016 PSU

I ran in to a small issue while applying the July 2016 quarterly patch to a couple of Exadata racks last week.  The systems were running GI 12.1.0.2, previously with the January 2016 PSU.  The patches applied successfully, and we were beginning the process of running the post-patch scripts on the databases in the cluster.  This process involves manually starting the database in upgrade mode, and we saw a message in SQL*Plus that the (more...)

Edit #GoldenGate commands from GGSCI

Ever get tired of typing the same command over and over again in Oracle GoldenGate GGSCI? Well, Oracle has provided a history recall function into GGSCI, I talked about his in an earlier post. This post on history recall can be found here.

In this post, lets take the command recall and how these commands can be edited. In Oracle GoldenGate 12c, Oracle has provided an GGSCI command called “FC”. The “FC” command is used (more...)

Nested Loop Join Physical I/O Optimizations

Having done my mini-series on Nested Loop join logical I/O optimizations a while ago I unfortunately never managed to publish anything regarding the Nested Loop join physical I/O optimizations, which are certainly much more relevant to real-life performance.Therefore the main purpose of this blog post is to point you to Nikolay Savvinov's (whose blog I can recommend in general) great mini-series covering various aspects of these optimizations:Part 1Part 2Part 3Summary (more...)

How to Modify the Retention Time for Metric Data in EM13c

Some Enterprise Manager customers, complain about the high volume of data stored in OMS repository. Enterprise Manager agents collect metric data of targets they monitor, and upload these “raw” metric data to OMS. Depending on your metric collection periods and number of targets, the volume required to keep these data can be very huge. Enterprise Manager has already a mechanism to minimize the size of the Management Repository. Once a day, the previous day’s metric (more...)

OTN Tour of Latin America 2016 : Pereira, Colombia to Home

laotn16The day started quite normally. I met Debra at about 08:00 for breakfast. We had a chat, then said our goodbyes, as she was leaving a few hours before me.

The hotel kindly allowed me to check out at 14:00, so I went to the gym, then went back to my room to chill until it was time to leave. Whilst in my room I started to feel a little unwell. I had visions of (more...)

Finished Mathematics for Computer Science class

Today I finally finished the Mathematics for Computer Science class that I have worked on since December. For the last year or two I have wanted to do some general Computer Science study in my free time that is not directly related to my work. I documented a lot of this journey in an earlier blog post.

The math class is on MIT’s OpenCourseWare (OCW) web site. It was an undergraduate semester class and I spent about (more...)

Real Talk : PL/SQL and SQL as your only development skill

notes-514998_640This morning I was asked a question about the job opportunities for a PL/SQL developer these days. I’m talking about someone with good SQL and PL/SQL skills, but limited, or no, knowledge of other development languages.

I think most people know I’m a big fan of PL/SQL. If you have good SQL skills and you know PL/SQL well, you can do pretty much anything with an Oracle database, including all types of web service and web development. Throw in (more...)

To TRANDATA or To SCHEMATRANDATA? … That is the #GoldenGate questions of the day!

If you are familiar with using Oracle GoldenGate, you know that on the source side of the equation you have to enable supplemental logging and sometimes force logging on the database. I traditionally do both just to make sure that I capture as much as I can into the redo stream from the transactions on the database. For Oracle GoldenGate purposes, this is not the only thing you need to turn on to ensure all (more...)

OTN Tour of Latin America 2016 : Pereira, Colombia – Day 2

laotn16Day 2 of the ASUOC event started with a talk on licensing in Spanish. I couldn’t understand the content, but the audience seemed interested and many people queued to get a business card from the speaker at the end.

Next up was my session called “Its raining data! Oracle databases in the cloud”. There were no changes to this session, so compared to yesterday I felt a little more relaxed at the start. 🙂

After (more...)

This Autumn, I am mostly being a Conference Tart.

The first half of this year was a little quiet for me on the presenting front. I was concentrating on writing and also on organising events, as opposed to going to them, so most of my trips were for personal reasons (that means “holidays”…). I presented at the Ireland conference and a few UK user group events but that was it – quite a few European events this spring fell on dates I was not (more...)

Vagrant for you RAC test environment

Creating your own test VM environment with RAC is a fun exercise to do, however after you have rebuild your environment a couple of times this will get a very tiresome exercise and you want to start to automate your deployments. People have already written several blogposts about the GI and RDBMS orchestrations and the several tools that are available for this. Within the Oracle community Ansible seems to be a very popular choice for (more...)

Syntax formatter might change your data

I saw this on an AskTom question today answered by my colleague Chris.  Check out this simple example


SQL> create table T (
  2    x int default 1,
  3    y int default 1
  4   ,z int);

Table created.

It looks like I’ve assigned a default of “1” to both X and Y. But lets now dump out the default definition from the dictionary.


SQL>
SQL> set serverout on
SQL> declare
  2    longcol varchar2(200);
  3   (more...)

Temporary tablespace takes ages to drop

A simple command like 'DROP TABLESPACE TEMP;' in a regular database can become excessively slow.  The reason behind this is quite simple, even if the users defaults to a different temporary tablespace there could still be sessions holding temporary segments there.  It's just a matter of finding them and killing them  to free the blocks on the temporary segments and you're good to go.

The operation of dropping the temporary tablespace looks like this on (more...)

The Top 4 Ways to Handle Difficult Backup Environments

It may come as a surprise to you, but the administrators of backup, networks, and systems are essentially the backbone of the IT world.  Did you know that these heroes are responsible for some very difficult tasks?  These tasks include -but are not limited to- keeping critical business data secure and up-to-date, getting more out of existing hardware, and keeping auditors happy.  Overall, they are the ones who keep the whole sphere (more...)

ORA-00600 [2663], [12], ….

After not having spotted ORA-00600 for a while a new one showed up.

ORA-00600: internal error code, arguments: [2663], [12], [3665664941], [12], [3884717804], [], [], [], [], [], [], []


This happened out of the blue after a switchover back from a Datagurad environment.  Basically this is due to a bug, the patch is already included in 11.2.0.2.0 and 11.2.0.3.0 patch sets, but it is not enabled (more...)

Making a Hot Backup and Doing an Incomplete Recovery

This post shows how to do a hot backup followed by an incomplete recovery. I ran it on an Oracle 11.2.0.4 test database. First I checked that the database was in ARCHIVELOG mode:

SQL> select log_mode from v$database;

LOG_MODE
------------
ARCHIVELOG

SQL>


Then I decided where to copy the hot backup.

The directory listing below shows a sub-directory called backup. This contains a cold backup I made earlier in case the test (more...)