设为首页 收藏本站
查看: 794|回复: 0

[经验分享] Install Oracle 11g in my Ubuntu Linux 8.

[复制链接]

尚未签到

发表于 2016-3-16 12:56:43 | 显示全部楼层 |阅读模式
Installing Oracle 11g on Ubuntu Linux 8
  I take this chapter from internet and install Oracle 11g in Ubuntu Linux 8.
  
  One little issue is that Ubuntu is unsupported by Oracle. So, through this text, we will trick the Oracle installer into thinking it’s actually running on a Red Hat box.

Step Zero
  This tutorial was based on a document which can be found here
. I have adapted it for Oracle 11g.
  Get a copy of Ubuntu 8 and install on a machine. I’m using the 32-bit version here (as well as for Oracle). Next, make sure your system is up-to-date. A simple apt-get updatefollowed by a apt-get upgradewill do the trick, although you may prefer using the GUI Synaptic Package Manager — it’s entirely up to you what method you choose. However, I much prefer to use the command line.
  As you go through updates, sometimes a reboot will be needed (usually to boot from a newer, recently-updated kernel). Sometimes it’ll just ask you to restart your web browser or some other program as a new version is installed.
  It’s important to have a few gigabytes of free disk space and a total of 1 GB of memory before starting this. This 1 GB of memory can be RAM alone or the combination of RAM and swap space. Of course, since everything runs faster when in RAM, the more of it, the better.
  Very important: get Java running before trying to move on.My guess is that almost any JRE (java runtime) or JDK (java development kit) will work. I’m not sure which is the minimum version required: I used Sun JDK 1.5.

Step One
  Install some system requirements. There are a few packages that I had to install on this box (it was a recently installed system which didn’t have all these packages). After several attempts of installing Oracle, the equivalent command-line for installing all the necessary packages at once was something like this:

# sudo apt-get install gcc make binutils lesstif2 libc6 libc6-dev rpm libmotif3 libaio libstdc++5 gawk alien libg++2.8.1.3-glibc2.2 ksh gcc-3.3 g++-3.3 libstdc++5

  It’s possible that when installing the packages mentioned above, the installer will install some other prerequisites as well, as these packages themselves may have prerequisites.
  
  Note:

  1. The update manager can't find libaio. Please install libaio1.

  2. Then universal installer of Oracle 11g need glibc installed, acutally glibc is equivalent to the libc6. So just make libc6 work. And during installing Oracle 11g, check the checkbox before glibc checking item and get proceeded to install with ignoring the checking error.

  3. Can't find libg++2.8.1.3-glibc2.2, ignore it.

  4. I use the sudo apt-get install build-enssential
, then ubuntu corruptted, so pay more attention on it.



Step Two
  Choose where you are going to install your Oracle 11g server and create the ORACLE_BASEdirectory. This is the place where Oracle will be installed. Make sure there is at least3 GB on the partition/mount point before moving to the next step. After installed, my basic installation took about 3.4 GB on disk (without the starter database!). As your database grows, it will need more space. Reserve a total of at least 6 GB for the unpacked installer and the basic installation. You can get rid of the installer files afterwards.

# sudo mkdir -p /opt/oracle

Step Three
  Add a few users and change groups to make the installer more comfortable. Remember, we are tricking the installer to think it’s installing on a Red Hat box.

# sudo addgroup oinstall
# sudo addgroup dba
# sudo addgroup nobody
# sudo useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash -m oracle




# sudo usermod -g nobody nobody

  The usermodcommand is needed since because when running, the installer looks for a user called nobodywhich is part of a group named nobody(in Ubuntu, the user nobodyit’s assigned to nogroupby default).

Step Four
  Make some symlinks. Apparently, the installer uses absolute paths, so it must find the binaries in the right places.

# sudo ln -s /usr/bin/awk /bin/awk
#sudo  ln -s /usr/bin/rpm /bin/rpm
# sudo ln -s /usr/bin/basename /bin/basename

Step Five
  We need to mimic the /etc/rc.ddirectory structure of a Red Hat box. We do this with more symlinks:

#sudo mkdir /etc/rc.d
#sudo  ln -s /etc/rc0.d /etc/rc.d/rc0.d
#sudo ln -s /etc/rc1.d /etc/rc.d/rc1.d
#sudo  ln -s /etc/rc2.d /etc/rc.d/rc2.d
#sudo  ln -s /etc/rc3.d /etc/rc.d/rc3.d
#sudo  ln -s /etc/rc4.d /etc/rc.d/rc4.d
#sudo  ln -s /etc/rc5.d /etc/rc.d/rc5.d
#sudo  ln -s /etc/rc6.d /etc/rc.d/rc6.d
#sudo  ln -s /etc/init.d /etc/rc.d/init.d

Step Six
  I’ve created a file called /etc/redhat-releaseand put only one line on it. The same can be achieved by issuing the following as root:
  

echo "Red Hat Linux release 4" > /etc/redhat-release

  Note:

  1.It doesn't work. Please do it in another way.

      (1) sudo vi /etc/redhat-release

      (2) Input Red Hat Linux release 4"


Step Seven
  We tweak the system default limits on a few items. The shared-memory are specially important, since Oracle relies on shared memory for process communications. There is a file called /etc/sysctl.confand it should have these lines on it:

fs.file-max = 65535
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144

  Now that they are in a config file, these limits will be issued automatically at the next boot sequence. For now, we need to make the system re-read the config file:

# sysctl -p

  Now, what do those parameters and values actually mean?


  • fs.file-maxsets the maximum number of open files that can be handled by the Linux kernel.
  • kernel.shmalldetermines the total amount of shared memory to be allocated in pages. In this example, I’ve set it to 8GB, which is way above the amount of memory I can handle in my box, even with swap.
  • kernel.shmmaxcontrols the maximum amount of memory to be allocated for shared memory which in this example is 2GB.
  • kernel.shmmnidefines the maximum number of segments system-wide.
  • net.core.rmem_defaultand net.core.rmem_maxdefine the default and maximum read buffer queue for network operations (1 MB in this example)
  • net.core.wmem_defaultand net.core.wmem_maxdefine the default and maximum write buffer queue for network operations (256 KB in this example)
  • net.ipv4.ip_local_port_rangetells the kernel the port ranges that will be used for outbound connections.
  • kernel.semhas four parameters:

    • SEMMSL- semaphores per array
    • SEMMNS- max semaphores system-wide (SEMMNI*SEMMSL
      )
    • SEMOPM- max operations per semop call
    • SEMMNI- max number of semaphore arrays


  To check your current semaphores configuration, you can run cat /proc/sys/kernel/semor ipcs -ls
. On my machine, after the modifications on sysctl.conf
, these commands output:

# cat /proc/sys/kernel/sem
250     32000   100     128

# ipcs -ls

------ Semaphore Limits --------
max number of arrays = 128
max semaphores per array = 250
max semaphores system wide = 32000
max ops per semop call = 100
semaphore max value = 32767

  (I really don’t know if these are enough or too much, but I’ll keep you posted.)
  For a better understanding of these kernel-tweaking settings, I’d recommend these resources:


  • schogini.us/wordpress/index.php/2005/11/01/setting-semaphores/
  • performancewiki.com/linux-tuning.html
  • pythian.com/blogs/245/the-mysterious-world-of-shmmax-and-shmall

Step Eight
  Add these lines to /etc/security/limits.conf
, letting the oracleuser use more resources than the defaults allowed. You may notice that all these values are a power of 2 minus one. When soft limits are exceeded, you’ll get a warning; the hard limits can’t be exceeded in any situation: you’ll get an error. I’m not completely sure, but I think these limits apply to each session/login (and since Oracle doesn’t exactly log in to the machine, my best guess is these limits apply per instance running).

oracle soft nproc 2047
oracle hard nproc 16383
oracle soft nofile 1023
oracle hard nofile 65535

Step Nine
  Make sure the limits.confis being interpreted as the oracleuser logs in by adding these lines to /etc/pam.d/login
. You will want to make sure that is actually happening, since the defaults are way lower and you may get all sorts of problems.

session required /lib/security/pam_limits.so
session required pam_limits.so

Step Ten
  Unpack and prepare the installation.

# cd /path/to/zipfile
# unzip linux_11gR1b5_database.zip

  (And wait… wait a bit more… go get a cup of coffee…)
  After your second cup of coffee, you should have a multi-gigabyte set of files; this is our installer.

# sudo chown -R oracle:oinstall database
# sudo chown -R oracle:oinstall /opt/oracle

Step Eleven
  1. Login as robert(administration),

       export DISPLAY=:0.0


       run xhost +


  3. Login as oracle,

  
       Before login, you maybe need activate the oracle user.

       sudo usermod -U oracle

  
  su oracle
       export DISPLAY=127.0.0.1:0.0

  
  Fire up the installer as the oracleuser itself.This is what you will probably see on the output window:

# su - oracle
$ cd /path/to/extracted/zip/file
$ ./runInstaller
Starting Oracle Universal Installer...

Checking Temp space: must be greater than 80 MB. Actual 58633 MB Passed
Checking swap space: must be greater than 150 MB. Actual 2900 MB Passed
Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2007-07-11_04-38-56PM. Please wait ...
Oracle Universal Installer, Version 11.1.0.2.0 Production
Copyright (C) 1999, 2007, Oracle. All rights reserved.

ulimit: 1: Illegal option -u
ulimit: 1: Illegal option -u
rpm: To install rpm packages on Debian systems, use alien. See README.Debian.
error: cannot open Packages index using db3 - No such file or directory (2)
error: cannot open Packages database in /var/lib/rpm
rpm: To install rpm packages on Debian systems, use alien. See README.Debian.
error: cannot open Packages index using db3 - No such file or directory (2)
error: cannot open Packages database in /var/lib/rpm

  There are a few errors that can be safely ignored: the ulimitand the RPM-related errors, since the limits don’t restrict the installer and since we actually don’t have a RPM database on the machine — we are running on Ubuntu, remember?
  After a few moments, you will be prompted to choose where to install the Oracle server. You’ll notice that I asked the installer to not create a starter database — I did that later. Choose the Oracle Base and correct the group if needed. I personally recommend sticking with the defaults if you are a newbie like me.
DSC0000.png

  As you press the Nextbutton, you will be prompted where to install the Inventory — leave it that wayunless you know what you are doing (if this were the case, you wouldn’t be reading this text anyways). Also correct the OS group name if needed and hit Next
.
DSC0001.png

  Since I’ve chosen to install the server in the same directory as the oracleuser’s HOMEdirectory, the installer will issue a warning. I simply ignored it and continued with the installation.
DSC0002.png

  After that warning, I tried to perform some prerequisite tests, and yes — some will fail. Just mark the failed boxes and hit Next(after trying a few times to fix those issues, I’ve decided to call the installer’s bluff and… it worked!)

  
  Note:

  Ignore some filures and warnings by making the check box checked and click next.

  
DSC0003.png

  

  After all this warning stuff, it’ll ask you to check the list of products to be installed. I was amazed when I read that 122 different products would be installed on my box. Hit Next
.
  Go get some coffee.
DSC0004.png

  And some more coffee.
DSC0005.png

  And even more coffee.
DSC0006.png

  You may like to go to the washroom after so much time drinking coffee. Remember: I was installing on a 3 GHz machine with 1 GiB of RAM with SATA2 disks — this box is supposed be blazing fast.
DSC0007.png

  At some point, it will ask you to run some commands as root
. Do that when it asks, since the install depends on a few modifications on the base system (like creating the /etc/oratabfile).

$ sudo -s




Password:

# /opt/oracle/oraInventory/orainstRoot.sh
Changing permissions of /opt/oracle/oraInventory to 770.
Changing groupname of /opt/oracle/oraInventory to oinstall.
The execution of the script is complete

# /opt/oracle/product/11.1.0/db_1/root.sh
Running Oracle 11g root.sh script...

The following environment variables are set as:
ORACLE_OWNER= oracle
ORACLE_HOME= /opt/oracle/product/11.1.0/db_1
[: 185: ==: unexpected operator
[: 189: ==: unexpected operator
Copying dbhome to /usr/local/bin ...
Copying oraenv to /usr/local/bin ...
Copying coraenv to /usr/local/bin ...

Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.

  After these scripts finish their execution (the errors seem to be ignorable), hit the OK button and you’ll have a window that (probably) will look like this one:
DSC0008.png

  Just hit OK to get out the installer. The basic installation is… not over yet.
DSC0009.png

  To allow Oracle start on boot-up, create a file called oracledb(or whatever name you want to call it) and put it in /etc/init.dwith the contents below. This script was copied and pasted from a tutorial by Graham Williams
. It will read the /etc/orataband fire up any instances it finds.

#!/bin/bash
#
# /etc/init.d/oracledb
#
# Run-level Startup script for the Oracle Instance, Listener, and Web Interface

export ORACLE_HOME=opt/oracle/products/11.1.0/db_1
 export PATH=$PATH:$ORACLE_HOME/bin

ORA_OWNR="oracle"

# if the executables do not exist -- display error

if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi

# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display

case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
su $ORA_OWNR -c $ORACLE_HOME/bin/dbstart
touch /var/lock/oracle

su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su $ORA_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
su $ORA_OWNR -c $ORACLE_HOME/bin/dbshut
rm -f /var/lock/oracle

su $ORA_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole"
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: `basename $0` start|stop|restart|reload"
exit 1
esac

exit 0

  After saving the file, make it executable

# chmod a+x /etc/init.d/oracledb

  and if you want, make it run at every boot:

# update-rc.d oracledb defaults 99
Adding system startup for /etc/init.d/oracledb ...
/etc/rc0.d/K99oracledb -> ../init.d/oracledb
/etc/rc1.d/K99oracledb -> ../init.d/oracledb
/etc/rc6.d/K99oracledb -> ../init.d/oracledb
/etc/rc2.d/S99oracledb -> ../init.d/oracledb
/etc/rc3.d/S99oracledb -> ../init.d/oracledb
/etc/rc4.d/S99oracledb -> ../init.d/oracledb
/etc/rc5.d/S99oracledb -> ../init.d/oracledb

  Before finishing, add the following lines to your /etc/profile. Be careful, since these values are valid system-wide. So make sure the paths are set according to your particular setup (if you have been doing everything according to this text, you should be fine).

export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/11.1.0/db_1
export ORACLE_SID=orcl




export PATH=$PATH:/optp/oracle/product/11.1.0/du01/appb_1/bin

  Note:


  Linux is case sensitive. So Oralce in linux is sensitve as well. Please use the orclas the instance name as you specify orclas the instance name during installation. Or esle it doesn't work.
During installation, you set the user/password sys/admin as the lower case, you need to use the lower case when you login sqlplus.It is really case sensitive in Linux.

  
  Last operation: add yourself to the dbagroup. You can use usermodor just edit the /etc/groupsfile and add your username at the end of the line that starts with dba(my username is ‘robert’):

dba:x:1002:oracle,robert

  If you chose to not create a starter database during your install, you’ll have to do two extra steps. You should create a listener (with netca
) and after that, create the starter database (also with netca
). If you chose to have the installer create a database for you, then you should be fine, since when doing that, it asks for a password for the default accounts (SYS
, SYSTEM
, and DBSNMP
, SYSMANif you choose to install it with the enterprise manager option selected).
  If everything has gone well, open a terminal window and, as the oracleuser, type:

$ sqlplus

SQL*Plus: Release 11.1.0.5.0 - Beta on Wed Jul 11 17:11:53 2007

Copyright (c) 1982, 2007, Oracle. All rights reserved.

Enter user-name:

  If you see these messages (and I sincerely hope you do) you’re all set! That means that you have finished a quite long install of Oracle 11g and you are ready to begin destroying it, just as I plan to as I take my first steps with Oracle. Some might say that going from Oracle to MySQL would make for an easier transition — I really don’t know, but I will post further entries on my experiences as I go.
  Anyway, I would greatly appreciate your feedback, especially if we can improve this tutorial so that more people can benefit from it.
  

Step Twelve
  After installation, the oracle services are not started automatically. So you need start it manually.
  
  1. Please use oracle user to login for all of the operations.
  2. Please make sure you export ORACLE_HOME and ORACLE_SID.
  export ORACLE_HOME=/opt/oracle/product/11.1.0/db_1
    export ORACLE_SID=orcl
  
  Note: pease use orcl(lower case) as the instace name here.

  
  3. Start lisnter - lstnctl start
  4. Start db.
  (1) When you are connecting to network. Please use the IP address to connect the sqlplus.
  
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 10.182.105.13)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

(2). When you are not connecting to network. Please use the localhost alias to connect the sqlplus.
ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )
            
If something's wrong with the sqlplus login, please try to use the following host address,


             1. Real IP address.

             2. Network computer name(with or without DNS suffix)

             3. localhost

             4. 127.0.0.1

             5. 127.0.1.1


             You can change the mapping in file /etc/hosts


  
  $ORACLE_HOME/bin/sqlplus sys/admin as sysdba
  sql> startup
  
            Note,

            When you startup a instance by command startupin sqlplus first time, by default, oracle can't find the right parameter file. It throws errors. It says

      /opt/oracle/product/11.1.0/db_1/dbs/
initORCL.ora can't be found.

  So please cp /opt/oracle/product/11.1.0/db_1/dbs/spfileorcl.orato
/opt/oracle/product/11.1.0/db_1/dbs/

initORCL.ora

so that the startup command can find it and start successfully.

  5. emctl start
  6. Login with https://10.182.105.13:1158/em/console/aboutApplication, if firefox thinks the certificate is not quilified, please add an excepiton for this site. Because it is useing SSL to connect to EM.

  
  
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-191423-1-1.html 上篇帖子: 深入理解Linux内核--内存(阅读笔记)(原创) 下篇帖子: Unix/Linux 系统自动化管理: 远程登录篇
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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