一、安装环境
CentOS Linux 7
Oracle 11g R2
二、安装前准备
2.1. 修改主机名称
#查看主机名称
[root@oracle ~]# hostnamectl status
[root@oracle ~]# hostnamectl set-hostname oracle
2.2. 修改hosts文件
修改hosts文件是为了保持ip 与 主机名对应
[root@oracle ~]# vim /etc/hosts
#新增ip与主机名对应
127.0.0.1 oracle
10.10.0.7 oracle #本机ip地址
#重启机器
[root@oracle ~]# reboot
2.3. 关闭Selinux(太深奥,先关闭了)
[root@oracle ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
[root@oracle ~]# setenforce 0
2.4. 防火墙开放 1521 端口
#centos7防火墙与centos6防火墙有比较大差异
#关闭centos7防火墙
[root@oracle ~]# systemctl stop firewalld.service
#关闭开机启动
[root@oracle ~]# systemctl disable firewalld.service
#安装iptables防火墙
[root@oracle ~]# yum install iptables-services
[root@oracle ~]# vim /etc/sysconfig/iptables
#新增1521接口
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
#设置开机启动
[root@oracle ~]# systemctl enable iptables
#重启iptabls服务
[root@oracle ~]# systemctl restart iptables.service
2.5 安装所需的软件包
查看Oracle安装文档中列出的Package Requirements可以查看在不同平台上需要的软件包。
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
Oracle ODBC Drivers
On Oracle Linux 6, Red Hat Enterprise Linux 6, and Asianux Server 4:
unixODBC-2.3.1-6.el7.x86_64 or later
unixODBC-2.3.1-6.el7.i686 or later
unixODBC-devel-2.3.1-6.el7.x86_64 or later
unixODBC-devel-2.3.1-6.el7.i686 or later
安装软件包
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
2.6. 创建用户组与用户
[root@oracle ~]# groupadd oinstall
[root@oracle ~]# groupadd dba
#可不需要该用户组 oper
[root@oracle ~]# groupadd oper
[root@oracle ~]# useradd -g oinstall -G dba,oper oracle
[root@oracle ~]# passwd oracle
2.7. 修改kernel内核
[root@oracle ~]# vim /etc/sysctl.conf
#配置文件内加入 修改以下参数。如果没有可以自己添加,如果默认值比参考值大,则不需要修改。
kernel.shmmni = 4096 #这个内核参数用于设置系统范围内共享内存段的最大数量。该参数的默认值是 4096 。通常不需要更改。
kernel.shmmax = 2147483648 #该参数定义了共享内存段的最大尺寸(以字节为单位)。缺省为32M,对于oracle来说,该缺省值太低了,通常将其设置为2G。
kernel.shmall = 2097152 #该参数表示系统一次可以使用的共享内存总量(以页为单位)。缺省值就是2097152,通常不需要修改。
kernel.sem = 250 32000 100 128
fs.aio-max-nr = 1048576
fs.file-max = 65536 #设置最大打开文件数
net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4端口范围
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
保存后退出并立即生效:
[root@oracle ~]# sysctl -p
2.8. 修改系统资源限制
[root@oracle ~]# vim /etc/security/limits.conf
#配置文件下方加入
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
#修改用户验证选项 关联设置
[root@oracle ~]# vim /etc/pam.d/login
#加入以下语句:
session required /lib64/security/pam_limits.so
session required pam_limits.so
#(注意:根据最后一条session规则的注释,应该加在最后一条规则之前)
2.9. 创建安装目录与目录权限
#创建安装目录,并赋予用户与用户组
#oracle目录 安装目录
#oradata 数据存储目录
#inventory 清单目录
#fast_recovery_area 恢复目录
[root@oracle ~]# mkdir -p /data/oracle/product/11.2.0
[root@oracle ~]# mkdir /data/oracle/oradata
[root@oracle ~]# mkdir /data/oracle/inventory
[root@oracle ~]# mkdir /data/oracle/fast_recovery_area
[root@oracle ~]# chown -R oracle:oinstall /data/oracle
[root@oracle ~]# chmod -R 775 /data/oracle
2.10. 创建Oracle环境变量
#11G R1需要,R2可省略
[root@oracle ~]# vim /etc/profile
#在末尾增加以下内容
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/sh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
三、安装Oracle Database
3.1. 上传安装文件到home目录,并解压
[oracle@oracle ~]# unzip linux.x64_11gR2_database_1of2.zip
[oracle@oracle ~]# unzip linux.x64_11gR2_database_2of2.zip
3.2. 准备oracle安装应答模板文件db_install.rsp文件
[oracle@oracle database]$ cp response/* /usr/local/oracle/
[oracle@oracle oracle]$ chmod 755 ./*.rsp
#编辑
[oracle@oracle oracle]$ vim db_install.rsp
#修改文件中一下内容
//安装类型,只装数据库软件
oracle.install.option=INSTALL_DB_SWONLY
//主机名称(命令hostname查询)
ORACLE_HOSTNAME=oracle
// 安装组
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 *注意修改
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=dba
// **注意此参数 设定一定要为true
DECLINE_SECURITY_UPDATES=true
3.3. 设置Oracle用户环境变量
[oracle@oracle ~]$ vim .bash_profile
#添加以下内容
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export ORACLE_SID=infoyb
export ORACLE_OWNER=oracle
export NLS_LANG=american_america.AL32UTF8
export LANG=en_US.UTF-8
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$ORACLE_HOME/lib:$ORACLE_HOME/bin
export PATH
#立即生效
[oracle@oracle ~]$ source .bash_profile
3.4. 在oracle 用户下安装
#进入解压目录
[oracle@oracle ~]$ cd ~/database
[oracle@oracle ~]$ ./runInstaller -silent -ignorePrereq -responseFile /usr/local/oracle/db_install.rsp
/home/database是安装包解压后的路径,此处根据安装包解压所在位置做修改,因人而异。
runInstaller 是主要安装脚本
-silent 静默模式
-force 强制安装
-ignorePrereq忽略warning直接安装。
-responseFile读取安装应答文件。
出现以下内容代表安装成功
根据提示内容,切换root用户执行以下语句。
/data/oracle/inventory/orainstRoot.sh
/data/oracle/product/11.2.0/root.sh
四、以静默方式配置监听
[oracle@oracle ~]$ netca /silent /responseFile /home/oracle/response/netca.rsp
成功运行后,在/data/oracle/product/11.2.0/network/admin/中生成listener.ora和sqlnet.ora
通过netstat命令可以查看1521端口正在监听。
五、以静默方式建立新库,同时也建立一个对应的实例
[oracle@oracle ~]$ vim /home/oracle/response/dbca.rsp
GDBNAME= "infoyb"
SID =" infoyb"
SYSPASSWORD= "com.oracle2015"
SYSTEMPASSWORD= "com.oracle2015"
SYSMANPASSWORD= "com.oracle2015"
DBSNMPPASSWORD= "com.oracle2015"
DATAFILEDESTINATION=/data/oracle/oradata
RECOVERYAREADESTINATION=/data/oracle/fast_recovery_area
CHARACTERSET= "AL32UTF8"
TOTALMEMORY= "6553"
其中TOTALMEMORY ="6553" 为6553MB,物理内存8G*80%。
进行静默配置:
[oracle@oracle ~]$ dbca -silent -responseFile /home/oracle/response/dbca.rsp
查看监听状态:
登陆查看实例状态:
[oracle@oracle ~]$ sqlplus / as sysdba
#select status from v$instance;
六、创建表空间与用户
6.1.创建表空间
create tablespace infoyb logging datafile'/data/oracle/oradata/infoyb/infoyb.dbf' size 1024m autoextend on next 100m maxsize 10240m extent management local;
6.2.创建用户
create user infoyb identified by infoyb default tablespace infoyb;
6.3.给用户赋权限
#为了省事,先把DBA权限赋值。
grant dba to infoyb;
七、链接测试
八、设置开机启动
8.1.修改/data/oracle/product/11.2.0/bin/dbstart
[oracle@oracle ~]$ vim /data/oracle/product/11.2.0/bin/dbstart
#将ORACLE_HOME_LISTNER=$1
#修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
8.2.修改/data/oracle/product/11.2.0/bin/dbshut
[oracle@oracle ~]$ vim /data/oracle/product/11.2.0/bin/dbshut
#将ORACLE_HOME_LISTNER=$1
#修改为ORACLE_HOME_LISTNER=$ORACLE_HOME
8.3.修改/etc/oratab文件
[oracle@oracle ~]$ vim /etc/oratab
#将infoyb:/data/oracle/product/11.2.0:N中最后的N改为Y
8.4.创建启动文件
#用root用户执行
[root@oracle ~]$ vim /etc/init.d/oracle
#新增以下内容
#!/bin/sh
# chkconfig: 345 61 61
# description: Oracle 11g R2 AutoRun Servimces
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Instance, Listener, and
# Web Interface
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0
export ORACLE_SID=infoyb
export ORACLE_UNQNAME=$ORACLE_SID
export PATH=$ORACLE_HOME/bin:/user/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
ORA_OWNR="oracle"
# if the executables do not exist -- display error
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo "Oracle startup: cannot start"
exit 1
fi
# depending on parameter -- startup, shutdown, restart
# of the instance and listener or usage display
case "$1" in
start)
# Oracle listener and instance startup
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbstart
echo "Oracle Start Succesful!OK."
;;
stop)
# Oracle listener and instance shutdown
su $ORA_OWNR -lc $ORACLE_HOME/bin/dbshut
echo "Oracle Stop Succesful!OK."
;;
reload|restart)
$0 stop
$0 start
;;
*)
echo $"Usage: `basename $0` {start|stop|reload|reload}"
exit 1
esac
exit 0
8.5.设置启动文件权限
[root@oracle ~]$ chmod +x oracle
[root@oracle ~]$ chkconfig --add oracle
[root@oracle ~]$ chkconfig oracle on
8.6.重启测试
[root@oracle ~]$ reboot
重启后查看监听状态,上图代表启动成功