Recovering from rm -rf on a datafile

This blog posting is entirely the credit of Frits Hoogland, who pointed out to me that this was possible.

I managed to delete a datafile, that while it had been created in a completely stupid location, was very much in use. I’m sure we’ve all been there, I mean (more...)

Online patching: The Good, the Bad, and the Ugly

I’ve worked on 24×7 systems for more than a decade, and I have a real dislike of downtime. For one, it can be a real pain to agree any downtime with the business, and while RAC can and does help when you do work in a rolling fashion, there is still risk.

The promise of online patching has been a long one, and it is only recently that I dipped my toe in the water with them. Unfortunately, they are not a panacea, and in this blog posting I’m going to share some of the downsides.

Of course not all (more...)

Observing Exadata HCC compression changes when adding columns

This blog posting is very much a follow on from the previous entry on how data compressed with Exadata HCC compression behaves under changing table definitions. Many thanks to Greg Rahn for the comments on the previous blog entry on a simple mechanism for determining whether the compression level has changed or not.

In this blog posting we add a column to an HCC compressed table and we observe whether the number of blocks in the table changes or not.

As Greg stated in the comments on the previous blog entry, we have 3 possibilities for adding a column:

  1. add (more...)

Adding Columns and Exadata HCC compression

While everyone is aware of the issues of mixing EHCC compression and OLTP type activities, I had a customer who was interested in finding out what happens upon adding a column to a table that has EHCC compression enabled on it.

As I could not see any definitive statements in the documentation on this particular scenario I ran up some tests to see the behaviour.

First of all they are using partitioning by date range, so we create a partitioned table:

SQL: db01> create table t_part  ( 
username varchar2(30), 
user_id  number, 
created date ) 
partition by range (created) 
( partition  (more...)

Creating ASM diskgroups on Exadata with ASMCA

I recently had the chance to create some diskgroups on an Exadata box outside the standard installation procedure, while this is not necessarily Exadata specific, I thought the technique of using ASMCA silently on the command line to create the diskgroups was sufficiently novel for a short blog posting. If for nothing else but to remind myself on how to do this in future.

This example uses the disks presented from a quarter rack exadata system and creates a diskgroup called DATA01:

asmca -silent -createDiskGroup -diskGroupName 'DATA01' -diskList o/192.168.10.14/DATA01_CD_00_cel01,o/192.168.10.14/DATA01_CD_01_cel01,
o/192.168.10.14/DATA01_CD_02_cel01,o/192.168. (more...)

UKOUG Exa Day

Had a great day at the UKOUG Exa.. Day yesterday. I was happy by and large with how my presentation went, it was a bit irritating having some technical issues with laptops and projectors, but hopefully the audience was entertained enough to not let that have annoyed them too much. I’ve included a link to the powerpoint of the presentation, you really need to read the notes to gain an understanding of what I was trying to say!

Apologies that it is a near 7MB download, but I’d be happy to answer any questions you may have on it, (more...)

Exadata Smart Flash Logging

With the 11.2.2.4.0 release of the Exadata storage server software (and providing you are at least at 11.2.0.2 BP11), you will have the opportunity to utilise Exadata Smart Flash Logging. I thought I’d take a look at how much (if any) improvement this feature would provide to a busy production environment.

Have a look at this blog entry on Exadata Smart Flash Loggin by Luis Moreno Campos for an introduction on how it works. Basically you now issue two writes, 1 to flash 1 to your disk based redo logs, fastest write is (more...)

Exadata Flash Storage

Exadata flash storage is provided by the Sun Flash Accelerator F20 PCIe card shown above. Four of these cards are installed in every Exadata storage cell. There is a Documentation set available to peruse.

First, we can see these devices using lspci:

[root@cel01 ~]# lsscsi |grep  MARVELL 
[8:0:0:0]    disk    ATA      MARVELL SD88SA02 D20Y  /dev/sdn 
[8:0:1:0]    disk    ATA      MARVELL SD88SA02 D20Y  /dev/sdo 
[8:0:2:0]    disk    ATA      MARVELL SD88SA02 D20Y  /dev/sdp 
[8:0:3:0]    disk    ATA      MARVELL SD88SA02 D20Y  /dev/sdq 
[9:0:0:0]    disk    ATA      MARVELL SD88SA02 D20Y  /dev/sdr 
[9:0:1:0]    disk    ATA      MARVELL SD88SA02 D20Y  /dev/sds 
[9:0:2:0]    disk    ATA      MARVELL SD88SA02 D20Y  /dev/sdt 
[9:0:3:0]    disk    ATA      MARVELL  (more...)

Exadata Batteries

Andy Colvin has a good post highlighting the importance of making sure your batteries are operating with enough charge to ensure that the drive policy is in writeback as opposed to writethrough.

I just wanted to add a small addendum to that posting. I have seen severe issues with the MegaRaid controller going into writethrough mode. It is particularly crucial on the compute nodes. Under some circumstances it can lead to the drives on the compute node suffering disk corruption. I have felt the pain of this leading to a so called Bare Metal Restore of the affected node.

I’ve (more...)

Kfed and Exadata ASM disks

I’ve written in the past on the usefulness of kfed. As Martin Berger requested seeing some output from kfed with Exadata disks I thought I would oblige.

So What is kfed

kfed is the so called Kernel Files Editor, Miladin Modrakovic has written quite nicely about this. It can be used to read and modify ASM disk headers. The ASM Support guy, Bane Radulović also has a nice write up.

Before you can run kfed you need to have disk to point it to, and this is where it gets interesting on Exadata as compared to traditional, say Fibre Channel (more...)