centos6静默安装oracle11g教程

Oracle Linux是Linux发行版本之一,全称为Oracle Enterprise Linux,简称OEL,是Oracle公司在2006年初发布第一个版本,以对Oracle软件和硬件支持较好见长。

Oracle以Red Hat Linux做为起始,移除了Red Hat的商标,然后加入了Linux的错误修正。Oracle Enterprise Linux现在是,并旨在保持为,与Red Hat Enterprise Linux完全兼容

下面是oracle11g静默安装教程

首先我们关闭sellinux

sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

使配置生效

setenforce 0

修改机器名字

vi /etc/hosts
127.0.0.1   oracle
vi /etc/sysconfig/network
HOSTNAME=oracle

安装前oracle基本环境要求说明,内存不小于2G,如果小于2G那么系统的swap交换分区会小于2G,一般要求swap为内存的1-1.5倍,我们就需要增加swap交换分区大小

dd if=/dev/zero of=/home/swapfile bs=1M count=2048 #生成交换分区文件,大小2G
mkswap /home/swapfile #使用交换分区文件
swapon /home/swapfile #启用交换分区 关闭swap分区是swapoff /home/swapfile
vi /etc/fstab #编辑fstab
/home/swapfile swap swap defaults 0 0 #添加到启动引导文件

导入阿里云yum源码

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum makecache
yum update

安装oracle依赖包

yum -y install binutils compat-libstdc++-33 compat-libstdc++-33.i686 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-devel.i686 glibc-headers ksh libaio libaio.i686 libaio-devel libaio-devel.i686 libgcc libgcc.i686 libstdc++ libstdc++.i686 libstdc++-devel make sysstat unixODBC unixODBC-devel

依赖包安装完毕以后我们创建oracle所需要的用户和用户组

groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle

修改内核达到oracle的支持的要求,没有的参数可以直接在最下方直接自己添加

vi /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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 = 1048586
sysctl -p #使内核生效

修改用户资源限制 

vi /etc/security/limits.conf
#下面加入
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240

修改/etc/pam.d/login文件

vi /etc/pam.d/login
#增加
session required /lib/security/pam_limits.so 
session required pam_limits.so

修改/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
source /etc/profile #是配置生效

创建安装目录

mkdir -p /usr/local/oracle
mkdir -p /usr/local/oraInventory
mkdir -p /usr/local/oradata
chown -R oracle:oinstall /usr/local/oracle
chown -R oracle:oinstall /usr/local/oraInventory
chown -R oracle:oinstall /usr/local/oradata
chmod -R 775 /usr/local/oracle
chmod -R 775 /usr/local/oraInventory
chmod -R 775 /usr/local/oradata

创建oraInst.loc文件

vi /etc/oraInst.loc
#文件内加入以下内容
inventory_loc=/usr/local/oraInventory
inst_group=oinstall
#保存退出后执行以下命令。设定该文件的用户组及权限。
chown oracle:oinstall /etc/oraInst.loc
chmod 664 /etc/oraInst.loc

上传oracle11g安装文件到/usr/local/src目录

cd /usr/local/src
unzip linux.x64_11gR2_database_1of2.zip
unzip linux.x64_11gR2_database_2of2.zip
#待解压完毕后会生成文件夹/usr/local/src/database 修改其用户组及权限此处直接使用777
chmod -R 777 /usr/local/src/database
chown -R oracle.oinstall /usr/local/src/database

准备oracle安装应答模板文件db_install.rsp文件

1、该文件默认存放在解压后的安装包内,也就是本例中/usr/local/src/database/response下,

#将oracle静默安装所需应答文件全部拷贝至 /usr/local/oracle文件夹下

cp -rf /usr/local/src/database/response/* /usr/local/oracle/

2、修改安装所需的所有应答文件的所属组及权限

chown oracle:oinstall /usr/local/oracle/*.rsp
chmod 755 /usr/local/oracle/*.rsp

3、设置oracle用户环境

由root切换至创建好的oracle用户

su - oracle
#修改该用户的用户配置文件
vi .bash_profile
#文件内加入并修改至以下内容
export ORACLE_BASE=/usr/local/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_OWNER=oracle
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
#保存退出后执行source命令立即生效。
source .bash_profile

4、配置db_install.rsp文件

vi /usr/local/oracle/db_install.rsp
#文件内修改相应的参数配置如下:
oracle.install.option=INSTALL_DB_SWONLY  //安装类型,只装数据库软件
ORACLE_HOSTNAME=oracle                          //主机名称(命令hostname查询)
UNIX_GROUP_NAME=oinstall                     // 安装组
INVENTORY_LOCATION=/usr/local/oraInventory         //INVENTORY目录(**不填就是默认值,本例此处需修改,因个人创建安装目录而定)
SELECTED_LANGUAGES=en,zh_CN                       // 选择语言
ORACLE_HOME=/usr/local/oracle/product/11.2.0/db_1      // oracle_home *路径根据目录情况注意修改 本例安装路径/usr/local/oracle
ORACLE_BASE=/usr/local/oracle                           // oracle_base *注意修改
oracle.install.db.InstallEdition=EE                  // oracle版本
oracle.install.db.isCustomInstall=false              //自定义安装,否,使用默认组件
oracle.install.db.DBA_GROUP=dba                      //dba用户组
oracle.install.db.OPER_GROUP=oinstall                //oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE   //数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl      //globalDBName
oracle.install.db.config.starterdb.SID=orcl         //SID(**此处注意与环境变量内配置SID一致)
oracle.install.db.config.starterdb.memoryLimit=2048       //自动管理内存的内存(M),建议物理内存的60%
oracle.install.db.config.starterdb.password.ALL=oracle    //设定所有数据库用户使用同一个密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false            //(手动写了false)
DECLINE_SECURITY_UPDATES=true               // **注意此参数 设定一定要为true

5、在oracle用户下开始安装

/usr/local/src/database/./runInstaller -silent -force -ignorePrereq -responseFile /usr/local/oracle/db_install.rsp
#参数说明  
/usr/local/src/database是安装包解压后的路径,此处根据安装包解压所在位置做修改,因人而异。
runInstaller 是主要安装脚本
-silent 静默模式
-force 强制安装
-ignorePrereq忽略warning直接安装。
-responseFile读取安装应答文件。

6、接下来我们来监控oracle安装过程,新开一个终端窗口

通过 watch -d -n 2 'du -sh /usr/local/oracle' 监测oracle安装目录是否变化

或者直接tail -f命令监测安装log日志,日志文件在/usr/local/oraInventory/logs/下的installActions打头的文件。

等待安装编译直至出现以下内容,在新创建的root窗口内执行以下提示内的脚本

#!/bin/sh 
#Root scripts to run
/usr/local/oracle/product/11.2.0/db_1/root.sh
To execute the configuration scripts:
         1. Open a terminal window 
         2. Log in as "root" 
         3. Run the scripts 
         4. Return to this window and hit "Enter" key to continue 
Successfully Setup Software.

出现以上信息就说明oracle安装成功了!

切换到root用户执行脚本

/usr/local/oracle/product/11.2.0/db_1/root.sh

7、配置oracle监听

cd /usr/local/src/database/response
netca /silent /responsefile /usr/local/src/database/response/netca.rsp

成功运行后,在/usr/local/oracle/product/11.2.0/db_1/network/admin目录下生成sqlnet.ora和listener.ora两个文件

通过 netstat -tlnp | grep 1521 命令,看到监听器已经在1521端口上开始工作了

如果监听没有启动,则手动启动监听程序

lsnrctl start

8、配置oracle数据库

修改建库配置文件

vi /usr/local/src/database/response/dbca.rsp
GDBNAME = "orcl.oracle"     //78 行 全局数据库的名字=SID+主机域名
SID="orcl"    //149行 SID
SYSPASSWORD = "oracle"    //190行
SYSTEMPASSWORD = "oracle"   //200行
CHARACTERSET="AL32UTF8" //415行 编码
NATIONALCHARACTERSET="UTF8" //425行 编码
#创建dbca数据库
$ORACLE_HOME/bin/dbca -silent -responseFile  /usr/local/src/database/response/dbca.rsp

9、启动数据库

进入oracle SQL命令行

sqlplus / as sysdba
提示以下信息
SQL*Plus: Release 11.2.0.1.0 Production on Fri May 12 15:37:09 2017
Copyright (c) 1982, 2009, Oracle.  All rights reserved.
Connected to an idle instance.
start
SP2-1506: START, @ or @@ command has no arguments
SQL> startup
ORACLE instance started.

Total System Global Area  776646656 bytes
Fixed Size                  2217384 bytes
Variable Size             457181784 bytes
Database Buffers          310378496 bytes
Redo Buffers                6868992 bytes
Database mounted.
Database opened.

10、添加开机启动

在etc/rc.local最下面添加

vi /etc/rc.local
su oracle -lc "/usr/local/oracle/product/11.2.0/db_1/bin/lsnrctl start"
su oracle -lc /usr/local/oracle/product/11.2.0/db_1/bin/dbstart

扩展配置:

1.修改最大连接数

show parameter processes;
alter system set processes=2000 scope = spfile;

2.禁止回收站功能

show parameter recyclebin;
alter system set recyclebin=off scope=spfile;

3.关闭审计功能

show parameter audit;
alter system set audit_trail=NONE scope=spfile;

4.修改用户密码用不过期

select * from dba_profiles s where s.profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';
alter profile default limit password_life_time unlimited;
select * from dba_profiles s where s.profile='DEFAULT' and resource_name='FAILED_LOGIN_ATTEMPTS';
alter profile default limit failed_login_attempts unlimited;

5.修改控制文件里可重复使用的记录所能保存的最小天数(一般设置为45天)

show parameter control;
alter system set control_file_record_keep_time=45 scope=spfile;

安装常见问题

1.主机名问题/etc/sysconfig/network下的主机名是oracle,但是/etc/hosts内主机名没有oracle

安装日志中提示

Caught UnknownHostException: oracle: oracle

那么需要在/etc/hosts下增加

127.0.0.1 oracle

同时检查/etc/sysconfig/network有以下配置

HOSTNAME=oracle

2.执行/usr/local/src/database/./runInstaller -silent -force -ignorePrereq -responseFile /usr/local/oracle/db_install.rsp报错

line 97: /usr/local/src/database/./install/.oui: permission denied

这个你需要给安装脚本执行权限

chmod -R 755 /usr/local/src/database/

3.启动oracle报错

ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/usr/local/oracle/product/11.2.0/db_1/dbs/initorcl.ora'

出现这个问题我们需要拷贝一份文件到以上目录

cp /usr/local/oracle/admin/orcl/pfile/init.ora.65201865225 /usr/local/oracle/product/11.2.0/db_1/dbs/initorcl.ora

4.启动oracle报错

ORA-00845: MEMORY_TARGET not supported on this system

oracle 11g中新增的内存自动管理的参数MEMORY_TARGET,它能自动调整SGA和PGA,这个特性需要用到/dev/shm共享文件系统,而且要求/dev/shm必须大于MEMORY_TARGET,如果/dev/shm比MEMORY_TARGET小,就会报错。

1).初始化参数MEMORY_TARGET或MEMORY_MAX_TARGET不能大于共享内存(/dev/shm),为了解决这个问题,可以增大/dev/shm

mount -t tmpfs shmfs -o size=12288M /dev/shm

但如果之前已经mount过了,则执行remount

mount -o remount,size=12288M /dev/shm

2).为了确保操作系统重启之后能生效,需要修改/etc/fstab文件

tmpfs /dev/shm tmpfs  defaults,size=12288M      0 0


内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://sulao.cn/post/508.html

我要评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。