Browsed by
Month: October 2016

Documentation bug in ovm for Exadata

Documentation bug in ovm for Exadata

A while ago a customer gave me a heads up about the “bug” concerning the default passwords for root and celladmin. I was thinking a bit further and I wondered if the “documentation bug” I found while adding a new OVM in the virtualised exadata is solved. The official documentation can be found here .

documentation_screenshot
documentation_screenshot

Then “Managing Oracle VM Domains on Oracle Exadata Database Machine” and then “Creating Oracle RAC VM Clusters” brings you to the point I want to warn you for.

All steps are correct, but the last one “Run all steps except for the Configure Cell Alerting step using the XML file for the new cluster. For most installations, the Configure Cell Alerting step is step 7. For example, to execute step 1, run the following command” might be a bit tricky. Why? I will show you.

When deploying the exadata, if you list the steps you will get this output:

$ ./install.sh -cf anonymous_customer.xml -l
 Initializing

1. Validate Configuration File
2. Create Virtual Machine
3. Create Users
4. Setup Cell Connectivity
5. Calibrate Cells
6. Create Cell Disks
7. Create Grid Disks
8. Configure Alerting
9. Install Cluster Software
10. Initialize Cluster Software
11. Install Database Software
12. Relink Database with RDS
13. Create ASM Diskgroups
14. Create Databases
15. Apply Security Fixes
16. Install Exachk
17. Create Installation Summary
18. Resecure Machine
$

But if you take the newly created xml for the new cluster:

$ ./install.sh -cf anonymous_customer_new_clu.xml -l
 Initializing

1. Validate Configuration File
2. Create Virtual Machine
3. Create Users
4. Setup Cell Connectivity
5. Calibrate Cells
6. Create Cell Disks
7. Create Grid Disks
8. Configure Alerting
9. Install Cluster Software
10. Initialize Cluster Software
11. Install Database Software
12. Relink Database with RDS
13. Create ASM Diskgroups
14. Create Databases
15. Apply Security Fixes
16. Install Exachk
17. Create Installation Summary
18. Resecure Machine
$

Do you spot the difference? I don’t.
I just want to say … If you create a new cluster, be careful with “Create Cell Disks”. I should recheck the logfiles, but the time I checked it lately, it was performing a drop of the celldisk before recreating it. So you can imagine what will happen to your other virtual machines. If you have an exadata on which I can try it, please let me know. I’m happy to check it out further 🙂

Exadata add a new vm

Exadata add a new vm

Today a customer highlighted me a nice-to-know. If you add a new virtual machine to an exadata ovm cluster, he experienced something odd. It was tested on a “new installation”, so it worked good. Basic steps are:

  • Run over OEDA and add the cluster
  • move the xml-files to the dom0 on the same spot as the original one
  • run install.sh with this config

As this is a good customer he followed the advice of having all passwords changed. The bad thing is … while running install.sh lots of errors on different components where thrown.
The most remarkable, and even the first one thrown, was:

OCMD-02624: Error while executing command {0}.java.lang.reflect.InvocationTargetException

So after digging around for a while, it turned out that it was due to the “non-default” passwords for root and celladmin.
After changing the root and celladmin passwords back the the wellknown default, the install.sh liked it and gave the expected success message.

Successfully completed execution of step Validate Configuration File [elapsed Time [Elapsed...

The IB switches suffer from this as well. But that’s only faced if you are going to upgrade the IB software. So in order to patch them easily, just temporarily reset the passwords to the default and change them back afterwards.

Python … no not the snake – my very first script

Python … no not the snake – my very first script

Do you know the feeling? “I should do <fill in something cool here>”. Well, I was facing this already a time by learning python. I knew that you could do some cool thing with it, but never pushed myself to do it. Until now! Otn appreciation day! Thanks to Mr Oracle Base  Tim Hall. Some time ago, he launched the idea of otn appreciation day and of course I added my entry as well. You can find it here.

Tuesday 11 october 2016, my entry was scheduled at 08:30 CEST and seeing all the other blog posts, I soon realised that this would be a very nice bunch of information. I started copy pasting the blogs and links, but … As soon as I started doing something else (work!!! ) I missed some. That brought me the idea of creating a script. The idea was simple, log in to twitter, fetch all tweets hashtagged by ThanksOTN and then filtering out the retweets. Simple huh? Then … how to do it? mmm … let’s take the challenge, I’ll do it in python.

The result is here (improvement needed Christian! But that will come in time).
I’m happy to have an omnios (solaris derivate) server at home and there I have python available. So let’s go.

I broke it down into some steps. In order to read a twitter feed you need a twitter application. To do so, surf to https://apps.twitter.com and after loging in, click the create application button.

twitterapp creation

 

I only left the callback url blank. For this purpose, we don’t need it. I think, if I do, please let me know.

 

 

 

 

 

Then all is done. The next screen will give you an overview about the application you just have created and in the tab “keys and access tokens”, you only have to click on one more button “Create my access token”. So that’s it folks, nothing more to be done at twitter side.
Just record following fields:

  • Consumer Key (API Key)
  • Consumer Secret (API Secret)
  • Access Token
  • Access Token Secret

these we need in order to be able to establish a connection with tweepy to twitter.

Then it’s time to write some code! I assume you already have python setup, if not, drop me a mail, comment or tweet and I’ll help you out. So I never ever had done some python scripting so it was googling a bit.
It turned out i’d need tweepy for this task, so it was easy to install. Pip install tweepy was all I needed to enter and confidence was growing, if it’s going to be as easy as this, I’ll be good!

first we need to import some things:

import tweepy
from tweepy import OAuthHandler
import json

Then (at this point) I only needed a main procedure. I call it “main”. maybe obvious but ok 🙂 If you need more procedures, they go right after the import statements.

So the main I created looks like this. The comments are my comment for the blog as well:

def main():

 #Variables that contains the user credentials to access Twitter API
 access_token = "<fill in your own>"
 access_token_secret = "<fill in your own>"
 consumer_key = "<fill in your own>"
 consumer_secret = "<fill in your own>"

 # OAuth process, using the keys and tokens
 # here we create an auth object which uses the tweepy oauthhandler. There we need to pass the consumer key and secret
 # then we need to set the access tokens into the auth object
 auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
 auth.set_access_token(access_token, access_token_secret)

# Creation of the actual interface, using authentication
# here we create the actual connection to twitter and we call it api. It's just a name.
 api = tweepy.API(auth)

# search it and display them after removing the RT @'s
# some variables i picked:
 query = '#thanksOTN'
 max_tweets = 1000

# here i am gathering the tweets into an array and put them in a cursor.
 searched_tweets = [status for status in tweepy.Cursor(api.search, q=query).items(max_tweets)]
# this is just "quick'n dirty I figured out in the meanwhile. A better way would be to 
# use templates and fill them in this way, but hey... this works :-)
 print('<html><body>')
# now I have a resultset (searched_tweets) and I will run over them in a for loop.
 for tweet in searched_tweets:
# I'm filtering out the retweets in following line
 if "RT @" not in tweet.text:
## the next line in comment. I added an extra if-clause first to only list tweets which contained "OTN Appreciation day:" in the tweet
# later turned out that not everyone put this one in, so I commented it out.
# if "OTN Appreciation Day:" in tweet.text:
# and here i'm printing the user who has sent the tweet
 print('<p>Twitter user:',tweet.user.screen_name,'<br />')
# and eventually what he has tweeted. This is also a bit Q'n'd I figured out. but the emoji weren't
# displayed correctly in python 3.4, so this is a was to have them parsed to utf8. I think there 
# will be some more efficient ways of doing this, so feel free to comment on this.
 tweet_text = str(tweet.text.encode("utf-8") if tweet.text else tweet.text).lstrip('b\'')
# and finally print the tweet.
 print(tweet_text,'</p>')
 # and close the webpage 
 print('</body></html>')

# finally call main
if __name__=='__main__':
 main()

And finally  this script was scheduled in crontab every 30 minutes, and redirected to a html file.

I should still create a kind of tokeniser to manipulate the tweet_text in order to make hyperlinks from the links. But hey … that’s something for the future 🙂

So this was my very very very first python script. I think it’s a fun language which I’ll be using more and more.

Comments, advice,… are always welcome!

 

OTN Appreciation Day: Dataguard

OTN Appreciation Day: Dataguard

Thanks Tim Hall for the idea about OTN Appreciation day. The feature I like the most in oracle is a rather “old” one, but it can be extremely useful: Dataguard. Why dataguard? I find it extremely easy to set it up, maintain it and it can save you a lot of “troubles”. Especially on big(ger) databases it takes down the time to recover in case of a failure down to seconds instead of hours.

The concept is simple:

Dataguard configuration

(image borrowed from the oracle documentation) It consists out of a primary (mostly live) database and we replicate all the redo to a target / standby database. This in real-time or if needed, with delayed apply.

One of the nice things about it, even how you mess it up, you get it up and running every time again, so it’s virtually unbreakable. Is it? Maybe not, but even it lags behind, it’s fairly easy to bring your standby database up to date with incremental backups and go on with your daily tasks.

Nowadays, I (and lots of my colleagues) use it a lot for hardware migrations. Almost everything can be done on beforehand, the moment of the big switch, you just switch the db, adapt the connection strings and done. You even can test your migration easily by breaking the redo stream (or in current versions use the snapshot standby) and test the applications on the new platform.

One of the nicest things I ever used it for was a exadata to exadata migration from Germany to The Netherlands. That client decided to switch from datacenter and all the equipment must be moved from Germany to the Netherlands, but with as few as downtime as possible. Switching over 45 databases (not too big, only a couple of TB in total), took only minutes and the end-users weren’t even aware that a complete DC move had been done.

All those nice features, active dataguard, snapshot standby, … they all make our live a bit easier. So thanks for this nice feature which makes my life a bit easier.

 

First POUG conference

First POUG conference

I could create a very short blogpost summarising this first POUG conference: AMAZING! But as this marvellous event deserves what it deservers, I’m going to write a little post about it, as a way of saying thank you!

Poug: it’s a word with double meaning. Intentionally it would stand for Poland Oracle User Group but thanks to Kamil (@ora600pl ) and his team it was turned into Pint with the Oracle User Group.
I met Kamil only at UKOUG Ireland this year where he revealed his plan. Philippe Fierens (@pfierens) and I were enthousiast immediately: count us in. Some weeks after … “Hi guys, we made it, we are expecting you”. Great news!

While composing this blogpost, I realised that I should take more pictures during conferences. Memo to self! Here we go.
We were arriving on thursday rather late so unfortunately we missed the speakers dinner. Anyhow … at friday morning the conference started.

Kamil_opening_poug2016

2 Kamil’s opened the conference by “explaining” the rules. So meaning that we have to adapt and that water is meant for bacterias, so we should go for the beers. It’s the first conference on which we actually we’re encouraged to drink beer as a speaker! This looks like a good start.
It was a rather good amount of people who showed up. If I need to guess, it must be around 150 people who were traveling to Warsaw for this nice event. In summary, this is a great start and more great things to come.

The first session I attended was from Jim Czuprynsky (@JimTheWhyGuy) . It was titled: “DBA, Heal Thyself: Five Diseases of IT Organizations and How to Cure Them”. Such an interesting talk with lots of truth in it. Jim was telling so full of passion and enthusiasm, a session never to forget.

Heli Helskyaho from Finland  (  )  ,it’s easier to spell her name as to pronounce it 😉 , had a extremely interesting session about how and why you should use sql developer and showed us a huge amount of useful tip&tricks you could do with it. Lots of thing I even didn’t know that were possible with this product. If you ever have the chance to attend one of her sessions, please go! You won’t be disappointed.

poug_beers_and_ivicaNext topic I chose was the session about parallellism from Ivica Arsov. I was very interested in it as parallellism in 12c is a rather complex mechanism. Notice the nice choice of Polish beers we had the opportunity to choose from.

After lunch it was our turn, we talked about the ovm implementation on exadata. It was nice to have such an interested audience, really a joy to speak for. Thank you POUG and attendees.
Our successor was Kiran Tailor ( ) with a very interesting session about exalytics. As we have a customer with exalytics it was EXTREMELY interesting to hear this.

poug_only_one_drinkWe closed the evening with really “only one drink” each. But it was an amazing party. It was called a party, but a far better name should be appreciation event. Check also this link from Robin

 

 

 

After a long short night, mmm you get the picture 🙂 , a lot of people turned up for Neil Chandler’s session. Ok it started at 10:50h but a full room, and all attentive on Neil’s talk why the optimizer from time to time decides to go his own wrong way. Useful hints, tips and tricks. Actually a presentation you should see and make sure every dba should have seen this!

poug_multitierJoze Senegacnik (@joc1954 ) took over by opening the CBO’s black box and then you understand why sometimes it can be more the box of pandora instead. Fortunately the parallels to “normal life” weren’t far away and pretty well illustrated. No further comments on this one.

“You should use sql” (or at least pl/sql) were the words of a small man in size, but a great man for all the rest. An marvellous speaker. Ladies and gentleman: Martin Widlake ( ) ! He had an EX-CEL-LENT talk over how to use (pl)sql to use loading data into a database. Everybody agreed on “row-by-row slow-by-slow” and very good tips which can be implemented very easily and give you lots of advantages. Thanks Martin!

This block of text, I’m borrowing from my friend Kiran on his blog entry . I can’t write it better, so I’m going to give you the block of text about the afternoon:

Once we had consumed our lunch we had our final session of the day ‘#DBADEV,Bridging the gap between development and operation table’ This was a panel session with Sabine @oraesque, Martin @MDWidlake, Philippe @pfierens, Neil @ChandlerDBA, Piet @pdevisser and Erik @evrocs_nl. I think most people would be able to say something in this area, I am always fighting with developers :-). What a great way to end the conference.

I should actually continue copy/pasting as the lunches, dinners, breakfasts Kiran and I enjoyed together. It was just epic!

This conference was

  • extremely well organized
  • on a fabulous location
  • equipment/food/drinks/beers/… were plenty and excellent
  • fantastic attendees

It was so nice to meet so nice people in such a positive and stimulating environment.
Dear organizers, I would like to say special thank you for having us. It was the first edition, but it was FANTASTIC! Thank you so so so much.

poug_thank_you

My trip to Oracle Openworld 2016 #OOW16

My trip to Oracle Openworld 2016 #OOW16

It all started a couple of months ago. I submitted a presentation and my friend Philippe Fierens submitted a panel session together with Adam Bolinski (Ora600.pl) , but unfortunately, I’m joining #teamRejected Lots of cool and nice people had to join as well, so it’s not too bad.
Then great news came and my boss asked if I was interested of visiting Oracle Openworld. I didn’t have to think twice, so my answer was yes very quickly.

The trip starts early. Very early … on saturday at 04:30 in the morning we had the appointment at the company. There a little coach picked us up and after a 2hour drive, we arrived at schiphol.

img_0865

A nice group of friendly and interesting people traveling together. This will be fun!

After a short check-in, bagage drop-off and all other security checks, we had breakfast and after that, off we go!

 

img_0868 Immediately it became very clear what the main topic of this Oracle Openworld would be: CLOUD! 🙂

Personally, I’m very sceptic to this new “hype”, but the only way to know if I’m right or wrong is to go with an open mind and experience it.

 

 

10:30h of flying later, we safely landed in San Francisco. Then the necessary checks, and we took a cab to the hotel. Checking in and then off we went to the Moscone center for the registration.

img_0874

It IS impressive. People told me it’s big and large, but if you stand there for yourself, you know they’re right. This is going to be cool.

After registration we went for a walk. Doing something a little bit active in order not to suffer from the jetlag. Then I received a message from Philippe, he’s already at Jillians, so we went to have some drinks together to catch up. Always nice to see friends again! And friends do have some good ideas, this night’s dinner would be sushi. A very typical sushi bar but so good! If I could find it back, I would recommend it!

The next day, sunday, ok there are already some sessions, but for my first time in San Francisco I really wanted to see the bridge. So with the oracle belgium people we we went biking. After riding the Goldengate bridge and taking the Ferry back, it’s time to follow some sessions.

I tried to create a varying schedule filled with attending some sessions and going to the demo-grounds. My personal feeling was that you really had to search well for technical sessions, whilst when walking a moment in the demo grounds, you could talk to lots of technical people and some of my questions I had were answered very quickly. So it became clear very quickly that this was the place to be.

Sunday evening, the glorious moment of every OOW – virgin. Larry’s keynote. To be honest, he let me down. After hearing so much about the keynotes maybe my expectations were a bit high but, it is an impressive event. We closed the evening with some drinks and then … early to bed!

Monday a day full of sessions/demogrounds/… but most of all, trying to get to know as much as possible about the newly announced exadata, the Exadata SL6-2. A sparc based engineered system which I think Oracle is going to push pretty hard. Engineers I was talking to, said that this machine is to be used in the Oracle cloud. Still trying to figure out on how to check it easily to confirm this.

Tuesday it became very clear that Oracle is focusing on cloud … but … “there will be a coexistence of about 10 a 15 years”. I like this, but in some way it feels like they aren’t very confident in their own product, but time will tell. Larry held his second keynote and this was really what I had expected. If you’re curious, you can see it here. And that evening we had a blast during the benelux party. So we went early to bed, literally 🙂

Wednesday, the last full day. I spent most of the time on the demo grounds this day. Taking a picture of the famous America’s cup  and an interesting session about the exadata technical deep dive and internals. Congratulations also to Oren Nakdimon (@dboriented on twitter), he had a nice presentation about upgrading his pl/sql code without any downtime on standard edition.

Last full day, apparently means also the appreciation event. It was announced to be Billy Joel, but he cancelled and was replaced by Gwen Stefani and Sting. Personally, I’m not really a Gwen Stefani fan … but Sting was really fantastic and he got the atmosphere going!

Thursday was a day of buying some presents for home and rushing to the airport.

A common topic through many presentations and talks at the geek theatre at the demo grounds is encryption. It’s almost named in one sentence with cloud. Which they immediately turn directly to sparc. So my guess is sparc will be pushed more and more. Just because of the encryption on the chip and the software in silicon which can help you with the in-memory option of the oracle database. This screams for some tests.

In summary, my first Oracle Openworld experience was fantastic. I can advise everybody that you need to have experienced it at least once. Such nice friendly people, and lots of knowledge transfer. Thanks Exitas for letting me doing this!