http://blog.csdn.net/lee353086/article/details/51622309


Title: 阿里云CentOS7 Silent Mode安装Oracle11GR2

Date: 2016-6-9
Author: kagula

Environment:

[1]阿里云CentOS7-64bits 1G RAM  20G Storage
[2]VMWare Workstation 11.x CentOS7-64bits  1G RAM 40G Storage


Introduction

   VMWare workstation CentOS7下Silent mode方式安装Oracle11GR2 64bits.
附带阿里云CentOS7额外要注意的问题。


Content

Step1:安装准备
[1-1]从CentOS和Oracle官网下载
CentOS-7-x86_64-Minimal-1511.iso(阿里云不需要)
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip


[1-2]
如果是阿里云,只有1G RAM,所以需要2G的Swap。
参考《在阿里云CentOS 7创建swap分区的方法》
http://www.111cn.net/sys/CentOS/105946.htm
我们建立2G的Swap partition.
“free -m”命令查看swap.


[1-3]
VMWare中安装CentOS7后“ls /sbin|grep ifconfig”,没有ifconfig命令
“yum install net-tools.x86_64”安装ifconfig.


[1-4]
安装Oracle所需的依赖包
yum -y install  gcc gcc-c++ make binutils compat-libstdc++-33 glibc glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel unixODBC unixODBC-devel sysstat ksh


[1-5]创建用户和组
groupadd -g 200 oinstall  #添加oinstall组,组的id为200
groupadd -g 201 dba       #添加dba组,组的id为201
useradd -u 440 -g oinstall -G dba oracle #添加用户oracle,并specified它的id为440.
passwd oracle             #输入oracle用户的密码
id oracle                 #查看用户id和所属组
对oracle的操作得使用oracle账号。


[1-6]关闭SELINUX(阿里云缺省关闭)
vim /etc/selinux/config   #编辑配置文件,关闭SELINUX
setenforce 0              #立即关闭SELINUX


[1-7]
使用“su - u oracle”切换到oracle账号下
把下面两个文件上传到CentOS7-64bits服务器的/home/oracle目录下
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
解压缩到oracle目录下
unzip linux.x64_11gR2_database_1of2.zip -d /home/oracle
unzip linux.x64_11gR2_database_2of2.zip -d /home/oracle
在/home/oracle目录下会出现database目录。


[1-8]
“vim /home/oracle/database/response/db_install.rsp”命令配置安装参数
修改后的db_install.rsp文件内容如下:




步骤二:安装Oracle
[2-1]oracle账号登陆
在/home/oracle/database路径下执行
“./runInstaller -silent -responseFile /home/oracle/database/response/db_install.rsp”开始安装


[2-2]出现[FATAL] [INS-32012] Unable to create directory.错误提示
“chown oracle /opt”命令,修改/opt的所有者为oracle.


[2-3]再运行“./runInstaller -silent -responseFile /home/oracle/database/response/db_install.rsp”开始安装
出现[FATAL] [INS-13013] Target environment do not meet some mandatory requirements.错误
使用下面的命令重试
./runInstaller -silent -ignorePrereq -ignoreSysPrereqs -responseFile /home/oracle/database/response/db_install.rsp
等待几分钟后出现“Successfully Setup Software.”提示。

安装好后会出现“/opt/oracle/admin/orcl11g/pfile”文件夹,其中“orcl11g”是你oracle的SID,需要在环境变量中设置

否则启动listener会失败。



[2-4]按照提示以root身份登录CentOS7系统
执行下面两条命令
/opt/oraInventory/orainstRoot.sh
/opt/oracle/product/11.2.0/db_1/root.sh



[2-5]以oracle身份登录CentOS7系统,设置环境变量
vi ~/.bash_profile
追加下面的配置信息
export PATH
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$PATH:$ORACLE_HOME/bin

export ORACLE_SID=orcl11g

export TNS_ADMIN=$ORACLE_HOME/network/admin

使用下面命令使环境变量生效
source ~/.bash_profile


为了使sqlplus能够访问远程oracle数据库,不但要配置“TNS_ADMIN”环境变量,还需要

要环境变量指向的地址(我这里是/opt/oracle/product/11.2.0/db_1/network/admin/)中放入tnsnames.ora文件

下面是我tnsnames.ora的内容,其中orcl是数据库名字。


[html] view plain copy 

  1. alioracle =  

  2.   (DESCRIPTION =  

  3.     (ADDRESS_LIST =  

  4.       (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))  

  5.     )  

  6.     (CONNECT_DATA =  

  7.       (SERVICE_NAME = orcl)  

  8.     )  

  9.   )  

因为配置好了TNS,以后你也可以参考下面的命令导入数据


imp kagula/123456@alioracle  file=/home/oracle/kagula20160612.dmp full=y
kagula是用户名,123456是用户密码,alioracle是上面指定的连接名。


[2-6]建库
用oracle账号调用下面的命令
“dbca -silent -responseFile /home/oracle/database/response/dbca.rsp”
出现安装进度,需要等待几分钟。


步骤三:验证Oracle安装是否成功
[3-1]
“su - u oracle”转到oracle账户下。
sqlplus "/as sysdba"  进入SQL提示符状态
select * from tabs;
如果成功运行,表示oracle已经启来,否则需要运行“startup”命令启动oracle.


[3-2]
“/opt/oracle/product/11.2.0/db_1/network/admin”路径下新建listener.ora文件
内容如下





其中HOST中的地址要改成你CentOS7机器的IP地址,否则“lsnrctl start”命令启动侦听器,会报TNS-01189错误。


[3-3]在windows系统上测试CentOS7服务器上的Oracle是否可以链接
在Windows操作系统上下载win64_11gR2_client.zip解压缩后
admin模式下用"setup  -ignoreSysPrereqs"命令安装。


参考《Oracle的tnsnames.ora配置(PLSQL Developer)》
http://jingyan.baidu.com/article/b0b63dbfcd34834a4930704a.html
链接服务器,如果遇到超时错误
服务器执行“systemctl stop firewalld”临时关闭防火墙试试看。
这里奇怪的是执行“firewall-cmd --permanent --query-port=1521/tcp”命令看到端口已经开放,
后来发现得用“firewall-cmd  --list-all”命令才能真正看到端口是否开放。

Appendix:

[1]如何安装缺少的命令
yum search  command-name  #查找命令所在的包
yum install package-name  #安装包

Reference:

[1]《Oracle的tnsnames.ora配置(PLSQL Developer)》
http://jingyan.baidu.com/article/b0b63dbfcd34834a4930704a.html


[2]《PLSQL怎么创建oracle数据库用户》
http://jingyan.baidu.com/album/375c8e1997522e25f2a229c3.html?picindex=5


[3]Windows 7 64位PL/SQL Developer 连接Oracle 11g
http://blog.sina.com.cn/s/blog_5f9f04130101jqhu.html