博客信息

linux内网静默安装Oracle11g

0
发布时间:『 2019-12-23 13:39』  博客类别:oracle  阅读(278) 评论(0)

检查安装环境

本次安装主机配置

主机地址:内网

2核,8内存,350G存储


由于公司主机均已远超oracle最低安装标准,不再进行配置说明

准备oracle11g安装包和一些rpm安装的运行环境。下载地址:

链接:https://pan.baidu.com/s/1ZssDsbl3lwQJ3kKiRXTP4g 

提取码:rq59 

[[email protected] 离线包]# cd /opt/离线包/
[[email protected] 离线包]# ll
总用量 71972
-rwxrwxrwx 1 root root  6188360 12月 20 11:01 binutils-2.27-27.base.el7.x86_64.rpm
-rwxrwxrwx 1 root root   195388 12月 20 11:01 compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
-rwxrwxrwx 1 root root  6227844 12月 20 11:01 cpp-4.8.5-28.el7_5.1.x86_64.rpm
-rwxrwxrwx 1 root root   199196 12月 20 11:01 elfutils-libelf-0.170-4.el7.x86_64.rpm
-rwxrwxrwx 1 root root    38740 12月 20 11:01 elfutils-libelf-devel-0.170-4.el7.x86_64.rpm
-rwxrwxrwx 1 root root   273804 12月 20 11:01 elfutils-libs-0.170-4.el7.x86_64.rpm
-rwxrwxrwx 1 root root 16955872 12月 20 11:01 gcc-4.8.5-28.el7_5.1.x86_64.rpm
-rwxrwxrwx 1 root root  7523092 12月 20 11:01 gcc-c++-4.8.5-28.el7_5.1.x86_64.rpm
...........
执行:
//离线安装的oracle需要的环境包
rpm -ivh binutils-2.27-27.base.el7.x86_64.rpm
rpm -ivh compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
rpm -ivh cpp-4.8.5-28.el7_5.1.x86_64.rpm
rpm -ivh elfutils-libelf-0.170-4.el7.x86_64.rpm
rpm -ivh elfutils-libelf-devel-0.170-4.el7.x86_64.rpm
rpm -ivh elfutils-libs-0.170-4.el7.x86_64.rpm
rpm -ivh gcc-4.8.5-28.el7_5.1.x86_64.rpm
rpm -ivh gcc-c++-4.8.5-28.el7_5.1.x86_64.rpm
rpm -ivh glibc-2.17-222.el7.i686.rpm
rpm -ivh glibc-2.17-222.el7.x86_64.rpm
rpm -ivh glibc-common-2.17-222.el7.x86_64.rpm
rpm -ivh glibc-devel-2.17-222.el7.i686.rpm
rpm -ivh glibc-devel-2.17-222.el7.x86_64.rpm
rpm -ivh glibc-headers-2.17-222.el7.x86_64.rpm
rpm -ivh kernel-headers-3.10.0-862.3.2.el7.x86_64.rpm
rpm -ivh libaio-devel-0.3.109-13.el7.x86_64.rpm
rpm -ivh libgcc-4.8.5-28.el7_5.1.x86_64.rpm
rpm -ivh libgomp-4.8.5-28.el7_5.1.x86_64.rpm
rpm -ivh libmpc-1.0.1-3.el7.x86_64.rpm
rpm -ivh libstdc++-4.8.5-28.el7_5.1.x86_64.rpm
rpm -ivh libstdc++-devel-4.8.5-28.el7_5.1.x86_64.rpm
rpm -ivh libtool-ltdl-2.4.2-22.el7_3.x86_64.rpm
rpm -ivh libX11-1.6.5-1.el7.x86_64.rpm
rpm -ivh libX11-common-1.6.5-1.el7.noarch.rpm
rpm -ivh libXau-1.0.8-2.1.el7.x86_64.rpm
rpm -ivh libxcb-1.12-1.el7.x86_64.rpm
rpm -ivh libXext-1.3.3-3.el7.x86_64.rpm
rpm -ivh libXp-1.0.2-2.1.el7.x86_64.rpm
rpm -ivh lm_sensors-libs-3.4.0-4.20160601gitf9185e5.el7.x86_64.rpm
rpm -ivh mpfr-3.1.1-4.el7.x86_64.rpm
rpm -ivh nspr-4.19.0-1.el7_5.x86_64.rpm
rpm -ivh nss-softokn-freebl-3.36.0-5.el7_5.i686.rpm
rpm -ivh nss-softokn-freebl-3.36.0-5.el7_5.x86_64.rpm
rpm -ivh nss-util-3.36.0-1.el7_5.x86_64.rpm
rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
rpm -ivh sysstat-10.1.5-13.el7.x86_64.rpm
rpm -ivh unixODBC-2.3.1-11.el7.x86_64.rpm
rpm -ivh unixODBC-devel-2.3.1-11.el7.x86_64.rpm
rpm -ivh zlib-devel-1.2.7-17.el7.x86_64.rpm

1.开始安装

创建oinstall和dba组

[[email protected] ~]# groupadd oinstall
[[email protected] ~]# groupadd dba

创建Oracle用户

[[email protected] ~]# useradd -g oinstall -G dba oracle
[[email protected] ~]# passwd oracle
...

验证创建及所属组是否正确

[[email protected] ~]# id oracle
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)

2.配置内核参数

[[email protected] ~]# 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/<name>.conf file
#
# For more information, see sysctl.conf(5) and sysctl.d(5).
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 8388608
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个字节的值,建议比物理内存小一点点就可以(过小的话后期会导致数据库实例无法启动或无法监听)


3.修改后使之生效

[[email protected] ~]# sysctl -p
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 8388608
sysctl: setting key "kernel.shmmax": Invalid argument
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

4.修改用户权限

[[email protected] ~]# vim  /etc/security/limits.conf
# 末尾添加
# End of file
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240

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

[[email protected] ~]# vim /etc/pam.d/login
session required /lib64/security/pam_limits.so
session required pam_limits.so

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

[[email protected] ~]# vim /etc/profile
if [ $USER = "oracle" ]; then
   if [ $SHELL = "/bin/ksh" ]; then
       ulimit -p 16384
       ulimit -n 65536
    else
       ulimit -u 16384 -n 65536
   fi
fi
[[email protected] ~]# source /etc/profile

7.创建安装目录

[[email protected]# mkdir -p /data/oracle/app/
[[email protected] ~]# chown -R oracle:oinstall /data/oracle/app/
[[email protected] ~]# chmod -R 775 /data/oracle/app/

8.配置环境变量

    切换到Oracle用户操作:

[[email protected] ~]# su - oracle
[[email protected] ~]$ vim ~/.bash_profile
export ORACLE_BASE=/data/app/oracle
export ORACLE_SID=orcl
export ROACLE_PID=ora11g
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
export ORACLE_HOME=/data/app/oracle/product/11.2.0/db_1
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'
[[email protected] ~]$ source ~/.bash_profile

9.在root用户下解压安装包,已经解压过就不要解压了

[[email protected]]# unzip linux.x64_11gR2_database_1of2.zip
[[email protected]]# unzip linux.x64_11gR2_database_2of2.zip
[[email protected]]# cd /data1/oradata/
[[email protected] oradata]# ll
总用量 2487200
drwxrwxr-x 7 oracle oinstall        128 8月  27 2013 database
-rw------- 1 oidd   oidd     1395582860 8月   8 17:02 p13390677_112040_Linux-x86-64_1of7.zip
-rw------- 1 oidd   oidd     1151304589 8月   8 17:02 p13390677_112040_Linux-x86-64_2of7.zip

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

[[email protected] ~]$ mkdir /home/oracle/etc/
[[email protected] ~]$ cp  /usr/local/src/database/response/* /home/oracle/etc/
[[email protected] etc]$ ll
总用量 80
-rwxr-xr-x 1 oracle oinstall 44533 8月  13 09:37 dbca.rsp
-rwxr-xr-x 1 oracle oinstall 25304 8月  13 10:18 db_install.rsp
-rwxr-xr-x 1 oracle oinstall  5871 8月  12 16:10 netca.rsp

11.设置响应文件权限

[[email protected] ~]$ su - root
...
[[email protected] ~]# chmod 700 /home/oracle/etc/*.rsp
切换到oracle用户,修改安装Oracle软件的响应文件/home/oracle/etc/db_install.rsp
[[email protected] ~]# su - oracle
[[email protected] ~]$vi /home/oracle/etc/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY     // 安装类型
ORACLE_HOSTNAME=r1        // 主机名称(hostname查询)
UNIX_GROUP_NAME=oinstall     // 安装组
INVENTORY_LOCATION=/data/app/oracle/oraInventory   //INVENTORY目录(不填就是默认值)
SELECTED_LANGUAGES=en,zh_CN,zh_TW // 选择语言
ORACLE_HOME=/data/app/oracle/product/11.2.0/db_1    //oracle_home
ORACLE_BASE=/data/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:不管地址对不对)

12.开始静默安装(等待1-3分钟)

[[email protected] database]$ ./runInstaller -silent -noconfig -responseFile /home/oracle/etc/db_install.rsp -ignoreSysPrereqs -ignorePrereq

如果报错请执行:

//处理./runInstaller无法执行的问题
[[email protected] database]$ echo $DISPLAY
localhost:11.0
[[email protected] database]$ unset DISPLAY
[[email protected] database]$ echo $DISPLAY

当出现Successfully Setup Software即为成功


13.执行脚本

切换到root用户,如果出现切换失败,拒绝权限,可以直接exit

[[email protected] database]$su root
... 
[[email protected] ~]# cd /data/app/oracle/oraInventory/
[[email protected] oraInventory]# ls
ContentsXML  logs  oraInst.loc  orainstRoot.sh  oui
[[email protected] oraInventory]# ./orainstRoot.sh
[[email protected] ~]# cd /data/app/oracle/product/11.2.0/db_1/
[[email protected] db_1]# ls
apex         css          emcli    .....    root.sh   ucp
[[email protected] db_1]# ./root.sh

若没有生成orainstRoot.sh这个文件,解决办法:删除/etc/oraInst.loc文件,再次重新静默安装,记住要删除之前安装后生成的文件,不然会出现磁盘容量溢出


14.配置监听程序

[[email protected] ~]$ 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: 
/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

15.修改监听配置文件

[[email protected] ~]$ cd /data/app/oracle/product/11.2.0/db_1/network/admin/
[[email protected] admin]$ ls
diag                          samples                     sqlnet19081311上午1634.bak
listener1908125PM1519.bak     shrept.lst                  sqlnet.ora
listener19081311上午1533.bak  sqlnet19081311上午1515.bak  tnsnames.ora
listener.ora          sqlnet19081311上午1533.bak  tnsnames.ora_2019081221
[[email protected] admin]$ vi listener.ora
SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = orcl)
      (ORACLE_HOME = /data/app/oracle/product/11.2.0/db_1)
    )
  )
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.130.6.31)(PORT = 1521))
    )
  )

16.启动监听程序

[[email protected] bin]$ lsnrctl start
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 14-8月 -2019 15:03:53
Copyright (c) 1991, 2013, 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   /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=r1)(PORT=1521)))
The listener supports no services
The command completed successfully

如果进行连接测试的时候报错ERROR:  ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务

请去数据库执行:

[[email protected] ~]$ set curr orcl   //手动指定oracle的实例sid是orcl
[[email protected] ~]$ sqlplus / as sysdba  
SQL*Plus: Release 10.2.0.1.0 - Production on 星期日 7月 24 22:21:55 2011  
Copyright (c) 1982, 2005, Oracle.  All rights reserved.  
已连接到空闲例程。  
SQL> select status,instance_name from v$instance;  
STATUS                   INSTANCE_NAME  
------------------------ --------------------------------  
OPEN                     t02  
SQL> alter system set local_listener="orcl";  //数据库也改成orcl
系统已更改。  
SQL>

17.建库

[[email protected] ~]$ 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 "/data/app/oracle/cfgtoollogs/dbca/orcl11g/orcl11g.log" for further details.

18.启动数据库

[[email protected] ~]$ ./sqlplus /nolog
SQL> connect /as sysdba
Connected.
SQL> startup
...

如果出现启动数据库出现的问题解决方案

 ORA-01078和LRM-00109问题导致ORACLE启动失败解决方法

 1、cd /home/oracle/base/admin/ORA11g/pfile。路径说明:/home/oracle/base/为ORACR_BASE变量配置路径,ORA11g为ORACLE_SID。
 2、cp init.ora.6242017161635 /home/oracle/base/11gR2/db/dbs/initora11g.ora
 3、重新执行startup启动数据库实例成功。

 

 ORA-01102的解决办法

[[email protected] ~]$ cd /data/oracle/product/11.2.0/db_1/dbs/  
[[email protected] dbs]$ $ rm lk*
[[email protected] dbs]$ ipcs -map
....
[[email protected] dbs]$ ipcrm –m 【shmid】查出来的id
[[email protected] dbs]$ ipcs -s
[[email protected] dbs]$ ipcrm -s 【semid】



19.登录sqlplus并修改sys、system用户密码

sqlplus /nolog
conn /as sysdba
接着执行下面命令
alter user system identified by oracle;
alter user sys identified by oracle;

关闭和重启:shutdown immediate,startup


20.查看tnsnames.ora ,并复制。

[[email protected] ~]# vi /data/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora 

ORCL =    
  (DESCRIPTION =
	(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
	(CONNECT_DATA =
	  (SERVER = DEDICATED)
	  (SERVICE_NAME = orcl)
	)
  )

21.配置plsql连接(本地)

如果出现端口连接超时,请点击:linux开发1521端口

先装好本地客户端,然后把上面的tnsnames.ora文件内容copy到你本地oracle的tnsnames.ora文件里。

由于之前设置system的密码是oracle,选择数据库输入即可。


关键字:   无
博主信息

勿扰
简介:对自己狠一点,社会才会对你好一点!
4年1月
QQ
热门文章
Powered by 勿扰 V2.0 湘ICP备18002237号-2     Copyright © 2016-2018 勿扰个人博客 版权所有