分享交流
合作共赢!

Linux7静默安装Oracle11g教程,实用!【亲测有效】

 1.查看swap大小(命令:free),若小于150M,需添加增加虚拟空间

dd if=/dev/zero of=/swapadd bs=1024 count=2006424
mkswap /swapadd
swapon /swapadd
重启系统虚拟空间会消失,除非打开/etc/fstab文件,加入
/swap swap swap default 0 0

查看操作系统信息

[root@docker ~]# uname -m
x86_64
[root@docker ~]# cat /etc/redhat-release 
CentOS Linux release 7.1.1503 (Core)

2.安装前的准备

a.修改主机名:linux7以上系统用:hostnamectl set-hostname hostname 

Centos6需要在/etc/sysconfig/network里面修改,然后export hostname=hostname

 b.关闭selinux:vi /etc/selinux/config,设置如下,重启系统reboot;

c.在hosts文件下添加本地ip对应主机名(不添加的话安装Oracle会报错):vim /etc/hosts

 3.检查以下服务是否安装

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 -y upgrade,(提示:等待时间比较长!)

用yum进行安装所需服务:

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 smartmontools

检查31个包是否都有安装,版本号只能大于规定的版本,不能小于

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 smartmontools
[root@docker ~]# 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
binutils-2.23.52.0.1-55.el7.x86_64
compat-libcap1-1.10-7.el7.x86_64
compat-libstdc++-33-3.2.3-72.el7.x86_64
compat-libstdc++-33-3.2.3-72.el7.i686
gcc-4.8.5-4.el7.x86_64
gcc-c++-4.8.5-4.el7.x86_64
glibc-2.17-106.el7_2.8.x86_64
glibc-2.17-106.el7_2.8.i686
glibc-devel-2.17-106.el7_2.8.x86_64
glibc-devel-2.17-106.el7_2.8.i686
ksh-20120801-22.el7_1.3.x86_64
libaio-0.3.109-13.el7.x86_64
libaio-0.3.109-13.el7.i686
libaio-devel-0.3.109-13.el7.x86_64
libaio-devel-0.3.109-13.el7.i686
libgcc-4.8.5-4.el7.x86_64
libgcc-4.8.5-4.el7.i686
libstdc++-4.8.5-4.el7.x86_64
libstdc++-4.8.5-4.el7.i686
libstdc++-devel-4.8.5-4.el7.x86_64
libstdc++-devel-4.8.5-4.el7.i686
libXi-1.7.2-2.1.el7.x86_64
libXi-1.7.4-2.el7.i686
libXtst-1.2.2-2.1.el7.x86_64
libXtst-1.2.2-2.1.el7.i686
make-3.82-21.el7.x86_64
sysstat-10.1.5-7.el7.x86_64
unixODBC-2.3.1-11.el7.x86_64
unixODBC-2.3.1-11.el7.i686
unixODBC-devel-2.3.1-11.el7.x86_64
unixODBC-devel-2.3.1-11.el7.i686

 4.创建oinstall和dba组,及Oracle用户

创建oinstall组和dba组
groupadd oinstall
groupadd dba
创建Oracle用户
/usr/sbin/useradd -g oinstall -G dba oracle
设置oracle密码
passwd oracle
验证创建及所属组是否正确:id oracle
[root@docker ~]# id oracle
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)

5.配置内核参数:vim /etc/sysctl.conf

[root@docker ~]# vim /etc/sysctl.conf 

# System default settings live in /usr/lib/sysctl.d/00-system.conf.
# To override those settings, enter new settings here, or in an /etc/sysctl.d/.conf file
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 7516192768 #7G
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 = 1048576

参数的值不能小于上面的配置,因为这是oracle官方建议的最小值,所以生产环境建议调整为这些参数,以优化系统性能。

注意:kernel.shmmax的值,#最低:536870912,最大值:比物理内存小1个字节的值,建议比物理内存小一点点就可以(过小的话后期会导致数据库实例无法启动或无法监听)

参数解释:

shmmax=物理内存*80%*80%,单位是字节
kernel.shmmax:表示单个共享内存段的最大值,以字节为单位,此值一般为物理内存的一半,不过大一点也没关系,这里设定的为4GB,即“4294967295/1024/1024/1024=4G”。
kernel.shmmin:表示单个共享内存段的最小值,默认为1byte
kernel.shmall:表示整个系统范围内可用共享内存页的总量,单位是页(page),在32位系统上一页等于4kB,也就是4096字节。计算公式是:shmmax/PAGE_SIZE
kernel.shmmni:表示整个系统范围内内存段的最大数量,一般为4096.
ip_local_port_range  :表示端口的范围。在监听器帮助客户端进程和服务器进程建立连接时,会用到指定范围内的端口。
kernel.sem  :表示设置的信号量,这4个参数内容大小固定。
net.core.rmem_default  :表示接收套接字缓冲区大小的缺省值(以字节为单位)。
net.core.rmem_max  :表示接收套接字缓冲区大小的最大值(以字节为单位)
net.core.wmem_default  :表示发送套接字缓冲区大小的缺省值(以字节为单位)。
net.core.wmem_max  :表示发送套接字缓冲区大小的最大值(以字节为单位)。

修改后使之生效

/sbin/sysctl -p

 6.修改用户权限

vim  /etc/security/limits.conf

#在末尾添加
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240

 7.在/etc/pam.d/login 文件中,使用文本编辑器或vi命令增加或修改以下内容

session required /lib64/security/pam_limits.so
session required pam_limits.so

 8.在/etc/profile 文件中,使用文本编辑器或vi命令增加或修改以下内容

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

source /etc/profile

 9.创建安装目录

mkdir -p /data/oracle/app/
chown -R oracle:oinstall /data/oracle/app/
chmod -R 775 /data/oracle/app/
#提示:图型化界面安装需创建 oraInventory目录
参考:Linux7图形化安装Oracle11g教程,亲测实用有效!
mkdir -p /data/oracle/oraInventory
chown -R oracle:oinstall /data/oracle/oraInventory
chmod -R 775 /data/oracle/oraInventory

 10.配置环境变量:vim /home/oracle/.bash_profile

[oracle@docker ~]$ vim /home/oracle/.bash_profile 或vim ~/.bash_profile 

export ORACLE_BASE=/data/oracle/app/oracle
export ORACLE_SID=orcl
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
PATH=$PATH:$ORACLE_HOME/bin

使之生效

source /home/oracle/.bash_profile

11.上传并解压oracle软件(上传工具和Oracle包网上很多就不说了,需要的留言)

[root@docker src]# unzip linux.x64_11gR2_database_1of2.zip
[root@docker src]# unzip linux.x64_11gR2_database_2of2.zip

图形化界面安装点击: Linux7图形化安装Oracle11g教程,亲测实用有效!

12.切换到Oracle用户,复制响应文件模板

[oracle@docker ~]$ mkdir etc
[oracle@docker ~]$ cp /data/software/database/response/* /home/oracle/etc/
[oracle@docker ~]$ ls etc
dbca.rsp  db_install.rsp  netca.rsp

 13.设置响应文件权限

[oracle@docker ~]$ su - root

[root@docker ~]# chmod 700 /home/oracle/etc/*.rsp

 14.切换到oracle用户:su – oracle,修改安装Oracle软件的响应文件/home/oracle/etc/db_install.rsp

oracle.install.option=INSTALL_DB_SWONLY     // 安装类型
ORACLE_HOSTNAME=docker        // 主机名称(hostname查询)
UNIX_GROUP_NAME=oinstall     // 安装组
INVENTORY_LOCATION=/data/oracle/oraInventory   //INVENTORY目录(不填就是默认值)
SELECTED_LANGUAGES=en,zh_CN,zh_TW // 选择语言
ORACLE_HOME=/data/oracle/app/oracle/product/11.2.0/db_1    //oracle_home   
ORACLE_BASE=/data/oracle/app/oracle     //oracle_base
oracle.install.db.InstallEdition=EE     // oracle版本
oracle.install.db.EEOptionsSelection=false   //自定义安装,否,使用默认组件
oracle.install.db.DBA_GROUP=dba /  / dba用户组
oracle.install.db.OPER_GROUP=oinstall // oper用户组
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //数据库类型
oracle.install.db.config.starterdb.globalDBName=orcl //globalDBName
oracle.install.db.config.starterdb.SID=orcl      //SID
oracle.install.db.config.starterdb.memoryLimit=81920 //自动管理内存的内存(M)
oracle.install.db.config.starterdb.password.ALL=oracle //设定所有数据库用户使用同一个密码
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false         //(手动写了false)
DECLINE_SECURITY_UPDATES=true   //设置安全更新(貌似是有bug,这个一定要选true,否则会无限提醒邮件地址有问题,终止安装。PS:不管地址对不对)

 15.开始静默安装

[oracle@docker database]$ /data/software//database/runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp

 16.查看安装日志

tail -f /data/oracle/oraInventory/logs/installActions2019-03-18_05-15-49PM.log

出现如下提示表示安装完成

[oracle@zyadmin ~]$ /data/software//database/runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp
正在启动 Oracle Universal Installer...

检查临时空间: 必须大于 120 MB。   实际为 33493 MB    通过
检查交换空间: 必须大于 150 MB。   实际为 1959 MB    通过
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2018-08-18_03-29-11PM. 请稍候...[oracle@zyadmin ~]$ [WARNING] [INS-13014] 目标环境不满足一些可选要求。
   原因: 不满足一些可选的先决条件。有关详细信息, 请查看日志。/tmp/OraInstall2018-08-18_03-29-11PM/installActions2018-08-18_03-29-11PM.log
   操作: 从日志 /tmp/OraInstall2018-08-18_03-29-11PM/installActions2018-08-18_03-29-11PM.log 中确定失败的先决条件检查列表。然后, 从日志文件或安装手册中查找满足这些先决条件的适当配置, 并手动进行修复。
可以在以下位置找到本次安装会话的日志:
 /data/u01/app/oraInventory/logs/installActions2018-08-18_03-29-11PM.log
^C
[oracle@zyadmin ~]$ tail /data/u01/app/oraInventory/logs/installActions2018-08-18_03-29-11PM.log 
信息: 构建客户机共享库
信息: 此 make 操作的输出也可以在以下位置获得: '/data/u01/app/oracle/product/11.2.0/db_1/install/make.log'
信息: 
信息: 开始从衍生进程输出:
信息: ----------------------------------
信息: 
信息: /data/u01/app/oracle/product/11.2.0/db_1/bin/genclntsh
[oracle@zyadmin ~]$ Oracle Database 11g 的 安装 已成功。
请查看 '/data/u01/app/oraInventory/logs/silentInstall2018-08-18_03-29-11PM.log' 以获取详细资料。

以 root 用户的身份执行以下脚本:
    1. /data/u01/app/oraInventory/orainstRoot.sh
    2. /data/u01/app/oracle/product/11.2.0/db_1/root.sh
Successfully S

 17.使用root用户执行脚本

su - root
/data/oracle/oraInventory/orainstRoot.sh
/data/oracle/app/oracle/product/11.2.0/db_1/root.sh

报错1:若启动数据库报错如下:

[oracle@oracle11g ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Mon Mar 18 17:25:17 2019
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup 
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/data/oracle/app/oracle/product/11.2.0/db_1/dbs/initdbsrv2.ora'

则是在/home/oracle/.bash_profile文件中的设置的SID和安装文件中的SID不一致,更改后,使更改生效:

source /home/oracle/.bash_profile
[oracle@oracle11g ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Wed Mar 20 09:50:35 2019
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORA-00371: not enough shared pool memory, should be atleast 300550905 bytes

报错2:Oracle ORA-00439 feature not enabled- Real Application Clusters 解决方法

导致这个错误的原因是因为RAC 没有link 到RDBMS home。
可以通过如下步骤来检查RAC 是否Link 到了RDBMS Home。
(1)进入 $ORACLE_HOME/rdbms/lib
(2)执行如下命令:
       nm -r libknlopt.a | grep -c kcsm.o

如果返回值等于0,那么就是没有link;
如果返回值大于0. 那么就是已经linked。

解决方法:
关闭instance。
进入$ORACLE_HOME/rdbms/lib
用Oracle的用户重新link:
make -f ins_rdbms.mk rac_on ioracle
或者分两步执行:
make -f ins_rdbms.mk rac_on
make -f ins_rdbms.mk ioracl
重新启动实例

 

温馨提示:

oracle11g图形化安装教程参考:Linux7图形化安装Oracle11g教程,亲测实用有效!

常见报错解决办法:

此内容查看价格1立即购买

18.增加或修改oracle的环境变量

su  - oracle
vim ~/.bash_profile
#for oracle
export ORACLE_BASE=/data/oracle/app/oracle
export ORACLE_HOME=/data/oracle/app/oracle/product/11.2.0/db_1
export ORACLE_SID=orcl
export ROACLE_PID=orcl
#export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
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'

 19.配置监听程序:netca /silent /responsefile /home/oracle/etc/netca.rsp

[oracle@docker ~]$ netca /silent /responsefile /home/oracle/etc/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: 
/u01/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

20.启动监听程序:[oracle@docker ~]$ lsnrctl start

[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 /u01/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 /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/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   /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
Listener Log File         /u01/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

 21.静默dbca建库,编辑应答文件

[oracle@docker ~]$ vi /home/oracle/etc/dbca.rsp
[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
TEMPLATENAME = "General_Purpose.dbc"
CHARACTERSET = "AL32UTF8"

 22.建库:

[oracle@docker ~]$ dbca -silent -responseFile /home/oracle/etc/dbca.rsp
[oracle@docker ~]$ dbca -silent -responseFile etc/dbca.rsp

Enter SYS user password: 
  
Enter SYSTEM user password: 
 
sh: /bin/ksh: No such file or directory
sh: /bin/ksh: No such file or directory
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.

 至此数据库实例创建成功!

oracle11g图形化安装教程参考:Linux7图形化安装Oracle11g教程,亲测实用有效!

官方支持:

https://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm#BHCBCFDI

PS:删除实例:

[oracle@docker ~]$ dbca -silent -deleteDatabase -sourcedb orcl
此内容查看价格1立即购买
赞(0) 打赏
未经允许不得转载:琼杰笔记 » Linux7静默安装Oracle11g教程,实用!【亲测有效】

评论 抢沙发

评论前必须登录!

 

分享交流,合作共赢!

联系我们加入QQ群

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册