Clean Oracle SYSAUX + Remove & reinstall XDB = Performance tuning

Monday, 22.12.2008 – Dejan

Prije nekoliko mjeseci porastao nama SYSAUX Tablespace u JEDNOM danu sa 3 GB na 30 GB. Uzrok je (pretpostavljam) bilo sakupljanje histograma za nekoliko velikih tabela, sa puno kolona i sa puno podataka. Nakon određenog vremena, ti histogrami su opet obrisani, jer je dolazilo do generisanja lošeg execution plana u određenim situacijama (neki Cost Based Optimizer bug je bio u pitanju).

Međutim, … Pročitaj kompletan tekst »


Tražite knjige za Oracle? Pravac Oracle bookstore!

Sunday, 21.12.2008 – Dejan

Evo tek se sad sjetih da i s vama podijelim link do ponude knjiga sa Oracle tematikom. Možete naći popis knjiga za razna područja – od standardnog SQL-a, preko naprednog PL/SQL programiranja, pa do administracije Oracle baza na Linux/Unix serverima ili Real Application Clusters. Zastupljena su i development područja (Java, PHP, .NET), a možete naći i knjige sa gradivom za Oracle sertifikate.

Ja trenutno čitam “Oracle 10g RAC: Grid, Services & Clustering“, autor je Murali Vallath, a nakon što pročitam ovu knjigu planiram kupiti jednu sa tematikom vezanom za DataGuard i High Availability.

Link: Oracle bookstore


MySQL-ov kapetan potapa svoj brod…

Sunday, 30.11.2008 – Dejan

Nedavno sam postavio pitanje “Kuda plovi MySQL-ov brod?”, a jedan od konkretnijih odgovora je dao bivši MySQL-ov kapetan lično – Michael WideniusMonty”.

Monty je na svom blogu komentarisao trenutno stanje MySQL-a, a uputio je i mnoštvo kritika na razvoj MySQL-a i njegovu budućnost, čime “potapa” svoj brod još više. Nedvosmislenom izjavom “Ne koristite MySQL 5.1 za produkcioni sistem!“, Monty daje do znanja da MySQL-ova budućnost nije optimistična koliko mnogi smatraju.

Pored kritičkog osvrta na najnoviju MySQL 5.1 GA verziju, navodi i mnoštvo bugova, koji još nisu – a trebali su davno biti – riješeni.

Nakon čitanja ovog teksta i Montyeve rečenice “Install and test MySQL 5.1; If it works, feel lucky.” ja bih više puta razmislio o upgradeu. Pogledajte detaljno tu listu bugova, ukoliko želite uraditi upgrade na verziju 5.1, da ne biste imali neugodnih iznenađenja. 🙂

Ja lično ne vjerujem da će MySQL “potonuti”, ali će biti potrebno uložiti mnogo truda da MySQL-ov brod preživi nemirno more i uplovi u mirnu luku…


Debugging in RAC Database

Wednesday, 26.11.2008 – Dejan

Dolaze mi kolege jedan za drugim i kukaju:”Buraz pomagaj, ne radi mi PL/SQL debugging u novoj RAC bazi!!

Uspaničili se ljudi, a nemaju potrebe za dizanjem frke. 🙂

Ukoliko morate debugovati neki PL/SQL kôd u RAC bazi, morate pravilno konfigurisati TNS konektore (net service names), inače će vam debug session biti “blokiran” (debug session hangs).

Pogledajmo kako to izgleda na praktičnom primjeru…

Pročitaj kompletan tekst »


Kuda plovi MySQL brod?

Friday, 10.10.2008 – Dejan

Nakon što je nedavno Michael “Monty” Widenius, jedan od osnivača i autora MySQL-a, napustio Sun, a samim tim i MySQL, isti korak je napravio i njegov kolega i suosnivač MySQL-a David Axmark.

Neizbježno je pitanje – kuda plovi MySQL brod? Šta će se desiti sa ovom popularnom open source bazom, sada kada su ključni ljudi napustili kormilo?

Meni ne miriše na dobro…


ORA-07445: core dump [ACCESS_VIOLATION] [ptmak+420]

Tuesday, 07.10.2008 – Dejan

Problemi sa patchom 10.2.0.4 se nastavljaju…

Jedna aplikacija nije mogla da funkcioniše, jer se konekcija sa bazom uvijek prekidala nakon pokretanja određene procedure. Dobijali smo grešku:

ORA-3113: end of file on communication channel

ili na njemačkom

ORA-03113: Unerwartetes Übertragungsende in Kommunikation

Pošto mi ta greška nije jasno davala do znanja u čemu je problem, morao sam tražiti dalje u čemu je problem. Pronašao sam u alert logu ovu grešku:

Errors in file c:\oracle\product\10.2.0\admin\esirac\udump\livedb_ora_5104.trc:
ORA-07445: exception encountered: core dump [ACCESS_VIOLATION] [ptmak+420] [PC:0x5F9EBF4] [ADDR:0x10] [UNABLE_TO_READ] []

U navedenoj trace datoteci (livedb_ora_5104.trc) se nalazi više informacija, kao npr.:

 
*** ACTION NAME:() 2008-10-06 18:04:08.483
*** MODULE NAME:(PlSqlDev.exe) 2008-10-06 18:04:08.483
*** SERVICE NAME:(livedb) 2008-10-06 18:04:08.483
*** SESSION ID:(289.12198) 2008-10-06 18:04:08.483
*** 2008-10-06 18:04:08.483
ksedmp: internal or fatal error
ORA-07445: exception encountered: core dump [ACCESS_VIOLATION] [ptmak+420] [PC:0x5F9EBF4] [ADDR:0x10] [UNABLE_TO_READ] []
Current SQL statement for this session:
select dummy from dual where  ora_dict_obj_type = 'SYNONYM' AND ora_dict_obj_owner = 'PUBLIC'
  

Pošto mi ta greška nije bila poznata, odmah sam pomislio:”Oh ne! Još jedan bug!?“…

Rutinski sam pogledao na MetaLinku o čemu se radi i našao objašnjenje i rješenje za ovaj problem.
Radi se o “Bugu 6951953: ORA-7445 [PTMAK] IMPORTING PACKAGE COMPILED DEBUG“.

Konkretno, greška je uzrokovana kompiliranjem PL/SQL paketa i procedura koristeći PL/SQL Developer uz uključenu “Compile with DEBUG” opciju. Upravo takvo objašnjenje se nalazi i na MetaLinku:

This may be triggered by an upgrade or an import. There may be other potential triggers.
This problem has been seen when using pl/sql developer v7.1.5.1397 with “Debug Preferences->Add Debug on Compiling* set.

Još jedna od greški, koja se spominje na MetaLinku je:

ORA-07445: exception encountered: core dump [ptmak()+372] [SIGSEGV] [Address not mapped to object] [0x000000010] [] []

Nakon što sam ponovo kompilirao pakete i to bez DEBUG opcije, aplikacija je proradila normalno.


The Simple-Talk Code Prettifier

Thursday, 25.09.2008 – Zidar

Ovaj link mi pomaze da prenesem SQL kod u blog:

http://www.simple-talk.com/prettifier/default.php

Unse se kod iz SQL u Source code prozor (Cut/Paste). Onda se klikne dugme Prettify! u donjem levom uglu. Onda sve sto vidim u prozoru “Rendered SQL” iskopiram u prozor gde pisem tekst. Onda izaberem formatiranje “preformatted” za novi tekst, ako sam u Visual rezimu. U HTML rezimu mogu da prenesem Soutrce HTML.  I onda moram da se vartim u Visual i izaberem ‘preformatted’

Na primer, ovo sam uzeo iz Books On-Line:

IF OBJECT_ID ('dbo.Vendors', 'U') IS NOT NULL

DROP TABLE dbo.Vendors;

GO

CREATE TABLE dbo.Vendors 

    (VendorID INT PRIMARY KEY, VendorName NVARCHAR (50), 

    CreditRating tinyint)

GO

ALTER TABLE dbo.Vendors ADD CONSTRAINT CK_Vendor_CreditRating

    CHECK (CreditRating >= 1 AND CreditRating <= 5)

U najvecem broju slucajeva radi lepo.

🙂


Ankete i testovi

Thursday, 25.09.2008 – Zidar

 Automatska obrada podataka pocela je kada je gospodin po imenu Herman Hollerith za potrebe americke vlade obradio prikupljene podatke o popisu stanovnistva. Tada jos nije bilo kompjutera, sve se desava davne 1890. godine.  Gospodin Hollerith je zatim osnovao firmu pod imenom Inetrnational Business Machines, dobro nam poznati IBM.

Za ljubitelje istorije, evo interesantan link:
 http://wiki.answers.com/Q/When_did_herman_hollerit_invented_the_tabulating_machine

I naravno wikipedia clanak  http://en.wikipedia.org/wiki/Herman_Hollerith

Tema ovog posta nije Herman Hollerith, niti IBM. Tema je obrada anketa i upitnika na racunarima,  odnosno primena relacionih baza podataka . Kako se generalno resavaju ovakvi problemi?  Postoje naravno bar dva moguca pristupa – relacioni i nerelacioni. Pokazacemo da  nerelacioni pristup izgleda u pocetku mnogo laksi, ali se znacajnio komplikuje cim se odmaknemo od unosa podataka. Relacion nacin moze da bude zbunjujuci na pocetku i nesto je tezi za unos podataka, ali se kasnije stvari znatno lakse resavaju od nerelacionog nacina. Pokazacemo oba nacina, da se vide prednosti i mane na obe strane.

Pročitaj kompletan tekst »


Free instant SQL Formatter/Beautifier

Tuesday, 09.09.2008 – Dejan

Ovo sam vidio davno već, ali sam zaboravio da postoji još. 🙂

Ukoliko vam radi preglednosti zatreba brzinsko formatiranje nekog SQL izraza, onda pravac na Instant SQL Formatter !


Oracle sekvence u RAC bazi

Tuesday, 09.09.2008 – Dejan

Pošto aktivno nadgledam bazu (RAC baza sa dvije instance), primijetio sam u određenim situacijama učestala “usporenja“, odnosno “wait events“, koja su se odnosila isključivo na RAC i interkonekciju između RAC instanci.

Prvo da vas smorim suhoparnom teorijom, pa ću detaljno pojasniti “problem” i dati rješenje…
Pročitaj kompletan tekst »