一、安装Oracle前准备
安装epel7yum源:
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
1.创建运行oracle数据库的系统用户和用户组
[root@localhost sonny]# groupadd oinstall #创建用户组oinstall
[root@localhost sonny]# groupadd dba #创建用户组dba
[root@localhost sonny]# useradd -g oinstall -G dba -m oracle #创建oracle用户,并加入到oinstall和dba用户组
[root@localhost sonny]# passwd oracle #设置用户oracle的登陆密码,不设置密码,在CentOS的图形登陆界面没法登陆
Changing password for user oracle.
New password: # 密码
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: # 确认密码
passwd: all authentication tokens updated successfully.
[root@localhost sonny]# id oracle # 查看新建的oracle用户
uid=1001(oracle) gid=1002(oinstall) 组=1002(oinstall),1001(dba)
为啥要创建oinstall用户组及dba组?
理论上单例按照需要3种用户组,实际只建两个oinstall和dba,后面再安装oracle数据库的时候把OSOPER组也设置是dba组。
a.oracle 清单组(一般为oinstall):
OINSTALL 组的成员被视为 Oracle 软件的“所有者”,拥有对 Oracle 中央清单 (oraInventory) 的写入权限。在一个 Linux 系统上首次安装 Oracle 软件时,
OUI 会创建 /etc/oraInst.loc 文件。该文件指定 Oracle 清单组的名称(默认为 oinstall)以及 Oracle 中央清单目录的路径。
b.数据库管理员(OSDBA,一般为 dba):
OSDBA 组的成员可通过操作系统身份验证使用 SQL 以 SYSDBA 身份连接到一个 Oracle 实例。该组的成员可执行关键的数据库管理任务,如创建数据库、启动和关
闭实例。该组的默认名称为dba。SYSDBA 系统权限甚至在数据库未打开时也允许访问数据库实例。对此权限的控制完全超出了数据库本身的范围。不要混淆 SYSDBA 系统权限与数据库角色 DBA。DBA 角色不包括 SYSDBA 或 SYSOPER
c.数据库操作员组(OSOPER,一般为 oper):
OSOPER 组的成员可通过操作系统身份验证使用 SQL 以 SYSOPER 身份连接到一个 Oracle 实例。这个可选组的成员拥有一组有限的数据库管理权限,如管理和运行备份。
该组的默认名称为oper。SYSOPER 系统权限甚至在数据库未打开时也允许访问数据库实例。对此权限的控制完全超出了数据库本身的范围。要使用该组,选择 Advanced 安装类型来安装 Oracle 数据库软件。
2.创建oracle数据库安装目录
[root@localhost sonny]# mkdir -p /data/oracle #oracle数据库安装目录
[root@localhost sonny]# mkdir -p /data/oraInventory #oracle数据库配置文件目录
[root@localhost sonny]# mkdir -p /data/database #oracle数据库软件包解压目录
[root@localhost data]# chown -R oracle:oinstall /data/oracle #设置目录所有者为oinstall用户组的oracle用户
[root@localhost data]# chown -R oracle:oinstall /data/oraInventory
[root@localhost data]# chown -R oracle:oinstall /data/database
3.修改OS系统标识
oracle默认不支持CentOS系统安装,Oracle Database 11g Release 2 的 OS要求参考:
修改文件 /etc/RedHat-release
[root@localhost data]# vim /etc/redhat-release
redhat-7
4.安装oracle数据库所需要的软件包
yum -y install binutils compat-libcap gcc gcc-c++ glibc glibc glibc-devel glibc-devel kshlibaio libaio libaio-devel libaio-devel libgcc libgcc libstdc++ libstdc++ libstdc++-devel libstdc++-devel libXi libXi libXtst libXtst make sysstat unixODBC-devel unixODBC libstdc++ compat-libstdc++ glibc-devel.i686
5.关闭防火墙 CentOS 7.2默认使用的是firewall作为防火墙
[root@localhost /]# systemctl disable firewalld.service
6.关闭selinux(需重启生效)
[root@localhost /]# vim /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled #此处修改为disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
7.修改内核参数
[root@localhost /]# vim /etc/sysctl.conf
# System default settings live in /usr/lib/sysctl.d/00-system.conf.
# To override those settings, enter new settings here, or in an /etc/sysctl.d/<name>.conf file
# For more information, see sysctl.conf(5) and sysctl.d(5).
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744 #设置最大打开文件数
fs.aio-max-nr = 1048576
kernel.shmall = 2097152 #共享内存的总量,8G内存设置:2097152*4k/1024/1024
kernel.shmmax = 2147483648 #最大共享内存的段大小
kernel.shmmni = 4096 #整个系统共享内存端的最大数
kernel.sem = 250 32000 100 128
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= 1048576
使配置参数生效
[root@localhost /]# sysctl -p
8.对oracle用户设置限制,提高软件运行性能
[root@localhost /]# vim /etc/security/limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
9.配置用户的环境变量
[root@localhost /]# vi /home/oracle/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH
export ORACLE_BASE=/data/oracle #oracle数据库安装目录
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #oracle数据库路径
export ORACLE_SID=orcl #oracle启动数据库实例名
export ORACLE_TERM=xterm #xterm窗口模式安装
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系统环境变量
export LANG=C #防止安装过程出现乱码
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #设置Oracle客户端字符集,必须与Oracle安装时设置的字符集保持一致,如:ZHS16GBK,否则出现数据导入导出中文乱码问题
使上述配置立即生效:
[root@localhost /]# source /home/oracle/.bash_profile
10.安装Oracle
上传Oracle安装包
解压到/data/database文件夹:
[oracle@lyqvm apps]$ unzip p13390677_112040_Linux-x86-64_1of7.zip -d /data/database/
[oracle@lyqvm apps]$ unzip p13390677_112040_Linux-x86-64_2of7.zip -d /data/database/
更改文件夹所属组(使用root用户)
[root@lyqvm ~]# chown -R oracle:oinstall /data/database/database/
在oracle用户下切换到‘/data/database/database/’目录下,运行runInstaller脚本进行安装
[oracle@lyqvm database]$ ./runInstaller
安装步骤同Windows相同,这里就不做赘述。
11.报错处理:
(1) Exception String: Error in invoking target ‘install’ of makefile ‘/data/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk’. See ‘/data/oraInventory/logs/installActions2020-07-10_08-44-43AM.log’ for details.
解决方法:使用root用户安装:yum install glibc-devel.i686
不同版本可能需要安装的32位的glibc-devel包的名称有所不同完成安装不要点击continue,关闭报错窗口继续即可,会继续安装
(2) Error in invoking target ‘agent nmhs’ of makefile ‘/data/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk’. See ‘/data/oraInventory/logs/installActions2020-07-10_08-44-43AM.log’ for details.解决方法:使用root用户:vim /data/oracle/product/11.2.0/db_1/sysman/lib
搜索行:
(
M
K
E
M
A
G
E
N
T
N
M
E
C
T
L
)
改变为:
(MK_EMAGENT_NMECTL) 改变为:
(MKEMAGENTNMECTL)改变为:(MK_EMAGENT_NMECTL) -lnnz11,保存退出后点击重试
(3) LRM-00109: could not open parameter file ‘/data/oracle/product/11.2.0/db_1/dbs/initorcl.ora’
解决方法:
[root@lyqvm ~]# find /data -name pfile /data/oracle/admin/lyqedu/pfile
[root@lyqvm pfile]# cp /data/oracle/admin/lyqedu/pfile/init.ora.6132020161244 /data/oracle/product/11.2.0/db_1/dbs/initorcl.ora
[root@lyqvm pfile]#chown -R oracle:oinstall initorcl.ora
12.启动和关闭oracle监听
lsnrctl start
lsnrctl stop