Monday, April 16, 2018

Spring Trip via RigaDevDays and BGOUG

It is that time of year: Conferences on the horizon.

My main items this spring are RigaDevDays (RDD link), Bulgaria Orace Usergroup Spring Conference (BgOUG link) and an evening at the Romanian RoOUG. Plus a few other planned visits of friends and places, meals and coffee on the way. I am kinda sorry to miss out on NL-OUG event and the Austrian OUG, but I will remember those for next year.

Here is the approximate map for this spring (I will probably avoid taking the same roads twice):


After this trip, later in the Summer and Autumn, I hope to do a few more trips if I can get papers accepted. I know that POUG (Poland, September) is near-certain, and I might re-visit Slovenia, Croatia and Germany if the schedule and the jury help a little.

Edit: As requested, I added the "Awesome Logos"...




Saturday, March 31, 2018

Docker and PDB discussion

This blog-entry will serve as my note-taking and explanation-texts for a Docker discussion that started on Twitter on 30Mar2018.

Topic: Docker and PDBs

Questions:
Here are the key questions I want to ask "everybody", before we dive into discussion:
Q1: What kind of use-cases are developing out there for Oracle on Docker ?
Q2: What do you (all) want to do with OracleDB running from a Docker-container?
Q3: (Gerald?) What is the direction that Oracle wants to take with 18.x and PDBs on docker ?

More detailed questions tend to follow, but ... Later!

I am interested in your answers to Q1/Q2 before we start the detailed discussions, mainly to prevent my own "tunnel vision". I realise that Others have often very different views of products and possibilities. So let's hear it from you!



----- Space for Pause and Reflexion -------



Popssible agenda for discussion:
 - open for suggestions...
 - me: Use Docker to deploy Oracle-DB software, and plug various PDBs in/out.
(add your suggestions here...)

Docker:
 - Simple to deploy, clone-able.
 - Runs nearly anywhere.
 - Disposable containers, e.g. Cattle, stateless.
(add your items/suggestions.... )

Databases, and PDBs:
 - Storage of data (ACID), e.g. Pet, Stateful.
 - Application code-base in PL/SQL or similar (#SmartDB).
 - PDBs: Easy (re)start of dev sandboxes (including app-code in PL/SQL).
 - PDBs: Clone from prod/acc/test/pristine environments.
(add your items/suggestions)


Wishlist for OracleDB on Docker:
 - A quick-deploy method to many platforms (that it is already!)
 - A guaranteed, known, software version (e.g. known version + patches)
 - Image as light (small) as possible.
 - Complicated: Patching, First on a "golden" image (per project?), then distributed.
 - Nice-to-have: when oracle18 is out: Read-Only OH.
 - Clear choice of data: "in" or "outside" of the container (mappable volumes).
(add your items here...)


Background:

Gerald Venzl (link) has provided and published Docker Images (link) that can run an Oracle Database. There are also a range of other Oracle-provided containers that allow "devs" to play with various oracle tools, and I'm sure everyone is discovering various ways to use Docker.

In another universe someone (link to jk) even complained that Containers were used for "production databases". I'm really curious to see how+where+when that works, notably if the data is stored persistently, ACIDly, and how the additional layer from container-to-storage is affecting the running and performance.


Storage, persistence: 
I can see two distinct cases, your choice will depend on circumstances:
 - Data inside the container, and disposable. You can lose the data at some (unexpected?) point.
 - Data on mapped volumes, and Persistent. You have more control over the data.

In my case:
 - Disposable "sandboxes : can be in the container. But any plug/in/out may have to be done over DB-links, cumbersome.
 - Persistent data: mappable (host-)Volumes. Easy to reach, similar to NFS concept with pros/cons.


Notable items for Docker, from my memory/history:
 - Avoid splitting the database over "container" and "volumes".
 - Keep the spfiles and orapwfiles with the data (linked into the dbconfig in 12.2, nice!)
 - Also map diag-directory, prevent container-storage from filling up (was easy)
 - Detail: add a "vi" to the container. I had to yum it in.
 - Make perl catcon.pl work correctly or use bash. (I like CreateDB, not just dbca...)
( - add your items here...)


My own agenda (if any) is to have the OracleDB software in an easy-deploy, run-anywhere container, with the option to keep the data "external" and to plug-in PDBs at will.

My "containers" resemble old-fashioned VMs. Not sure if that is "correct way"

My deployed-container will be my "processing unit" and my "service".
The docker-host will provide storage as mappable volumes.
The concept I would use would resemble a set of linux-servers with an NFS for filesystem.

Side-topics, optional, later:
 - Anything Oracle can do to concentrate all "output files" to a small number of mountpoints is welcome. I used to spend time putting spfile, ctlfiles, redo, data, archives, log/diag all in 1 subdir-tree to allow easy movement of databases between systems. Gerald has mentioned FSH already: that was a good concept on unix once. All output to a "/var" subdir.
 - Anything Oracle can do to make (un)plug of containers easier: Welcome. I would like a PDB to be even more simple transportable from 1 subdir, including all files needed (oracle is close!). In another DB, all you do is provide some name, or point 1 (one) environment variable $QHDATA to 1 (one) subdir, and the whole DB materializes under it... Neat! No messing with "file-name-convert" or GUID/random strings. Easy, Flexible!


Open for Discussion... (on twitter?)


Copies of Relevant links:
Gerald : https://geraldonit.com/2017/08/21/creating-an-oracle-database-docker-image/
docker images : https://github.com/oracle/docker-images/tree/master/OracleDatabase

The tweet that started it. https://twitter.com/GeraldVenzl/status/979736165564661760


Sunday, March 18, 2018

Rename user or Update SYS.USER$.NAME

Last week, someone mentioned "alter user rename" or similar quick-trick to modify a username. I think the link came through via Kevin Closson.
It reminded me of a very old and undocumented trick to just update the "name" in the  SYS.USER$. From ancient memory: I think this was used for some very old in-place upgrade in the 90s  once.

----------------------------------
Update: Martin Berger (@Martinberx) pointed out this blog by Dirk Nachbar on the same topic. Which Dirk has updated Here for 18c Seems an undocumented feature, but working.

Needless to say that everyone: Dirk, Martin, Kevin and AskTom, strongly Dis-recommend to play with the user$ table, as I am about to show you ...
-----------------------------------

Anyway, how could I resist a trivial test...?

*** Warning: Dont Do This on a Serious Database ***
(do this only if you are willing to scrap the database you try this on) 

*** You have been Warned ***
*** Please tick "accept"  etc... ***

For testing, I'm using the vagrant box from github.
https://github.com/oracle/vagrant-boxes

To test, I logon to the pluggable database ORCLPDB1 as SYS, and I create a user : U1.
I then rename it to U2 as follows:

Update sys.user$ set name = 'U1' where name = 'U1';
commit ;

Background : 
I would expect that the catalog stores the user-name nicely in 1 place, in the SYS.USER$.NAME.

What I learned (and please dont take undocumented hack this for Truth,... )
 - It may Just Work (but please dont...).
 - You need to at least flush the shared-pool, but a complete startup-force is probably advised after the update+commit.
 - You can end up with connections of non-existing users (hence a restart is a good idea).

For a Trivial schema+app it seems to work with just a flush-shared_pool to make the change come into effect. This makes +/- sense if you think about it.

Here is the test-script (link)
And the output (link).

Some of the Questions raised:
 - Is this method feasible at all? e.g. is the username really stored and retrieved consistently from the same field in the table sys.user$ ? 
 - Would this be feasible for rename of other objects as well (why bother? copy or re-create stmnts are equally efficient for most objects?)
 - what would happen if the schema to rename depended on others, or had others depend on it ? (if all references go over user_id and object_id: it may just work...)

Maybe Later, if the weather remains as is...

Do I have to repeat the "Do not use at home" disclaimer...?
Nah, you get it.

Tuesday, October 10, 2017

October Trip: SIOUG, HROUG and PGCONF.eu

Quick update of the plans for October.

This is the approximate route:

It will include 3 conferences.
The Slovenian OUG:



The Croatian OUG:



And the European PostgreSQL conference:



Drop me a message if you want to meet up on any of those events.


Tuesday, March 28, 2017

OUG meetings Spring 2017

Planning is in the air.

This spring, if all continues to go well, I will visit six events in a nice, long spring "tour". And here is the Logo-and-Link-fest of the various events:


15-16 May, the Riga Dev Days (RDD):
Riga Dev Days.


24-26 May: Serbian Oracle User Group conference in Zlatibor:

Serbian Oracle User Group - Zlatibor Conference.




30 May: meetup of RoOUG




02-04 June: BgOUG spring conference :





15-16 June: the OGH tech experience:



Austrian Anwender Conference.



I cannot wait to get on the motorcycle again. On a map, it looks like this:

Hmm, if I stretch it, I could make an interactive Google-map with all the events + dates on it. But I'm too lazy; I'd rather go visit those places by motorcycle... 

The map link for the complete trip-plan is here, if you want to zoom in on the details: https://goo.gl/maps/1YvXPzCowMJ2 .

And if you live along that route and feel like grabbing a cup of Coffee while I check the Wifi Signal: Contact me!

Regrettably, I will have to skip two events due to time constraints: OUGF and ITOUG
I have politely cancelled going to Helsinki this year. I’m really sorry to miss the OUGF.fi Harmony event because it is always good quality content and nice social activities. I’ll try to be there next year folks. Kiitosh.

And, although I am very curious, I have to politely skip the (first?) Italian ITOUG tech day on 06 Giugno. I love to go to “new” places and start-up-usergroups, but this one would mean a race from Bulgaria to Milano. I hope to visit an Italian event soon though (it will mean going over the Alps and drinking Good Coffee, always a Pleasure!)

And by the way, I've done trips like this for 3 years in a row now. I know how to do this by now, and it is Great Fun. Check last year's tour on the interactive map-log at MyAdventure.bike...

See  you on an OUG somewhere ! 


Monday, January 09, 2017

Planning the route.

How can I resist Dreaming...

This would be a nice route to do in 2017:

I can get the additional motorcycle-insurance, and some cyrillic phrase-book to help me out. But the real questions are "time", "budget" and will I get enough papers accepted to have make it a "business trip".

The last 3 years, I rode the bike around central Europe (link to my OUG-Tour). I really enjoyed it and took lots of trophy-pictures.

Like this one from a UFO in Bulgaria:

And this one over the Alps:


But... I've never been inside Belarus, Россия or Ukraine yet. And with all the political hoo-haa going on and the fake/real/spin news we get these days I really would like to go and see some of those place for myself. Hence this wild idea (probably a few kilometers too far...)

Could I?
Should I?
If not this year then next?
But the plan begins to germ.

Back to work: I have abstracts to write and to submit.
To do any travel, I first need to get papers into 

Riga Dev Days
Oracle User Group Finland (OUGF.fi) 
Serbian Oracle User Group (SrOUG.rs)
Bulgarian Oracle User Group (BgOUG.org)

And several others on my wishlist, such as Portugal, Poland, Italy, Slovenia, Croatia..

Anyway.. back to "real work"
(but I can Dream...)


Monday, May 11, 2015

Riding, this time to SROUG and BGOUG.

Here we go again: some shameless self-promotion, and a nice long motorcycle-ride in search of Knowledge.

I plan to visit (and speak, to justify the trip) at SrOUG and BgOUG.

The logos of those usergroups look like this:

alt text..

And 




But my main reason for this blogpost is of course to publish the route. Once this is published, I am committed, I have to Go!

The intended route is here on googlemaps, that is the efficient version. Of course, I will try some extra Kms over enjoyable (mountain-)roads if I can.

Romantic version Here (dreaming...)

(not realistic, but one can dream...)


But I also have a schedule to keep, and some work to do.

Last year (link to routes..) , my "mistake" was to try and see too much and I have spent several days hurrying to be on time. Racing back from Helsinki to Debrechen, resulting slightly exhausted rides over the beautiful Transalpina and Transfagarasan passes.

This year, I will take more time to see things and talk to people (and taste coffee and local food).

During the this trip I will also work part-time for one customer (have to carry the extra laptop...) for which I will set up a base from a hotel/apartment in Zemun. And I will have some spare time to visit friends, events, interesting landmarks, or even customers if they occur.
Both Croatia and Slovenia are in easy riding distance, and I know there are some brilliant roads there as well.

Drop me a line if you want to meet. good Ideas, good Discussions, good Coffee: Anything can be an excuse to meet. Wifi and safe motorcycle parking are essential though.

Soo Ready..






 

This is the footer...and this should be small text for disclaimers and the like. and some small stuff

Locations of visitors to this page And this text is placed next to the map. we could possibly hide some stuff here too for the benefit of the search-engines and if it is at color ffffff cam we put all sort of rubbish that we do not want readers to see. travel itinirary reservation ticket agent flight plane boarding attendant train connection rail ticket wait time booking flight boardingtime taxi ramp luggage suitcase trolley wheely laptop bagpack corpaorate wifi connection oracle. it will also be interesting to see what happens when this wrap around. or even if we put in spherus and worwood as additional word.