centos7-64位静默安装Oracle11g步骤

  之前应公司要求,给新搭建的服务器,安装oracle数据库,服务器系统是centos7.8 64位,今天想起来记录一下我整理的安装步骤吧。

 开始安装软件,步骤如下:
1)修改用户的SHELL的限制,通过vim命令修改/etc/security/limits.conf文件,将以下内容加入追加到文件末尾,并通过wq命令保存退出。
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536

 

 
 
2)同理修改/etc/pam.d/login 文件,将以下内容加入该文件。
注意,如果是linux64位,应该将lib改成lib64,否则重启linux系统的时候会报module is unknown错误
 
session required /lib64/security/pam_limits.so
session required pam_limits.so

 

 
3)修改linux内核/etc/sysctl.conf文件,根据实际情况和自己的需求将以下内容加入该文件,完成oracle数据库基本配置。
复制代码
fs.file-max = 6815744
 
fs.aio-max-nr = 1048576
 
kernel.shmall = 2097152
 
kernel.shmmax = 5368709122147483648
 
kernel.shmmni = 4096
 
kernel.sem = 250 32000 100 128
 
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
复制代码

 

 
要使该文件修改立即生效,要执行sysctl -p命令
 
4)修改/etc/profile文件,设置oracle用户的的最大进程数
if [ $USER = "oracle" ]; then
    if [ $SHELL = "/bin/ksh" ]; then
        ulimit -p 16384
        ulimit -n 65536
    else
    ulimit -u 16384 -n 65536
    fi
fi            

 

 
5)建立oracle用户及用户组,oracle产品规定,必须以oracle用户的身份进行安装。
创建用户,输入命令:
groupadd oinstall
groupadd dba
创建Oracle用户和密码,输入命令:
useradd -g oinstall -G dba -m oracle
passwd oracle
然后会让你输入密码,密码任意输入2次,但必须保持一致,回车确认
 
6)(还是root用户下操作)创建oracle安装目录,及数据文件存放目录位置,这里可自定义。在这里举例安装放在/data/app/oracle目录
mkdir -p /data/app/oracle
mkdir -p /data/app/oraInventory
 
7)设置目录所属主为oracle所有。
chown -R oracle:oinstall /data/app/oracle
chown -R oracle:oinstall /data/app/oraInventory
 
8)安装依赖检查
网络环境下:
所需的包:
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
compat-libstdc++-33-3.2.3-71.el7.i686
compat-libstdc++-33-3.2.3-71.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
unixODBC-2.3.1-6.el7.x86_64 or later
unixODBC-2.3.1-6.el7.i686 or later
unixODBC-devel-2.3.1-6.el7.x86_64 or later
unixODBC-devel-2.3.1-6.el7.i686 or later
通过yum源安装:
yum install 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
或:
yum -y install binutils compat-libcap1 compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.devel compat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686 glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devel libaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686 libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686 make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686
 
离线环境下:
手动安装rpm包(最好一个一个安装,可以避免因为依赖包导致的数据库文件破损)
rpm -ivh binutils-2.27-43.base.el7_8.1.x86_64.rpm compat-libcap1-1.10-7.el7.x86_64.rpm compat-libstdc++-33-3.2.3-72.el7.i686.rpm compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm glibc-2.17-307.el7.1.i686.rpm glibc-devel-2.17-307.el7.1.i686.rpm glibc-static-2.17-307.el7.1.i686.rpm ksh-20120801-142.el7.x86_64.rpm libaio-0.3.109-13.el7.i686.rpm libaio-devel-0.3.109-13.el7.i686.rpm libaio-devel-0.3.109-13.el7.x86_64.rpm libgcc-4.8.5-39.el7.i686.rpm libstdc++-4.8.5-39.el7.i686.rpm libstdc++-devel-4.8.5-39.el7.i686.rpm libstdc++-static-4.8.5-39.el7.i686.rpm libtool-ltdl-2.4.2-22.el7_3.i686.rpm libX11-1.6.7-2.el7.i686.rpm libXau-1.0.8-2.1.el7.i686.rpm libxcb-1.13-1.el7.i686.rpm libXext-1.3.3-3.el7.i686.rpm libXext-devel-1.3.3-3.el7.x86_64.rpm libXfixes-devel-5.0.3-1.el7.x86_64.rpm libXi-1.7.9-1.el7.i686.rpm libXi-devel-1.7.9-1.el7.i686.rpm libXinerama-1.1.3-2.1.el7.i686.rpm libXinerama-devel-1.1.3-2.1.el7.i686.rpm libXtst-1.2.3-1.el7.i686.rpm libXtst-devel-1.2.3-1.el7.i686.rpm ncurses-libs-5.9-14.20130511.el7_4.i686.rpm nss-softokn-freebl-3.44.0-8.el7_7.i686.rpm readline-6.2-11.el7.i686.rpm unixODBC-2.3.1-14.el7.i686.rpm unixODBC-2.3.1-14.el7.x86_64.rpm unixODBC-devel-2.3.1-14.el7.i686.rpm unixODBC-devel-2.3.1-14.el7.x86_64.rpm
 
 
检查依赖包是否齐全:rpm -q binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
 
如果不全,手动补全,下面会告诉你怎么全套一次性下载完整的依赖包。
 
 
9)配置oracle的环境变量,先切换oracle用户
输入命令:su - oracle
然后输入vim .bash_profile追加以下内容
复制代码
export ORACLE_BASE=/data/app/oracle
export ORACLE_SID=orcl
export ROACLE_PID=ora11g
#export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
export ORACLE_HOME=/data/app/oracle/product/11.2.0/db_1
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
 
export PATH=$PATH:$ORACLE_HOME/bin
 
export LANG="zh_CN.UTF-8"
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.AL32UTF8"
export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss'
复制代码

 

 
解释:ORACLE_BASE环境变量为安装根目录,安装完之后会在ORACLE_HOME目录生成好多文件,ORACLE_SID为实例sid,可自定义。
ORACLE_BASE要根据自己所建目录一致
 
注意:修改主机名,或者直接修改为本机主机名
命令:hostnamectl set-hostname dbserver or hostname dbserver
 
然后在/etc/hosts 文件中添加域名
ip地址 dbserver
 
10)开始安装
官网上下载linux版本的oracle11gR2,一共两个包linux.x64_11gR2_database_1of2.zip,linux.x64_11gR2_database_2of2.zip,
使用ftp等方式上传到/home/oracle目录,并使用unzip命令进行解压。
解压完之后会生成database目录。(检查下database的所属用户信息 ll  /home/oracle,一定要是oracle:oinstall,不是的话,使用如下命令修改chown -R oracle:oinstall /home/oracle/database)
#unzip inux.x64_11gR2_database_1of2。。。
 
构建静默安装的rsp响应文件,
 
[oracle@localhost ~]$ cd /home/oracle/database/response/
[oracle@localhost response]$ cp dbca.rsp dbca.rsp.bak (以此类推,做好文件备份,结果如下)
[oracle@localhost response]$ ls
dbca.rsp dbca.rsp.bak db_install.rsp db_install.rsp.bak netca.rsp netca.rsp.bak
 
我上面把之前的响应文件做了备份。
通过vim命令编进db_install.rsp文件内容如下:为节省篇幅,我把所有的注释删除了。
注意的地方:INVENTORY_LOCATION为你要安装的目录(前提条件要创建好,之前步骤已创建好该目录),并设置好ORACLE_HOME和ORACLE_BASE,及oracle.install.db.config.starterdb.SID,主要是这几个配置是自定义的。
 
oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=dbserver
UNIX_GROUP_NAME=dba
INVENTORY_LOCATION=/data/app/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/app/oracle/product/11.2.0/db_1
ORACLE_BASE=/data/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=
oracle.install.db.config.starterdb.SID=orcl
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
 
 
然后执行静默安装的如下命令(oracle身份)
[oracle@localhost ~]$ cd /home/oracle/database
./runInstaller -silent -force -noconfig -ignorePrereq -responseFile /home/oracle/database/response/db_install.rsp 
或:
./runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp
 
以上命令会自动检查系统是否满足oracle11gR2的安装要求,如交换空间是否够,硬盘,内存等等。执行的时间会比较久,可以先去喝杯咖啡再听首音乐,如不出意外的情况下,会输出如下信息。
 
出现类似如下提示表示安装完成:
------------------------------------------------------------------------
The following configuration scripts need to be executed as the "root" user.
#!/bin/sh
#Root scripts to run
/data/app/oraInventory/orainstRoot.sh
/data/app/oracle/product/11.2.0/db_1/root.sh
To execute the configuration scripts:
1. Open a terminal window
2. Log in as "root"
3. Run the scripts
4. Return to this window and hit "Enter" key to continue
Successfully Setup Software
 
根据要求,新开一个窗口,以root身份分别执行这两个脚本即可。
1. /data/app/oracle/oraInventory/orainstRoot.sh
2. /data/app/oracle/product/11.2.0.1/db_1/root.sh
 
 
最后一步配置监听listener
netca /silent /responsefile  /home/oracle/database/response/netca.rsp
 输出如下信息:
Parsing command line arguments:
Parameter "silent" = true
Parameter "responsefile" = /home/oracle/etc/netca.rsp
Done parsing command line arguments.
Oracle Net Services Configuration:
Profile configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/data/app/oracle/product/11.2.0/db_1/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Listener configuration complete.
Oracle Net Services configuration successful. The exit code is 0
 
启动监听程序:
[oracle@docker ~]$ lsnrctl start
 输入如下信息:
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 01-SEP-2016 11:23:31 Copyright (c) 1991, 2009, Oracle. All rights reserved. Starting /data/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait... TNSLSNR for Linux: Version 11.2.0.1.0 - Production System parameter file is /data/app/oracle/product/11.2.0/db_1/network/admin/listener.ora Log messages written to /data/app/oracle/diag/tnslsnr/docker/listener/alert/log.xml Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=docker)(PORT=1521))) Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 01-SEP-2016 11:23:31 Uptime 0 days 0 hr. 0 min. 0 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /data/app/oracle/product/11.2.0/db_1/network/admin/listener.ora Listener Log File /data/app/oracle/diag/tnslsnr/docker/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=docker)(PORT=1521))) The listener supports no services The command completed successfully 
 
如果用工具连接数据库连接不上的问题看下防火墙是不是开启如果开启则需要关闭
查看防火墙状态:firewall-cmd --state
 
关闭防火墙:systemctl stop firewalld
 
 
静默dbca建库,编辑应答文件
 
[oracle@docker ~]$ vim /home/oracle/database/response/dbca.rsp
复制代码
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
TEMPLATENAME = "General_Purpose.dbc"
CHARACTERSET = "AL32UTF8"
 
复制代码

 

 建库
[oracle@docker ~]$ dbca -silent -responseFile /home/oracle/database/response/dbca.rsp
输入两次用户密码,输入密码时,看不见输入的字符,输入完敲击回车键:
Enter SYS user password:
Enter SYSTEM user password:
 
密码输入完后,输出如下信息:
Copying database files

1% complete
3% complete
11% complete
18% complete
26% complete
37% complete
Creating and starting Oracle instance
40% complete
45% complete
50% complete
55% complete
56% complete
57% complete
60% complete
62% complete
Completing Database Creation
66% complete
70% complete
73% complete
74% complete
85% complete
96% complete
100% complete
Look at the log file Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/orcl11g/orcl11g.log" for further details.

 

至此,安装基本完成了,下面进行数据库验证,首先切换到oracle用户下:

su - oracle 切换oracle用户
 
sqlplus / as sysdba 登录sqlplus
 
开启数据库:startup 启动oracle
 
关闭数据库:shutdown immediate
 正常开启关闭,数据库安装没问题。如果遇到以下报错,可以参考我的解决方案:
启动数据库时报错:
.Oracle报ORA-00845: MEMORY_TARGET not supported on this system错误
执行命令:
mount -o size=8G -o nr_inodes=1000000 -o noatime,nodiratime -o remount /dev/shm
 
接下来创建数据库用户和表空间:
1.建用户和表空间命令
*分为四步 */
/*第1步:创建临时表空间 */
 
create temporary tablespace orcl_temp tempfile '+DATABASE\orcl_temp.dbf' size 50m autoextend on next 50m maxsize 20480m extent management local;
 
/*第2步:创建数据表空间 */
 
create tablespace orcl_data logging datafile '+DATABASE\orcl_data.dbf' size 50m autoextend on next 50m maxsize 2048m extent management local;
 
/*第3步:创建用户并指定表空间 */
 
create user orcl identified by orcl default tablespace orcl_data temporary tablespace orcl_temp;
 
/*第4步:给用户授予权限 */
 
grant connect,resource,dba to orcl;
 
2、查询已创建的用户
select username from dba_users;
 
3、修改用户密码:
alter user customerchat identified by 123456;
有时用户会处于锁定状态,解锁用户:
alter user customerchat account unlock;
 
4、登录
sqlplus usernmae/password
 
其余操作:/*删除用户 */
drop user orcl
 
安装过程中如果出现以下错误,可以参考我的解决方案:
如果出现报错:DISPLAY not set. Set DISPLAY environment variable, then re-run。--Oracle创建实例dbca错误
执行:export DISPLAY=[你的IP]:1.0
然后再执行 dbca
 
创建数据库实例出现报错:Oracle Net Services 配置失败。退出代码是1
解决办法:
[oracle@centos-D oracle]$ netstat -lnp
[oracle@centos-D oracle]$ kill -9 6021
提示被其他程序占用,找到1521端口所对应的进程PID杀掉即可。
 
 
安装好后,启动数据库如果出现报错:
ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/oracle/app/oracle/product/11.2.0/db_1/dbs/initicare1.ora '
解决此问题的方法就是到cd /oracle/app/oracle/admin/orcl/pfile/目录下,将ora.1114201016265复制到dbs目录下:
cp init.ora.4202014111350 /data/app/oracle/product/11.2.0/db_1/initicare1.ora
 
启动数据库出现报错:
ORA-12162 :TNS 指定的网络服务名不正确
原因:这台服务器有多个库  在环境变量文件/home/oracle/.bash_profile中也没有export ORACLE_SID=xxx
解决方法:
登录前先export ORACLE_SID=xxx
再确保查看一下echo $ORACLE_SID
再登录sqlplus / as sysdba
 
yum锁住,解决方法:rm -r /var/run/yum.pid
 
离线环境需要提前下好依赖包,这里给出离线下载RPM包方法:
方案一(推荐):repotrack
# 安装yum-utils $ yum -y install yum-utils # 下载 ansible 全量依赖包 $ repotrack ansible
 
方案二:yumdownloader
# 安装yum-utils $ yum -y install yum-utils # 下载 ansible 依赖包 $ yumdownloader --resolve --destdir=/tmp ansible
参数说明:
  • --destdir:指定 rpm 包下载目录(不指定时,默认为当前目录)
  • --resolve:下载依赖的 rpm 包。
注意
仅会将主软件包和基于你现在的操作系统所缺少的依赖关系包一并下载。
 
方案三:yum 的 downloadonly 插件
# 安装插件 $ yum -y install yum-download # 下载 ansible 依赖包 $ yum -y install ansible --downloadonly --downloaddir=/tmp
注意
与 yumdownloader 命令一样,也是仅会将主软件包和基于你现在的操作系统所缺少的依赖关系包一并下载。
离线安装 rpm
# 离线安装 $ rpm -Uvh --force --nodeps *.rpm
  

posted @   海的航行  阅读(1656)  评论(2编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
点击右上角即可分享
微信分享提示