CentOS7.3静默安装Oracle12C
标签: 工作中遇到的坑
CentOS7.3静默安装Oracle12C
因为业务需求,只能在内网离线静默安装Oracle12C,痛苦了一整天。现把安装流程记录下来,希望能帮到有相同需求的小伙伴,整个流程亲测可用。
1.系统配置要求
1)物理内存2GB以上,交换空间大约为物理内存的2倍。
2)安装目录建议有25GB以上可用空间。
3)提前配置好主机名、IP地址,完成安装以后不要再改主机名。
2.下载Oracle12C安装包
下载地址:https://www.oracle.com/database/technologies/oracle-database-software-downloads.html

3.配置主机名和IP的映射
vi /etc/hosts
添加配置项IP 主机名称

4.手动配置内核参数
vi /etc/sysctl.conf
添加如下行;修改后运行sysctl -p指令刷新参数
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500

5.限制oracle用户资源使用
vi /etc/security/limits.conf
添加如下行
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
oracle hard memlock 134217728
oracle soft memlock 134217728
6.安装依赖包
yum install binutils -y
yum install compat-libcap1 -y
yum install compat-libstdc++-33 -y
yum install compat-libstdc++-33.i686 -y
yum install glibc -y
yum install glibc.i686 -y
yum install glibc-devel -y
yum install glibc-devel.i686 -y
yum install ksh -y
yum install libaio -y
yum install libaio.i686 -y
yum install libaio-devel -y
yum install libaio-devel.i686 -y
yum install libX11 -y
yum install libX11.i686 -y
yum install libXau -y
yum install libXau.i686 -y
yum install libXi -y
yum install libXi.i686 -y
yum install libXtst -y
yum install libXtst.i686 -y
yum install libgcc -y
yum install libgcc.i686 -y
yum install libstdc++ -y
yum install libstdc++.i686 -y
yum install libstdc++-devel -y
yum install libstdc++-devel.i686 -y
yum install libxcb -y
yum install libxcb.i686 -y
yum install make -y
yum install nfs-utils -y
yum install net-tools -y
yum install smartmontools -y
yum install sysstat -y
yum install unixODBC -y
yum install unixODBC-devel -y
然而我比较苦逼,由于是内网不能用yum,只能缺哪个依赖就手动去下载,附上依赖包离线下载地址
地址2:http://www.rpmfind.net/linux/
7.创建新用户和组
groupadd -g 54321 oinstall
groupadd -g 54322 dba
groupadd -g 54323 oper
useradd -u 54321 -g oinstall -G dba,oper oracle

oinstall组:用于安装数据库
dba组:用于管理数据库
-g:这个用户的主组
-G:这个用户的其它组
8.为oracle用户设置密码
passwd oracle

9.修改SELINUX
vi /etc/selinux/config
将SELINUX修改为'disabled',重启服务器。

如果不想重启,可以使用命令 setenforce 0 转换成宽容模式,设置后用getenforce查看一下SELINUX启用状态
10.确保禁用防火墙
如果服务器对安全要求没有那么高的话,直接禁用防火墙:
systemctl stop firewalld
systemctl disabled firewalld
如果还要考虑安全性,那就手动去防火墙开放1521端口,我这里就直接禁用了。

11.创建Oracle安装目录
创建目录,授权所属所组:
mkdir -p /usr/local/products/oracle12c
chown -R oracle:oinstall /usr/local
chmod -R 775 /usr/local/

12.配置Oracle环境变量并验证
切换到新添加的oracle用户名下,在oracle用户下配置环境变量:
su oracle
vi ~oracle/.bash_profile
export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=liuxiaobai
export ORACLE_UNQNAME=cdb1
export ORACLE_BASE=/usr/local/products
export ORACLE_HOME=$ORACLE_BASE/oracle12c
export ORACLE_SID=cdb1
export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

使环境变量生效,并检查
source ~oracle/.bash_profile
echo $ORACLE_HOME

13.上传解压文件
将下载的linuxx64_12201_database.zip上传到Linux系统/home/oracle目录下,并解压,解压完可以看到database目录。

14.修改响应文件
cd database/response/
vi db_install.rsp
如果想自定义更多数据库安装参数,那么可以选择手动修改响应文件(如果数据库安装参数较少,这一步可以省略,直接用命令行安装,详见15:安装Oracle),以下为响应文件中需要修改的部分
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/usr/local/products/oracle12c/oraInventory
ORACLE_HOME=/usr/local/products/oracle12c
ORACLE_BASE=/usr/local/products
oracle.install.db.InstallEdition=EE
oracle.install.db.OSDBA_GROUP=dba
oracle.install.db.OSBACKUPDBA_GROUP=dba
oracle.install.db.OSDGDBA_GROUP=dba
oracle.install.db.OSKMDBA_GROUP=dba
oracle.install.db.OSRACDBA_GROUP=dba
15.安装Oracle
方式1:如果手动修改过响应文件,用oracle用户cd到database目录下,执行下面命令
./runInstaller -ignoreSysPrereqs -ignorePrereq -waitforcompletion \
-showProgress -silent -responseFile /home/oracle/database/response/db_install.rsp
方式2:如果采取命令行安装,直接在database目录执行以下脚本
./runInstaller -ignoreSysPrereqs -ignorePrereq -waitforcompletion \
-showProgress -silent -responseFile /home/oracle/database/response/db_install.rsp \
oracle.install.option=INSTALL_DB_SWONLY \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=/usr/local/products/oracle12c/oraInventory \
ORACLE_HOME=/usr/local/products/oracle12c \
ORACLE_BASE=/usr/local/products \
oracle.install.db.InstallEdition=EE \
oracle.install.db.OSDBA_GROUP=dba \
oracle.install.db.OSBACKUPDBA_GROUP=dba \
oracle.install.db.OSDGDBA_GROUP=dba \
oracle.install.db.OSKMDBA_GROUP=dba \
oracle.install.db.OSRACDBA_GROUP=dba


16.切换回root用户,执行以下脚本
/usr/local/products/oracle12c/oraInventory/orainstRoot.sh
/usr/local/products/oracle12c/root.sh

执行后切换回oracle用户,登录sqlplus成功,证明数据库安装成功

17.创建数据库
方式1:命令行安装
dbca -silent -createDatabase \
-templateName /usr/local/products/oracle12c/assistants/dbca/templates/General_Purpose.dbc\
-gdbname cdb1 -sid cdb1 -responseFile /home/oracle/database/response/dbca.rsp \
-characterSet AL32UTF8 \
-sysPassword OraPasswd1 \
-systemPassword OraPasswd1 \
-createAsContainerDatabase true \
-numberOfPDBs 1 \
-pdbName pdb1 \
-pdbAdminPassword OraPasswd1 \
-automaticMemoryManagement false \
-ignorePreReqs
方式2:修改静默数据库模板,配置自定义参数后安装
vi /home/oracle/database/response/dbca.rsp
将文件中以下参数进行修改
templateName /usr/local/products/oracle12c/assistants/dbca/templates/General_Purpose.dbc
gdbname cdb1
sid cdb1
characterSet AL32UTF8
sysPassword Santbbd2020
systemPassword Santbbd2020
createAsContainerDatabase true
numberOfPDBs 1
pdbName pdb1
pdbAdminPassword Santbbd2020
automaticMemoryManagement false
修改后执行脚本:
dbca -silent -createDatabase -responseFile /home/oracle/database/response/dbca.rsp -ignorePreReqs


结束后,切换回root用户修改一下编码,要不登录sqlplus会乱码
export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"
然后切回oracle用户,登入sqlplus
sqlplus / as sysdba
登入后看一下数据库是否创建成功
select status from v$instance;

18.配置数据库监听
未配置监听前执行
lsnrctl status

使用默认的netca.rsp文件,执行命令
netca -silent -responseFile /home/oracle/database/response/netca.rsp

再次执行
lsnrctl status

看到监听实例已经创建,表示监听注册成功。注:一定要创建出监听实例,否则外部是连接不上的。
如果监听未生效,可以重新重启一下监听服务
lsnrctl stop
lsnrctl start
如果未创建出监听实例,需要在listener.ora手动添加数据库实例
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = cdb1)
(SID_NAME = cdb1)
)
)
19.创建命名空间,用户并授权
create tablespace testspace datafile '/usr/local/products/oradata/testspace.dbf' size 3000m;
create user c##product identified by Santbbd2020 default tablespace testspace;
grant dba,connect to c##product;
20.外部Navicat测试连接

21.如果报错ORA-28040:没有匹配的验证协议

在oracle 12C服务器端$oracle_home/network/admin目录下修改文件sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

之后重新修改一下这个用户的密码就可以连接上了,至此含着泪静默安装Oracle12C结束。
智能推荐
centos7安装oracle12c
本文 基本参考了下面这篇文章 http://blog.csdn.net/gq5251/article/details/42004035 但是改正了一些错误 操作系统:CentOS Linux release 7.2.1...
CentOS7安装Oracle12c
为什么80%的码农都做不了架构师?>>> 准备 安装好CentOS7 下载好linuxx64_12201_database.zip(Oracle12c安装文件) 安装步骤 更新yum 添加操作系统核心参数 添加修改Shell限制 添加如下参数: 添加Linux内核参数 添加如下参数: 检查参数是否生效 创建相关用户和用户组 设置oracle和grid用户...
linux7.3安装oracle12c release2
一 Linux下Oracle 12c数据库的安装 1.1.1 操作系统软硬件检查 1. 内存要求 1) 最小值为1 GB 内存,建议值为2 GB of RAM 或者更多 2) 查询命令:# grep MemTotal /proc/meminfo 计算出来有1.7968G内存,满足Oracle 12c的内存安装要求。 2. 系统内核版本 1) 查询系统位数命令:# uname -m; 2) 查询系统...
Oracle 12 C 静默安装
Oracle静默安装 Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系型数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。 环境配置 ...
创建一个Spring Boot项目
文章目录 Spring Boot的功能 Spring Boot的优点 Spring Boot 的三种创建方式 在线创建 使用开发工具创建 IntelliJ IDEA Maven 创建 项目结构 修改Tomcat端口号、处理Get请求乱码、修改路径 移除默认的嵌入的Tomcat Spring Boot的功能 为所有基于 Spring 的 Java 开发提供方便快捷的入门体验 开箱即用,有自己自定义的...
猜你喜欢
CAPL 脚本下调用cmd 和其它应用程序
CAPL 脚本下调用cmd 和其它应用程序 语法定义 CAPL 脚本下调用cmd CAPL 脚本下调用应用程序 语法定义 CAPL 脚本下调用cmd CAPL 脚本 运行Canoe ,然后在canoe运行界面 按键 小写 “c”,能够得到下面的结果:cmd进入了 configDir路径,并且执行了 DIR命令。 CAPL 脚本下调用应用程序 CAPL 脚本 运行Canoe ...
Android设备存储那些事
文章目录 内部存储 存储结构 访问方式 存储特点 外部存储 私有目录 存储结构 访问方式 存储特点 公共(共享)目录 存储结构 访问方式 存储特点 在之前的开发过程中,对于应用存储目录存在一些模糊的观念,在AndroidQ版本中,Google对应用存储空间又做了调整,借此机会梳理一下。 移动设备存储空间大致可划分为内部存储 与 外部存储,而外部存储又可细分为外部私有存储与外部共享存储,具体区别如下...
Spring的AOP开发简单示例
SpringAOP支持方法级别的增强。 大致有 @Before:方法执行前执行 @After:方法执行后还没有返回时执行 @Around:环绕通知,在Before之前,在After之前。 @AfterReturning:方法返回结果之后执行 @AfterThrowing:返回异常时执行 @ @DeclareParents:给类增加接口 假设 增强service包下的所有方法 : 目录结构 : 切面...
MHA高可用环境搭建
上一篇 文章(https://blog.csdn.net/aofavx/article/details/106783795)已Mysql主从模式部署过程。现在使用MHA实现数据库的高可用性。 参考网址:https://www.cnblogs.com/keerya/p/7883766.html 1.软件版本和环境: 系统:CentOS7系统 需要软件 mysql5.7.30安装包:mysql...
[hash] JZOJ P3669 抄卡组
Description Input Output Sample Input 3 3 wellplayed thankyou pyroblast 2 a*abc abc*a 2 a*abc a1234567890abc Sample Output N N Y Data Constraint 题解 (蜜汁re,cin,cout流要T一个点) 代码...

