在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程
2013-11-19
本教程提供PDF格式下载:
在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程.part1.rar
在RedHat.Enterprise.Linux_v6.3系统中安装Oracle_11gR2教程.part2.rar
前言
本人24K纯DIAOS级无证光棍CodeMaker,近日闲来无事,便开始研究如何在Linux系统中安装Oracle11g数据库。在谷哥和度娘的帮助下,经过不断地尝试,终于顺利地在Linux系统中成功安装和配置了Oracle11g数据库。
这里将我的安装步骤和相关代码整理成一篇参考教程文档,希望对有需要的朋友有所帮助。因能力水平有限,有所纰漏在所难免,还请各位大神积极斧正。
好了,闲话不多说,开始进入正题。
安装环境: 虚拟机VMware Workstation 10.0
操作系统: 64位系统,RedHat.Enterprise.Linux.Server-v6.3-x86_x64.ISO
Oracle版本: Linux_x64_Oracle_11gR2_v11.2.0.1.0
安装过程主要分为以下3步:
1. 配置系统参数
2. 软件安装与数据库配置
3. 配置优化与测试
PS:在本教程中,所有方框均代表在Linux系统的终端进行操作,其中:
蓝色字体:终端命令代码;
红色字体:新增或修改的参数。
第1章 配置系统参数
在本章节中主要完成Oracle安装前的系统参数配置工作。若无特殊说明,均为以root身份在终端上进行操作。
1.1、设置主机和网络参数
需设置主机名和固定IP,以便oracle监听程序的建立。
1.1.1、设置主机名
[root@rhel6 ~]# vim /etc/sysconfig/network NETWORKING=yes HOSTNAME= rhel6.localdomain |
HOSTNAME(主机名)请根据个人喜好进行设置。
1.1.2、设置网络参数
[root@rhel6 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE="eth0" ONBOOT="yes" BOOTPROTO=static IPADDR=192.168.18.101 NETMASK=255.255.255.0 GATEWAY=192.168.18.2 DNS1=192.168.18.2 |
IPADDR(IP地址)、NETMASK(子网掩码)、GATEWAY(默认网关)、DNS1(主DNS)请根据实际网络环境进行设置。
1.1.3、修改 hosts 文件
在文件【/etc/hosts】最后追加以下内容:
[root@rhel6 ~]# vim /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192.168.18.101 oracle oracle.localdomain rhel6.localdomain |
注意:必须将主机名对应到主机真实ip地址,否则oracle有可能将监听程序仅仅建立在127.0.0.1上。主机名可根据个人喜好进行设置。
1.1.4、重启服务器
[root@rhel6 ~]# reboot |
1.2、安装依赖软件包
使用RedHat.Enterprise.Linux.Server-v6.3-x86_x64-DVD.iso做yum源安装依赖软件包。
1.2.1、新建挂载目录
[root@rhel6 ~]# mkdir /media/rhel6_dvd |
1.2.2、挂载DVD到目录
[root@rhel6 ~]# mount /dev/cdrom /media/rhel6_dvd |
1.2.3、新建使用DVD为源的repo文件
[root@rhel6 ~]# cd /etc/yum.repos.d/ [root@rhel6 yum.repos.d]# vim rhel6.repo [rhel6] name=rhel6 baseurl=file:///media/rhel6_dvd enabled=1 gpgcheck=0 |
1.2.4、清空 yum 信息
[root@rhel6 yum.repos.d]# yum clean all |
1.2.5、更新 yum 信息
[root@rhel6 yum.repos.d]# yum update |
1.2.6、安装依赖软件包
[root@rhel6 yum.repos.d]# yum install binutils-2.* compat-libstdc++-33* elfutils-libelf-0.* elfutils-libelf-devel-* gcc-4.* gcc-c++-4.* glibc-2.* glibc-common-2.* glibc-devel-2.* glibc-headers-2.* ksh-2* libaio-0.* libaio-devel-0.* libgcc-4.* libstdc++-4.* libstdc++-devel-4.* make-3.* sysstat-7.* unixODBC-2.* unixODBC-devel-2.* pdksh* [root@rhel6 yum.repos.d]# cd |
因为版本不同,在 第2章软件安装及数据库配置过程,可能会提示缺少依赖包,忽略后可以正常安装使用 Oracle。
1.3、修改系统内核参数
1.3.1、修改sysctl.conf文件
在文件【/etc/sysctl.conf】中追加以下内容:
[root@rhel6 ~]# vim /etc/sysctl.conf kernel.sem = 250 32000 100 128 kernel.shmall = 2097152 kernel.shmmax = 1073741824 kernel.shmmni = 4096 fs.aio-max-nr = 1048576 fs.file-max = 6815744 net.core.rmem_default = 4194304 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 net.ipv4.ip_local_port_range = 9000 65500 |
注意: kernel.shmmax 的值是物理内存的一半。 我的是2G内存,所以是1073741824。
参数说明: kernel.shmmni:整个系统共享内存段的最大数目
fs.file-max:系统中所允许的文件句柄最大数目
net.core.rmem_default:套接字接收缓冲区大小的缺省值
net.core.rmem_max:套接字接收缓冲区大小的最大值
net.core.wmem_default:套接字发送缓冲区大小的缺省值
net.core.wmem_max:套接字发送缓冲区大小的最大值
net.ipv4.ip_local_port_range:应用程序可使用的IPv4端口范围
1.3.2、使内核参数实时生效
[root@rhel6 ~]# sysctl -p |
如果有如下提示错误,忽略,因为即使未修改参数也提示有这个错误:
error: "net.bridge.bridge-nf-call-ip6tables" is an unknown key
error: "net.bridge.bridge-nf-call-iptables" is an unknown key
error: "net.bridge.bridge-nf-call-arptables" is an unknown key
1.4、配置用户和组
1.4.1、创建用户和用户组
[root@rhel6 ~]# groupadd dba [root@rhel6 ~]# groupadd oinstall [root@rhel6 ~]# useradd -g oinstall -G dba oracle [root@rhel6 ~]# passwd oracle |
1.4.2、修改/etc/security/limits.conf文件
在文件【/etc/security/limits.conf】最后添加以下内容:
[root@rhel6 ~]# vim /etc/security/limits.conf oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 |
1.4.3、修改/etc/pam.d/login文件
在文件【/etc/pam.d/login】最后添加以下内容:
[root@rhel6 ~]# vim /etc/pam.d/login session required pam_limits.so |
1.4.4、修改/etc/profile文件
在文件【/etc/profile】最后添加以下内容:
[root@rhel6 ~]# vim /etc/profile if [ $USER = "oracle" ]; then |
1.5、配置安装目录和环境变量
1.5.1、新建安装目录
本文将Oracle安装在目录【/home/app/oracle】中,若需安装在其他位置,请自行修改。
[root@rhel6 ~]# mkdir -p /home/app/oracle [root@rhel6 ~]# mkdir -p /home/app/oraInventory |
1.5.2、设置目录所有权和权限
[root@rhel6 ~]# chown -R oracle:oinstall /home/app/oracle [root@rhel6 ~]# chown -R oracle:oinstall /home/app/oraInventory [root@rhel6 ~]# chmod -R 775 /home/app |
1.5.3、配置Oracle用户环境变量
在终端上切换到oracle用户,在文件【/home/oracle/.bash_profile】最后添加以下内容:其中ORACLE_SID的值可自己定,这里设为orcl,在第2章安装时的ORACLE_SID也应设置为orcl:
[root@rhel6 ~]# su - oracle [oracle@rhel6 ~]# vim .bash_profile TMP=/tmp; export TMP |
1.5.4、使环境变量生效
[oracle@rhel6 ~]# source ~/.bash_profile |
1.6、防火墙设置
1.6.1、开放Oracle远程端口
在文件【/etc/sysconfig/iptables】内增加以下内容:
[oracle @rhel6 ~]# su - root [root@rhel6 ~]# vim /etc/sysconfig/iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 1158 -j ACCEPT |
Oracle远程访问端口默认是1521,OEM端口1158,若自定义新端口,请开放相应端口。
注意:新开放端口的配置必须紧跟着放在端口22的配置后面。
1.6.2、重启防火墙
[root@rhel6 ~]# service iptables restart iptables: Flushing firewall rules: [ OK ] iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Unloading modules: [ OK ] iptables: Applying firewall rules: [ OK ] |
1.6.3、查看防火墙状态
[root@rhel6 ~]# service iptables status Table: filter Chain INPUT (policy ACCEPT) num target prot opt source destination 1 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 3 ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:22 5 ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 state NEW tcp dpt:1521 6 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain FORWARD (policy ACCEPT) num target prot opt source destination 1 REJECT all -- 0.0.0.0/0 0.0.0.0/0 reject-with icmp-host-prohibited Chain OUTPUT (policy ACCEPT) num target prot opt source destination |
第2章 软件安装与数据库配置
2.1、准备Oracle安装文件
2.1.1、上传安装文件包
可从Oracle官网下载安装文件:linux.x64_11gR2_database_1of2.zip和linux.x64_11gR2_database_2of2.zip。
并上传到RHEL6系统中的【home/oracle】,具体上传方法此处不再赘述,请各位童鞋自己查阅相关资料。本文采用的是SSH Secure Shell的File Transfer Client进行上传。
2.1.2、解压安装文件包
切换到oracle用户,GNOME图形界面登录,然后进行解压。
[oracle@rhel6 ~]# cd /home/oracle [oracle@rhel6 oracle]# unzip linux.x64_11gR2_database_1of2.zip && unzip linux.x64_11gR2_database_2of2.zip |
2.2、安装Oracle软件和数据库
2.2.1、启动Oracle安装 (补充:$./runInstaller -jreLoc /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre
之所以加上 jreLoc 参数,是因为ORACLE默认安装时用自带的jre会出现中文乱码,所以这里用系统的jre,保证安装界面为中文显示。32位系统经测试安装ORACLE11g时,会提示缺少 pdksh-5.2.14 这个包,直接忽略。)
[oracle@rhel6 ~]# cd /home/oracle/database [oracle@rhel6 database]# ./runInstaller Starting Oracle Universal Installer... Checking Temp space: must be greater than 120 MB. Actual 35279 MB Passed Checking swap space: must be greater than 150 MB. Actual 4095 MB Passed Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2013-11-03_05-54-11PM. Please wait ... |
待安装文件检查结束后,即出现图形界面。
2.2.2、图形界面安装
2.2.2.1、Step01.配置安全更新
取消勾选,不接收安全更新,然后点击【Next】,弹出提示窗口,选择【Yes】
2.2.2.2、Step02.选择安装选项
包含3个安装选项:
1. 创建和配置数据库
2. 仅安装数据库软件
3. 升级现有数据库
这里我们选择【创建和配置数据库】,然后点击【Next】:
2.2.2.3、Step03.选择系统类
包含2个选项:
1. 桌面类:如果要在笔记本或桌面类系统中安装,则选择此选项,此选项包括启动数据库并允许采用最低配置。
2. 服务器类:如果要在服务器类系统中进行安装(如在生产数据中心内部署Oracle时使用的内容),则选择此选项,此选项允许使用更多高级配置选项。
为了能使用更多高级配置选项,我们选择【服务器类】,然后点击【Next】:
2.2.2.4、Step04.节点选择
包含2个选项:
1. 单实例数据库安装
2. Real Application Clusters数据库安装
选择【单实例数据库安装】,然后点击【Next】:
2.2.2.5、Step05.选择安装类型
包含2个选项:
1. 典型安装:使用基本配置执行完整的Oracle Database安装
2. 高级安装:可以选择高级选项,例如:为SYS、SYSMAN、SYSTEM和DBSNMP账户使用不同口令,选择数据库字符集,产品语言,自动备份,定制安装及备用存储选项(例如自动存储管理)。
选择【高级安装】,然后点击【Next】:
2.2.2.6、Step06.选择产品语言
默认已添加了【English】,在左侧语言列表中找到简体中文【Simplified Chinese】,并添加到右侧,然后点击【Next】:
2.2.2.7、Step07.选择数据库版本
包含3个选项:
1. 企业版:具有可伸缩性、高性能、高可用性和安全功能的自行管理的数据库,能够满足大多数高标准的关键任务应用程序的需求。
2. 标准版:标准版是寻求低成本解决方案的工作组、部门和中小企业的理想选择。
3. 标准版1:标准版1是寻求低成本解决方案的工作组、部门和中小企业的理想选择。
选择【企业版】,然后点击【Next】:
2.2.2.8、Step08.指定安装位置
设置Oracle基目录为1.5.1中新建的目录:/home/app/oracle,则软件位置会自动为:/home/app/oracle/product/11.2.0/dbhome_1,然后点击【Next】:
2.2.2.9、Step09.创建产品清单
设置Oracle清单目录为1.5.1中新建的目录:/home/app/ oraInventory,选择组"oinstall",然后点击【Next】:
2.2.2.10、Step10.选择配置类型
包含2个选项:
1. 一般用途/事务处理:为一般用途或高事务处理量应用而设计的启动数据库。
2. 数据仓库:为数据仓库应用程序而优化的启动数据库。
这里我选择【一般用途/事务处理】,然后点击【Next】:
2.2.2.11、Step11.指定数据库标识符
指定Oracel全局数据库名和服务标识符为:orcl(在第1.5.3节提到),然后点击【Next】:
2.2.2.12、Step12.指定配置选项
在【内存】页中勾选【启用自动内存管理】,在【字符集】页中选择【使用Unicode】,然后点击【Next】:
2.2.2.13、Step13.指定管理选项
选择【使用Database Control管理数据库】,然后点击【Next】:
2.2.2.14、Step14.指定数据库存储选项
选择【文件系统】,并设置路径为:/home/app/oracle/oradata,然后点击【Next】:
2.2.2.15、Step15.指定恢复选项
选择【不启用自动备份】,然后点击【Next】:
2.2.2.16、Step16.指定方案口令
这里我选择【对所有账户使用相同口令】,然后输入密码,当然你也可以为不同用户设置不同密码。然后点击【Next】:
2.2.2.17、Step17.特权操作系统组
设置数据库管理员组为【dba】,数据库操作者组为【oinstall】。然后点击【Next】:
2.2.2.18、Step18.执行先决条件检查
若提示有程序包不存在,是因为1.2节的yum源安装软件包的版本不一样,所有可选择【忽略全部】,然后点击【Next】:
2.2.2.19、Step19.概要
查看安装概要,若无问题,则可点击【Finish】结束配置,开始进行安装:
2.2.2.20、Step20.安装产品
2.2.2.20.1、软件安装及配置数据库
2.2.2.20.2、运行配置脚本
软件及数据库配置完成后,需要运行配置脚本:
打开命令终端,切换到root用户,并执行脚本:
[oracle@rhel6 ~]# su - root Password: [root@rhel6 ~]# /home/app/oraInventory/orainstRoot.sh Changing permissions of /home/app/oraInventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /home/app/oraInventory to oinstall. The execution of the script is complete. [root@rhel6 ~]# /home/app/oracle/product/11.2.0/dbhome_1/root.sh Running Oracle 11g root.sh script... The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /home/app/oracle/product/11.2.0/dbhome_1 Enter the full pathname of the local bin directory: [/usr/local/bin]: /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】
2.2.2.21、Step21.安装完成
到此,Oracle11g数据库软件和配置数据库已完成。并显示了Oracle企业管理器(OEM)的URL:https://oracle:1158/em,使用方法请看第3章。
第3章 配置优化与测试
3.1、设置Oracle和OEM随机启动
本小节以root身份进行操作。
3.1.1、修改/etc/oratab文件
[root@rhel6 ~]# vim /etc/oratab orcl:/home/app/oracle/product/11.2.0/dbhome_1:Y (将N改为Y) |
3.1.2、修改dbstart和dbshut文件
[root@rhel6 ~]# cd /home/app/oracle/product/11.2.0/dbhome_1/bin [root@rhel6 bin]# vim dbstart ORACLE_HOME_LISTNER=$ORACLE_HOME (将$1改为$ORACLE_HOME) [root@rhel6 bin]# vim dbshut ORACLE_HOME_LISTNER=$ORACLE_HOME (将$1改为$ORACLE_HOME) |
3.1.3、建立启动脚本
[root@rhel6 bin]# cd [root@rhel6 ~]# vim /etc/rc.d/init.d/oracle #!/bin/bash |
3.1.4、设置脚本权限
[root@rhel6 ~]# chmod 755 /etc/rc.d/init.d/oracle |
3.1.5、建立Oracle服务
[root@rhel6 ~]# chkconfig --add oracle [root@rhel6 ~]# chkconfig oracle on |
3.2、测试连接
本小节以oracle身份进行操作。
3.2.1、连接数据库
[oracle@rhel6 ~]# sqlplus "/as sysdba" SQL*Plus: Release 11.2.0.1.0 Production on Sun Nov 10 16:20:48 2013 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 -64bit Production SQL> startup ORA-01081: cannot start already-running ORACLE -shut it down first |
在3.1.5中已启动Oracle服务,会自动启动数据库,故这里提示不能启动已运行的ORACLE。
3.2.2、启动OEM客户端
[oracle@rhel6 ~]# emctl start dbconsole Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0 Copyright (c) 1996, 2009 Oracle Corporation. All rights reserved. https://oracle:1158/em/console/aboutApplication -An instance of Oracle Enterprise Manager 11g Database Control is already running. |
在3.1.5中已启动Oracle服务,会自动启动OEM,故这里OEM实例已运行。
3.3、登录Oracle企业管理器(OEM) (注意:可能需要重启oem才能访问以下)
1、emctl stop dbconsole 2、emctl start dbconsole
打开系统的FireFox浏览器,并输入OEM的URL:https://oracle:1158/em,输入sys用户和密码,以SYSDBA身份登录:
登录成功后,即可看到详细页面:
因我们在1.6.1中已开放了OEM的外部访问端口1158,因此也可以从其他可访问本数据库服务器的机器中访问OEM。因我们安装Oracle时安装了简体中文语言包,所以在我的中文Windows系统中访问OEM时,是中文界面:
3.4、配置PL/SQL Developer
到这里,在Redhat.Enterprise.Linux_v6.3_x64位系统中安装和配置Oracle_11gR2_v11.2.0.1.0已经全部完成。但这只是安装了数据库,而要进行数据库开发,还得有相应的开发工具,这里推荐使用PL/SQL Developer,目前最新版本是10.0,具体的安装文件请各位自己网上找,下载好后进行安装,需要强调一点:安装路径中不能有括号,不要安装在C:/Program Files (x86)目录下面。
客户机上用PL/SQL Developer连接Oracle数据库,需要oci,有2种方式:
1. Oracle的完整客户端:注意PL/SQL Developer目前不支持64位的oci,若使用此方式则建议安装32位版的完整客户端。若客户机已经安装了64位版的完整客户端,则可参照使用下面的方法进行配置连接。
2. Oracle的即时客户端:此方法最方便快捷,我在这也只介绍此方式。
3.4.1、下载Oracle客户端
下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html,点击连接会进入下载页面,选择Instant Client for Microsoft Windows (32-bit)进行下载。
3.4.2、配置Oracle客户端
下载之后将其解压,不需要进行安装,我这里将其解压到D:/Oracle/App/product/11.2.0目录下,然后在instantclient_11_2目录下新建两层文件夹/NETWORK/ADMIN,再在ADMIN文件夹下面新建个文本文件,改名为tnsnames.ora,并向文件中添加如下内容:
ORCL_101 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.18.101)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
连接名orcl_101可以自定义。
当然以上的内容也可以从前面安装Oracle数据库的RedHat Linux服务器内的文件中拷贝:/home/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora。
3.4.3、配置PL/SQL Developer
安装PL/SQL Developer完成之后运行,此时出现的登录窗体不进行登录,点击Calcel按钮,这时会在无登录状态下进入,依次选择Tools ——> Preferences,会打开配置界面,左侧选择Connection,在右侧红框内设置instantclient_11_2目录:
3.4.4、验证PL/SQL Developer
重新启动PL/SQL Developer,并进行登录(scott/tiger):
登录成功后,写一条Sql语句进行验证,查询可以看到下面的效果,说明连接成功。
结束语
到这里,本篇Linux系统中Oracle数据库安装、配置和测试的教程已全部结束,开始尽情享受数据库开发之旅吧!
用SQL Developer连接远程的数据库的时候,主机名要填写远程数据库所在服务器的IP地址。Windows主机与虚拟机通过NAT方式连接的网络环境写域名就连不上,报不能建立连接的错误。