LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 698|回复: 1

困扰已久的问题:oracle9.2.0.1 on redhat AS 2.1

[复制链接]
发表于 2003-5-13 15:24:47 | 显示全部楼层 |阅读模式
1.正确安装了redhat AS 2.1;
2.调整了shmmax到134217728(内存256M);
3.安装oracle(没有创建数据库),没有错误.
4.用dbca创建数据库,在creating and starting oracle instance的时候,出错了:ora-03113:end-of-file on communication channel

有没有真正在redhat AS 2.1上面安装成功的阿?
看了这上面所有的帖子,还是不行。。。。。。郁闷已久阿,同志们!!!!
发表于 2003-5-15 16:36:03 | 显示全部楼层
帮你个忙吧,我照这个做是成功的。

Oracle 9i Installation on Red Hat Linux 7.1, 7.2, 7.3, and on Red Hat 2.1 Advanced Server

Here is a summary (HOWTO) of how I installed:
Oracle 9iR2 (9.2.0) Database on Red Hat 7.3 (kernel 2.4.18-3, glibc 2.2.5-34)
Oracle 9iR1 (9.0.1) Database on Red Hat 7.3 (kernel 2.4.18-3, glibc 2.2.5-34)
Oracle 9iR1 (9.0.1) Database on Red Hat 7.2 (kernel 2.4.7-10, glibc 2.2.4-13)
Oracle 9iR1 (9.0.1) Database on Red Hat 7.1 (kernel 2.4.2-2, glibc 2.2.2-10)
I have not installed Oracle 9iR2 on RedHat 2.1 Advanced Server yet, but I have included some information which might be helpful.

Some of the Oracle errors and problems covered here were only experienced in connection with 9i (9.0.1) and some only with 9iR2 (9.2.0). But since I cannot say for sure that a 9i (9.0.1) installation error will never show up during 9iR2 (9.2.0) installation, I simply kept all errors and problems listed together, see Oracle Installation Errors and Oracle Installation Problems, Important Tips and Hints.


NOTE:
Red Hat 7.1 has been validated for Oracle9i Database and for Oracle9i Application Server, see " Red Hat Announces Validation of Red Hat Linux For Oracle ." Release 2 of Oracle 9i Database and Application Server, and Oracle E-Business Suite 11.5.7 have been certified on Red Hat Linux Advanced Server, see " Oracle and Red Hat Collaborate to Develop Enhanced Enterprise Capabilites for Red Hat Linux Advanced Server."


Documentation

Oracle9i Database Documentation for Linux
Oracle9iR2 on Linux: Performance, Reliability and Manageability Enhancements on Red Hat Linux Advanced Server 2.1
An Overview of Red Hat Advanced Server V2.1 Reliability, Availability, Scalability, and Manageability (RASM) Features

Oracle Performance Tuning on Linux (Part I) (Simple ways to achieve Oracle performance improvements)
The RAW Facts on Filesystems (Part II) (Ways to achieve Linux performance improvements for databases in general)


Downloading and Installing Red Hat Linux 7.1, 7.2 and/or 7.3

To download Red Hat Linux 7.x, check the links at http://www.puschitz.com/RedhatDownload.html
You can find the installation guides for installing Red Hat Linux under Red Hat Linux Manuals.

NOTE: You cannot download Red Hat Linux Advanced Server 2.1, you can only download the source code. If you want to get the binary CDs, you will have to buy it at http://www.redhat.com/software/linux/advanced/.


Unpacking Downloaded Oracle9i Installation Files and Burning Oracle9i CDs

Download Oracle9i for Linux from the following web site:
http://otn.oracle.com/software/prod.../linuxsoft.html

Uncompress and unpack downloaded files:

For Oracle9i (9.2.0):

One step procedure (uses less disk space and is faster):
zcat lnx_920_disk1.cpio.gz | cpio -idmv
zcat lnx_920_disk2.cpio.gz | cpio -idmv
zcat lnx_920_disk3.cpio.gz | cpio -idmv

Two step procedure:
# Uncompress
gunzip lnx_920_disk1.cpio.gz lnx_920_disk2.cpio.gz lnx_920_disk3.cpio.gz Linux9i_Disk3.cpio.gz
# Unpack the downloaded files:
cpio -idmv < lnx_920_disk1.cpio
cpio -idmv < lnx_920_disk2.cpio
cpio -idmv < lnx_920_disk3.cpio

For Oracle9i (9.0.1):

One step procedure (uses less disk space and is faster):
zcat Linux9i_Disk1.cpio.gz | cpio -idmv
zcat Linux9i_Disk2.cpio.gz | cpio -idmv
zcat Linux9i_Disk3.cpio.gz | cpio -idmv

Two step procedure:
# Uncompress
gunzip Linux9i_Disk1.cpio.gz Linux9i_Disk2.cpio.gz Linux9i_Disk3.cpio.gz
# Unpack the downloaded files:
cpio -idmv < Linux9i_Disk1.cpio
cpio -idmv < Linux9i_Disk2.cpio
cpio -idmv < Linux9i_Disk3.cpio


Now you should have 3 directories containing installation files:
Disk1
Disk2
Disk3

I executed the following commands when I burned the 3 CDs with my external USB CD Burner HP-8230e:
mkisofs -r Disk1 | cdrecord -v --eject dev=0,0,0 speed=4 -
mkisofs -r Disk2 | cdrecord -v --eject dev=0,0,0 speed=4 -
mkisofs -r Disk3 | cdrecord -v --eject dev=0,0,0 speed=4 -

(You can get the dev numbers when you execute cdrecord -scanbus ).


Swap Space

In order to perform a typical Oracle 9i installation and to create a simple prototype database, Oracle says that you need a minimum of 512MB of RAM for the Oracle9i (9.0.1) Server, and the amount of disk space (swap space) should be equal to twice the amount of RAM or at least 400 MB, whichever is greater.
When I installed Oracle 9i (9.0.1 & 9.2.0), I used 600 MB of swap space on a PC with 256MB of RAM which worked for me. When I used less swap space on this PC (256MB RAM), I ran out of memory. I definitely recommend to use more RAM and/or more swap space as specified in the Oracle installation guide.
NOTE: If you do not have enough swap space or RAM during the Oracle installation, in particular during the database creation, your Oracle server (Linux) will temporarily become unresponsive to any events for several minutes."

Check your memory by executing:
grep MemTotal /proc/meminfo

Check swap space by executing:
cat /proc/swaps

You can also add temporary swap space by creating a temporary swap file instead of using a raw device. Here is the procedure:

As root:
dd if=/dev/zero of=tmpswap bs=1k count=900000
chmod 600 tmpswap
mkswap tmpswap
swapon tmpswap


To disable the temporary swap space execute the following commands:

As root:
swapoff tmpswap
rm tmpswap


Shared Memory

For Oracle 9i (9.2.0) installation I had to temporarely increase the maximum shared memory size on my Linux server. The Oracle Database Configuration Assistant printed the following error message on my server:

ORA-27123: unable to attach to shared memory segment.

I temporarely increased the shmmax setting for the kernel by executing the following command:


As root:
# cat /proc/sys/kernel/shmmax
33554432
# echo `expr 1024 \* 1024 \* 1024` > /proc/sys/kernel/shmmax
# cat /proc/sys/kernel/shmmax
1073741824
#

For more information, see Oracle Installation Errors.


/tmp Space

The Oracle Universal Installer requires up to 400 MB of free space in the /tmp directory. If you do not have enough space in the /tmp directory, you can temporarily create a tmp directory in another filesystem. Here is how you can do this:

As root:
mkdir /<AnotherFilesystem>/tmp
chown root.root /<AnotherFilesystem>/tmp
chmod 1777 /<AnotherFilesystem>/tmp
export TEMP=/<AnotherFilesystem>/tmp # used by Oracle
export TMPDIR=/<AnotherFilesystem>/tmp # used by Linux programs like the linker "ld"

When you are done with your Oracle installation, shutdown Oracle and remove the temporary directory:
rmdir /<AnotherFilesystem>/tmp
unset TEMP
unset TMPDIR


Oracle Disk Space

You will need about 2.5 GB for the database software. If you perform a typical database installation and not a customized database installation, then you will need about 3.5 GB of disk space.

"binutils" Issue

I did NOT had this problem with Oracle 9i (9.2.0), but only with Oracle 9i (9.0.1).

The binutils package that comes with Red Hat 7.1, 7.2, 7.3, and with RedHat 2.1 Advanced Server doesn't work with Oracle 9i (9.0.1) Universal Installer.
Here are the options you have for 9.0.1:

Wait for the following Oracle installation error to make a minor change in an Oracle file (it's very easy):
"Error invoking target install of makefile /opt/oracle/product/9.0.1/plsql/lib/ins_plsql.mk"
See Running Oracle Installation and Oracle Installation Errors for more information.
I recommend this approach. This obviates the need to change binutils.
Or download the following binutil RPM version and downgrade binutil on the Oracle server:
ftp://ftp.redhat.com/pub/redhat/lin...0.18-1.i386.rpm
As root:
rpm -Uvh --force --nodeps binutils-2.10.0.18-1.i386.rpm
When you are done with the Oracle installation, you upgrade your binutil RPM back to the version you had before you downgraded:
E.g. on a Red Hat 7.2 server:
rpm -Uvh --force --nodeps binutils-2.11.90.0.8-9.i386.rpm

Here is Oracle's official solution for Oracle 9iR1 or 9iR1 iAS on RedHat 2.1 Advanced Server:
http://otn.oracle.com/software/prod...ils_readme.html

Install JDK

Download JDK 1.3.1 or Blackdown 1.1.8_v3: (I always use Blackdown)
http://www.blackdown.org/
http://java.sun.com/

According to JDK documentation, install JDK under /usr/local .
Then create a symbolic link to the JDK under /usr/local/java :

As root:
bzip2 -dc jdk118_v3-glibc-2.1.3.tar.bz2 | tar xf - -C /usr/local
ln -s /usr/local/jdk118_v3 /usr/local/java


Create Oracle User Accounts

As root:

groupadd dba
groupadd oinstall
useradd -g oinstall -G dba oracle
passwd oracle


For more information on the "oinstall" user account, see When to use "OINSTALL" group during install of oracle.


Create Oracle Directories

As root:

mkdir /opt/oracle
mkdir /opt/oracle/product
mkdir /opt/oracle/product/9.2.0
chown -R oracle.oinstall /opt/oracle

mkdir /var/opt/oracle
chown oracle.dba /var/opt/oracle
chmod 755 /var/opt/oracle


Set Oracle Environments

Set the following Oracle environment variables before you start runInstaller.

As the oracle user execute the following commands:

# Oracle Environment
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/9.2.0
export ORACLE_SID=test
export ORACLE_TERM=xterm
#export TNS_ADMIN= Set if sqlnet.ora, tnsnames.ora, etc. are not in $ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN;
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH

# Set shell search paths
export PATH=$PATHORACLE_HOME/bin


# CLASSPATH:
CLASSPATH=$ORACLE_HOME/JREORACLE_HOME/jlibORACLE_HOME/rdbms/jlib
CLASSPATH=$CLASSPATHORACLE_HOME/network/jlib


You can put these environment settings at the end of the ~oracle/.bash_profile file if you use bash. By this way you don't have to set the environment variables again when you login as "oracle" or when you switch to the user "oracle" by executing "su - oracle".


Start runInstaller

Before you execute runInstaller, make sure you set all the Oracle environment variables, see above.

Oracle no longer supports a character mode installer. Therefore, in order to execute runInstaller directly from a console of a machine you are logged into (in this example the node name where Oracle is running is called "oracleserver"), you need to set the DISPLAY environment variable. Before you do that, make sure you also allow runInstaller on " oracleserver " to display X information to your Linux desktop machine (in this example, the PC name where you are running X Windows like KDE or GNOME is called " yourdesktop ") , because programs running on remote machines cannot display information to your screen unless you give them the authority to do so. Note that the X display relink mechanism does not work for NT desktop machines unless you use Exceed.
If you install Oracle on your desktop PC and not on a remote node, then you can skip step 1 and 2.

Step 1: E.g. allow "oracleserver" to display X information to your desktop PC "yourdesktop":
yourdesktop:user$ xhost +oracleserver

Step 2: From the console of your Oracle server "oracleserver " you are logged into, execute the following command as user " oracle ":
oracleserver:Oracle$ export DISPLAY=yourdesktop:0.0

Step 3a: From your burned CD Disk 1, execute runInstaller (do not cd to /mnt/cdrom !):
As root:
oracleserver:root# mount /mnt/cdrom
As oracle:
# Before starting runInstaller, try maybe to execute e.g. 'xterm' to see if your X setup is really working!
oracleserver:Oracle$ /mnt/cdrom/runInstaller

Step 3b: Or wherever you unpacked your downloaded files:
oracleserver:Oracle$ Disk1/runInstaller


Running Oracle Installation

This is how I answered the questions in the runInstaller:

What would you like as the base directory (Inventory Location):
/opt/oracle/oraInventory

UNIX Group Name (permission for updating Oracle software):
oinstall
You could also use "dba" which I do not recommend for security reasons. For more information on the "oinstall" user account, see When to use "OINSTALL" group during install of oracle.

Full path name for Oracle Home:
/opt/oracle/product/9.2.0

Oracle Home Name:
OUIHome

JDK Home Directory:
/usr/local/java

etc.

NOTE:
Keep in mind that you might get the following installation problems when you install Oracle 9i (9.2.0):
- A shared memory problem: "unable to attach to shared memory segment"
- A makefile problem: e.g. "Error in invoking target install of makefile /opt/oracle/product/9.2.0/ctx/lib/ins_ctx.mk"
See Oracle Installation Errors for more information.


Startup and Shutdown of Oracle 9i Database

sqlplus:

svrmgrl is not supported any more. You can now do everything with sqlplus.

E.g., to startup the database, execute the following commands:
dba$ sqlplus /nolog
SQL> connect / as sysdba
SQL> startup

The slash connects you to the schema owned by SYS. So in this example we are saying that we want to connect to the schema owned by SYS with the privilege SYSDBA. SYSDBA gives you the following privileges:
sysoper privileges WITH ADMIN OPTION
create database
recover database until

$ORACLE_HOME/bin/dbstart and $ORACLE_HOME/bin/dbshut :

You can also use $ORACLE_HOME/bin/dbstart to startup the database, and $ORACLE_HOME/bin/dbshut to shutdown the database. You can place $ORACLE_HOME/bin/dbstart into the /etc/rc.d/rc.local boot script to automatically bring up the database at system boot time. To get $ORACLE_HOME/bin/dbstart and $ORACLE_HOME/bin/dbshut working, you need to change the third field for your Oracle SID in /etc/oratab from "N" to "Y".

E.g. for the Oracle SID "test" I changed the line in /etc/oratab from
test:/opt/oracle/product/9.2.0:N
to read
test:/opt/oracle/product/9.2.0:Y

For 9.2.0, I also had to copy the init file for my SID "test" from /opt/oracle/admin/test/pfile to $ORACLE_HOME/dbs to get dbstart and dbshut working:
cp /opt/oracle/admin/test/pfile/inittest.ora.642002224936 $ORACLE_HOME/dbs/inittest.ora
But first check if your init file already exists in $ORACLE_HOME/dbs.

Oracle Installation Problems, Important Tips and Hints

Some of these may only apply to 9.0.1!
Do not cd to /mnt/cdrom to run ./runInstaller!
If you do so, the installation will fail because you won't be able to change the CDs.

If you forgot to set the DISPLAY environment variable (e.g. export DISPLAY=oracleserver:0.0) , or if you forgot to give the remote console - your Oracle Server - authority to display X information on your desktop PC (e.g. xhost +oracleserver ), you will get the following error:
Xlib: connection to ":0.0" refused by server
Xlib: Client is not authorized to connect to Server
In this case, I always had to kill runInstaller which was still running in the background! If you don't do this, runInstaller will not completely come up any more and you will not see any error messages that runInstaller is having problems.
You might also want to clean up /tmp/OraInstall (9.0.1):
rm -rf /tmp/OraInstall

When runInstaller starts to configure the tools ("Configuration Tools"), the "Oracle Net Configuration Assistant" will sometimes hang. Simply stop the Assistant and restart it, or continue the installation. When the rest of the installation is finished, do a "Retry" for "Oracle Net Configuration Assistant". This always worked for me.
When the system stops to respond during the Oracle installation, in particular during the database creation, then it is probably because you don't have enough RAM or enough swap space. I noticed that the whole system will not respond (or "hang") for several minutes when I did not have enough swap space. If this happens, simply wait until the system starts to respond again.
The Oracle installation also runs make etc. In a production environment you might not have compilers and other development packages installed. Therefore make sure you have temporarily the following packages installed: gcc, cpp, egcs, egcs-c++, glibc-devel, kernel-headers. (I'm not sure though if all of these packages have to be on the system during the Oracle installation.)
If for any reason the Oracle installation didn't finish successfully, you might want to clean up the following files and directories before you restart over again:
rm -rf /etc/oraInst.loc /etc/oratab /tmp/OraInstall
/tmp/<OtherOracleOwnedFiles>
$ORACLE_BASE/*
Other Problems:
You might want to check out the Linux Discussion Group or the Linux Forum, respectively, at http://technet.oracle.com/support/h...iscussions.htm.

Oracle Installation Errors

Here is a list of Oracle 9i (9.0.1 & 9.2.0) installation problems that I have experienced and that have been posted by other people. Some problems/solutions only apply to 9.0.1 and some only to 9.2.0. Since I did not experience all of these problems, I am not able to verify the correctness of all solutions.
If you had other problems and you were able to resolve them, then please send me an email at webmaster @puschitz.com so that I can add it to the list.

First check always the error logs in /tmp/OraInstall for 9.2.0, e.g /tmp/OraInstall2002-07-04_09-50-19PM, and in /tmp/OraInstall for 9.0.1. When you get make problems check also $ORACLE_HOME/install/make.log.


"Various make Problems"
Make sure that gcc is installed on your system:
$ which gcc
/usr/bin/gcc

This is the RPM name for /usr/bin/gcc:
$ rpm -qf /usr/bin/gcc
gcc-2.96-98

Check also the other error messages below.


"Error in invoking target install of makefile /opt/oracle/product/9.2.0/ctx/lib/ins_ctx.mk"

I saw this error only in connection with Oracle 9i R2 (9.2.0) installation.

The following errors showed up in $ORACLE_HOME/install/make.log:

/lib/libdl.so.2: undefined reference to `_dl_addr@GLIBC_PRIVATE'
/lib/libdl.so.2: undefined reference to `_dl_open@GLIBC_PRIVATE'
/lib/libdl.so.2: undefined reference to `_dl_close@GLIBC_PRIVATE'
/lib/libdl.so.2: undefined reference to `_dl_sym@GLIBC_PRIVATE'
/lib/libdl.so.2: undefined reference to `_dl_vsym@GLIBC_PRIVATE'
It happens when the following step is executed:
/usr/bin/make -f ins_ctx.mk install ORACLE_HOME=/opt/oracle/product/9.2.0

Edit $ORACLE_HOME/ctx/lib/env_ctx.mk and go to "INSO_LINK =", add a "$(LDLIBFLAG)dl" to the line and save it.

Here is the full line with the added "$(LDLIBFLAG)dl" flag:
INSO_LINK = -L$(CTXLIB) $(LDLIBFLAG)m $(LDLIBFLAG)dl $(LDLIBFLAG)sc_ca $(LDLIBFLAG)sc_fa $(LDLIBFLAG)sc_ex $(LDLIBFLAG)sc_da $(LDLIBFLAG)sc_ut $(LDLIBFLAG)sc_ch $(LDLIBFLAG)sc_fi $(LLIBCTXHX) $(LDLIBFLAG)c -Wl,-rpath,$(CTXHOME)lib $(CORELIBS) $(COMPEOBJS)

After that hit retry in the error popup.


ORA-27123: unable to attach to shared memory segment.

I saw this error only in connection with Oracle 9i R2 (9.2.0) installation.

This error message showed up when the Oracle Database Configuration Assistant was running. I executed the following command to temporarely increase the maximum shared memory size:

As root:
# cat /proc/sys/kernel/shmmax
33554432
# echo `expr 1024 \* 1024 \* 1024` > /proc/sys/kernel/shmmax
# cat /proc/sys/kernel/shmmax
1073741824
#

Then click "Retry" for the Oracle Database Configuration Assistant.

If you want to increase the maximum shared memory size permanently, add the following line to the /etc/sysctl.conf file:
kernel.shmmax=1073741824

I'm not quiet sure yet what the maximum size of the shared memory really should be. Also when you combine the Installation Guide with the Release Notes, you will see that other parameter(s) need to be changed as well. As soon as I have taken a closer look at these issues, I will post the results here. But the temporary increase of the maximum shared memory size should keep you going to get Oracle9i (9.2.0) installed.



"Error invoking target install of makefile /opt/oracle/product/9.0.1/plsql/lib/ins_plsql.mk"
"Error invoking target install of makefile /opt/oracle/product/9.0.1/precomp/lib/ins-precomp.mk"
"Error invoking target install of makefile /opt/oracle/product/9.0.1/precomp/lib/ins-net-client"
"Error invoking target install of makefile /opt/oracle/product/9.0.1/precomp/lib/ins-oemagent"

I saw this error only in connection with Oracle 9i (9.0.1) installation.

Edit the file $ORACLE_HOME/bin/genclntsh and change the following line (people have sent me emails pointing out that this also works for Mandrake 8.1 and Mandrake 8.2):
LD_SELF_CONTAINED="-z defs"
to read:
LD_SELF_CONTAINED=""

Then run the script $ORACLE_HOME/bin/genclntsh as the user "oracle" and not as the user "root". Also make sure you have all the Oracle environments set! (I got so many emails because people were not doing this)
$ su - oracle
$ $ORACLE_HOME/bin/genclntsh
Created /opt/oracle/product/9.0.1/lib/libclntst9.a
$
After that hit retry in the error popup. This always worked for me.

Here is Oracle's official solution for Oracle 9iR1 or 9iR1 iAS on RedHat 2.1 Advanced Server:
http://otn.oracle.com/software/prod...ils_readme.html


Can't find init file for Database "SID".
I saw this error only in connection with Oracle 9i R2 (9.2.0) when It tried to start the database with dbstart.

I copied the init file for my SID "test" from /opt/oracle/admin/test/pfile to $ORACLE_HOME/dbs to get dbstart and dbshut working:
cp /opt/oracle/admin/test/pfile/inittest.ora.642002224936 $ORACLE_HOME/dbs/inittest.ora


"Error in setting permissions of file/directory /opt/oracle/jre/1.1.8/bin/i686/native_threads/.extract_args"
First of all, make sure you really installed the right version of Java (JDK 1.3.1 or Blackdown 1.1.8_v3) in /usr/local/java. If not, see Install JDK and try to install Oracle again.
While the error dialog is open, manually find and copy the .extract_args file from your installed jre to where runInstaller complains it is missing.


"jre was not found in /tmp/OraInstall/jre/bin/i586/green_threads/jre"
You are probably running runInstaller on a 586 machine, or your AMD CPU gets recognized as 586 (e.g. AMD K6-III-400). You can check your machine (hardware) type by executing uname -m .
To rectify this problem, create a link for lib and bin from i586 to i686 and make the i686 directories read only:
E.g.
ln -s /tmp/OraInstall/jre/bin/i686 /tmp/OraInstall/jre/bin/i586
ln -s /tmp/OraInstall/jre/lib/i686 /tmp/OraInstall/jre/lib/i586
chmod u-w /tmp/OraInstall/jre/bin/i686 /tmp/OraInstall/jre/lib/i686
Now restart runInstaller.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表