11g Silent Installation Error

Last week I had to perform an installation of Oracle 11g on a Windows Server 2008 R2 machine. When I tried to install a 11g database with the -silent and -responsefile options, I received the following error:

[SEVERE] - Email Address Not Specified

Obviously, I needed to specify an e-mail address for My Oracle Support. Lets have a look in the responsefile:

Read the rest of this entry

MySQL: Import from CSV

Today I had to import some data from a CSV file into a table on a MySQL server.
So here is how to do it:

LOAD DATA LOCAL INFILE '/importfile.csv' 
INTO TABLE test_table 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
(field1, filed2, field3);

Source

Of course, you will need to have access to the machine where the database is running. As an alternative, I am sure there are developer tools that can enter the data remotely.

ZFS vs. Hardware RAID (RAID 10)

As I am currently fiddling around with Oracle Solaris and the related technologies, I wanted to see how the ZFS file system compares to a hardware RAID Controller. The ZFS file system allows you to configure different RAID levels such as RAID 0, 1, 10, 5, 6. In this post, I want to test the RAID 10 performance of ZFS against the performance with the HP RAID Controller (also in a RAID 10 configuration) over 4 disks.

Read the rest of this entry

Change language in SQL Developer

I keep this post mainly for my own reference, since I needed to do this multiple times already.

Edit the file sqldeveloper.conf in the bin/ directory of your SQL Developer installation and add the following lines to change the language to English:

AddVMOption -Duser.language=en
AddVMOption -Duser.country=US

Source

Our solution to ORA-12571

After a database update from 10.2.0.1.0 to 10.2.0.5 on Windows Server 2003, we encountered the ORA-12571 error when starting the Application Server. In the log files, the error showed up as an SQLException:

java.sql.SQLException: Io exception: Connection reset by peer: socket write error

I then used TNSPing to validate the connection to the database and I basically received this result:

OK
OK
OK
ORA-12571: TNS:PACKET WRITER FAILURE

This means that there is a problem with the TNS Listener. I checked the listener log ($ORACLE_HOME\network\log\listener_name.log) for errors and saw this:

Read the rest of this entry

PGA Cache Hit Percentage

This week and next week I am participating in an Oracle Architecture and Internals training at Trivadis in Berne. Today, we received an overview of Oracle (Editions, Licensing, Support) and took a first look into the Oracle Architecture. This first chunk of information included Parameters, Memory and Process Structures. While looking at the PGA structures, I noticed a graph showing “PGA Cache Hit Percentage” in relation to the sizing of the PGA.

The term “PGA Cache Hit Percentage” does not make sense, since there is no cache in the PGA. According to my training material, the PGA consists of the following structures:

Read the rest of this entry

Oracle NLS_LANG bug

When you want to use the Oracle Client for 10g on Windows and your computer uses the Swiss German Region and Language options, you will stumble across the following error when trying to connect to a database with Enterprise Manager:

Error occurred at recursive SQL level 1

Now what? It turns out that this is Oracle Bug 4598613: ORA-2248 from 10.2/10.1.0.5 client with NLS_LANG set to territory SWITZERLAND. Metalink has this to say:

ORA-604 / ORA-2248 occurs when NLS_LANG is set to 
FRENCH_SWITZERLAND.WE8ISO8859P15 on the client side , 
or a similar string using territory SWITZERLAND.
eg: GERMAN_SWITZERLAND

Solution

Set your NLS_LANG to something else than GERMAN_SWITZERLAND. For example:

set NLS_LANG=AMERICAN_AMERICA.WE8MSWIN1252

To make the change persistent, edit the following Registry key:

My Computer\HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_%ClientHomeName%\NLS_LANG

Improving Website Performance

Today I wondered how my newly purchased Virtual Server performs under load. I am currently using lighttpd as a webserver and MySQL as the database for WordPress. I already knew that MySQL features the Query Cache, which stores the result of issued queries in memory (Oracle’s equivalent of this would be the Result Cache in Oracle 11g). I wondered how much this feature could improve performance on a normal WordPress blog.

I quickly wrote a small Java program to query my website (source code available here: TestWebPerfo.java) and retrieve the performance metrics from the HTML source code. I then ran it 500 times to get my metrics without the Query Cache turned on. Average time for building the website: 0.115 seconds.

Read the rest of this entry

WordPress MySQL Permissions

Having security in mind, I had some concerns granting all privileges to the WordPress MySQL user (see the instructions from WordPress):

GRANT ALL PRIVILEGES ON databasename.* TO "wordpressusername" [..]

After all, with these privileges the WordPress user would be able to access other databases on this server and do whatever he likes. WordPress has become very popular and is a known target for exploits and the like (as a quick search on milw0rm.com will confirm). I didn’t like that idea.

So here is what I did:

GRANT SELECT, INSERT, UPDATE, CREATE, DELETE ON wordpress.* TO 'wordpress' IDENTIFIED BY 'mypass';

This works fine so far and I don’t think my WordPress installation needs more privileges. Note that the ALTER and DROP statements are missing from my list, which could interfere with future updates. But we’ll see…

Hello world

My name is Simon Krenger, I am a Technical Account Manager (TAM) at Red Hat. I advise our customers in using Kubernetes, Containers, Linux and Open Source.

Elsewhere

  1. GitHub
  2. LinkedIn
  3. GitLab