Oracle 10g XE and OpenVZ

Posted by Double Compile. Tuesday, May 6. 2008, 06:14 PM in Databases

Last night I tried to install Oracle 10g XE on my Debian-based database server for testing purposes. Tried is the key word here.

Interestingly enough, Oracle offers a deb repository for this purpose. Add the following line to your /etc/apt/sources.list:

deb http://oss.oracle.com/debian unstable main non-free

Then execute the following commands as root (or with sudo) to add Oracle's public signing key and then install Oracle XE:

# wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle  -O- | sudo apt-key add - 
# apt-get update
# apt-get install oracle-xe

Here's the catch: my database server is an OpenVZ VPS. The Oracle installer checks for a sufficiently large swap partition and will bomb out if one of a sufficient size is not found. OpenVZ VPSs do not have a swap partition.

OpenVZ does support swap space, and that swap space can be set with barriers and limits, but the swap space is as a whole meaning that there is one swap space for the entire system, not a user-configurable swap space per-VPS.

So now comes the task of tricking the installer to think I the VPS has a swap partition, or trying to get it on there some other way.  Stay tuned for the nuttiness.

Oracle is stupid.

Defined tags for this entry: , , ,

Another log on the fire

Posted by Double Compile. Monday, April 21. 2008, 08:10 PM in Databases

If you want foreign key support in MySQL, you need to use the InnoDB storage engine. If you want fulltext index support, you need to use the MyISAM storage engine. Ain't that a bitch?

Just for the record: PostgreSQL supports them both well.

To be fair, the syntax for fulltext searching in MySQL is more simple than that of fulltext searching in PostgreSQL. Here's an example:

MySQL:

SELECT title
FROM example
WHERE MATCH (title, body) AGAINST ('foobar')

PostgreSQL:

SELECT title
FROM example
WHERE to_tsvector(title || body) @@ to_tsquery('foobar');

So while the syntax is easier, you can't use fulltext and foreign keys simultaneously in MySQL. PostgreSQL wins this battle.

Defined tags for this entry: , , , ,