Tuesday, April 14, 2015

OAUG COLLABORATE 2015 - Day 2

9:45 AM - 10:45 AM - Craig Shallahamer (@cshallahamer) - Optimizing Memory Serialization Control (Latches And Mutexes)

Firefighting Friday webinars for free at orapub.com!
Memory is not a linear construct which he showed with 3D models!!  I thought I was looking at DNA strands!!
Serialization is death - thought this was an interesting idea!
Relational structure is controlled through locks (enqueues) - app locks under app developer control, data dictionary locks under control of Oracle kernel developers.
Memory structure access is under the control of Oracle kernel code architects - buffers controlled by pinning and sometimes latches, memory lists controlled by latches and mutexes.
Module -> CS control structures -> MS memory structure
"Spin and sleep cycle" did it get latch/mutex?  No?  Keep trying!
Processes either want to consume CPU or they are consuming CPU - sounds obvious, but I never thought of it that way before!
Pin event is backing off because a latch was already given.  Interesting!
When he sees a new wait event he wonders what is going on!  So do I!!
Fulltime.sh script is a free download to see what the CPU is doing breaking it down to the kernel modules w/Frits Hoogland so you know it will be awesome (it looked like it)!
Need to understand the latch/mutex algorithm and be able to detect significant latch/mutex contention
Understand: why it is being requested so often, and why it is being held so long.  Great boil down of a concept!

11 AM - Noon - Suzanne Strasser (@sjstrasser) - Database Links: Best Practices

Public DB links to schema owner users is dangerous!
Fixed user link - includes username and password, stored in SYS.LINK$ which is unencrypted prior to 10gR2.
Connected user link - anonymous DB link, local and remote users are the same, with same password, remote user must have CREATE SESSION privileges.
Use caution if you want to connect DEV to PROD with a DB link.
Current user link- requires Oracle Advanced Security Option so you can use current_user in your DB link connection string.
Invoker vs. definer rights was a great example of something I think I saw from Tom Kyte about who can run a package.
Shared DB link - must be authenticated by user with CREATE SESSION.
Creating a DB link in another user session - audience member piped up saying you can use a proxy DB link to connect to SCOTT without being able to connect to SCOTT as all which sounds like something to look into going forward.
GLOBAL_NAMES - when set to TRUE, link name must match remote DB name.  Good to know!
OPEN_LINKS - another parameter you need to look at.
ORA-02020 - SELECT query using a DB link leaves the connection open.
V$DBLINK - You can use this to see the current open DB links!  I never knew about this!  I smell another proactive alert coming up!
DBA_DB_LINKS, USER_DB_LINKS, ALL_DB_LINKS - The usual suspects, but good to remind people these tables are out there!
ALTER SESSION propagates to any open DB links you have open!!  Did NOT know that!!
DRIVING_SITE hint - can define only 1 table in the hint, but can help if you have to have to make the driving table be the remote table you have instead of the local table if it is smaller.
Insert via DB link causes wrong results - patch 15894143.
Patch 15931910 for ORA-19505 with PDB/CDBs if you are using this on 12c.

12:15 PM - 12:45 PM - Tim Quinlan - Extreme Availability Using Oracle 12c Features

Since we had a sit down lunch, instead of the box lunch we had yesterday, unfortunately I missed this session but it sounded like a really good one so I am a bit sad I missed it!

2 PM - 3 PM - Christina Blincoe - Advancing Your Career without a "TITLE" – Find Your JOY at Work

This ended up being a short session, but one of the opening lines sums up the presentation: Joy is your own definition, and more than happiness which can be temporary!
Notsalmon.com - inspirational writer
Gallupstrengthscenter.com - This site will measure your strengths, and then tell you why you should focus on them more!
Success magazine is one suggestion that she gave us to get some regular tips about being successful/positive, and not only did nobody in the audience say they read it, but she actually gave out a year-long subscription to it for one lucky session-goer!

3:15 PM - Arjen Visser - The 3 Fundamental Principles of Oracle Replication

Founder of @dbvisit
Physical and logical are 2 types of replication.
Physical - 1:1 copy, block level (redo), standby DB, best suited for DR.
Logical - separate DBs kept in sync with SQL statements, subset of data is replicated, cross platform/version/DB.
Trigger based/redo log are 2 ways to do logical replication.
Redo log -> LCRs -> SQL statements -> applied to target DB
Three principles of replication:
1. Conversion process
Set based SQL operations on source are changed to row by row SQL changes on the target DB.
2. Identification
For data to be replicated, each row in source must be uniquely identified (do not need primary key).
3. Conflicts
Warns of data divergence and lost updates, but your tools may differ on how to deal with conflicts.
Prerecorded demos!  Great idea!  Work out all the kinks and make sure you do not lose valuable time during the session!

4:30 PM - 5:00 PM - Deiby Gomez - (@hdeiby) - Oracle Indexes: From the Concept to Internals

Unfortunately my phone died just as this one started so I could not take notes during this one!!  The session was centered around some of the concepts you can find in the Oracle Database Concepts manual in Chapter 2 and 3, so if you are interested in this I would go back to that manual and brush up on some of your knowledge.

No comments:

Post a Comment