Hi!
A few months ago I watched a very good webinar about Oracle Licensing, by Rimini Street. And I found the link for this presetation again! 😀
It’s about 1 hour, take a look:
Month: November 2016
Upgrade your JDBC and JDK before Upgrade your Database to 12c Version!
Ok, now it’s everyone upgrading to 12c, right? Thanks God, this version was released in 2013!
But there is some things to be aware when planning an upgrade, specially regarding old applications and legacy. But pay attention! Not all of the requirements are necessary inside database. It’s the case os JDBC version requirement.
The database 12c documentation explicit mentions that JDBC versions 11.1.x and below are not supported anymore. It doesn’t mean that they don’t work, it’s only unsupported and you’ll have no assistance from MOS if you need. It’s better to avoid, right?
Anyway, if you check the JDBC support matrix, if you are in version 11.2 or below you are not supported since August/2015. So the Database 12c is helping you, that don’t have patching policy, to keep on right way. Thanks to Database 12c!
If this is your situation, I highly recommend you to upgrade the directly to JDBC version 7, the last available by now. See JDBC matrix version as:
But test! Test in you dev/test/QA environments before upgrading in Production environment!
Why? Because JDBC also have his compatibility matrix. JDBC 7, for example, demands your JDK to be at least in version 7 (released in 2011!). So, it’s needed to be at least in JDK version 6, as you can see below.
(Click in the image to access the link)
OK doke?
Some interesting links for you:
Verifying a JDBC Client Installation
What are the various supported Oracle database version vs JDBC compliant versions vs JDK version supported?
Checking the Oracle JDBC Driver Version on a Weblogic Server (by Cristóbal Soto)
Matheus.
Skipping database transaction on Oracle GoldenGate
Sometimes GoldenGate EXTRACT capture long transactions from database and could be some B.O.F.H making DUMMY, if it’s the case, it’s a ‘UNWANTED’ transaction, and can skip it on ggsci:
(GUARANTEED DATA LOSS – db transaction skipped)
GGSCI (cloud-db) 60> send ext2 showtrans Sending SHOWTRANS request to EXTRACT EXT2 ... Oldest redo log files necessary to restart Extract are: Redo Thread 1, Redo Log Sequence Number 20322, SCN 1661.3085726936 (7137026405592), RBA 597023248 ------------------------------------------------------------ XID:Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â 2049.13.3951869 Items:Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â 1 Extract:Â Â Â Â Â Â Â Â Â Â Â Â Â EXT2 Redo Thread:Â Â Â Â Â Â Â Â Â 1 Start Time:Â Â Â Â Â Â Â Â Â Â 2016-11-07:15:22:07 SCN:Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â 1661.3085726936 (7137026405592) Redo Seq:Â Â Â Â Â Â Â Â Â Â Â Â 20322 Redo RBA:Â Â Â Â Â Â Â Â Â Â Â Â 597023248 Status:Â Â Â Â Â Â Â Â Â Â Â Â Â Â Running ------------------------------------------------------------
 GGSCI (cloud-db) 62> send ext2 SKIPTRANS 2049.13.3951869 THREAD 1 Sending SKIPTRANS request to EXTRACT EXT2 ... Are you sure you sure you want to skip transaction [XID 2049.13.3951869, Redo Thread 1, Start Time 2016-11-07:15:22:07, SCN 1661.3085726936 (7137026405592)]? (y/n)y Sending SKIPTRANS request to EXTRACT EXT2 ... Transaction [XID 2049.13.3951869, Redo Thread 1, Start Time 2016-11-07:15:22:07, SCN 1661.3085726936 (7137026405592)] skipped.
Check your applications and kill it in the database 🙂
Maiquel.
Whats is the main characteristics/skills of a DBA? [part Osborne]
Another video post!
Almost 2 years ago I spent some time thinking about “Whats is the main characteristics/skills to be a DBA?”..
I wrote 2 posts about:
Whats is the main characteristics/skills of a DBA? [part 1]
Whats is the main characteristics/skills of a DBA? [part 2]
I found a great video with Kerry Osborne talking about what he searches in a guy (or girl) to be a great professional with Oracle… Very interesting:
I’d like to paraphrase Kerry to make my own ‘best moments summary’:
“A little bit of lazyness, a good cue and a lot of calm underpresure and keeping optmimistic.”
Have a nice week!
grepOra around the world!
This first #GrepOra year had 96 different nationalities access our blog website. It make me very proud to see too many flags in our logs (I’d like this in my passport log history).
I would like wish cheers grepora readers.
Parabéns! Feliz cumpleaños, Happy birthday, Alles gute zum Geburstag!! 🙂
IN 2015/2016 we accomplished spectacular goals.
If you are interested in our topics, please subscribe us.
We are planning interested things in 2017 .
Solving Simple Locks Through @lock2s and @killlocker
Hi guys!
This post is to show the most simple and most common kind of locks for objects and the simpliest way to solve it (killing the locker). 🙂
It’s so common that I scripted it. Take a look:
greporadb> @lock2s Inst SID SERIAL# UserName STATUS LOGON_TIME LMODE REQUEST LC_ET TY ID1 ID2 CTIME LOCKWAIT EVENT ----- ---------- ------- --------- -------- ------------------- ------ ------- ----- -- ---------- ---------- ---------- ---------------- ----------------------------------- 1 354 18145 MATHEUS ACTIVE 17/06/2016 14:25:19 X NONE 4032 TX 393238 424490 715 00000000DB0DF900 enq: TX - row lock contention 1 169 25571 GREPORA ACTIVE 17/06/2016 14:22:48 NONE X 714 TX 393238 424490 714 00000000DB0D5ED8 enq: TX - row lock contention 1 252 63517 MATHEUS INACTIVE 17/06/2016 14:17:49 X NONE 714 TX 655363 1550347 4195 SQL*Net message from client 1 846 65011 GREPORA ACTIVE 17/06/2016 14:20:18 NONE X 4075 TX 655363 1550347 715 00000000DB0ECB88 enq: TX - row lock contention 1 354 18145 GREPORA ACTIVE 17/06/2016 14:25:19 NONE S 4032 TX 655363 1550347 715 00000000DB0DF900 enq: TX - row lock contention 5 rows selected.
You can identify the Locker by LMODE column. And all his Waiters by REQUEST column marked by not ‘NONE’, below each Locker…
So, let’s kill the lockers:
greporadb> @killlocker 'ALTERSYSTEMKILLSESSION'''||SID||','||SERIAL#||'''IMMEDIATE;' -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- alter system kill session '252,63517' immediate; alter system kill session '354,18145' immediate; 2 rows selected. greporadb> alter system kill session '252,63517' immediate; System altered. greporadb> alter system kill session '354,18145' immediate; System altered. greporadb> @lock2s no rows selected
Solved!
My magic scripts? Here it goes:
get lock2s.sql:
set lines 10000 set trimspool on col serial# for 999999 col lc_et for 999999 col l1name for a50 col lmode for a6 col username for a25 select /*+ rule */ distinct b.inst_id,a.sid,b.serial#,b.username,b.status, --b.audsid, --b.module, --b.machine,b.osuser, b.logon_time, decode(lmode,1,'null',2,'RS',3,'RX',4,'S',5,'SRX',6,'X',0,'NONE',lmode) lmode, decode(request,1,'null',2,'RS',3,'RX',4,'S',5,'SRX',6,'X',0,'NONE',request) request, b.last_call_et LC_ET,a.type TY,a.id1,a.id2, d.name||'.'||c.name l1name,a.ctime,b.lockwait,b.event --distinct b.inst_id,a.sid,b.username,a.type,d.name||'.'||c.name l1name,a.id1,a.id2, --decode(lmode,1,'null',2,'RS',3,'RX',4,'S',5,'SRX',6,'X',0,'NONE',lmode) lmode, --decode(request,1,'null',2,'RS',3,'RX',4,'S',5,'SRX',6,'X',0,'NONE',request) request,a.ctime,b.lockwait,b.last_call_et from gv$lock a, gv$session b,sys.obj$ c,sys.user$ d,(select a.id1 from gv$lock a where a.request 0) lock1 where a.id1 = c.OBJ# (+) and a.sid = b.sid and c.owner# = d.user# (+) and a.inst_id=b.inst_id and b.username is not null and a.id1 = lock1.id1 order by id1,id2, lmode desc /
get killlocker.sql:
select 'alter system kill session '''||sid||','||serial#||''' immediate;' from v$session where sid in (select BLOCKING_SESSION from v$session where BLOCKING_SESSION is not null);
Now you can put in your Linkedin you are a JR DBA… 😛
haha
Matheus.
GrepOra Anniversary!
Hello guys,
This November GrepOra is completing 1 year!
It’s being a great adventure for all of us. In this first year we already shared 150 posts and had over 18k accesses!
Every month we keep having more access then the month before, and this is because of you. So thank you for reading, accessing and keeping us on track and motivated. 🙂
In October we had more than 3.500 accesses. We expect to keep sharing interesting subjects and grow even more for the next month and next year.
As way to celebrate that first year, we decided that, for the next Saturday on, I and all authors will make a post telling what GrepOra means to ourselves and what we learned in this past year.
And for you, thanks for your partnership and have a nice week! 😀
Backup Not Backuped Archivelogs and Delete Input
Hi all!
Sometimes you are caught in a situation where your database is not backuping archivelogs and need to generate a quick backup commands for those are not backuped yet and deleting it, right?
I saw this situation in this archived discussion at OTN. Unfortunately I couldn’t give my answer… But it’s how I do:
select 'backup archivelog from sequence '||sequence#||' until sequence '||sequence#||' thread '||thread#||' filesperset=1 delete input;',first_time from v$archived_log where backup_count=0 and name is not null order by first_time desc;
It generates an output like:
greporadb> select 2 'backup archivelog from sequence '||sequence#||' until sequence '||sequence#||' thread '||thread#||' filesperset=1 delete input;',first_time 3 from v$archived_log where backup_count=0 and name is not null 4 order by first_time desc; 'BACKUPARCHIVELOGFROMSEQUEN -------------------------------------------------------------------------------------------------------------------------------------------------------------------- backup archivelog from sequence 152153 until sequence 152153 thread 1 filesperset=1 delete input; backup archivelog from sequence 152152 until sequence 152152 thread 1 filesperset=1 delete input; backup archivelog from sequence 152151 until sequence 152151 thread 1 filesperset=1 delete input; 3 rows selected.
And be happy!
But an observation! It not works this way for databases with dataguard. For these cases you’ll need to add “and name’&dgname’” at select where clause… 😉
See ya!
Matheus.