Centos7安装oracle 11g

发布时间 2023-07-17 12:16:47作者: 蕝戀

前期准备

关闭selinux

# 永久关闭,防止重启服务器后又开了。
vim /etc/selinux/config

# 临时关闭
setenforce 0

关闭防火墙(不建议,后期建议直接放开相关端口即可)

systemctl disable firewalld 

# 开放1521端口
iptables -A IN_public_allow -p tcp --dport 1521 -m conntrack --ctstate NEW -j ACCEPT


安装依赖:

yum -y install gcc gcc-c++ make binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static glibc glibc-common glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel numactl-devel sysstat unixODBC unixODBC-devel kernelheaders pdksh pcre-devel readline-devel rlwrap

添加用户

groupadd oinstall
groupadd dba
# 将oracle用户加到oinstall组,并且设置其附加组为dba
useradd -g oinstall -G dba oracle
# 设置oracle用户密码,建议搞个复杂点的。
echo "oracle" | passwd --stdin oracle
# 查看oracle用户的组信息
id oracle 

创建目录

mkdir -p /data/u01/software
mkdir -p /data/u01/app/oracle/product/11.2.0/dbhome_1
mkdir -p /data/u01/app/oracle/{oradata,inventory,flash_recovery_area}

chown -R oracle:oinstall /data/u01/app/oracle
chmod -R 775 /data/u01/app/oracle

解压oracle安装包

mv linux.x64_11gR2_database_* /data/u01/software/

cd /data/u01/software

# 解压oracle安装包
unzip linux.x64_11gR2_database_1of2.zip && unzip linux.x64_11gR2_database_2of2.zip  

修改内存参数:/etc/sysctl.confg

vim /etc/sysctl.confg

# 添加以下下内容:
fs.aio-max-nr = 1048576
fs.file-max = 6815744
# shmall、shmmax参数要根据实际内存数进行调整,不然安装会有问题,静态安装很容易忽略
# 图形化安装在检测是将会提示
# 官网建议:
#该参数控制可以使用的共享内存的总页数。 Linux 共享内存页大小为 4KB, 共享内存段的大小都是共享内存页大小的整数倍。
#一个共享内存段的最大大小是 16G ,那么需要共享内存页数是 16GB/4KB==4194304 (页),
#当内存为 12G 时, kernel.shmall = 3145728
#当内存为 16G 时, kernel.shmall = 4194304
#当内次为 32G 时, kernel.shmall = 8388608
#当内存为 64G 时, kernel.shmall = 16777216
#当内存为 128G 时, kernel.shmall = 33554432
kernel.shmall = 2468829

# 官网建议:以字节为单位的物理内存(RAM)大小的一半
kernel.shmmax = 12640407552

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 = 1048586

使修改生效

sysctl -p

修改/etc/security/limits.conf

vim /etc/security/limits.conf
# 添加以下内容:
#Oracle Setting
oracle       soft   nproc    2047
oracle       hard   nproc    16384
oracle       soft   nofile   1024
oracle       hard   nofile   65536
oracle       soft   stack    10240
# End of file

修改/etc/pam.d/login

vim /etc/pam.d/login

# 添加内容:
#Oracle Setting
session required /lib64/security/pam_limits.so
session required pam_limits.so

修改/etc/profile添加:

vim /etc/profile
#Oracle Setting
if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
      ulimit -p 16384
      ulimit -n 65536
    else
      ulimit -u 16384 -n 65536
    fi
  umask 022
fi

安装rlwrap,作用:

# 如果前面yum安装依赖包没装上可以手动编译安装。
tar -zxvf rlwrap-0.42.tar.gz 
cd rlwrap-0.42
./configure
make & make install

设置oracle用户环境

su - oracle
vim .bash_profile

#添加以下内容
#Oracle Setting
export ORACLE_BASE=/data/u01/app/oracle
export ORACLE_HOME=/data/u01/app/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export ORACLE_UNQNAME=$ORACLE_SID
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export NLS_DATE_FORMAT="yyyy-mm-dd HH24:MI:SS"
export NLS_LANG=american_america.AL32UTF8
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
alias lsnrctl='rlwarp lsnrctl'
 #生效环境
source .bash_profile  

开始安装oracle:

修改自动响应安装文件

su - oracle

cp -R /data/u01/software/database/response/ . && cd response/

# 编辑自响应安装文件
vim db_install.rsp
 
#设置以下内容
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=自己的主机名
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/u01/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/u01/app/oracle/product/11.2.0/dbhome_1
ORACLE_BASE=/data/u01/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true 


用GUI方式安装:直接在图形界面终端中运行runInstaller程序,然后一步步安装。

用自响应文件方式安装:

cd /data/u01/software/database/
./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq
#等待安装,然后会提示让你以root身份脚本,运行后按回车键。

新开一个会话窗口,以root身份运行脚本:

bash /data/u01/app/oracle/inventory/orainstRoot.sh
bash /data/u01/app/oracle/product/11.2.0/dbhome_1/root.sh

vim /etc/hosts
127.0.0.1 后面加上主机名  

配置oralce网络监听,使oracle 可以通过远程网络连接。

egrep -v "(^#|^$)" /home/oracle/response/netca.rsp
 
#以静默方式配置监听(rsp是oracle的自动响应文件,netca其实可以在gui界面上以引导方式一步步配置)
su - oracle
source .bash_profile
netca /silent /responsefile /home/oracle/response/netca.rsp


启动oracle 监听(lsnrctl)

su - oracle

# 启动监听
lsnrctl start

#看看端口是否在监听了
netstat -tunlp|grep 1521
 
#查看监听状态
lsnrctl status
 
#查看监听器配置文件 listener.ora
cat $ORACLE_HOME/network/admin/listener.ora
 
#查看监听服务名配置文件 tnsnames.ora
cat $ORACLE_HOME/network/admin/tnsnames.ora

创建oracle的实例

通过gui方式创建实例

dbca可以在图形化界面下手动一步步引导创建。
直接在图形化界面运行终端,然后输入命令:dbca


图形化可以参考:

通过自响应文件方式创建实例

vim /home/oracle/response/dbca.rsp
 
# 设置以下参数


# 注意:这里要和前面步骤中的配置oracle环境变量一致:[配置oracle用户环境变量](https://www.wolai.com/2Qg8uuoPwC7Tx7bUsRLeUP#ohcyHazUyV4BnmzUGgKfBQ)
# 全局数据库名
GDBNAME = "orcl" 
# 数据库实例的唯一ID,用于给ORACLE区分多个实例
SID = "orcl"


# 密码设置
SYSPASSWORD = "SYS 用户密码"
SYSTEMPASSWORD = "SYSTEM 用户密码"
SYSMANPASSWORD = "sysman"
DBSNMPPASSWORD = "dbsnmp"

# oracle数据的存放的位置
DATAFILEDESTINATION =/data/u01/app/oracle/oradata
# 闪回技术数据的存放位置
RECOVERYAREADESTINATION=/data/u01/app/oracle/flash_recovery_area

# 字符集
CHARACTERSET = "AL32UTF8"

# 物理内存*80%
TOTALMEMORY = "6144"
su - oracle
# 以静默方式创建实例
dbca -silent -responseFile /home/oracle/response/dbca.rsp

重启服务器:

init 6

启动数据库实例

#以 sysdba 身份登录
sqlplus / as sysdba

#启动 oralce 数据库
SQL> startup

开机自启动

(注意:centos7还需要注意rc-local服务是否enable,且可执行权限是否有)
systemctl enable rc-local

/etc/rc.local加入以下内容:

su - oracle -c 'dbstart'
su - oracle -c 'lsnrctl start'

参考