Redhat7.6安装oracle11.2.0.4数据库

 

本贴记录我按照oracle数据库及配置参数详情。


其实下载11g发现oracle不提供通道了,百度找的链接,不清楚是否可靠,但根据配置及稳定性选择oracle 11.2.0.4,12c-19c也可以但新特性pdb较新,怕实例什么的影响程序运行,况且就是升级数据库,所以选了11G。

操作流程及命令(后期整理md的文件,就先用自带的写吧)

数据库安装

数据库下载

网上找的(更新,不可靠,是11.0.2.1的,不是11.0.2.4)

http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_1of2.zip http://download.oracle.com/otn/linux/oracle11g/R2/linux.x64_11gR2_database_2of2.zip

服务器信息查询

查看服务器信息(单机性能还是可以的)

查看系统版本】cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.6 (Maipo)
查看ip】ifconfig
192.168.20.72
cpu】lscpu
96
内存】free -g
251G

查看磁盘

查看磁盘(物理)】fdisk -l
磁盘 /dev/sda:3000.5 GB (lvm用了2.7YT)
磁盘 /dev/mapper/rhel-home:2911.9 GB(未用)
查看pv】pcdisplay
/dev/sda3(2.7T)
查看vg】vgdisplay
rhel(2.7T)
查看lv】lvdisplay
查看磁盘】df -h
/dev/mapper/rhel-home 挂载点/home 存储2.5T
/dev/mapper/rhel-root 挂载点/ 存储500G

修改内核参数

内核对应参数意义,还得恶补一下,先配置一部分

内存相关:
(1)SHMMAX参数:进程可以分配的单独共享内存段的最大值
计算公式:内存总大小的一半、大于SGA_MAX_TARGET或MEMORY_MAX_TARGET的值

本机值:18446744073692774399,太奇怪了,这么大
# cat /proc/sys/kernel/shmmax
# sysctl -w kernel.shmmax=150323855360(立即生效)或者 echo 21474836480 > /proc/sys/kernetbl/shmmax
# echo "kernel.shmmax=150323855360" >> /etc/sysctl.conf(重新永久生效)

(2)SHMMNI参数:设置系统级最大共享内存段数量
计算公式:这个没看到(暂缓),不过缺省值4096,一般肯定是够用了
# cat /proc/sys/kernel/shmmni
# sysctl -w kernel.shmmni=4096或者echo 4096 > /proc/sys/kernel/shmmni
# echo "kernel.shmmni=4096" >> /etc/sysctl.conf

(3)SHMALL参数:设置共享内存总页数
计算公式:物理内存大小除以分页大小
查看过getconf获取分页的大小
# getconf PAGE_SIZE	
=250*1024*1024*1024/4096
# cat /proc/sys/kernel/shmall
# echo 65536000 > /proc/sys/kernel/shmall
# sysctl -w kernel.shmall=65536000
# echo " kernel.shmall=65536000" >> /etc/sysctl.conf
210881199601211797
(4)信号灯semaphores是进程或线程间访问共享内存时提供同步的计数器,此参数限制并发未完成的请求,应该设置避免I/O子系统故障。
SEMMSL 参数:设置每个信号灯组中信号灯最大数量,推荐的最小值是250。对于系统中存在大量并发连接的系统,推荐将这个值设置为PROCESSES初始化参数加10。
SEMMNI 参数:设置系统中信号灯组的最大数量。Oracle10g和11g的推荐值为142。
SEMMNS 参数:设置系统中信号灯的最大数量。操作系统在分配信号灯时不会超过LEAST(SEMMNS,SEMMSL*SEMMNI)。推荐SEMMNS的值就设置为SEMMSL*SEMMNI。SEMMNS的设置不小于32000,假如数据库的PROCESSES(进程)参数设置为600,则SEMMNS的设置应为:600+10)*142 
SEMOPM 参数:设置每次系统调用可以同时执行的最大信号灯操作的数量。由于一个信号灯组最多拥有SEMMSL个信号灯,因此有推荐将SEMOPM设置为SEMMSL的值。Oracle验证的10.2和11.1的SEMOPM的配置为100。
# cat /proc/sys/kernel/sem
650     440000   140      150
对应的4个值从左到右分别为 SEMMSL、SEMMNS、SEMOPM 和 SEMMNI。
# sysctl -w kernel.sem="650 440000 140 150"或者echo 650 440000 140 150 > /proc/sys/kernel/sem
# echo "kernel.sem=650 440000 140 150" >> /etc/sysctl.conf
进程相关:
(5)fs.file-max 该参数决定了系统中所允许的文件句柄最大数目,文件句柄设置代表linux系统中可以打开的文件的数量。
(6)net.ipv4.ip_local_port_range:表示应用程序可使用的IPv4端口范围。
TCPIP相关:
(7)net.core.rmem_default:表示套接字接收缓冲区大小的缺省值。
(8)net.core.rmem_max:表示套接字接收缓冲区大小的最大值。
(9)net.core.wmem_default:表示套接字发送缓冲区大小的缺省值。
(10)net.core.wmem_max:表示套接字发送缓冲区大小的最大值。
临时配置:
sysctl -w kernel.shmmax=150323855360
sysctl -w kernel.shmmni=4096
sysctl -w kernel.shmall=65536000
sysctl -w kernel.sem="650 440000 140 150"

全部配置
vi /etc/sysctl.conf
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall =65536000
kernel.shmmax =150323855360
kernel.shmmni = 4096
kernel.sem = 650 440000 140 150
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

立即生效
/sbin/sysctl -p

其他配置

soft nproc: 可打开的文件描述符的最大数(软限制)

hard nproc: 可打开的文件描述符的最大数(硬限制)

soft nofile:单个用户可用的最大进程数量(软限制)

hard nofile:单个用户可用的最大进程数量(硬限制)

vi /etc/security/limits.conf
添加-----
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

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

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

创建用户

创建用户组
groupadd dba
查看
tail /etc/group
创建oracle用户
useradd -m oracle
将oracle用户添加到dba组
usermod -g dba oracle
设置密码
passwd oracle 为1q2w#E$R
查看
tail /etc/group
tail /etc/passwd
删除用户
userdel -r -f xx

 配置环境变量

export ORACLE_BASE=/home/oracle/app
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

准备数据库安装

因为高版本安装我调用图形化安装,需要有vncserver

安装vnc

 yum install tigervnc-server -y

修改系统语言为英文

export  LANG=en_US.UTF-8

(一):依赖库安装 

yum install -y compat-libstdc++-33 elfutils-libelf-devel gcc gcc-c++ glibc-devel
yum install -y ksh libaio-devel numactl-devel
yum install -y unixODBC unixODBC-devel oracleasm oracleasmlib oracleasm-support

可以用这个测试一下是否安装,如有提示XXXX not install即安装失败

rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel  
rpm -q gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers  
rpm -q ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make numactl-devel sysstat

本帖不讨论上传下载安装包了,解压后执行./runInstaller

有可能遇到鼠标异常,无法点击问题,是服务器与主机冲突,设置(我的是xshell远程):Xmanager图标---属性---设备---鼠标设置---3按钮仿真(同时单击向左按钮和向右按钮)选项取消勾选

Redhat7.6安装oracle11.2.0.4数据库_第1张图片

Redhat7.6安装oracle11.2.0.4数据库_第2张图片

Redhat7.6安装oracle11.2.0.4数据库_第3张图片

Redhat7.6安装oracle11.2.0.4数据库_第4张图片

Redhat7.6安装oracle11.2.0.4数据库_第5张图片

Redhat7.6安装oracle11.2.0.4数据库_第6张图片

开始检测

Redhat7.6安装oracle11.2.0.4数据库_第7张图片

Redhat7.6安装oracle11.2.0.4数据库_第8张图片

我这边提示的都是I3的依赖包,本机是64位。oracle提示可以忽略,,勾选ignore all即可。

但是发现检测SEMMNI为0,提示设置为128.但我已经配好了,先留意该问题,网上未找到解决方案

可能遇到的问题:

1,swap空间不足:
1、使用dd命令创建一个swap分区
2、#dd if=/dev/zero of=/home/swap bs=1024 count=16400000
3、格式化刚才创建的分区
4、# mkswap /home/swap
5、再使用swapon命令把这个文件分区变成swap分区
6、#swapon /home/swap
7、(关闭SWAP分区的命令为:#swapoff /home/swap)
8、再用free -m 查看已经扩容的了swap分区。
9、为了能够让swap自动挂载,需要修改etc/fstab文件,用vi /etc/fstab
10、在文件末尾加上 /home/swap swap swap default 0 0
11、这样就算重启系统,swap分区也不用手动挂载了
12、但是我感觉好像我重启了系统 swap就没有了,然后我又百度了一下,要执行下面一段命令  #echo   "swapon  /home/swap" >> /etc/inittab 
13、然后在看 vi 看下 /etc/inittab
14、最后一行是swapon  /home/swap,这样就万事大吉了。

继续安装

Redhat7.6安装oracle11.2.0.4数据库_第9张图片

可能遇到的问题:

进行到68%时会报两个错误
一,Error in invoking target 'install' of makefile '/u01/app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk'. See '/u01/app/oraInventory/logs/installActions2015-01-22_09-39-03AM.log' for details.
解决方法:
1,下载glibc-static-2.17-55.el7.x86_64.rpm安装
2,修改app/oracle/product/11.2.0/dbhome_1/ctx/lib/ins_ctx.mk
ctxhx: $(CTXHXOBJ)
      $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
修改为:
ctxhx: $(CTXHXOBJ)
      -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a
点击Retry继续安装。

二,会继续提示”Error in invoking target 'agent nmhs' of makefile '/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk.
解决方法:
在makefile中添加链接libnnz11库的参数
修改/u01/app/oracle/product/11.2.0/dbhome_1/sysman/lib/ins_emagent.mk,将
$(MK_EMAGENT_NMECTL)修改为:$(MK_EMAGENT_NMECTL) -lnnz11
点击Retry继续安装。

安装最后步骤按提示在root用户下执行脚本

cd app/oraInventory/
sh orainstRoot.sh
cd app/oracle/product/11.2.0/dbhome_1/
sh root.sh

创建好后监听和配置都已经有了,该文件内容即可,也可以删除(备份)原listener.ra及tnsname.ora

通过配置tnsnames.name,直接键入 netca命令

Redhat7.6安装oracle11.2.0.4数据库_第10张图片

搞好后修改ip

Redhat7.6安装oracle11.2.0.4数据库_第11张图片

通过配置listener.ora,直接键入 netca命令

Redhat7.6安装oracle11.2.0.4数据库_第12张图片

同理修改ip

修改host(root执行),重启监听

Redhat7.6安装oracle11.2.0.4数据库_第13张图片

vi /etc/hosts

lsnrctl stop
lsnrctl start

执行以下命令,注册数据实例

[oracle@localhost ~]$ sqlplus / as sysdba
SQL>shutdown immediate
SQL> startup
SQL> alter system register;
SQL> quit



lsnrctl status

测试,有数据输出即可

#sqlplus / as sysdba
SQL>select * from tab;

数据库调优

 

你可能感兴趣的:(oracle,oracle,redhat)