在Linux系统上安装Oracle数据库

Posted 风行__雄关漫道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Linux系统上安装Oracle数据库相关的知识,希望对你有一定的参考价值。

 

前期准备:我用的是虚拟机上的CentOS 64位系统。所以需要设置网卡,时间,EPEL源,安装一些必备的软件。

  1.1在虚拟机上安装好Linux系统后选择虚拟机设置—>网络适配器—>网络连接—>桥接模式

1.2然后进入系统配置网卡

永久修改:

vi /etc/sysconfig/network-scripts/ifcfg-eth0

 

DEVICE=eth0(设备名称) 

TYPE=Ethernet(网络类型)

ONBOOT=yes(开机自启动)

BOOTPROTO=static(静态ip)  dhcp是动态ip  none 是不指定

IPADDR=192.168.1.21

NETMASK=255.255.255.0

GATEWAY=192.168.1.1

NETWORK=192.168.1.0

DNS1=192.168.1.1

 

立即生效:

service network restart

 

1.3关闭防火墙 :在使用网络程序时要先关闭防火墙,不然是连接不上的

1) 永久性生效,重启后不会复原
开启:chkconfig iptables on
关闭:chkconfig iptables off

2) 即时生效,重启后复原
开启:service iptables start
关闭:service iptables stop

如果是firewall防火墙

停止: systemctl stop firewalld.service

禁止开机启动:systemctl disable firewalld.service

启动:systemctl start firewalld.service

开机启动:systemctl enable firewalld.service

 

 

1.4设置系统时间

 

手动设置硬件时间

hwclock --set --date="05/1/2015 19:24"

时间格式:月/日/年空格时:分:秒

---------------

将硬件时间写入系统时间

hwclock --hctosys

clock --hctosys

 

1.5设置EPEL源

rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

 

1.6安装解压缩工具

yum install unzip

 

下面就开始正式安装

2.1 安装oracle-rdbms-server-11gR2-preinstall

在Linux上安装oracle数据库,在环境准备方面,例如该安装的RPM包,该调整的内核参数等,不仅较为复杂,有些参数值还会因为人工设置的不合理而对日后的运行带来一定的影响,也是整个安装过程中最耗时的部分。在oracle linux 6_64bit上,提供了oracle-rdbms-server-11gR2-preinstall包,可以自动化的将需要安装的rpm包,需要调整的内核参数自动化的处理,对DBA安装数据库确实节省了不少的时间。在oracle linux 5和oracle linux 4上有一个相似功能的包叫oracle-validated

他所起的作用:

       (1)自动安装oracle所需的RPM包

       (2)自动创建oracle用户和group组

       (3)自动配置/etc/sysctl.conf内核参数

       (4)自动配置/etc/security/limits.conf参数

       (5)关闭NUMA=OFF (关闭非一致内存访问)

 

安装前检查

a、 检查网络环境,确保网络畅通   

   cat /etc/issue

b、检查yum是否已安装

     rpm -qa | grep yum

 

C、安装oracle-rdbms-server-11gR2-preinstall包 按照下面步骤一步一步来

切换到目录 /etc/yum.repos.d/

cd /etc/yum.repos.d/

wget http://public-yum.oracle.com/public-yum-ol6.repo(注意:如果没有安装wget需要先执行 yum install wget)

 

(vi public-yum-ol6.repo)这里可以是手动添加,也可以是之前添加好的EPEL源,查看是否安装上

 

cd /etc/pki/rpm-gpg/

wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6 -O RPM-GPG-KEY-oracle

gpg --quiet --with-fingerprint ./RPM-GPG-KEY-oracle

 

yum install oracle-rdbms-server-11gR2-preinstall

 

验证

[root@localhost24 yum.repos.d]# cat /etc/passwd |grep oracle

oracle:x:54321:54321::/home/oracle:/bin/bash

[root@localhost24 yum.repos.d]# cat /etc/group |grep dba

dba:x:54322:oracle

[root@localhost24 yum.repos.d]#

 

2.2 编辑  /etc/pam.d/login

  vi /etc/pam.d/login

添加以下行:

session    required     /lib64/security/pam_limits.so

session    required     pam_limits.so

 

2.3  编辑   /etc/profile

 vi /etc/profile

添加以下行:

 

if [ $USER = "oracle" ]; then

 

   if [ $SHELL = "/bin/ksh" ]; then

 

      ulimit -p 16384

 

      ulimit -n 65536

 

   else

 

      ulimit -u 16384 -n 65536

 

   fi

fi

 

2.4 预先创建安装目录

  

    cd /

    创建ORALCE_BASE目录

    mkdir -p /u01/app/oracle

    创建ORACLE_HOME目录

    mkdir -p /u01/app/oracle/product/11.2.0/db_1

    创建Oracle数据文件存放目录

    mkdir -p /u01/app/oracle/product/11.2.0/oradata

    创建Oracle安装过程日志目录

    mkdir -p /u01/app/oracle/oraInventory

 

2.5  设置目录的所有者所属组和权限

   

   设置app 目录所有者为oracle用户及其所属的oinstall组

   chown -R oracle.oinstall /u01/app

   设置oraInventory目录所有者为oracle用户及其所属的组

   chown -R oracle.dba /u01/app/oracle/oraInventory

   设置app 目录所属用户具有该目录读、写、执行的权限

   chmod -R 775 /u01/app/

 

2.6 上传oracle安装源文件并且unzip解压缩到  /u01/app/oracle  目录下

 

2.7创建 oraInst.loc

 

     创建oraInst.loc文件并增加内容

     vi /etc/oraInst.loc

     inventory_loc=/u01/app/oracle/oraInventory

     inst_group=oinstall

    设置oracle用户及其oinstall组对oraInst.loc文件的所有权

    chown oracle:oinstall /etc/oraInst.loc

   设置oraInst.loc文件所属用户及组具有该目录读、写、执行的权限

   chmod 664 /etc/oraInst.loc

 

2.8 设置用户 oracle的环境变量

 

      登录oracle用户

     su - oracle

    编辑oracle用户的环境变量

    vi /home/oracle/.bash_profile

在文件中添加如下:

 

# .bash_profile

 

# Get the aliases and functions

if [ -f ~/.bashrc ]; then

        . ~/.bashrc

fi

 

# User specific environment and startup programs

 

PATH=$PATH:$HOME/bin

# user add

umask 022

export SHELL=/bin/bash

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1

export ORACLE_SID=orcl

export ORACLE_UNQNAME=$ORACLE_SID

export ORACLE_OWNER=oracle

export ORACLE_TERM=vt100

export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib

CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

CLASSPATH=$CLASSPATH:$ORACLE_HOME/network/jlib

export CLASSPATH

export ORA_NLS33=$ORACLE_HOME/nls/admin/data

# 设置中文环境

# export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"

export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"

# 通过locale命令查看自己主机的真实LANG情况,或者echo $LANG

# user end

 

执行以下命令让配置马上生效或以oracle用户登录使设置生效

source $HOME/.bash_profile

 

2.9 设置系统临时空间的大小

注意:默认为物理内存的2倍,同时也是为了防止在后续启动数据库时报ORA-00845的错误,下为错误示例:

SQL> startup ;

ORA-00845: MEMORY_TARGET not supported on this system

 

        调整shm的大小,这样相对简单,具体操作如下

        vi /etc/fstab

       修改如下行的设置

       tmpfs /dev/shm tmpfs defaults 0 0

       改成

      tmpfs /dev/shm tmpfs defaults,size=2G 0 0     (我这边给虚拟机分的内存是1G)

保存退出

重新mount下shm使其生效

mount -o remount /dev/shm

df -h | grep shm

 

2.10  准备 Oracle11201静默安装应答文件

 

   进入到oracle 的安装文件 database目录

 

    ./runInstaller -silent -debug -force \\

    oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0 \\

    oracle.install.option=INSTALL_DB_SWONLY \\

    UNIX_GROUP_NAME=oinstall \\

    INVENTORY_LOCATION=/u01/app/oracle/oraInventory \\

    ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 \\

    ORACLE_BASE=/u01/app/oracle \\

    oracle.install.db.InstallEdition=EE \\

   oracle.install.db.EEOptionsSelection=false \\

   oracle.install.db.DBA_GROUP=dba \\

   oracle.install.db.OPER_GROUP=install \\

   DECLINE_SECURITY_UPDATES=true

 

 

 

       执行完之后不要乱动,要根据提示查看日志,直接查看下一个步骤要复制一个SSh窗口进行操作

 

2.11  根据上述提示查看安装日志

 

    tail -100f /u01/app/oracle/oraInventory/logs/installActions2014...

查看日志是否安装成功,如果安装失败需要将所有文件删除重新安装。

 

后期完善:配置Oracle随操作系统启动相关

 

3.1配置dbstart和dbshut命令

 

1.安装好Oracle数据库后: 执行 dbstart和dbshut会提示:

[oracle@oracle11g ~]$ dbstart

ORACLE_HOME_LISTNER is not SET, unable to auto-start Oracle Net Listener

Usage: /u01/app/oracle/oracle/product/10.2.0/db_1/bin/dbstart ORACLE_HOME

错误原因是:dbstart和dbshut脚本文件中ORACLE_HOME_LISTNER的设置有问题

 

分别编辑两个文件(dbstart和dbshut)

找到:ORACLE_HOME_LISTNER=$1,修改为

ORACLE_HOME_LISTNER=$ORACLE_HOME,命令如下:

[oracle@oracle11g ~]$ vi $ORACLE_HOME/bin/dbstart

[oracle@oracle11g ~]$ vi $ORACLE_HOME/bin/dbshut

 

提示:

dbstart ORACLE_HOME_LISTNER=$1 参数大约在78行

dbshut ORACLE_HOME_LISTNER=$1 参数大约在50行

vi命令:

:set nu 显示行号

 

3.2设置开机自动运行oracle

第一步:修改/etc/oratab文件,命令如下:

[oracle@oracle11g ~]$ vi /etc/oratab

 

找到:orcl:/u01/oracle:N   修改为: orcl:/u01/oracle:Y               注意:orcl:/u01/oracle:N 应根据实际情况鉴别,orcl是新创建库的实例名,/u01/oracle是ORACLE_HOME的绝对路径;Y代表的是随系统一起启动;

 

第二步:把lsnrctl start和dbstart添加到rc.local文件中,命令如下:

[oracle@oracle11g ~]# vi /etc/rc.d/rc.local

添加:

su oracle -lc "/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start"

su oracle -lc /u01/app/oracle/product/11.2.0/db_1/bin/dbstart

注意:第一个命令有空格,所以要用引号的

 

3.3配置Oracle sqlplus 回显

   yum install -y rlwrap  (如果不设置回显sqlplus不能删除字符操作 需要在root用户下进行)

echo "alias sqlplus=\'rlwrap sqlplus\'" >>/home/oracle/.bash_profile

echo "alias rman=\'rlwrap rman\'" >>/home/oracle/.bash_profile

 

立即生效

source /home/oracle/.bash_profile

 

至此,所有工作都已经完成了。

 

 

 

 

 

 

 

 

 

以上是关于在Linux系统上安装Oracle数据库的主要内容,如果未能解决你的问题,请参考以下文章

Oracle数据库12cR2(项目实战之一):在Windows上安装Oracle12.2

在Linux系统上安装Oracle数据库

Oracle数据库12cR2(项目实战之二):Linux系统安装Oracle12.2

oracle

在linux上安装oracle11G必须在图形界面才能安装吗

在 Oracle Linux 6.5 上安装 Oracle 11g 单实例数据库