Oracle 是一个面向Internet计算环境的数据库。它是在数据库领域一直处于领先地位的Oracle(即甲骨文公司)的产品。可以说Oracle关系数据库系 统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的适应高吞吐量 的数据库解决方案。
现在Oracle 11g免费提供用户使用,你可以去oracle.com上注册一个帐号,即可下载完整版的Oracle 11g。当然前提是你不能用于商业用途。
在网上找了各种资料,博客,百度...总算装好了。
一,下载oracle安装包
百度oracle官网,免费注册帐号,下载oracle安装包,(两个文件都要)
二,打开终端,转换为超级用户:(注意,这里用sudo su -而不是sudo -s是有原因的:sudo su - 将用户转换为超级用户,并新起一个会话(空的会话),而不是像sudo -s那样将当前会话传递个新的超级用户,减少环境变量可能造成的影响和危害。
一步一步执行, 将系统更新到最新:
# sudo su -
# apt-get update
# apt-get dist-upgrade
# reboot
三,安装Oracle所需的依赖包:
# sudo su -
# apt-get install alien binutils build-essential cpp-4.4 debhelper g++-4.4 gawk gcc-4.4 gcc-4.4-base gettext html2text ia32-libs intltool-debian ksh lesstif2 lib32bz2-dev lib32z1-dev libaio-dev libaio1 libbeecrypt7 libc6 libc6-dev libc6-dev-i386 libdb4.8 libelf-dev libelf1 libltdl-dev libltdl7 libmotif4 libodbcinstq4-1 libodbcinstq4-1:i386 libqt4-core libqt4-gui libsqlite3-0 libstdc++5 libstdc++6 libstdc++6-4.4-dev lsb lsb-core lsb-cxx lsb-desktop lsb-graphics lsb-qt4 make odbcinst pax po-debconf rpm rpm-common sysstat unixodbc unixodbc-dev unzip
在装完那些工具以后,我们需要做的就是修改一些Ubuntu的/bin/sh的默认连接,千万不要略过这一步,否则安装的时候会出现很多错误。
# cd /bin
# ls -l /bin/sh
................................................. /bin/sh -> dash
# ln -sf bash /bin/sh
# ls -l /bin/sh
................................................... /bin/sh -> bash
五,增加用户和组,并修改一些配置。
# addgroup oinstall
# addgroup dba
# addgroup nobody
# usermod -g nobody nobody
# useradd -g oinstall -G dba -p password -d /home/oracle -s /bin/bash oracle
# passwd -l oracle
# mkdir /home/oracle
# chown -R oracle:dba /home/oracle
# ln -s /usr/bin/awk /bin/awk
# ln -s /usr/bin/rpm /bin/rpm
# ln -s /usr/bin/basename /bin/basename
# 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
# echo ‘Red Hat Linux release 5’ > /etc/redhat-release
# mkdir -p /u01/app/oracle
# chown -R oracle:dba /u01
解释:增加我们需要的用户和组
让nobody用户的组变为nobody,这样Oracle的安装程序不会出问题。Ubuntu默认nobody的组是nogroup。
创建一个oracle用户,并锁定用户,以阻止别人通过oracle用户登录系统。注意,oracle用户的HOME目录不要与ORACLE_HOME相同。
创建一些Oracle安装程序需要的工具的连接。因为Oracle安装程序是为Red Hat准备的,所以有些工具的位置和Ubuntu不一样。
创建ORACLE安装目录
六,检查系统变量
# /sbin/sysctl -a | grep sem
# /sbin/sysctl -a | grep shm
# /sbin/sysctl -a | grep file-max
# /sbin/sysctl -a | grep aio-max
# /sbin/sysctl -a | grep ip_local_port_range
# /sbin/sysctl -a | grep rmem_default
# /sbin/sysctl -a | grep rmem_max
# /sbin/sysctl -a | grep wmem_default
# /sbin/sysctl -a | grep wmem_max
然后根据上面命令中得到的参数值在/etc/sysctl.conf中增加对应数据,比如:
# vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152kernel.shmmax = 536870912
kernel.shmmni = 4096kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
添加对oracle用户的内核限制在 /etc/security/limits.conf 文件中增加以下数据:
# vim /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
为了强制使用刚才我们增加的东西,我们再增加下面这些到/etc/pam.d/login文件末尾:
session required /lib/security/pam_limits.so
session required pam_limits.so
然后通过命令:sysctl -p 让刚才增加的东西生效:
# sysctl -p
kernel.printk = 4 4 1 7
kernel.maps_protect = 1
fs.inotify.max_user_watches = 524288
vm.mmap_min_addr = 65536
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
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 65535
net.core.rmem_default = 1048576
net.core.rmem_max = 1048576
net.core.wmem_default = 262144
net.core.wmem_max = 262144
七,.为Oracle配置环境变量
# vim /home/oracle/.bashrc
添加:
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=oracle
export ORACLE_UNQNAME=oracle
export PATH=${PATH}:${ORACLE_HOME}/bin/
保存退出,执行:
# source /home/oracle/.bashrc
八,将刚才下载的oracle11g的安装包解压到/home/oracle/install/目录下。然后进入目录,设置DISPLAY参数,开始安装:
# cd /home/oracle
# chown -R oracle:dba install
# su - oracle
# export DISPLAY=127.0.0.1:0.0
# cd install
# unzip 安装包 (两个)
# ./runInstaller -ignoreSysPrereqs
若打不开安装界面,则执行命令:
# xhost +
然后继续安装:
# ./runInstaller -ignoreSysPrereqs
启动安装图形界面后,可能会发现文字乱码,全是口口口:
这时可以关闭该界面,先在终端输入:
# export LANG=en_US 或者 # export LANG=zh_CN.gbk
然后再执行:
# ./runInstaller -ignoreSysPrereqs
就可以在全英文界面下进行安装了。
图形安装界面的第一步是填写电子邮件,简单的解决办法是不填写邮件地址,不勾选下面的复选框,直接下一步,弹出提示后点‘Yes’就能直接进入下一步了。
按照图示选择:
next之后,选desktop class后下一步,
然后一直next,只需要设置一下密码就行了。
如果出现:
则看下面的内容。
九,排错
如果没有严格按照前面的要求做,安装过程中可能弹出错误,此时不要关闭界面,根据给出的日志位置,在日志中查看错误出现的原因,此时打开一个新的终端窗口。
# sudo su -
# sed -i 's/^\(\s*\$(MK_EMAGENT_NMECTL)\)\s*$/\1 -lnnz11/g' $ORACLE_HOME/sysman/lib/ins_emagent.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
# 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
然后在图形界面点击‘Retry’就能继续安装了。
如果不行,则进入 # cd /u01/app/oraInventory/logs/
vim 查看错误文件
# vim installActions2015-06-17_10-32-34AM.log
根据文件尾的错误信息排除错误。
# cd /lib64 根据上面文件尾的错误信息,查看链接是否正确
# ls -l ...
然后修改。
在图形界面点击‘Retry’就能继续安装了。
到了这一步不要记着点“OK”,需要做下面操作:(另起一个终端,用sudo su - 转为超级用户)
# /u01/app/oraInventory/orainstRoot.sh
Changing permissions of /u01/app/oraInventory to 770.
Changing groupname of /u01/app/oraInventory to dba.
The execution of the script is complete
# /u01/app/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= /u01/app/oracle/product/11.1.0/db_1
Enter the full pathname of the local bin directory: [/usr/local/bin]:
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.
然后就可以点OK了,关闭窗口。
十,设置数据库文件夹和oratab文件的访问权限:(一定要加上这个,不然在使用中会有一些小问题)
# sudo chown -R oracle:dba /u01/app/oracle/*
# sudo chmod -R g+w /u01/app/oracle/*
# sudo chown oracle:dba /etc/oratab
# sudo chmod g+w /etc/oratab
然后,在/etc/profile文件中加入下面几句:
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export PATH=$PATH:/u01/app/oracle/product/11.2.0/dbhome_1/bin
创建一个Oracle 11g数据库的启动脚本,名字可以叫做:oracledb,在/u01/app/oracle/product/11.2.0/dbhome_1/bin下建立文件:oracledb,内容:
#!/bin/bash
#
# /etc/init.d/oracledb
#
# Run-level Startup script for the Oracle Listener and Instances
# It relies on the information on /etc/oratab
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_OWNR=oracle
export PATH=$PATH:$ORACLE_HOME/bin
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
case "$1" in
start)
# Oracle listener and instance startup
echo -n "Starting Oracle: "
su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
touch /var/lock/oracle
echo "OK"
;;
stop)
# Oracle listener and instance shutdown
echo -n "Shutdown Oracle: "
su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
rm -f /var/lock/oracle
echo "OK"
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo "Usage: `basename $0` start|stop|restart|reload"
exit 1
esac
exit 0
修改脚本为可执行的:
# chmod a+x /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracledb
如果你希望开机自动启动Oracle 11g数据库,那么就作下面的工作:
# ln -s /u01/app/oracle/product/11.2.0/dbhome_1/bin/oracledb /etc/init.d/oracledb
# sudo sysv-rc-conf --level 2345 oracledb on
如果没有sysv-rc-conf命令,就apt-get一个。
最后,增加你自己的用户名到dba组:
# usermod -G dba -a oracle
十一,最后登录
切换到oracle用户
# su oracle
# sqlplus /as sysdba
SQL*Plus: Release 11.1.0.6.0 - Production on Mon May 5 02:39:27 2008
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>
如果你看到了上面的结果,证明你的oracle安装成功了。
也可以:
# sqlplus
输入自带的用户:
然后用户名:scott
密码:tiger
里面有oracle自带的练习用表.
当电脑重启之后,用scott/tiger连接不上时,按以下步骤:
# sqlolus /nolog
SQL> conn /as sysdba
SQL> startup
SQL> conn scott/tiger
就可以了。