Reputation: 7809
I'm trying to install Oracle Database in (X)ubuntu 13.04 64-bit using this guide. Everything goed well until I get to the following step:
$ sudo /etc/init.d/oracle-xe configure
Oracle Database 11g Express Edition Configuration
-------------------------------------------------
This will configure on-boot properties of Oracle Database 11g Express
Edition. The following questions will determine whether the database should
be starting upon system boot, the ports it will use, and the passwords that
will be used for database accounts. Press <Enter> to accept the defaults.
Ctrl-C will abort.
Specify the HTTP port that will be used for Oracle Application Express [8080]:
Specify a port that will be used for the database listener [1521]:
Specify a password to be used for database accounts. Note that the same
password will be used for SYS and SYSTEM. Oracle recommends the use of
different passwords for each database account. This can be done after
initial configuration:
Confirm the password:
Do you want Oracle Database 11g Express Edition to be started on boot (y/n) [y]:
Starting Oracle Net Listener...Done
Configuring database...
Database Configuration failed. Look into /u01/app/oracle/product/11.2.0/xe/config/log for details
The log files show the following output:
:/u01/app/oracle/product/11.2.0/xe/config/log$ for l in *.log
> do
> echo $l
> cat $l
> done
cloneDBCreation.log
Create controlfile reuse set database "XE"
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
BEGIN dbms_backup_restore.zerodbid(0); END;
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
ORA-00845: MEMORY_TARGET not supported on this system
Create controlfile reuse set database "XE"
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
alter system enable restricted session
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
alter database "XE" open resetlogs
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
alter database rename global_name to "XE"
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
alter system switch logfile
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
alter system checkpoint
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
alter database drop logfile group 3
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/XE/temp.dbf' SIZE 20480K REUSE AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
select tablespace_name from dba_tablespaces where tablespace_name='USERS'
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
select sid, program, serial#, username from v$session
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
alter user sys identified by "oracle"
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
alter user system identified by "oracle"
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
alter system disable restricted session
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
CloneRmanRestore.log
ORA-00845: MEMORY_TARGET not supported on this system
select TO_CHAR(systimestamp,'YYYYMMDD HH:MI:SS') from dual
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
declare
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
select TO_CHAR(systimestamp,'YYYYMMDD HH:MI:SS') from dual
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
postDBCreation.log
begin
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
File created.
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
ORA-00845: MEMORY_TARGET not supported on this system
select 'utl_recomp_begin: ' || to_char(sysdate, 'HH:MI:SS') from dual
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
BEGIN utl_recomp.recomp_serial(); END;
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
select 'utl_recomp_end: ' || to_char(sysdate, 'HH:MI:SS') from dual
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
postScripts.log
CREATE OR REPLACE LIBRARY dbms_sumadv_lib AS '/u01/app/oracle/product/11.2.0/xe/lib/libqsmashr.so';
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
BEGIN dbms_datapump_utl.replace_default_dir; END;
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
commit
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
create or replace directory XMLDIR as '/u01/app/oracle/product/11.2.0/xe/rdbms/xml'
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
DROP DIRECTORY ORACLE_OCM_CONFIG_DIR
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
DROP DIRECTORY ADMIN_DIR
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
DROP DIRECTORY WORK_DIR
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
BEGIN dbms_swrf_internal.cleanup_database(cleanup_local => FALSE); END;
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
commit
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
What am I doing wrong?
Upvotes: 13
Views: 41317
Reputation: 21
I had this exact issue with Ubuntu 14.04. The issue came down to Oracle-XE expecting sufficient space at /dev/shm while ubuntu has changed to using /run/shm with a symlink from /dev/shm.
The solution that worked for me was to create the file /etc/rc2.d/S01shm_load containing:
#!/bin/sh
case "$1" in
start)
mkdir /var/lock/subsys 2>/dev/null
touch /var/lock/subsys/listener
rm /dev/shm 2>/dev/null
mkdir /dev/shm 2>/dev/null
mount -t tmpfs shmfs -o size=2048m /dev/shm ;;
*)
echo error
exit 1
;;
esac
I got this from http://sysadminnotebook.blogspot.de/2012/10/installing-oracle-11g-r2-express.html which is similar to many other pages on installing XE but was the only one with this solution.
PS. The file permissions are set at 755 so you will need to execute:
sudo chmod 755 /etc/rc2.d/S01shm_load
to set the permissions on this file.
Upvotes: 2
Reputation: 174
I struggled with this too. I have tried a few different solutions, but still got the problem. I "fixed" it by removing memory_target from the database configuration:
sqlplus / as sysdba
create pfile=‘<path>’ from spfile
!vi <path>
Add # in front of the line with memory_Target, save and close file.
startup from pfile=‘<path>'
create spfile from pfile=‘<path>’
This solution works nice with my XE database, hope it helps.
Upvotes: 2
Reputation: 1903
I was in the same boat, trying to configure XE on a virtual machine (openSUSE 13.01 64bit).
The solution in my case was the missing hostname in /etc/hosts
.
You can examine the errors in /u01/app/oracle/product/11.2.0/xe/config/log/CloneRmanRestore.log
at the very beginning (the path depends on your XE version).
Search for an info similar to:
ORA-00119: invalid specification for system parameter LOCAL_LISTENER ORA-00130: invalid listener address '(ADDRESS=(PROTOCOL=TCP)(HOST=linux-cn65.site)(PORT=1521))
So linux-cn65.site (the VM host) was missing. Add your host in /etc/hosts (as root):
127.0.0.1 linux-cn65.site
<-- your host here
and run the configuration again (as root): sh /etc/init.d/oracle-xe configure
Additional trickery
if you do not have the error files in the log folder, you may re-install XE without h flag, like this:
sudo rpm -qa | grep -i oracle
sudo rpm -e oracle-xe-11.2.0-1.0.x86_64
<-- your package hereinstall again without h flag: sudo rpm -iv oracle-xe-11.2.0-1.0.x86_64.rpm
oh, replace the version (oracle-xe-11.2.0-1.0.x86_64.rpm) with yours. Cheers ;)
Upvotes: 29
Reputation: 21
Check your /etc/hosts file. It should looks like
127.0.0.1 localhost.localdomain localhost hostname.domain hostname
http://blog.christian-stankowic.de/?p=5276&lang=en
Upvotes: 2
Reputation: 81
nano /etc/init.d/oracle-shm
add text
#! /bin/sh
# /etc/init.d/oracle-shm
#
case "$1" in
start)
echo "Starting script /etc/init.d/oracle-shm"
# Run only once at system startup
if [ -e /dev/shm/.oracle-shm ]; then
echo "/dev/shm is already mounted, nothing to do"
else
rm -f /dev/shm
mkdir /dev/shm
mount --move /run/shm /dev/shm
mount -B /dev/shm /run/shm
touch /dev/shm/.oracle-shm
fi
;;
stop)
echo "Stopping script /etc/init.d/oracle-shm"
echo "Nothing to do"
;;
*)
echo "Usage: /etc/init.d/oracle-shm {start|stop}"
exit 1
;;
esac
#
### BEGIN INIT INFO
# Provides: oracle-shm
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Bind /run/shm to /dev/shm at system startup.
# Description: Fix to allow Oracle 11g use AMM.
### END INIT INFO
make the file executable
chmod 755 /etc/init.d/oracle-shm
/etc/init.d/oracle-shm start
At this stage reboot, then check
df -kh /dev/shm
further proceed to emulate chkconfig and continue with rest of configuration and install
dpkg -i oracle-xe-11.2.0-1.0.x86_64.deb
Check the environment variables and ORACLE_HOME and start database
Upvotes: 8
Reputation: 88
There are several packages that need to be installed first, plus some kernel parameters that have to be changed before you can actually start the database. Consult Oracle's installation guide for Linux, or search Google for specific guides for Oracle 11gR2 XE on Ubuntu.
Upvotes: 0
Reputation: 14786
This link looks like it has the answer. You need to make sure that /dev/shm is mounted on your system, and assign it memory of at least MEMORY_TARGET.
You can do this by adding the following to your fstab, and rebooting. (This will set the /dev/shm size to 2gb):
shmfs /dev/shm tmpfs size=2048m 0 0
Upvotes: 1