Ubuntu 13.04/12.10安装Oracle 11gR2图文教程
原文标题:How to Install Oracle 11G R2 Enterprise Edition Database Ubuntu 12.10 / 12.04
注:原文出自:http://www.techienote.com/tag/oracle-database-11g-r2-on-ubuntu-12-04
Following is the how to for installing Oracle Database 11g R2 on Ubuntu 12.10 / 12.04
In case you want to install Oracle Database Express edition on Ubuntu 12.10 follow below post
How to install Oracle Database Express Edition on Ubuntu
Installing Dependencies
To install dependencies, run
sudo apt-get update
sudo apt-get install gcc make binutils gawk x11-utils rpm build-essential libaio1 libaio-dev libmotif4 libtool expat alien ksh pdksh unixODBC unixODBC-dev sysstat elfutils libelf-dev binutils lesstif2 lsb-cxx libstdc++5
We need to create some softlinks to start the installation. To do so run the following commands,
sudo ln -sf /bin/bash /bin/sh
sudo ln -s /usr/bin/awk /bin/awk
sudo ln -s /usr/bin/rpm /bin/rpm
sudo ln -s /usr/bin/basename /bin/basename
sudo ln -s /usr/lib/i386-linux-gnu/libpthread_nonshared.a /usr/lib/libpthread_nonshared.a
sudo ln -s /usr/lib/i386-linux-gnu/libc_nonshared.a /usr/lib/libc_nonshared.a
sudo ln -s /lib/i386-linux-gnu/libgcc_s.so.1 /lib/libgcc_s.so.1
sudo ln -s /usr/lib/i386-linux-gnu/libstdc++.so.6 /usr/lib/libstdc++.so.6
Also we need to add oracle user and oinstall, dba, nobody group. Run following commands,
sudo addgroup oinstall
sudo addgroup dba
sudo addgroup nobody
sudo usermod -g nobody nobody
sudo useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle
sudo mkdir /home/oracle
sudo chown -R oracle:dba /home/oracle
We need to do changes in start-up script, run following commands as root
mkdir /etc/rc.d
for i in 0 1 2 3 4 5 6 S
do ln -s /etc/rc$i.d /etc/rc.d/rc$i.d
done
Now we will create the directory for installation, and changes it owner to oracle. Run following commands to do the same
sudo mkdir -p /u01/app/oracle
sudo chown -R oracle:dba /u01
We also need to modify the kernel parameter, to do so run following commands as root
echo “#”>> /etc/sysctl.conf
echo “# Oracle 11gR2 entries”>> /etc/sysctl.conf
echo “fs.aio-max-nr=1048576″ >> /etc/sysctl.conf
echo “fs.file-max=6815744″ >> /etc/sysctl.conf
echo “kernel.shmall=2097152″ >> /etc/sysctl.conf
echo “kernel.shmmni=4096″ >> /etc/sysctl.conf
echo “kernel.sem=250 32000 100 128″ >> /etc/sysctl.conf
echo “net.ipv4.ip_local_port_range=9000 65500″ >> /etc/sysctl.conf
echo “net.core.rmem_default=262144″ >> /etc/sysctl.conf
echo “net.core.rmem_max=4194304″ >> /etc/sysctl.conf
echo “net.core.wmem_default=262144″ >> /etc/sysctl.conf
echo “net.core.wmem_max=1048586″ >> /etc/sysctl.conf
echo “kernel.shmmax=1073741824″ >> /etc/sysctl.conf
Note: kernel.shmmax = max possible value, e.g. size of physical memory in bytes. In my case machine is having 2GB so we are specifying 1GB. Adjust the parameter as per your configuration
Load new kernel parameters, by running following,
sudo sysctl -p
We have to change shell configuration, to do the same run following commands as root user,
cp /etc/security/limits.conf /etc/security/limits.conf.original
echo “#Oracle 11gR2 shell limits:”>>/etc/security/limits.conf
echo “oracle soft nproc 2048″>>/etc/security/limits.conf
echo “oracle hard nproc 16384″>>/etc/security/limits.conf
echo “oracle soft nofile 1024″>>/etc/security/limits.conf
echo “oracle hard nofile 65536″>>/etc/security/limits.conf
Download Oracle 11g R2 database from Oracle Download Center for linux.
I have downloaded both the zip in /home/oracle. We need to extract both the zip to start the installation. To unzip run,
cd /home/oracle
unzip linux_11gR2_database_1of2.zip
unzip linux_11gR2_database_2of2.zip
Now we will start the installation. You can start the installation from /home/oracle/database.
Login as a oracle user.
su oracle
Go to the binaries and start the installation as a oracle user,
cd /home/oracle
chmod 777 -R database
cd database
./runInstaller -ignoreSysPrereqs
ignoreSysPrereqs
Next we go though the installation (I don’t have the “Oracle Support Password” so just skip in here):
In “Selection Installation Option”, choose “Create and configure a database”:
In “System Class”, choose “Server Class” (we hope to give a full control during installation):
In “Node Selection”, choose “Single instance database installation”:
In “Select Install Type”, choose “Advanced install”:
In “Select Product Languages”, I choose to install “English” language:
In “Select Database Edition”, I choose “Enterprise Edition”:
In “Specify Installation Location”, it should default as below:
Oracle Base: /u01/app/oracle
SofewareLocation: /u01/app/oracle/product/11.2.0/dbhome_1
In “Create Inventory”, it should default as below:
Inventory Directory: /u01/app/oraInventory
oraInventory Group Name: oinstall
In “Select Configure Type”, choose “General Purpose / Transaction Processing”:
(IMPORTANT!) In “Specify Database Identifiers”, configure as below:
Global database name: orcl.techienote.com
Oracle Service Identifier (SID): orcl
In “Specify Configuration Options”, configure as below:
Memory -> Enable Automatic Memory Management:
TRUE
Character sets: Use Unicode (AL32UTF8)
In “Specify Management Options”, choose “Use Database Control for database management” but keep other else empty:
In “Specify Database Storage Options”, choose “File System” where:
Specify database file location: /u01/app/oracle/oradata
In “Specify Recovery Options”, choose “Do not enable automated backups”:
In “Specify Schema Passwords”, I am a bit lazy so choose “Use the same password for all accounts” (don’t do this in production server!):
In “Privileged Operating System Groups”, confirm as below:
Database Administrator (OSDBA) Group: dba
Database Operator (OSOPER) Group: oinstall
In “Preform Prerequisite Checks”, just simply ignore all warning message (since we are using Debian but not Oracle officially supported OS):
So just confirm everything in “Summary”:
And now let’s go for a coffee break
Now following the instructions and run the following commands with “root” user:
/u01/app/oraInventory/orainstRoot.sh /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
Ok you get it!
Confirm with installation progress
In previous screen the installer mentioned that we can access “Enterprise Manager Database Control URL” from https://localhost:1158/em, so now let’s open the browser and test it with following account:
User Name: SYS
Password: your_secret_password Connect As: SYSDBA
Once login it should show as below:
Error which I faced at the time of installation :
Error No 1 :
INFO: Building Client Shared Libraries INFO: Building Client Shared Libraries INFO: The output of this make operation is also available at: ‘/u01/app/oracle/product/11.2.0/dbhome_1/install/make.log‘ INFO: INFO: Start output from spawned process: INFO: ---------------------------------- INFO: INFO: /u01/app/oracle/product/11.2.0/dbhome_1/bin/genclntsh INFO: / INFO: usr INFO: / INFO: bin/ld: cannot find /usr/lib/libpthread_nonshared.a INFO: inside collect2: INFO: ld returned 1 exit status INFO: INFO: genclntsh: Failed to link libclntsh.so.11.1 INFO: make: INFO: *** [client_sharedlib] Error 1 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target ‘client_sharedlib‘ of makefile ‘/u01/app/oracle/product/11.2.0/dbhome_1/rdbms/lib/ins_rdbms.mk‘. See ‘/u01/app/oraInventory/logs/installActions2012-05-08_10-11-08PM.log‘ for details. Exception Severity: 1 <pre> Solution for problem 1 is as follows : <pre lang="bash"> wget http://security.ubuntu.com/ubuntu/pool/universe/i/ia32-libs/ia32-libs_2.2ubuntu10_amd64.deb dpkg-deb -x ia32-libs_2.2ubuntu10_amd64.deb ia32-libs cp ia32-libs/usr/lib32/libstdc++.so.5.0.7 /usr/lib/ cd /usr/lib ln -s libstdc++.so.5.0.7 libstdc++.so.5 ln -s /usr/lib/i386-linux-gnu/libpthread_nonshared.a /usr/lib/libpthread_nonshared.a
Error No 2 :
INFO: / INFO: usr INFO: / INFO: bin INFO: /ld: warning: -z lazyload ignored. /usr/bin/ld: INFO: warning INFO: : -z nolazyload ignored. /usr/bin/ld: /u01/app/oracle/product INFO: /11.2.0/dbhome_1/sysman/lib//libnmectl.a(nmectlt.o): undefined reference to symbol ‘B_DestroyKeyObject‘ INFO: INFO: /usr/bin/ld: note: ‘B_DestroyKeyObject‘ is defined in DSO /u01 INFO: /app/oracle/product/11.2.0/dbhome_1/lib/libnnz11.so so try adding it to the INFO: linker INFO: INFO: command line /u01/app/oracle/product/11.2.0/dbhome_1/lib/libnnz11.so: could INFO: INFO: not read symbols: Invalid operation collect2: INFO: ld returned 1 exit status INFO: INFO: make[1]: Leaving directory `/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib‘ INFO: make[1]: *** [/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/emdctl] Error 1 make: *** [emdctl] Error 2 INFO: End output from spawned process. INFO: ---------------------------------- INFO: Exception thrown from action: make Exception Name: MakefileException Exception String: Error in invoking target ‘agent nmhs‘ of makefile ‘/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk‘. See ‘/u01/app/oraInventory/logs/installActions2012-05-08_10-11-08PM.log‘ for details. Exception Severity: 1
Solution for problem 2 is as follows :
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1/ sed -i ‘s/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g‘ $ORACLE_HOME/sysman/lib/ins_emagent.mk sed -i ‘s/^\(\$LD \$LD_RUNTIME\) \(\$LD_OPT\)/\1 -Wl,--no-as-needed \2/g‘ $ORACLE_HOME/bin/genorasdksh sed -i ‘s/^\(\s*\)\(\$(OCRLIBS_DEFAULT)\)/\1 -Wl,--no-as-needed \2/g‘ $ORACLE_HOME/srvm/lib/ins_srvm.mk sed -i ‘s/^\(TNSLSNR_LINKLINE.*\$(TNSLSNR_OFILES)\) \(\$(LINKTTLIBS)\)/\1 -Wl,--no-as-needed \2/g‘ $ORACLE_HOME/network/lib/env_network.mk sed -i ‘s/^\(ORACLE_LINKLINE.*\$(ORACLE_LINKER)\) \(\$(PL_FLAGS)\)/\1 -Wl,--no-as-needed \2/g‘ $ORACLE_HOME/rdbms/lib/env_rdbms.mk http://blog.csdn.net/whatnamecaniuse/article/details/43730273