Riga Dev Days 2018

rigaLast week I spent some time in Riga, Latvia. It was unusually warm, much to the consternation of the locals who wanted it to return to more normal sub-20C instead of the current 27C. Riga is a long way North.

It is also beautiful, friendly, and hosts a great conference! RigaDevDays is a Development conference, talking about Architecture, programming paradigms and also databases (which is usually where I fit in). img_4003-e1528018968617.jpgI was speaking about Oracle Optimization. I particularly enjoyed watching presentations about technology where I have little or out-of-date knowledge – it can really open up new thought processes, but it also tends to show that there’s nothing really new and nothing that somebody else has not tried before. It’s also good to see technology trends, see how our industry is evolving.

Attending conferences is a fabulous way to be educated, with awesome levels of expert knowledge on-tap. As well as learning new things, you can discuss how to resolve your problems and get fresh ideas about the best way to solve your business dilemmas.


Here’s a few photo’s from Riga! Attend a conference, learn from each other – it’s great!

This slideshow requires JavaScript.

 

UKOUG Call For Papers: Tech18, Apps18 and JDE18

The call for papers for Tech18, Apps18 and JDE18 is now open until Monday 4th June at 09:00. You have until then to submit an abstract for whatever you would like to talk about!

tech18-com-v2

What would you like to talk about? You’re telling me you have nothing? I don’t believe you. Everybody has a story to tell. Your work has value an your experiences and wisdom will help others avoid your mistakes and follow your successes.

apps18-com600x220-v1

Telling others about your experiences will help your career and enhance your knowledge – the only time I learn more then preparing a talk is when it’s all broken (after which I usually do a presentation about why it was a problem, how we fixed it and what we have done to prevent it happening all over again!)

jde18-com-600x220-v1

And don’t forget, you only need to submit an abstract today – a couple of paragraphs describing the presentation. You only have to actually write the talk if it gets accepted! 🙂

Yes, I know you’re a bit nervous, standing up in front of people. So am I. That’s normal. Don’t worry! We are here to help. First time speaker? Got a talk accepted and would like some help? I can put you in contact with an experienced speaker to provide some guidance and reassurance. You can do it! What are you waiting for?

Running RAC in a Virtual Environment

I was in a discussion at an Oracle Meetup this week, and the subject of RAC in a virtualized environment – specifically Oracle Virtual Machine (OVM) – came up.
Here’s a couple of points which were discussed.

pingtarget

There was a lack of awareness of a common problem, which has a solution built-in to Oracle 12.1.0.2 Grid Infrastructure and later. In a virtualized environment, the network components are also virtualized. Sometimes, network failures on the host may not be raised up to the guests. As a result, the guest O/S commands can fail to detect the network failures and the Virtual NIC remains up. Grid Infrastructure (GI) will not perform a VIP fail-over as it can’t see the failure despite the network being unavailable.

To resolve this, Oracle has added an option of a “pingtarget” for each public network defined in GI. This will perform a keep-alive to a external device, usually something like the default gateway. This is just like the heartbeat on the cluster interconnect.

Before

srvctl config network

Network 1 exists

Subnet IPv4: 192.168.0.160/255.255.255.224/eth1, static
Subnet IPv6:
Ping Targets:
Network is enabled
Network is individually enabled on nodes:
Network is individually disabled on nodes:

The default gateway makes a good ping target. For this IP and subnet, it’s 192.168.0.161

srvctl modify network -k 1 -pingtarget 192.168.0.161

After

srvctl config network

Network 1 exists

Subnet IPv4: 192.168.0.160/255.255.255.224/eth1, static
Subnet IPv6:
Ping Targets: 192.168.0.161
Network is enabled
Network is individually enabled on nodes:
Network is individually disabled on nodes:

All safe!

Server Pools

A second item we discussed was the Server Pools in OVM. Each RAC guest should be on a different host, otherwise you have not eliminated that as a Single Point Of Failure. A second less obvious SPOF is the Server Pool disk.

A Server Pool is a filesystem LUN (and IP address prior to release 3.4) used to group a logical collection of servers with similar CPU models, within which we can create and migrate VM guests. For a RAC installation, each RAC node should be within a different server pool, as well as on different physical hardware.

ovs

In this image, RAC nodes within the same cluster should be created within each server pool. This configuration can safely support a 2 node cluster despite having 4 servers, with one node created in “OVS-Pool-2” on server “ovs02“. The second node should be in “OVS-Pool-1″ and can be on “ovs01“, “ovs11” or “ovs12“.

It is possible to live migrate guests between these 3 servers.

 

 

 

 

 

UKOUG Technology Day

northerntech17-com-600x110-rn-v2

We have organized a UKOUG Technology Summit in Leeds on 16th May.

It’s really a small Conference!

This is available to UKOUG Members and will cost 1 SIG Pass – even Bronze memberships come with 1 SIG pass, so all members could attend at no cost.
Non-members can pay to attend, but you should take out a Bronze Membership instead as it’s about the same price!

Come along, network with your peers, and listen to some amazing talks about all aspects of the Oracle technology product set; the Database, RAC, Engineered Systems, Development, Apex, DevOps, Solaris 11.4!, and more. Learn how Oracle interacts and works with Kubernetes, Docker, Apache Kafka, Apache Impala, Chatbots, and  just about everything else! 30 amazing talks!

Plus a keynote address from Oracle Executive John Abel and a social afterwards too!

All that, just 2 hours from London on the train!

You can find the Agenda here 

northerntech17-agenda

 

 

UKOUG Member Advocate: sorted!

I received an email from the UKOUG last week.

winners-picture

 

It turns out that I have won the vote to become the next Member Advocate for the UKOUG. I will (eventually) be joined on the board by Martin Widlake – who won the vote for the position of President Elect – a position whereby Martin will shadow the current UKOUG President before taking office on the Board. He has written about it here.

I would very much like to thank everyone who voted for me. I hope I can live up to your expectations. If you did not vote for me, that’s OK – I’ll represent you and your interests just the same as everybody else! Looks like I’m going to have to spend time getting up to speed with the Apps community, and re-acquainting myself with my old JDE friends.

Here’s to moving the User Group forward to meet the challenges of the changing face of our industry. See you all soon, and Cheers Everyone!

(sorry – would have posted this sooner but I was at the OUG Ireland User Group giving a couple of presentations and taking part in a Q&A panel about “18c and everything else!” – fantastic conference and lovely people there!)

 

 

UKOUG M.A. Voting Hots Up!

It’s getting hotter!

After many years volunteering at the UKOUG I am standing to be the Member Advocate at the UKOUG, representing the members on the board.

Do you think I will represent the membership well? Yes. VOTE FOR ME!

Oh, you must be the main UKOUG membership contact, or know who is, to vote.

giphy

One twist in the election is that Steve Davis has withdrawn from the vote due to business commitments, leaving a straightforward race between myself and Andy Nellis. That’s a shame as I think Steve would have made a good Member Advocate had he been voted in. Andy is unknown to me so I cannot comment on his suitability as a UKOUG volunteer or board member.

I’d really appreciate your vote – I know that many of you have voted for me already, but I want ALL of you to give me a strong mandate to improve the user group.

VOTE HERE

 

 

KILL! KILL! KILL! (of Unix processes)

The start of this isn’t my post – I got it from here: but I wanted to reblog/repost and enhance it because as far as I can tell, 99% of all known DBA’s only use kill -9 to remove unhappy processes.


Original Post:

Useless Use of Kill -9 form letter

No no no.  Don't use kill -9.

It doesn't give the process a chance to cleanly:

1) shut down socket connections

2) clean up temp files

3) inform its children that it is going away

4) reset its terminal characteristics

and so on and so on and so on.

Generally, send 15, and wait a second or two, and if that doesn't
work, send 2, and if that doesn't work, send 1.  If that doesn't,
REMOVE THE BINARY because the program is badly behaved!**

Don't use kill -9.  Don't bring out the combine harvester just to tidy
up the flower pot.

**don’t remove your Oracle or any other binaries please.


 

I hope you found that useful. I know I did. But what do the numbers mean? Well, they are increasingly violent ways to ask the program to stop itself. The command kill -9 isn’t asking the program to stop, it’s asking the O/S to stop running the program now, regardless of what it’s doing.

Run order of kills:

kill -15 : this is the equivalent of kill -sigterm and it the default. The program should terminate after it has finished what it is doing.

kill -2 : this is the equivalent of kill -sigint and is the same as pressing CTRL+C. This should mean “stop what you’re doing” — and it may or may not kill the program.

kill -1 : this is the equivalent of kill -sighup and tells the program that the user has disconnected. (e.g. SSH session or terminal window was closed). It usually results in a graceful shutdown of the program.

The executing program needs to be coded to recognise these kill signals, and all good software will spot them.

The other fun kill command is kill -sigstop. This can’t be blocked (like -9) as it’s an O/S level command too, but freezes the program execution like pressing CTRL+Z. You can continue the program execution later using kill -sigcont.

%d bloggers like this: