Category Archives: Oracle
All those yellow sticky notes about Oracle will usually end under this category.
Steps to upgrade Oracle XE Apex to 3.0.1
A short recipe for upgrading Apex in Oracle XE based on official OTN guide:
1) Download Apex 3.0.1 from OTN and unzip the archive into some directory; let’s assume H:\APEX
2) open command prompt with proper ORACLE_HOME and PATH pointing to Oracle XE instance:
cmd> cd H:\APEX cmd> sqlplus /nolog sql> connect / as sysdba sql> @apexins password SYSAUX SYSAUX TEMP /i/ Where positional parameters are: @apexins | admin_password | apex_tablespace | files_tablespace | temp_tablespace | images Post installation (assuming we're still in H:\APEX): sql> @apxldimg.sql H: sql> @apxxepwd.sql password (where password is the password of the Application Express internal ADMIN account)
Exceptional High Memory consumption of Oracle 10.2.0.x on Windows EMT64
While testing 64-bit Oracle EE 10.2.0.2 on Windows 2003 SP1, EMT64 I noticed exceptional high Virtual Memory usage of oracle.exe process during the startup (for example if SGA was sized at 1.5GB, then 4-6GB of VM memory will be reported by Task Manager at instance startup) .
I thought Oracle fixed the problem with memory management on EMT64 in patchset 10.2.0.3 where they claim they fixed the bug 5205552 “EXCEPTIONAL HIG VM SIZE USAGE FOR ORACLE.EXE ON 64 BIT X86 WINDOWS PLATFORM”.
Perhaps they did, but there is another bug left in the code and (at least in my case) quite easily reproduced.
Some facts:
– reproduced on Windows 2003 x64, Enterprise Edition with SP1/SP2
– reproduced with 64-bit Oracle 10.2.0.2/10.2.0.3/10.2.0.3 + Patch 5 bundle for Windows x64
– tested on three different servers (one Dell and two IBM servers)
Steps:
1) make sure you don’t have the following line in the SQLNET.ORA (server side of course):
NAMES.DIRECTORY_PATH= (TNSNAMES)
2) try to create some dummy database link with no TNS entry present in TNSNAMES.ORA, such as:
sql> connect scott/tiger
sql> create database link dummy connect to dummy identified by dummy using 'dummy';
3) the above statement will “hang” for awhile; at this time observe the “Virtual Memory Size”, “Peak Memory Usage” and “Page Faults” within Task Manager for the oracle.exe process. You’ll likely see the excessive growth of Memory usage. Roughly three times the SGA will be used during create database link statement, before Oracle returns control to the user. Imagine this happening on production server where two or three users at the same time send rogue create database link command to the server? They can easily bring the server down.
The only workaround known to me is to make sure that NAMES.DIRECTORY_PATH is present in sqlnet.ora (server side), such as:
NAMES.DIRECTORY_PATH= (TNSNAMES)
I also noticed that this bug is semi reproducible, for example in my case the first create db link will show excessive memory growth, then two or three similar statements will go smoothly, then again, one statement will cause excessive memory allocation etc.
Regards,
Ales
Another day, another bug … Bug 4732503 – Self-deadlock on TT enqueue
Sequence:
0) Oracle 10.2.0.2 EE
1) user scott hit his tablespace quota on tablespace users; he remains connected to the instance
2) DBA tries to add some space to the schema: alter user scott quota 2000m on users;
3) DBA session with the alter user statement will hang until scott session is not closed (or killed)
There are several variations of this scenario: alter tablespace add datafile, allocation of undo segments in undo tablespace etc.
Fixed in 10.2.0.3 / 11g R1.
Regards,
Ales
ORA-12638: Credential retrieval failed
I’m hunting down more or less a sporadic error that sometimes our users get during initial attempt to connect to Oracle server.
Some facts:
– this error was never raised on NT4 domain; it was first noticed shortly after we migrated all our clients to Active Directory
– we don’t use OS authentication, all users are using classic Oracle accounts
– we do have SQLNET.AUTHENTICATION_SERVICES = (NTS) in the sqlnet.ora on all client machines
– so far, the only workaround is to remove SQLNET.AUTHENTICATION_SERVICES = (NTS) from sqlnet.ora on all worstations
– another observation is that we usually get several trace files generated in UDUMP, such as:
Dump file d:\oracle\admin\ora\udump\orcl_ora_3920.trc Tue Aug 21 08:18:17 2007 ORACLE V10.2.0.2.0 - Production vsnsta=0 vsnsql=14 vsnxtr=3 Oracle Database 10g Enterprise Edition Release 10.2.0.2.0 - Production With the Partitioning, OLAP and Data Mining options Windows Server 2003 Version V5.2 Service Pack 1 CPU : 4 - type 586, 4 Physical Cores Process Affinity : 0x00000000 Memory (Avail/Total): Ph:2488M/8190M, Ph+PgF:4528M/10044M, VA:1411M/3071M Instance name: orcl Redo thread mounted by this instance: 1 Oracle process number: 36 Windows thread id: 3920, image: ORACLE.EXE (SHAD) opiino: Attach failed! error=-1 ifvp=00000000
– Metalink Note:399727.1 “Opiino: Attach Failed! Error=-1 Ifvp=0″ Written Many Times Per Minute In Udump File And ORA-12500 In Listener.log” doesn’t apply to our situation, because there is only one database running on the server. Also, we do not observe ORA-12500 in the listener.log – this is weird.
Based on Event Log message at the client:
Warning - LsaSrv - SPNEGO (Negotiator) - Event 40961 The Security System could not establish a secured connection with the server ldap/server.domain.com/domain.com@domain.com. No authentication protocol was available.
…I would say that this is an OS issue, not an Oracle Net bug. Google search revealed that Event 40961 is usually a consequence of miss-configured DNS (missing reverse lookup entry for the server), but not in our case. If I’ll ever find the culprit for the error I’ll update this thread with a solution.
Oracle XE with character set EE8MSWIN1250
A short memo about the procedure to change LATIN1 to LATIN2 code page in Oracle XE (I can’t remember where I originally found this tip, probably somewhere on OTN!?):
1) Make sure you download and install Oracle XE (Western European) version of XE (single byte character set) and not Universal (Unicode)
2) change the database character set to EE8MSWIN1250:
cmd> sqlplus /nolog sql> connect / as sysdba sql> SHUTDOWN IMMEDIATE; sql> STARTUP MOUNT; sql> ALTER SYSTEM ENABLE RESTRICTED SESSION; sql> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; sql> ALTER SYSTEM SET AQ_TM_PROCESSES=0; sql> ALTER DATABASE OPEN; sql> ALTER DATABASE CHARACTER SET INTERNAL_USE EE8MSWIN1250; sql> SHUTDOWN; sql> STARTUP RESTRICT; sql> SHUTDOWN; sql> STARTUP;
That’s it. Now, you have Oracle XE with EE8MSWIN1250. This can be useful if you want to support old clients (for example Oracle Forms) that doesn’t recognize AL32UTF8 code page that is used in Universal distribution.