High Five POUG: Polish Oracle User Group Conference?

I’ve just returned from presenting at the 2nd annual POUG Conference, this time in Krakow, Poland (the first was in Warsaw). This is the Polish Pint with Oracle User Group conference and is exactly what a conference should be. Educational, Informative, Well-executed and Fun.  It was based in a lovely city, with a wonderful friendly people, good food and great beer!

The Speakers gift was very thoughtful - a personalised t-shirt which my wife has declared too good to wear!

As you might imagine, with a name like Pint with Oracle User Group, there is beer to be drank. But in this case it was as available as the tea and coffee – and completely free! Several hundreds of litres of it were consumed over the course of the 2 day conference, a tiny little bit of it by me. I suppose this is the side effect of having a conference in a micro-brewery. Talk about organization skills!

IMG_1606

Brewery and Conference Location!

There were around 30 speakers giving talks, many of them well-known Oracle ACEs of various hues but a couple of first-timers who were excellent too.  It also reminds me that you don’t need to be an expert to speak at conference. You don’t need to know the n-th level of detail like Jonathan Lewis. You just need a story to tell about something you did that was interesting! I assume we’re all doing something interesting in our jobs from time to time? If you are not, you might want to try to find a job with interesting things to do, then talk about them!

One unique thing was being walked onto stage to a thumping good tune (I picked Human, by Rag’n’Bone Man) by an anthropomorphisation of the POUG Logo – basically a IMG_1571young ‘Oracle’ dressed like Obi-Wan Kenobi. They were also there to help out the delegates and speakers with any queries or problems they may have. Usefully they were all current or recently completed students on their way to being a doctors, vetenarians or structural engineers. High quality help indeed!

Many thanks to Kamil, Luiza and everyone else at POUG for a wonderful conference to remember.

IMG_1536I was debuting a new conference talk about Histograms. The talk went well, I think, but there are a couple of tiny kinks to iron out for the next time I present it – in Slovenia and Croatia – next month. Best remove the POUG-specific slides too, right Adam!

 

 

 

 

 

 

 

oh, and the talk of the Conference was…Martin Widlake, with a gigantic beer!

IMG_1610

Martin Widlake giving a rather good talk about the parallels (and perils) of Beer and Development

 

 

UKOUG RAC SIG, September 27th

There’s a UKOUG RAC SIG on the 27th of September in London.

There a range of great speakers talking about topics from the new RAC Domain Clusters, 12.2 Upgrading, Patching Exadata, and much more.

It’ll be great, it’s true! See you there…

Appearances 2017

and wp

I’ve not written a post in a while. I’ve been a bit busy organizing several UKOUG events, including several Special Interest Groups 1-day events and Tech17 (and doing paid work for clients!)

I have been accepted to speak at a number of conferences over the next couple of months so I though I would share that with you and hope you’ll be there to learn, share, network and enjoy the conferences.

Events

1st-2nd September 2017. POUG (Pint with Oracle User Group) Krakow, Poland

27th September 2017. UKOUG RAC Cloud Infrastructure and Availability SIG. London, UK
(note: I’m not speaking at the SIG, just the Chairperson)

16th-18th October 2017. SiOUG. Portorož, Slovenija

18th-20th October 2017. HrOUG. Rovinj, Croatia

21st-24th November 2017. DOAG. Nuremberg, Germany

3rd-6th December 2017. UKOUG Tech17, Birmingham, UK.

Previous Appearances 2017

23rd Feb 2017. UKOUG RAC & Database joint SIG. London, UK

23rd-24th March 2017. UKOUG Ireland Conference. Dublin, Ireland

27th April 2017. UKOUG Northern Technical SIG. Manchester, UK (Chair Only)

8th June 2017 UKOUG RAC & DAtabase joint SIG. Reading, UK (Chair Only)

Online Index Rebuild Problem in 12C

When building an index in Oracle Enterprise edition using the keyword “ONLINE”, if the index build fails for whatever reason a messy set of extents can get left behind.

In Oracle 12.1 there’s a new job to help with this: “SYS”.”CLEANUP_ONLINE_IND_BUILD” which ticks away, undocumented, in the background cleaning up “rogue” extents once an hour, every hour (start time based upon job creation time)However, if I run a CREATE INDEX … ONLINE command on a table and the index creation happens to coincide with the invocation of the cleanup job I get the following error in my alert log

ADR Home = /u01/app/oracle/diag/rdbms/orcl/orcl1:
*************************************************************************
2017-05-12 05:28:37.191123 -04:00
Errors in file /u01/app/oracle/diag/rdbms/orcl/orcl1/trace/orcl1_j000_12235.trc:
ORA-12012: error on auto execute of job "SYS"."CLEANUP_ONLINE_IND_BUILD"
ORA-00054: resource busy and acquire with NOWAIT specified or timeout expired
ORA-06512: at "SYS.DBMS_PDB", line 76
ORA-06512: at line 4

Oh no! The job has failed to clean up the extents that I was currently using. Phew!

The CREATE INDEX … ONLINE command completed with success a few minutes later.

A few minutes after that, an update statement failed with:

ORA-08102 index key not found for obj# 107102 file 16 block 1171234

Yes, I have a corrupt index! index_fadeMy assumption is that the cleanup job had removed all of the extents which had been allocated before the cleanup job started. The index create statement did not notice as the current extent removal attempt blocked (hence the job error) and future to-be created extents were not affected. However, most of the index had been “cleaned up”. #sadface

Solution: re-create the index and make sure the index creation is complete before your hourly job kicks in. Better still, disable the undocumented hourly job… make sure get the full backing of an Oracle Support SR first!

Next Step: Raise SR with Oracle about this!

 

UKOUG Tech17 Call For Papers!

The UK OracleUser Group has opened its Call For Papers for our flagship conference.

tech17We are looking for presenters across all Oracle technologies – and non-Oracle Open Source tech too! Showcase your skills in front of a thousand technologists of all skill levels and experience.

Do you have a story? Yes, you do. Submit an abstract here! You don’t need to be explaining the deep dark internals of an obscure part of Oracle nobody else has ever seen. Just tell us what you are doing. That’s cool, and that’s what we care about (although if you do have a talks about deep dark internals, we’ll have that too)

two_cakes

Image originally tweeted by @fictionaIs

But I’m not Original?

That’s not how delegates see it. That’s not how I see it and that’s how the selection committees see it.

You can be so the (wo)man, and own the conference! Two cakes? Yes please!

We have over 250 speaker slots available over the course of 3.5 days. We want new speakers, we want old speakers (which is lucky), we want everyone!

Whether you speak or not, the combination of awesome agenda a social interaction makes it the best all-round Oracle conference in the world. See you there!

GoldenGate unsupported types

identity
When using GoldenGate there are few rules which need to be followed, and a very small number of unsupported datatypes. This is the excerpt from the GoldenGate 12.2 manual:

 

 

1.6.10 Non-Supported Oracle Data Types
Oracle GoldenGate does not support the following data types.

 ANYDATA fetch-based column support for data types with VARRAYS that do not include named collections and VARRAYS embedded within those data types
 ANYDATASET
 ANYTYPE
 BFILE
 MLSLABEL
 ORDDICOM
 REFs
 TIMEZONE_ABBR
 URITYPE
 UDT with containing an unsupported Oracle Data Type
 Oracle GoldenGate does not support replication of identity column data or Valid Time Temporal column data.

One of those may be more common that you think – the last bullet point is the Oracle 12C datatype IDENTITY. The following code snippet is not supported for replication by GoldenGate

create table with_identity
( COL_ID    number(38) generated always as identity minvalue 1 not null enable,
  text_info varchar2(10),
  constraint with_identity_pk  primary key (COL_ID) );

insert into with_identity (text_info) values ('Row 1');

commit;

desc with_identity
 Name                          Null?    Type
 ----------------------------- -------- --------------------
 COL_ID                        NOT NULL NUMBER(38)
 TEXT_INFO                              VARCHAR2(10)

You can see that it is an identity column in user_tab_columns:

select TABLE_NAME,COLUMN_NAME,IDENTITY_COLUMN from user_tab_columns where table_name = 'WITH_IDENTITY';

TABLE_NAME                     COLUMN_NAME                    IDE
------------------------------ ------------------------------ ---
WITH_IDENTITY                  COL_ID                         YES
WITH_IDENTITY                  TEXT_INFO                      NO

So, how does GoldenGate alert you to the fact that it will not be replicating this table with an unsupported type? It doesn’t.

look in ggserr.log – nothing
look in the extract report file for wildcard matching the table – nothing

With a table containing an unsupported data type, the lack of replication is silent because GoldenGate is completely ignoring the object. Completely Silently.

So, how could I have picked this up before it became a problem?

Obviously I need to run the script in MOS article 1296168.1, which analyzes your schema for GoldenGate compatiblity. Unfortunately, Oracle have not updated this to account for IDENTITY columns, so there is no indication that it does not work!

The script to run is the GoldenGate Integrated Extract Healthcheck script, found in MOS article 1448324.1

Finally some vague and unclear indication that we may have a problem. Part way through the report we get this:

++ TABLES SUPPORT BY GOLDENGATE Integrated Capture ++
Lists tables that can not be supported by OGG (NONE)
Lists table that are supported via OGG FETCH (ID KEY)

Owner           OBJECT_NAME             SUPPOR  Container ID
C##GOLDENGATE 	AQ$_OGG$Q_TAB_E_HR_C 	NONE 	1
C##GOLDENGATE 	AQ$_OGG$Q_TAB_E_HR_D 	NONE 	1
C##GOLDENGATE 	OGG$Q_TAB_E_HR 	        NONE 	1
HR              WITH_IDENTITY         ID KEY     3
IX 	        AQ$_ORDERS_QUEUETABLE_G NONE 	3

Wow.
Always take care with GoldenGate – it’s not just a plug-in solution. You need to think about the implementaiton and work with the application to get the best outcomes.

Getting Started with GoldenGate

gettingstartedwithgoldengateNot a blog post per-se, but a link to my article in the UKOUG quarterly magazine OracleScene. It is a great publication with some simply fantastic articles. Its completely free, and is available online as well as in print at Oracle offices in the UK and at UKOUG events. My article will take you through a simple step-by-step Oracle centric one way replication on VM Virtual Box. From nothing to fully working replication. Sexy! Hope you enjoy it.

%d bloggers like this: