CentOS 7按照Oracle 11G教程
一、 安装环境和工具
系统环境:CentOS Linux release 7.3.1611 (Core)
Oracle版本:Oracle Database 11g R2
工具:Xshell6和Xftp6
注:系统安装时需安装桌面组件。
二、 安装前准备
1、 关闭selinux
查看selinux状态:getenforce 或者sestatus –v
临时关闭:setenforce 0
永久关闭:vim /etc/selinux/config 设置SELINUX=disabled
注:修改/etc/selinux/config 后需重启服务器才生效(reboot)
2、 关闭firewalld 安装iptables(服务器不建议执行,直接使用firewalld)
systemctl status firewalld.service
systemctl start firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service
yum -y install iptables-services
systemctl restart iptables.service
systemctl enable iptables.service
3、 创建用户及安装目录,安装依赖包
创建用户:
[root@hzjz ~]# groupadd oinstall
[root@hzjz ~]# groupadd dba
[root@hzjz ~]# useradd -g oinstall -G dba -m oracle
[root@hzjz ~]# passwd oracle
创建安装目录并解压安装文件:
[root@hzjz ~]# mkdir -p /ora
通过Xftp将
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip
上传到/ora目录下
[root@hzjz ~]# unzip -d /ora/ /ora/linux.x64_11gR2_database_1of2.zip
[root@hzjz ~]# unzip -d /ora/ /ora/linux.x64_11gR2_database_2of2.zip
[root@hzjz ~]# chown -R oracle:oinstall /ora
[root@hzjz ~]# chmod 755 -R /ora
[root@hzjz ~]# mkdir -p /u01/app
[root@hzjz ~]# mkdir -p /u01/app/tmp
[root@hzjz ~]# mkdir -p /u01/app/oracle
[root@hzjz ~]# chown -R oracle:oinstall /u01
[root@hzjz ~]# chmod 755 -R /u01
4、 安装oracle所需依赖
[root@hzjz ~]# yum -y install binutils compat compat-libstdc gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc+±devel libXi libXtst make sysstat unixODBC unixODBC-devel
5、 系统内核修改
说明:
内核参数需要注意,shmall 和shmmax 的值由服务器内存决定:
kernel.shmall:
该参数控制可以使用的共享内存的总页数。Linux共享内存页大小为4KB,共享内存段的大小都是共享内存页大小的整数倍。一个共享内存段的最大大小是16G,那么需要共享内存页数是16GB/4KB=16777216KB/4KB=4194304(页),也就是64Bit系统下16GB物理内存,设置kernel.shmall = 4194304 符合要求。
kernel.shmmax:
是核心参数中最重要的参数之一,用于定义单个共享内存段的最大值。64位linux系统:可取的最大值为物理内存值-1byte,建议值为多于物理内存的一半,例如,如果为16GB物理内存,可取1010241024*1024-1=10737418239。
kernel.shmmni:
该参数是共享内存段的最大数量。shmmni缺省值4096,一般肯定是够用了。
kernel.sem = 250 32000 100 128 的意思是:
250是参数semmsl的值,表示一个信号量集合中能够包含的信号量最大数目。
32000是参数semmns的值,表示系统内可允许的信号量最大数目。
100是参数semopm的值,表示单个semopm()调用在一个信号量集合上可以执行的操作数量。
128是参数semmni的值,表示系统信号量集合总数。
4G内存左右服务器配置:
[root@hzjz ~]# vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 1048576
kernel.shmmax = 3221225471
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
8G内存左右服务器配置:
[root@hzjz ~]# vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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
16/32G内存左右服务器配置:
[root@hzjz ~]# vim /etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 4194304
kernel.shmmax = 17179869183
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
[root@hzjz ~]# sysctl -p
6、 修改认证模块
[root@hzjz ~]# vim /etc/security/limits.conf
oracle soft nproc 131072
oracle hard nproc 131072
oracle soft nofile 131072
oracle hard nofile 131072
oracle soft core unlimited
oracle hard core unlimited
oracle soft memlock 50000000
oracle hard memlock 50000000
7、 修改用户登录认证
[root@hzjz ~]# vim /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
注:
32位:/lib/security/pam_limits.so
64位:/lib64/security/pam_limits.so
8、 设置环境变量(ORACLE_HOME 设置为安装目录product下默认目录)
[root@hzjz ~]# vim /etc/profile
#oracle
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
if [ $USER = “oracle” ]; then
if [ $SHELL = “/bin/ksh” ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
9、 修改Oracle用户环境变量
[oracle@hzjz ~]# vim /home/oracle/.bash_profile
export TMP=/u01/app/tmp
export TMPDIR=/u01/app/tmp
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=
O
R
A
C
L
E
H
O
M
E
/
b
i
n
:
/
u
s
r
/
s
b
i
n
:
ORACLE_HOME/bin:/usr/sbin:
ORACLEHOME/bin:/usr/sbin:PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
[root@hzjz ~]# source /home/oracle/.bash_profile
三、 通过桌面方式安装Oracle
1、 使用oracle用户登录桌面,打开终端运行安装程序
[root@hzjz ~]# cd /ora/database
[root@hzjz database]# ./runInstaller
注意:oracle中文语言会出现乱码,所以系统最好设置为en 英文,如果系统安装的时候选择了中文,那么oracle用户登录的时候也要修改用户语言为英文才能正常安装。
2、 临时修改界面语言
在区域与语言设置语言位英文。
3、 安装过程是都有相应提示的,并且鼠标直接点就完了
1) 订阅邮件这些就直接跳过不填了。
2) 这里选择创建和配置数据库,稍后再配置初始化数据。
3) 让选择桌面版还是服务器版,如果有当然选择服务器版咯
4) 选择单实例安装
5) 安装类型,选择“高级安装”
6) 产品语言,直接默认即可(简体中文、英语)。
7) 数据库版本,选择“企业版”
8) 这里就出现最开始创建的相应目录信息了,会自动读取
9) 下一步
10) 配置类型,选择“一般用途/事务处理”
11) 数据库标识符,自动读取填入全局数据库名和SID
12) 配置选项,切换到“字符集”选项卡,根据自己需要选择。
13) 下一步
14) 自动读取填入,下一步
15) 下一步
16) 方案口令,对话框可能无法正常弹出,向左移一步
17) 自动读取填入,下一步
18) centos7上yum安装的依赖包要比oracle 11g 所需的包更新,版本更高,所以可以直接忽略这些提示(勾选 ignore all),下一步
19) 点击完成,下一步
20) 等待安装。。。中间会出现弹窗,回车回车就行(反正看不了)。
21) 设置数据库用户和密码。
22) 出现弹窗直接回车,然后安装完成。
4、 修改界面语言
在区域与语言设置语言位中文。
5、 开机启动Oralce(如果没有这个文件就新增,添加内容)
[root@hzjz ~]# vi /etc/oratab
“orcl:/u01/app/oracle/product/11.2.0/dbhome_1:N“,改为“orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y”。
修改完成后,保存退出vi。
修改vi /etc/rc.d/rc.local文件
在vi编辑器中,添加:
su oracle -lc “/u01/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start”
su oracle -lc /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
保存退出后,下次重启机器时会自动启动oracle相应的实例。
[root@hzjz ~]# chmod 755 -R /u01/app/oracle/product/11.2.0/dbhome_1/startup.log
[root@hzjz ~]# chown oracle:oinstall -R /u01/app/oracle/product/11.2.0/dbhome_1/startup.log
[root@hzjz ~]# chmod +x /etc/rc.d/rc.local
四、 通过命令行方式安装Oracle
1、 定义安装响应文件
[root@hzjz ~]# su - oracle
[oracle@hzjz ~]# cd /ora
[oracle@hzjz ora]# cp /ora/database/response/db_install.rsp .
[oracle@hzjz ora]# vim db_install.rsp
####################################################################
####################################################################
####################################################################
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
#------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
oracle.install.option=INSTALL_DB_SWONLY
#-------------------------------------------------------------------------------
#指定操作系统主机名,通过hostname命令获得
#-------------------------------------------------------------------------------
ORACLE_HOSTNAME=localhost
#-------------------------------------------------------------------------------
#指定oracleinventory目录的所有者,通常会是oinstall或者dba
#-------------------------------------------------------------------------------
UNIX_GROUP_NAME=oinstall
#-------------------------------------------------------------------------------
#指定产品清单oracle inventory目录的路径,如果是Win平台下可以省略
#-------------------------------------------------------------------------------
INVENTORY_LOCATION=/u01/app/oraInventory
#-------------------------------------------------------------------------------
#指定数据库语言,可以选择多个,用逗号隔开。选择en, zh_CN(英文和简体中文)
#------------------------------------------------------------------------------
SELECTED_LANGUAGES=en,zh_CN
#------------------------------------------------------------------------------
#设置ORALCE_HOME的路径
#------------------------------------------------------------------------------
ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1
#------------------------------------------------------------------------------
#设置ORALCE_BASE的路径
#------------------------------------------------------------------------------
ORACLE_BASE=/u01/app/oracle
#------------------------------------------------------------------------------
#选择Oracle安装数据库软件的版本
#------------------------------------------------------------------------------
oracle.install.db.InstallEdition=EE
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
oracle.install.db.isCustomInstall=true
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
###############################################################################
###############################################################################
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
oracle.install.db.DBA_GROUP=dba
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
oracle.install.db.OPER_GROUP=oinstall
#------------------------------------------------------------------------------
#如果是RAC的安装,在这里指定所有的节点
#------------------------------------------------------------------------------
oracle.install.db.CLUSTER_NODES=
#------------------------------------------------------------------------------
#选择数据库的用途,一般用途/事物处理,数据仓库
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.globalDBName=orcl
#------------------------------------------------------------------------------
#指定SID
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.SID=orcl
#------------------------------------------------------------------------------
#选择字符集。不正确的字符集会给数据显示和存储带来麻烦无数。
#通常中文选择的有ZHS16GBK简体中文库,建议选择unicode的AL32UTF8国际字符集
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.characterSet=ZHS16GBK
#------------------------------------------------------------------------------
#11g的新特性自动内存管理,也就是SGA_TARGET和PAG_AGGREGATE_TARGET都#不用设置了,Oracle会自动调配两部分大小。
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.memoryOption=true
#------------------------------------------------------------------------------
#指定Oracle自动管理内存的大小,最小是256MB
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.memoryLimit=8192
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.installExampleSchemas=false
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.enableSecuritySettings=true
###############################################################################
###############################################################################
#------------------------------------------------------------------------------
#设定所有数据库用户使用同一个密码,其它数据库用户就不用单独设置了。
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.password.ALL=
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.password.SYS=sys
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.password.SYSTEM=system
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.password.SYSMAN=system
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.password.DBSNMP=system
#-------------------------------------------------------------------------------
#数据库本地管理工具DB_CONTROL,远程集中管理工具GRID_CONTROL
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.control=DB_CONTROL
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
#-------------------------------------------------------------------------------
#是否启用Email通知, 启用后会将告警等信息发送到指定邮箱
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
#-------------------------------------------------------------------------------
#设置通知EMAIL地址
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
#-------------------------------------------------------------------------------
#设置EMAIL邮件服务器
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
###############################################################################
#安全及恢复设置(默认值即可)out-of-box(out-of-box experience)缩写为OOBE
#产品给用产品给用户良好第一印象和使用感受
###############################################################################
#------------------------------------------------------------------------------
#设置自动备份,和OUI里的自动备份一样。
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.automatedBackup.enable=false
#------------------------------------------------------------------------------
#自动备份会启动一个job,指定启动JOB的系统用户ID
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.automatedBackup.osuid=
#-------------------------------------------------------------------------------
#自动备份会开启一个job,需要指定OSUser的密码
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.automatedBackup.ospwd=
#-------------------------------------------------------------------------------
#------------------------------------------------------------------------------
oracle.install.db.config.starterdb.storageType=
#-------------------------------------------------------------------------------
#使用文件系统存放数据库文件才需要指定数据文件、控制文件、Redo log的存放目录
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
#-------------------------------------------------------------------------------
#使用文件系统存放数据库文件才需要指定备份恢复目录
#-------------------------------------------------------------------------------
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
#-------------------------------------------------------------------------------
#使用ASM存放数据库文件才需要指定存放的磁盘组
#-------------------------------------------------------------------------------
oracle.install.db.config.asm.diskGroup=
#-------------------------------------------------------------------------------
#使用ASM存放数据库文件才需要指定ASM实例密码
#-------------------------------------------------------------------------------
oracle.install.db.config.asm.ASMSNMPPassword=
#------------------------------------------------------------------------------
#指定metalink账户用户名
#------------------------------------------------------------------------------
MYORACLESUPPORT_USERNAME=
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
MYORACLESUPPORT_PASSWORD=
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
#------------------------------------------------------------------------------
#------------------------------------------------------------------------------
DECLINE_SECURITY_UPDATES=true
#------------------------------------------------------------------------------
#代理服务器名
#------------------------------------------------------------------------------
PROXY_HOST=
#------------------------------------------------------------------------------
#代理服务器端口
#------------------------------------------------------------------------------
PROXY_PORT=
#------------------------------------------------------------------------------
#代理服务器用户名
#------------------------------------------------------------------------------
PROXY_USER=
#------------------------------------------------------------------------------
#代理服务器密码
#------------------------------------------------------------------------------
PROXY_PWD=
2、 安装数据库,执行安装命令
[root@hzjz ~]# su - oracle
[oracle@hzjz ~]# cd /ora/database
[oracle@hzjz database]# ./runInstaller -silent -force -noconfig -ignorePrereq -responseFile /ora/db_install.rsp
待出现下面的情况,就说明已经安装好了
以下配置脚本需要以 “root” 用户的身份执行。
#!/bin/sh
#要运行的 Root 脚本
/ora/oracle/oraInventory/orainstRoot.sh
/ora/oracle/product/11.2.0/dbhome_1/root.sh
要执行配置脚本, 请执行以下操作:
1. 打开一个终端窗口
2. 以 “root” 身份登录
3. 运行脚本
4. 返回此窗口并按 “Enter” 键继续
Successfully Setup Software.
3、 打开终端,以 root 身份登录,执行脚本
[root@hzjz ~]# sh /u01/app/oraInventory/orainstRoot.sh
[root@hzjz ~]# sh /u01/app/oracle/product/11.2.0/dbhome_1/root.sh
4、 以静默方式配置监听
[root@hzjz ~]# su – oracle
[oracle@hzjz ~]# cd /ora/database/response/
[oracle@hzjz response]# /u01/app/oracle/product/11.2.0/dbhome_1/bin/netca /silent /responsefile /ora/database/response/netca.rsp
[oracle@hzjz response]# ll /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/*.ora
[oracle@hzjz response]# /u01/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl status
[oracle@hzjz response]# vi /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
ORACLE_HOME_LISTNER=$1 如果是11g ,则把
1
改
为
O
R
A
C
L
E
H
O
M
E
L
I
S
T
N
E
R
=
1 改为 ORACLE_HOME_LISTNER=
1 改为 ORACLEHOMELISTNER=ORACLE_HOME
[oracle@hzjz response]# vi /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbshut
ORACLE_HOME_LISTNER=$1 如果是11g ,则把
1
改
为
O
R
A
C
L
E
H
O
M
E
L
I
S
T
N
E
R
=
1 改为 ORACLE_HOME_LISTNER=
1 改为 ORACLEHOMELISTNER=ORACLE_HOME
5、 安装数据库实例
以root用户登录系统并运行如下命令:
编辑Oracle安装目录里response子目录下的应答文件 dbca.rsp,修改以下项目。
[root@hzjz ~]# vi /ora/database/response/dbca.rsp
GDBNAME “orcl” 数据库全局名称
SID "orcl " 数据库的SID
SYSPASSWORD “sys” SYS用户的初始密码
SYSTEMPASSWORD “system” SYSTEM用户的初始密码
CHARACTERSET ZHS16GBK 数据库字符集(中文为 ZHS16GBK)
TEMPLATENAME General_Purpose.dbc 数据库模板名称,存在多个变量 NATIONALCHARACTERSET UTF8 数据库国家字符集
[root@hzjz ~]# su – oracle
[oracle@hzjz ~]# dbca -silent -responseFile /ora/database/response/dbca.rsp
6、 开机启动Oralce
[root@hzjz ~]# vi /etc/oratab
“orcl:/u01/app/oracle/product/11.2.0/dbhome_1:N“,改为“orcl:/u01/app/oracle/product/11.2.0/dbhome_1:Y”。
修改完成后,保存退出vi。
修改vi /etc/rc.d/rc.local文件
在vi编辑器中,添加:
su oracle -lc “/u01/app/oracle/product/11.2.0/dbhome_1/bin/lsnrctl start”
su oracle -lc /u01/app/oracle/product/11.2.0/dbhome_1/bin/dbstart
保存退出后,下次重启机器时会自动启动oracle相应的实例。
[root@hzjz ~]# chmod 755 -R /u01/app/oracle/product/11.2.0/dbhome_1/startup.log
[root@hzjz ~]# chown oracle:oinstall -R /u01/app/oracle/product/11.2.0/dbhome_1/startup.log
[root@hzjz ~]# chmod +x /etc/rc.d/rc.local