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,在頁面上方勾選同意許可:
3,在下方選擇對應的oracle版本,這裏選擇11gR2的linux x86_64版本:
一共有兩個文件,註意下載前需要登錄oracle賬號,沒有的話,註冊一個就好。
下載完這兩個包即可 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
MemTotal: 8010460 kB
4,檢查防火墻是否開啟:
[root@oracle ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: active (running) since Mon 2018-07-02 17:50:42 CST; 1s ago Docs: man:firewalld(1) Main PID: 20136 (firewalld) CGroup: /system.slice/firewalld.service └─20136 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
關閉防火墻:
[root@oracle ~]# systemctl stop firewalld
關閉自啟動:
[root@oracle ~]# systemctl is-enabled firewalld enabled [root@oracle ~]# systemctl disable firewalld Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [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,追加如下內容):
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,追加如下內容):
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 10240
修改/etc/pam.d/login文件
session required /lib/security/pam_limits.so
session required pam_limits.so
修改/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
4,創建必要的目錄,並修改權限:
[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
5,配置/etc/hosts文件:
10.56.90.212 oracle
6,配置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
7,解壓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
8,開始靜默安裝數據庫軟件:
[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
9,配置靜默監聽:
通過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 -
10,最後一步,靜默建庫。
修改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安裝完成。
CentOS7 靜默安裝Oracle 11gR2(11.2.0.1)