OracleLinux7.8静默安装Oracle12C

安装前请浏览

之前和同事东哥尝试用最新的Centos8.2安装Oracle11g和Oracle12c,费了九牛二虎之力勉强安装成功,但是重试后发现结果具有偶然性,查看Oracle官方文档发现Centos8仅支持Oracle19c,由于对Oracle新特性了解比较少,亦未准备发太多精力研究,所以最终决定使用官方提供的OracleLinux7.8安装使用Oracle12c,作为测试用的结构化数据环境。

安装前准备

本文不包含任何下载内容,如缺少相关包可以参考东哥的 Oracle Linux7.8 下离线 一键静默安装Oracle12c并下载相关包。
最小安装OracleLinux7.8
选择 Compatibility Libraries , Development Tools , System Administration Tools
配置好网络和hostname,连接网络或者设置代理服务器。
准备好Java安装包。
准备好 linuxx64_12201_database.zip 安装包。
Oracle依赖包列表:

binutils 
compat-libstdc++-33 
elfutils-libelf 
elfutils-libelf-devel 
expat 
gcc 
gcc-c++ 
glibc 
glibc-common 
glibc-devel 
glibc-headers 
libaio 
libaio-devel 
libgcc 
libstdc++ 
libstdc++-devel 
make 
pdksh 
sysstat 
unixODBC 
unixODBC-devel

正式安装

一,添加oracle用户:

添加oracle用户组和用户
#请用 root 用户
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba -m oracle
查看oracle用户修改密码
#请用 root 用户
id oracle 
uid=1000(oracle) gid=1000(oinstall) groups=1000(oinstall),1001(dba)
passwd oracle

二,创建安装目录:

#请用 root 用户
#创建相关目录
mkdir -p /Data/oracle
mkdir -p /Data/soft
mkdir -p /Data/java
mkdir -p /Data/oraInventory
#将目录的权限赋给oracle用户
chown -R oracle:oinstall /Data
chmod -R 775 /Data
chmod 777 -R /tmp

三、下载拷贝文件到soft目录并解压文件:

#请用 oracle 用户
cd /Data/soft
unzip linuxx64_12201_database.zip
# 使用root用户解压后请留意相关目录的权限

四、安装配置Java环境:

#请用 root 用户
cd /Data/soft/
tar -zvxf jdk-8u151-linux-x64.tar.gz
mv /Data/soft/jdk1.8.0_151/ /Data/java
vi /etc/profile
#添加环境变量
export JAVA_HOME=/Data/java/jdk1.8.0_151/
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#保存配置

source /etc/profile
#安装libnsl包可以避免Oracle12c使用Java1.8抛异常
yum -y install libnsl

五、安装Oracle依赖包:

检查依赖包
#请用 root 用户
rpm -q \
binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel | grep "not installed"

package elfutils-libelf-devel is not installed
package libaio-devel is not installed
package pdksh is not installed
package sysstat is not installed
package unixODBC is not installed
package unixODBC-devel is not installed
安装依赖包
yum -y install elfutils-libelf-devel
yum -y install libaio-devel
yum -y install make
yum -y install sysstat
yum -y install unixODBC
yum -y install unixODBC-devel
#pdksh包无法通过yum下砸,可在文章最后的连接处查看下载地址
#最好统一放到/Data/soft/packages目录下
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

六,修改系统标识:

使用OracleLinux系统可以跳过此步骤

#请用 root 用户
vi /etc/redhat-release
#注释掉原有标识 添加
Red Hat Enterprise Linux Server release 7.8 (Maipo)

七、设置防火墙和selinux:

容许特定端口通过防火墙
#请用 root 用户
#开启防火墙仅容许特定端口通过
firewall-cmd --state #查看防火墙状态
systemctl start firewalld.service #开启防火墙
systemctl enable firewalld.service #firewall开机启动
vi /etc/selinux/config #关闭SELINUX
SELINUX=enforcing 
SELINUXTYPE=targeted 

firewall-cmd --zone=public --list-ports #查看通过的端口
firewall-cmd --zone=public --remove-port=80/tcp --permanent #关闭指定端口
firewall-cmd --zone=public --add-port=1521/tcp --permanen  #容许指定端口1521通过防火墙
firewall-cmd --zone=public --add-port=5500/tcp --permanen  #容许指定端口1521通过防火墙

setenforce 0 #使配置立即生效
关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动

vi /etc/selinux/config #关闭SELINUX
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加

setenforce 0 #使配置立即生效

八、优化OS内核参数:

设置内存参数
#请用 root 用户
vi /etc/sysctl.conf
## 内容如下:
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 = 4194304 #共享内存的总量,8G内存设置:2097152
kernel.shmmax = 2147483648 #最大共享内存的段大小
kernel.shmmni = 4096 #整个系统共享内存端的最大数
kernel.sem=250 32000 100 128
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

#使参数生效
sysctl -p

九、对oracle用户设置限制:

#请用 root 用户
vi /etc/security/limits.conf  
#将下面内容添加到Limits.conf
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536


vi /etc/pam.d/login
#将下面内容添加到login
session    required     /lib64/security/pam_limits.so
session    required     pam_limits.so

vi /etc/profile
#将下面内容添加到profile
if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
        ulimit -u 16384 -n 65536
    fi
fi

source /etc/profile

十、配置oracle用户环境变量:

vi /home/oracle/.bash_profile  
#将下面内容追加到bash_profile
export ORACLE_HOSTNAME=hostname
export ORACLE_BASE=/Data/oracle #oracle数据库安装目录
export ORACLE_HOME=$ORACLE_BASE/product/12.2.0/db_1 #oracle数据库路径
export ORACLE_SID= SID #oracle启动数据库实例名
export ORACLE_UNQNAME=SID 
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系统环境变量
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系统环境变量
export LANG=en_US #防止安装过程出现乱码
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export NLS_DATE_FORMST="YYYY-MM-DD HH24:MI:SS"

# 以上配置完成后,建议重启系统 或分别执行以下命令:
source /home/oracle/.bash_profile
#查看环境变量
env

十一、安装Oracle数据库软件:

#请用 oracle 用户
cd /Data/soft/database/response
cp db_install.rsp db_install.rsp.bak
sed -i "s/^oracle.install.option=/oracle.install.option=INSTALL_DB_SWONLY/g" db_install.rsp
sed -i "s/^UNIX_GROUP_NAME=/UNIX_GROUP_NAME=oinstall/g" db_install.rsp
sed -i "s/^INVENTORY_LOCATION=/INVENTORY_LOCATION=\/Data\/oraInventory/g" db_install.rsp
sed -i "s/^SELECTED_LANGUAGES=en/SELECTED_LANGUAGES=en,zh_CN/g" db_install.rsp
sed -i "s/^ORACLE_HOME=/ORACLE_HOME=\/Data\/oracle\/product\/12.2.0\/db_1/g" db_install.rsp
sed -i "s/^ORACLE_BASE=/ORACLE_BASE=\/Data\/oracle/g" db_install.rsp
sed -i "s/^oracle.install.db.InstallEdition=/oracle.install.db.InstallEdition=EE/g" db_install.rsp
sed -i "s/^oracle.install.db.OSDBA_GROUP=/oracle.install.db.OSDBA_GROUP=dba/g" db_install.rsp
sed -i "s/^oracle.install.db.OSOPER_GROUP=/oracle.install.db.OSOPER_GROUP=oinstall/g" db_install.rsp
sed -i "s/^oracle.install.db.OSBACKUPDBA_GROUP=/oracle.install.db.OSBACKUPDBA_GROUP=dba/g" db_install.rsp
sed -i "s/^oracle.install.db.OSDGDBA_GROUP=/oracle.install.db.OSDGDBA_GROUP=dba/g" db_install.rsp
sed -i "s/^oracle.install.db.OSKMDBA_GROUP=/oracle.install.db.OSKMDBA_GROUP=dba/g" db_install.rsp
sed -i "s/^oracle.install.db.OSRACDBA_GROUP=/oracle.install.db.OSRACDBA_GROUP=dba/g" db_install.rsp
sed -i "s/^oracle.install.db.config.starterdb.type=/oracle.install.db.config.starterdb.type=GENERAL_PURPOSE/g" db_install.rsp
sed -i "s/^oracle.install.db.config.starterdb.globalDBName=/oracle.install.db.config.starterdb.globalDBName=basic/g" db_install.rsp
sed -i "s/^oracle.install.db.config.starterdb.SID=/oracle.install.db.config.starterdb.SID=basic/g" db_install.rsp
sed -i "s/^oracle.install.db.config.starterdb.characterSet=/oracle.install.db.config.starterdb.characterSet=ZHS16GBK/g" db_install.rsp
sed -i "s/^oracle.install.db.config.starterdb.password.ALL=/oracle.install.db.config.starterdb.password.ALL=managerBasic/g" db_install.rsp
sed -i "s/^SECURITY_UPDATES_VIA_MYORACLESUPPORT=/SECURITY_UPDATES_VIA_MYORACLESUPPORT=false/g" db_install.rsp
sed -i "s/^DECLINE_SECURITY_UPDATES=/DECLINE_SECURITY_UPDATES=true/g" db_install.rsp

cd ..

./runInstaller -silent -force -noconfig -ignorePrereq -responseFile /Data/soft/database/response/db_install.rsp
#请用 root 用户执行下面脚本
/Data/oraInventory/orainstRoot.sh
/Datas/oracle/product/12.2.0/db_1/root.sh

十二、配置监听:

#请用 oracle 用户
#配置监听
netca /silent /responseFile /Data/soft/database/response/netca.rsp

十三、创建数据库:

#请用 oracle用户
vi /etc/redhat-release
#注释掉原有标识 添加
Red Hat Enterprise Linux Server release 7.8 (Maipo)

十二、配置监听:

#配置数据库实例
cd /Data/soft/database/response
cp dbca.rsp dbca.rsp.bak
sed -i 's/^gdbName=/gdbName=sid/g' dbca.rsp #请配置SID
sed -i 's/^sid=/sid=sid/g' dbca.rsp  #请配置SID
sed -i 's/^databaseConfigType=/databaseConfigType=SI/g' dbca.rsp
sed -i 's/^storageType=/storageType=FS/g' dbca.rsp
sed -i 's/^sysPassword=/sysPassword=password/g' dbca.rsp #请设置密码并做好记录
sed -i 's/^systemPassword=/systemPassword=password/g' dbca.rsp  #请设置密码并做好记录
sed -i 's/^oracleHomeUserPassword=/oracleHomeUserPassword=password/g' dbca.rsp  #请设置密码并做好记录
sed -i 's/^datafileDestination=/datafileDestination=\/Data\/oradata/g' dbca.rsp  #请指定Oracle数据文件存放位置
sed -i 's/^recoveryAreaDestination=/recoveryAreaDestination=\/Data\/oracle\/fast_recovery_area/g' dbca.rsp
sed -i 's/^characterSet=/characterSet=ZHS16GBK/' dbca.rsp  #请务必设置适当字符集防止乱码
sed -i 's/^templateName=/templateName=\/Data\/oracle\/product\/12.2.0\/db_1\/assistants\/dbca\/templates\/General_Purpose.dbc/g' dbca.rsp
sed -i 's/^listeners=/listeners=LISTENER/g' dbca.rsp
sed -i 's/^totalMemory=/totalMemory=4915/g' dbca.rsp  #值设置为物理内存的60%

cd ..
dbca -silent -createDatabase -responseFile /Data/soft/database/response/dbca.rsp

十四、开启em:

#请用 oracle 用户
sqlplus / as sysdba
EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(5500); #em端口 12之前默认端口为1158
#登录测试
#如果你使用的是http协议,则网址格式为:http://localhost:port/em ,同理如果是https协议,将http改成https即可
#请使用IE浏览器并确认端口可以通过防火墙

十五,问题及解决方法:

错误码ORA-28040
#请用 oracle 用户
#原因可能是OracleClient版别过低或者PLsql版别过低
修改 $ORACLE_HOME\NETWORK\ADMIN\sqlnet.ora 文件,网上提供了两种版本的修改:
a、增加一行配置如下
 SQLNET.ALLOWED_LOGON_VERSION=8
b、增加两行配置如下“
 SQLNET.ALLOWED_LOGON_SERVER=8
 SQLNET.ALLOWED_LOGON_CLIENT=8
错误码ORA-01017
#请用 oracle 用户
#在 错误码ORA-28040之前创建的用户需要修改密码
sqlplus / as sysdba
alter user username identified by 123456;
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值