CentOS7安装Oracle11g(64位)完整流程
文章目录
一、安装说明
- 结合网上多个安装教程,整合后最终安装成功,记录每一步操作:
- 操作系统:CentOS7 Linux release 7.9.2009 (Core),无GNOME桌面;
- 内网环境:内网服务器,无法访问外网,所以无法使用公网源。
- 连接工具:Xmanager 4,文件传输:Xftp,终端连接:Xshell。
二、安装环境准备
1、检测是否安装了Oracle
- 查看是否有 oracle 的进程
ps -ef | grep ora
- 检查是否有oracle用户
# 一般安装oracle的时候默认会建一个oracle用户
id oracle
如果存在直接重装系统。
2、建立oracle用户和用户组
# 在Linux中创建名为oinstall的用户组
[root@localhost ~]# groupadd oinstall
# 创建dba用户组
[root@localhost ~]# groupadd dba
# 创建oper用户组
[root@localhost ~]# groupadd oper
# 为dba和oper用户组创建oracle用户
# -g 主用户组
# -G 附加组
[root@localhost ~]# useradd -g oinstall -G dba,oper oracle
# 将oracle用户的密码设置为oracle
[root@localhost ~]# echo "oracle"|passwd oracle --stdin
Changing password for user oracle.
passwd: all authentication tokens updated successfully.
3、为Oracle的安装创建相关目录
# 建文件夹
[root@localhost ~]# mkdir -p /u01/app/oracle/product/11.2.0/db_1
[root@localhost ~]# mkdir -p /u01/app/oracle/oraInventory
# 后面用于存放Oracle安装包
[root@localhost ~]# mkdir -p /u01/sw
# 改变属主和属组
[root@localhost ~]# chown -R oracle:oinstall /u01
# 为文件夹授权
[root@localhost ~]# chmod -R 775 /u01
4、优化OS内核参数
# 编辑/etc/sysctl.conf文件
[root@localhost ~]# vi /etc/sysctl.conf
- 在文件末尾添加如下内容
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
# kernel.shmmax 参数设置为物理内存的一半2g:2 * 1024 *1024 *1024 = 2,147,483,648
kernel.shmmax = 1200000000
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@localhost ~]# sysctl -p
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 2147483648
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
5、限制oracle用户的shell权限
为了优化性能,需要添加oracle用户的限制参数
[root@localhost ~]# vi /etc/security/limits.conf
# 在文件末尾添加下面四行
# 设置进程数软限制
oracle soft nproc 2047
# 设置进程数硬限制
oracle hard nproc 16384
# 设置文件数软限制
oracle soft nofile 1024
# 设置文件数硬限制
oracle hard nofile 65536
进程会话限制可以采用pam_limits认证模块来实现,通过修改登录程序login的PAM设置以启用该认证
# 在文件末尾添加下面两行
[root@localhost ~]# vi /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so
- 使参数生效
[root@localhost ~]# source /etc/profile
6、为Oracle用户添加Oracle环境变量
[root@localhost ~]# su - oracle
[oracle@localhost ~]$ vi .bash_profile
# 文件末尾添加如下内容
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
PATH=$PATH:$ORACLE_HOME/bin
ORACLE_SID=orcl
# 我用的字符集是GBK
NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
- 退出后需要刷新环境变量
[oracle@localhost ~]$ source .bash_profile
或
[oracle@localhost ~]$ source /home/oracle/.bash_profile
7、配置hostname(本机IP映射)
安装oracle时,一定要保证主机名出现在/etc/hosts中
# 切换到root用户
[root@localhost ~]# vi /etc/hosts
# 末尾添加如下内容,服务器的IP地址,空格后定义个hostname
192.168.56.66 mydb
- 测试hostname
ping -c 3 mydb
• /etc/sysconfig/network中的hostname要与/etc/hosts中的一致
[root@localhost ~]# vi /etc/sysconfig/network
# 末尾添加如下内容
NETWORKING=yes
HOSTNAME=mydb
# 服务器IP
GATEWAY=192.168.56.66
NTPSERVERARGS=iburst
8、安装VNC&Oracle相关依赖
- 创建文件夹存放依赖包
# 不能连外网的依赖源,直接上传依赖包至/root/yum,然后直接安装,愿意的也可以自己做个离线依赖源
[root@localhost ~]# mkdir -p /root/yum
[root@localhost ~]# cd /root/yum
[root@localhost ~]# rpm -q binutils compat-libcap1 compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel compat_libstdc
9、开放端口/关闭防火墙
- 查看防火墙状态
firewall-cmd --state
- 停止firewall
systemctl stop firewalld.service
- 禁止firewall开机启动
systemctl disable firewalld.service
10、上传Oracle安装文件至/u01/sw
[root@localhost sw]# cd /u01/sw
# 解压缩安装文件
[root@localhost sw]# unzip linux.x64_11gR2_database_1of2.zip
[root@localhost sw]# unzip linux.x64_11gR2_database_2of2.zip
二、Oracle安装
1、切换至oracle用户
不要su - oracle,直接换oracle用户登录
# 进入安装路径
[oracle@localhost ~]$ cd /u01/sw/database
# 启动安装程序
[oracle@localhost database]$ ./runInstaller
# 输入y
Continue? (y/n) [n] y
- 订阅邮件:去掉勾,点Next
- 点Yes
- 直接Next
- 勾Server Class,安装服务器版,点Next
- 选择单实例,点Next
- 选择高级安装,点Next
- 选语言,点击Next
- 选择企业版,点击Next
- 安装路径,默认即可,点击Next
- 默认安装目录和oraInventory Group Name,点击Next
- 选择一般用途/事务处理,点击Next
- 指定Oracel全局数据库名和服务标识符为:orcl (根据自己需要调整),然后点击Next
- Memory勾选启用自动内存管理
- Character sets字符集根据自己的需要选择
- 不使用集中云控制管理,直接点击Next
- 默认安装路径,点击Next
- 默认安装路径,点击Next
- 统一密码
- 设置数据库管理员组dba,数据库操作组oinstall,然后点击Next
- 在oracle安装到Prerequisite Checks时提示的问题逐个解决,解决后点击Check Again重新检测
- OS kernel parameter "semmni"可以忽略,下面的包都安装了所以直接勾Ignore All,点击Next
- 概要文件,点击Finish开始安装
- 安装到68%时报错
Error in invoking target ‘install’ of makefile
解决方法:
ORACLE_HOME:/u01/app/oracle/product/11.2.0/db_1
该软件包包含一个静态链接库:/usr/lib64/libc.a
在oracle用户下修改/u01/app/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk第11行,我这里直接用notepad打开修改的,修改后点击Retry重试
-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)/usr/lib64/stdc.a
添加完成后点击继续会继续报错
Error in invoking target ‘agent nmhs’ of makefile
解决方法:
在makefile中添加链接libnnz11库的参数
在oracle用户下修改/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk第190行
$(MK_EMAGENT_NMECTL) -lnnz11
- 修改后点击Retry继续安装。
- 安装成功
- 点击OK、Close即可
开机自启
[root@mydb ~]# vi /etc/oratab
# 在末尾添加如下内容,路径按自己实际安装的改
orcl:/u01/app/oracle/product/11.2.0/db_1:Y
[root@mydb ~]# chmod +x /etc/rc.d/rc.local
[root@mydb ~]# vi /etc/rc.d/rc.local
# 添加
su oracle -lc "/u01/app/oracle/product/11.2.0/db_1/bin/lsnrctl start "
su oracle -lc /u01/app/oracle/product/11.2.0/db_1/bin/dbstart
验证一下:
[root@mydb ~]# reboot
[root@mydb ~]# Ps -ef |grep ora