Centos6.5静默安装Oracle11gR2

Centos6.5静默安装Oracle11gR2

此文章,借鉴于网上众多文章后,通过实际操作验证可行后所写。本人也是第一次安装oracle,可以说静默安装十分不易。特此借鉴给需要的朋友,一起努力,共同学习,共同进步。严格按照本文章执行,静默安装后便可直接使用。虽然为Centos6.5,但在centos7上执行仅需更改跟系统有关的部分命令即可,对于安装oracle的设置不必更改。(本安装方法中没开启闪回功能)
简要目录
一、修改CentOS系统标识
二、安装依赖包
三、创建oracle用户和相应的属组
四、创建oraInst.loc文件
五、上传Oracle安装包
六、服务器配置文件修改
七、oracle安装应答模板文件db_install.rsp
八、配置oracle用户环境变量
九、安装oracle
十、配置监听
十一、静默安装数据库
十二、启动数据库
十三、常见问题处理

一、修改CentOS系统标识

注:Oracle默认不支持CentOS
1、修改redhat-release文件
(1)、打开redhat-release文件
vi /etc/redhat-release
(2)、将文件内容替换为:redhat-7
在这里插入图片描述
mv redhat-release redhat-7
在这里插入图片描述

二、安装依赖包

1、执行命令
yum -y install gcc gcc-c++ make binutils compat-libstdc+±33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static glibc glibc-common glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc+±devel numactl-devel sysstat unixODBC unixODBC-devel kernelheaders pdksh pcre-devel readline rlwrap 
2、问题处理
若出现Multilib version problems found. This often means that the root cause is something else and multilib version checking is just pointing out that there is a problem. Eg,则查看是什么包重复:

Centos6.5静默安装Oracle11gR2_第1张图片
执行命令:yum install --setopt=protected_multilib=false libgcc

三、创建oracle用户和相应的属组

1、创建用户和组
(1)、创建安装oracle程序用户组
groupadd oinstall
(2)、创建DBA用户组
groupadd dba
(3)、创建用户oracle加入到dba、oinstall组
useradd -g oinstall -G dba oracle
在这里插入图片描述
(4)、修改用户oracle的密码为oracle
passwd oracle
Centos6.5静默安装Oracle11gR2_第2张图片
2、创建目录并修改权限
(1)、创建oracle主目录(BASE目录为/usr/local/oracle)
mkdir -p /usr/local/oracle/product/11.2.0/db_1
(2)、创建oralce数据存放目录(静默建库使用)
mkdir -p /usr/local/oradata
(3)、创建Inventory日志存放目录
mkdir -p /usr/local/oraInventory
(4)、修改目录权限:
chown -R oracle:oinstall /usr/local/oracle /usr/local/oraInventory /usr/local/oradata/
chmod -R 775 /usr/local/oracle /usr/local/oraInventory /usr/local/oradata/
查看目录权限 # ll /usr/local/
Centos6.5静默安装Oracle11gR2_第3张图片

四、创建oraInst.loc文件

1、新建/etc/oraInst.loc文件
vi /etc/oraInst.loc
2、文件内写入内容
inventory_loc=/usr/local/oraInventory
inst_group=oinstall
3、设定该文件的用户组及权限。
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc

五、上传Oracle安装包

1、创建存放文件夹
mkdir /asop/software
2、上传安装文件至文件夹内并解压缩
unzip linux.x64_11gR2_database_1of2.zip && unzip linux.x64_11gR2_database_2of2.zip
3、解压后出现database文件夹,赋予权限
chmod 777 /asop/software/database/
chown -R oracle:oinstall /asop/software/database/

六、服务器配置文件修改

1、在hosts文件中添加主机名
(1)、打开hosts文件
vi /etc/hosts
(2)、修改内容
加入127.0.0.1 htscce1
在这里插入图片描述
2、开放防火墙端口
(1)、开放1521指定端口
/sbin/iptables -I(大写字母I) INPUT -p tcp --dport 1521 -j ACCEPT
(2)、保存修改
/etc/init.d/iptables save
(3)、重启防火墙,
service iptables restart
Centos6.5静默安装Oracle11gR2_第4张图片
(4)、查看端口状态
/etc/init.d/iptables status
3、永久关闭selinux
(1)、打开selinux文件
vi /etc/sysconfig/selinux
(2)、修改文件内容
将文本中的SELINUX=enforcing,改为SELINUX=disabled。
(3)、即时生效
setenforce 0
(4)、重启服务器
reboot
(5)、查看状态
getenforce
4、修改内核参数文件
(1)、打开内核文件
vi /etc/sysctl.conf
(2)、添加以下内容(默认值大则不用修改)
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.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 = 1048576
其中kernel.shmmax = 1073741824为本机物理内存的一半,单位为byte。
Centos6.5静默安装Oracle11gR2_第5张图片
(3)、内核配置生效
sysctl –p
5、修改用户的限制文件
(1)、打开limits.conf 文件
vim /etc/security/limits.conf
(2)、添加以下内容
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
Centos6.5静默安装Oracle11gR2_第6张图片
6、修改login文件
(1)、打开login文件
vim /etc/pam.d/login
(2)、添加以下内容:
session required /lib64/security/pam_limits.so
session required pam_limits.so
Centos6.5静默安装Oracle11gR2_第7张图片

七、oracle安装应答模板文件db_install.rsp

注:文件解压路径为/asop/software/database/
1、拷贝文件并修改属性
(1)、将oracle静默安装所需应答文件全部拷贝至 /usr/local/oracle文件夹下
cp /asop/software/database/response/* /usr/local/oracle/
在这里插入图片描述
(2)、修改安装所需的所有应答文件的所属组及权限
chown oracle:oinstall /usr/local/oracle/.rsp
chmod 755 /usr/local/oracle/
.rsp
Centos6.5静默安装Oracle11gR2_第8张图片
2、配置db_install.rsp文件
(1)、打开文件
vi /usr/local/oracle/db_install.rsp
(2)、修改参数
//安装类型,只装数据库软件
oracle.install.option=INSTALL_DB_SWONLY         
//主机名称(命令hostname查询)
ORACLE_HOSTNAME=htscce2           
// 安装组
UNIX_GROUP_NAME=oinstall
//INVENTORY目录**(不填就是默认值,本例此处需修改,因个人创建安装目录而定)**
INVENTORY_LOCATION=/usr/local/oraInventory
// 选择语言         
SELECTED_LANGUAGES=en,zh_CN
// oracle_home 路径根据目录情况注意修改 本机安装路径/usr/local/oracle          ORACLE_HOME=/usr/local/oracle/product/11.2.0/db_1
// oracle_base 注意修改
注:BASE相当于oracle根目录,BASE可以安装多个oracle,但是一个HOME只有放一个oracle
ORACLE_BASE=/usr/local/oracle
// oracle版本     
oracle.install.db.InstallEdition=EE       
//自定义安装,否,使用默认组件          
oracle.install.db.isCustomInstall=false
//dba用户组        
oracle.install.db.DBA_GROUP=dba
//oper用户组        
oracle.install.db.OPER_GROUP=oinstall
//数据库类型        
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
//globalDBName
oracle.install.db.config.starterdb.globalDBName=orcl
//SID(此处注意与环境变量内配置SID一致)
oracle.install.db.config.starterdb.SID=orcl
//自动管理内存的内存(M)        
oracle.install.db.config.starterdb.memoryLimit=81920
//设定所有数据库用户使用同一个密码
oracle.install.db.config.starterdb.password.ALL=oracle
//(手动写了false)
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false**
// **注意此参数 设定一定要为true      
DECLINE_SECURITY_UPDATES=true
Centos6.5静默安装Oracle11gR2_第9张图片

八、配置oracle用户环境变量

1、切换用户并修改环境变量
(1)、切换为oracle用户
su - oracle
(2)、打开并编辑bash_profile文件
vi .bash_profile
在文件中添加一下内容
export ORACLE_BASE=/usr/local/oracle
export ORACLE_HOME= O R A C L E B A S E / p r o d u c t / 11.2.0 / d b 1 e x p o r t O R A C L E S I D = o r c l e x p o r t P A T H = ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID=orcl export PATH= ORACLEBASE/product/11.2.0/db1exportORACLESID=orclexportPATH=PATH: O R A C L E H O M E / b i n e x p o r t N L S L A N G = A M E R I C A N A M E R I C A . A L 32 U T F 8 e x p o r t L D L I B R A R Y P A T H = ORACLE_HOME/bin export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 export LD_LIBRARY_PATH= ORACLEHOME/binexportNLSLANG=AMERICANAMERICA.AL32UTF8exportLDLIBRARYPATH=ORACLE_HOME/lib:/usr/lib
Centos6.5静默安装Oracle11gR2_第10张图片
(3)、执行命令使配置文件生效
source .bash_profile

九、安装oracle

注:使用oracle账户
1、执行安装命令:
/asop/software/database/./runInstaller -silent -force -ignorePrereq -responseFile /usr/local/oracle/db_install.rsp
参数说明:
/asop/software/database是安装包解压后的路径,此处根据安装包解压所在位置做修改,因人而异。
runInstaller 是主要安装脚本
  -silent 静默模式
  -force 强制安装
  -ignorePrereq忽略warning直接安装。
-responseFile读取安装应答文件
2、安装结束,出现安装成功提示
注:有时会直接出现命令行状态,但实际未安装结束。等待出现安装成功或报错后,再进行其它命令的执行。
Centos6.5静默安装Oracle11gR2_第11张图片
3、根据提示,打开新的远程窗口用root执行脚本
/usr/local/oracle/product/11.2.0/db_1/root.sh
在这里插入图片描述

十、配置监听

1、编辑监听配置文件
(1)、打开监听文件
vi /data/src/database/response/netca.rsp
(2)、修改参数
INSTALL_TYPE="“custom”" # 安装的类型
LISTENER_NUMBER=1 # 监听器数量
LISTENER_NAMES={“LISTENER”} # 监听器的名称列表LISTENER_PROTOCOLS={“TCP;1521”} # 监听器使用的通讯协议列表
LISTENER_START="“LISTENER”" # 监听器启动的名称
Centos6.5静默安装Oracle11gR2_第12张图片
(3)、启动监听
netca -silent -responsefile /u01/database/response/netca.rsp
(4)、查看监听是否启动
lsnrctl status
Centos6.5静默安装Oracle11gR2_第13张图片
(5)、出现the listener support no service
解决方法:在listener.ora($ORACLE_HOME/network/admin/listener.ora)里面添加了一行
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = orcl)
(SID_NAME = orcl)
)
)
Centos6.5静默安装Oracle11gR2_第14张图片
之后重启监听服务
(6)、启动与停止
开启监听:
/usr/local/oracle/product/11.2.0/db_1/bin/lsnrctl start
关闭监听:
/usr/local/oracle/product/11.2.0/db_1/bin/lsnrctl stop

十一、静默安装数据库

1、修改模板(用root账户)
(1)、打开模板文件(先备份模板文件)
vi /asop/software/database/response/dbca.rsp
(2)、编辑文件
注:#创建实例有只需要修改创建实例部分的参数就可以了,看到#------*** End of CREATEDATABASE section **------部分就算是配置完了。
#------以下参数不要更改
[GENERAL]
#指定版本号
RESPONSEFILE_VERSION = “11.2.0”
#指定使用dbca要做的操作,这里要创建实例就选择createDatabase,如果要删除实例则为deleteDatabase
OPERATION_TYPE = “createDatabase”
#------以上参数不要更改
#以下参数必须设置
[CREATEDATABASE]
#数据库的Global database name
GDBNAME = “orcl.htscce2”
#数据库的实例名(暂不确定是都否需要与用户环境变量文件.bash_prfile中的export ORACLE_SID=orcl对应)
SID=“orcl”
#指定sys用户密码
SYSPASSWORD = “oracle”
#指定system用户密码
SYSTEMPASSWORD = “oracle”
#指定数据文件存放的目录
DATAFILEDESTINATION = /usr/local/oradata
#字符集将"AL32UTF8"修改为"ZHS16GBK"
CHARACTERSET=“ZHS16GBK”
#指定国家字符集
NATIONALCHARACTERSET=“AL16UTF16”
#指定实例的类型
DATABASETYPE = “OLTP”
#指定使用自动内存管理
AUTOMATICMEMORYMANAGEMENT = “TRUE”
#指定使用内存的大小,单位是MB(物理内存
80%)
TOTALMEMORY = “12800”
Centos6.5静默安装Oracle11gR2_第15张图片
2、执行模板文件(用oracle账户)
$ORACLE_HOME/bin/dbca -silent -responseFile /asop/software/database/response/dbca.rsp

Centos6.5静默安装Oracle11gR2_第16张图片
3、实例检查
ps -ef | grep ora_ | grep -v grep
[oracle@silentcoln ~]$ echo $ORACLE_SID
Centos6.5静默安装Oracle11gR2_第17张图片

4、静默删除数据库
(1)、dbca -silent -deleteDatabase -sourceDB orcldb -sysDBAUserName sys -sysDBAPassword sys_passwd
(2)、logout

十二、启动数据库

1、启动数据库
[oracle@silentcoln ~]$ sqlplus / as sysdba //as前有个空格
SQL>startup
2、查询启动状态
SQL> select status from v$instance;
Centos6.5静默安装Oracle11gR2_第18张图片

十三、常见问题处理

1、出现Exception in thread “main” java.lang.NoClassDefFoundError
[oracle@htscce2 ~]$ Exception in thread “main” java.lang.NoClassDefFoundError
Centos6.5静默安装Oracle11gR2_第19张图片
解决:查看是否安装DISPLAY,执行卸载
(1)、echo $DISPLAY
(2)、unset DISPLAY
(3)、echo $DISPLAY
Centos6.5静默安装Oracle11gR2_第20张图片
2、启动监听出现错误
Centos6.5静默安装Oracle11gR2_第21张图片
解决:export DISPLAY=本机IP:0.0
Centos6.5静默安装Oracle11gR2_第22张图片
3、在sqlplus和rman中输入 BACKSPACE 键变成 ^h
在这里插入图片描述
(1)、打开变量配置文件
vi /home/oracle/.bash_profile
(2)、加入stty erase ^h
Centos6.5静默安装Oracle11gR2_第23张图片
(3)、更新配置文件
source /home/oracle/.bash_profile
4、startup启动数据库报错
在这里插入图片描述

解决:(1)、先检查 O R A C L E B A S E 下 有 无 a d m i n 文 件 夹 , 如 没 有 则 先 静 默 建 库 。 ( 2 ) 、 若 存 在 a d m i n 文 件 夹 , 则 将 ORACLE_BASE下有无admin文件夹,如没有则先静默建库。 (2)、若存在 admin文件夹,则将 ORACLEBASEadmin2adminORACLE_BASE/admin/(dbname) /pfile目录下的init.ora(.01200923383)文件复制到$ORACLE_HOME/dbs目录下即可。
8、tomcat连接非本地数据库出现ORA-12514, TNS:listener does not currently know of service requested in connect descriptor。
(1)、首先检查客户端的tnsnames.ora里面的host、port、service_name等是否正确
tnsnames.ora位置:ORACLE_HOME/network/admin/tnsnames.ora(/usr/local/oracle/product/11.2.0/db_1/network/admin)
Centos6.5静默安装Oracle11gR2_第24张图片

(2)、检查确认数据库实例是否启动
SQL> select status from v$instance;
Centos6.5静默安装Oracle11gR2_第25张图片
(3)、检查监听服务
lsnrctl status
出现Instance “ORACMSDB”, status UNKNOWN, has 1 handler(s) for this service…(由于实例没有注册到监听服务中)
Centos6.5静默安装Oracle11gR2_第26张图片
注册服务:alter system register;
在这里插入图片描述
再次查看监听:lsnrctl status
依然存在Instance “ORACMSDB”, status UNKNOWN, has 1 handler(s) for this service…
在这里插入图片描述
检查监听日志:ORACLE_BASE/diag/tnslsnr/DB-Server/listener/alert
(/usr/local/oracle/diag/tnslsnr/htscce2/listener/alert/log.xml)
发现type=‘UNKNOWN’ level=‘16’ host_id=‘htscce2’
host_addr=‘127.0.0.1’>
,问题所在
Centos6.5静默安装Oracle11gR2_第27张图片
查看hosts文件:/etc/hosts
Centos6.5静默安装Oracle11gR2_第28张图片
修改文件(一开始安装oracle设置hosts有误)
Centos6.5静默安装Oracle11gR2_第29张图片
再次注册服务:alter system register;
重启监听
查看监听状态:lsnrctl status
Centos6.5静默安装Oracle11gR2_第30张图片
监听成功。

你可能感兴趣的:(linux,centos,oracle,静默,数据库)