CentOS7 静默安装Oracle 11gR2(11.2.0.1)

CentOS7 静默安装Oracle 11gR2(11.2.0.1)
一、下载Oracle
1.	首先下载Oracle 11gR2,地址如下:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html?spm=a2c4e.11153940.blogcont566703.10.36ae6c23iChOrf
2.	选择对应的oracle版本,这里选择11gR2的linux x86_64版本,一共有两个文件:
下载完这两个包即可
linux.x64_11gR2_database_1of2.zip
linux.x64_11gR2_database_2of2.zip

二、安装前检查
1.	查看操作系统版本:
[root@oracle ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core)
2.	查看内核版本:
[root@oracle ~]# uname -r
3.10.0-693.2.2.el7.x86_64
3.	查看系统内存大小(oracle 11g官方建议物理内存在2G以上):
[root@oracle ~]# cat /proc/meminfo | grep MemTotal
4.检查防火墙是否开启:
[root@oracle ~]# systemctl status firewalld 
关闭防火墙:
[root@oracle ~]# systemctl stop firewalld
关闭自启动:
[root@oracle ~]# systemctl is-enabled firewalld
enabled
[root@oracle ~]# systemctl disable firewalld
[root@oracle ~]# systemctl is-enabled firewalld
disabled
5.关闭selinux:
[root@oracle ~]# sed -i 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/sysconfig/selinux
[root@oracle ~]# setenforce 0
6.安装相关依赖包:
yum -y install binutils compat-libstdc++-33 compat-libcap1 gcc gcc-c++ glibc glibc-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make elfutils-libelf-devel sysstat
7.设置/dev/shm空间:
[root@oracle ~]# vi /etc/fstab
在fstab文件中追加如下内容:
shmfs                     /dev/shm            tmpfs   size=7g         0 0

[root@oracle ~]# mount -a

[root@oracle ~]# df -Th 
Filesystem     Type      Size  Used Avail Use% Mounted on
/dev/vda1      ext4       59G  3.8G   53G   7% /
devtmpfs       devtmpfs  3.9G     0  3.9G   0% /dev
shmfs          tmpfs     7.0G     0  7.0G   0% /dev/shm
三、安装Oracle 11g
1,	创建相关用户:
[root@oracle ~]# /usr/sbin/groupadd oinstall 
[root@oracle ~]# /usr/sbin/groupadd dba
[root@oracle ~]# /usr/sbin/groupadd asmadmin
[root@oracle ~]# /usr/sbin/groupadd asmdba 
[root@oracle ~]# /usr/sbin/useradd -g oinstall -G dba,asmdba oracle -d /home/oracle
[root@oracle ~]# id oracle 
uid=1000(oracle) gid=1000(oinstall) groups=1000(oinstall),1001(dba),1003(asmdba)
[root@oracle ~]# passwd oracle
2,	调整内核参数(编辑/etc/sysctl.conf,追加如下内容):
[root@oracle ~]# vim /etc/sysctl.conf

kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
fs.file-max = 6553600
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 262144

#配置生效
[root@oracle ~]# sysctl -p
3,	增加shell限制(编辑/etc/security/limits.conf,追加如下内容):
[root@oracle ~]# 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
4,	修改/etc/pam.d/login文件:
session   required    /lib/security/pam_limits.so
session   required    pam_limits.so

5,	修改/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
6,	创建必要的目录,并修改权限:
[root@oracle ~]# mkdir -p /home/app/oracle/
[root@oracle ~]# chown -R oracle:oinstall /home/app/
[root@oracle ~]# chmod -R 755 /home/app/
[root@oracle ~]# chown -R oracle:oinstall /home/oracle
[root@oracle ~]# chmod -R 775 /home/oracle
7,	配置/etc/hosts文件:
ip    oracle
8,	配置oracle用户的环境变量:
[root@oracle ~]# su - oracle
[oracle@oracle ~]$ vi .bash_profile
#添加如下内容
export ORACLE_HOSTNAME=oracle
export ORACLE_UNQNAME=ora11g
export ORACLE_BASE=/home/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/
export ORACLE_SID=ORCL
export PATH=/usr/sbin:$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
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export TMP=/tmp
export TMPDIR=$TMP
umask 022
9,	解压oracle安装文件:
[oracle@oracle ~]$ unzip linux.x64_11gR2_database_1of2.zip
[oracle@oracle ~]$ unzip linux.x64_11gR2_database_2of2.zip
进入到database目录,并生成响应文件:
[oracle@oracle ~]$ mkdir scripts
[oracle@oracle ~]$ cp -R database/response/ scripts/
修改response目录中的db_install.rsp文件的参数:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=oracle
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/home/app/oracle/oraInventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/home/app/oracle/product/11.2.0
ORACLE_BASE=/home/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=oinstall
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE
oracle.install.db.config.starterdb.globalDBName=ORCL
oracle.install.db.config.starterdb.SID=ORCL
oracle.install.db.config.starterdb.characterSet=ZHS16GBK
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=oracle
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.automatedBackup.enable=false
10,开始静默安装数据库软件:
[oracle@oracle database]$ ./runInstaller -silent -responseFile /home/oracle/scripts/response/db_install.rsp -ignorePrereq

Starting Oracle Universal Installer...

Checking Temp space: must be greater than 120 MB.   Actual 51039 MB    Passed
Checking swap space: 0 MB available, 150 MB required.    Failed <<<<

Some requirement checks failed. You must fulfill these requirements before

continuing with the installation,
这里有一个报错,提示swap不够,由于是阿里云的机器,默认没有swap空间,因此要手动创建:
[root@oracle ~]# dd if=/dev/zero of=/home/swapfile bs=1M count=2049
[root@oracle ~]# mkswap /home/swapfile
[root@oracle ~]# swapon /home/swapfile
再次执行静默安装,发现又有一个报错:
Preparing to launch Oracle Universal Installer from /tmp/OraInstall2018-07-02_08-45-55PM. Please wait ...[oracle@oracle database]$ Exception in thread "main" java.lang.UnsatisfiedLinkError: /tmp/OraInstall2018-07-02_08-45-55PM/jdk/jre/lib/amd64/xawt/libmawt.so: libXext.so.6: cannot open shared object file: No such file or directory
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1647)
    at java.lang.Runtime.load0(Runtime.java:769)
    at java.lang.System.load(System.java:968)
    at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1751)
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1668)
    at java.lang.Runtime.loadLibrary0(Runtime.java:822)
    at java.lang.System.loadLibrary(System.java:993)
    at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.awt.Toolkit.loadLibraries(Toolkit.java:1509)
    at java.awt.Toolkit.<clinit>(Toolkit.java:1530)
    at java.awt.Font.<clinit>(Font.java:141)
    at oracle.sysman.oii.oiif.oiifo.OiifoOCMUI.<init>(OiifoOCMUI.java:104)
    at oracle.sysman.oii.oiif.oiifo.OiifoOCMInterfaceManager.<init>(OiifoOCMInterfaceManager.java:79)
    at oracle.sysman.oii.oiif.oiifo.OiifoOCMInterfaceManager.getInstance(OiifoOCMInterfaceManager.java:124)
    at oracle.install.ivw.db.driver.DBInstaller.run(DBInstaller.java:123)
    at oracle.install.commons.util.Application.startup(Application.java:869)
    at oracle.install.commons.flow.FlowApplication.startup(FlowApplication.java:164)
    at oracle.install.commons.flow.FlowApplication.startup(FlowApplication.java:181)
    at oracle.install.commons.base.driver.common.Installer.startup(Installer.java:265)
    at oracle.install.ivw.db.driver.DBInstaller.startup(DBInstaller.java:114)
    at oracle.install.ivw.db.driver.DBInstaller.main(DBInstaller.java:132)
解决办法是安装libXext:
[root@oracle ~]# yum install libXext -y
看到如下信息时,表示数据库安装完成:
#!/bin/sh 
 #Root scripts to run

/home/app/oracle/oraInventory/orainstRoot.sh
/home/app/oracle/product/11.2.0/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用户):
[root@oracle ~]# sh /home/app/oracle/oraInventory/orainstRoot.sh

[oracle@oracle ~]$ more /etc/oraInst.loc
inventory_loc=/home/app/oracle/oraInventory
inst_group=oinstall

[root@oracle ~]# sh /home/app/oracle/product/11.2.0/root.sh
11, 配置静默监听:
通过response文件运行netca, 生成sqlnet.ora和listener.ora文件, 位于$ORACLE_HOME/network/admin目录下
[oracle@oracle ~]$ netca -silent -responsefile /home/oracle/scripts/response/netca.rsp
这里可能会有一个报错:
****DISPLAY environment variable not set!
    Oracle Net Configuration Assistant is a GUI tool
    which requires that DISPLAY specify a location
    where GUI tools can display.
    Set and export DISPLAY, then re-run.
需要设置一个DISPLAY环境变量:
[oracle@oracle ~]$ export DISPLAY=10.66.90.222:0.0       #ip设为本机即可
配置好后查看端口,发现1521已监听:
[oracle@oracle ~]$ netstat -tnlp 
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:1521            0.0.0.0:*               LISTEN      23795/tnslsnr       
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      -               
12,最后一步,静默建库。
修改response目录下的dbca.rsp文件:
SID = "ORCL"
开始静默建库:
[oracle@oracle ~]$ dbca -silent -responseFile  /home/oracle/scripts/response/dbca.rsp
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                                                                                                                                                                             
60% complete                                                                                                                                                                             
62% complete                                                                                                                                                                             
Completing Database Creation                                                                                                                                                             
66% complete                                                                                                                                                                             
70% complete                                                                                                                                                                             
73% complete                                                                                                                                                                             
85% complete                                                                                                                                                                             
96% complete                                                                                                                                                                             
100% complete                                                                                                                                                                            
Look at the log file "/home/app/oracle/cfgtoollogs/dbca/orcl11g/orcl11g.log" for further details.
启动oracle:
[oracle@oracle ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.1.0 Production on Mon Jul 2 21:53:11 2018

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup;
ORACLE instance started.

Total System Global Area 3273641984 bytes
Fixed Size          2217792 bytes
Variable Size        1795164352 bytes
Database Buffers     1459617792 bytes
Redo Buffers           16642048 bytes
Database mounted.
Database opened.
至此,oracle11g安装完成。

四、问题总结:
1、阿里云创建安全组规则
解决办法:
a)	登录阿里云ECS控制台,单击【安全组】>【配置规则】。
b)	选择【公网入方向】>【快速创建规则】。
c)	把常用的几个勾上。
d)	注意入口出口都要设置。
 
2、Linux Oracle 11g, lsnrctl start 监听服务启动失败解决办法
https://blog.51cto.com/990487026/1843773
a)	查看监听状态:lsnrctl status
b)	找到tnsnames.ora文件,查看Host
/home/app/oracle/product/11.2.0/network/admin/listener.ora
c)	查看系统的hosts文件,[oracle@oracle11 ~]$ cat /etc/hosts
d)	系统添加host,重新启动监听。
e)	开启:lsnrctl start;结束:lsnrctl stop
3、执行监听出现ORA-01102: cannot mount database in EXCLUSIVE mode错误
cd $ORACLE_HOME/dbs
ls
fuser -u lkXXX
fuser -k lkXXX
4、linux oracle配置远程连接
https://blog.csdn.net/kangguowei/article/details/53039195
listener.ora
 
tnsnames.ora 
 
5、中文乱码解决方法:
a) 重新设置客户端字符集
[oracle4@svr7-122 ~]$ export NLS_LANG=AMERICAN_AMERICA.UTF8
[oracle4@svr7-122 ~]$ echo $NLS_LANG
AMERICAN_AMERICA.UTF8
	b) Linux服务器上修改Oracle数据库的字符集
Linux服务器上以dba身份进入:
sqlplus / as sysdba;
依次执行以下命令:
shutdown immediate;
startup mount;
alter system enable restricted session;
alter system set job_queue_processes=0;
alter system set aq_tm_processes=0;
alter database open;
alter database character set internal_use utf8;
shutdown immediate;
startup;
查看数据库字符集,看是否已经修改过来:
select userenv('language') from dual;
6、创建用户、分配权限
create/alter user root identified by great6BAY6xx#0120y;
grant connect, resource, dba to root;

create user hnsy identified by connup22tspDHSu;
grant connect, resource to hnsy;

posted @ 2021-01-25 14:29  二二二狗子  阅读(690)  评论(0)    收藏  举报