Centos7.0無(wú)桌面環(huán)境上靜默安裝oracle 11g
成都網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、成都網(wǎng)站建設(shè)、微信開(kāi)發(fā)、成都小程序開(kāi)發(fā)、集團(tuán)成都企業(yè)網(wǎng)站定制等服務(wù)項(xiàng)目。核心團(tuán)隊(duì)均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗(yàn),服務(wù)眾多知名企業(yè)客戶;涵蓋的客戶類型包括:成都雨棚定制等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗(yàn),同時(shí)也獲得了客戶的一致贊許!
groupadd oinstall #創(chuàng)建oinstall
groupadd dba # 創(chuàng)建dba組
useradd -g oinstall -G dba oracle #創(chuàng)建oracle用戶
passwd oracle # 修改oracle用戶的登錄密碼
[root@test-1 oracle]# id oracle #查看oracle用戶信息
uid=1000(oracle) gid=1000(oinstall)groups=1000(oinstall),1001(dba)
mkdir -p /mnt/app/oracle
chown -R oracle:oinstall /mnt/app/oracle
chmod -R 775 /mnt/app/oracle
依賴包是安裝oracle的必須,如果某些需要的依賴包沒(méi)有安裝上,安裝過(guò)程中會(huì)出現(xiàn)各種各樣的錯(cuò)誤。所以,依賴包安裝完整,安裝過(guò)程一般會(huì)比較順利。
直接執(zhí)行如下命令,安裝依賴包。
yum -y install binutils compat-libcap1compat-libstdc++-33 compat-libstdc++-33*i686 compat-libstdc++-33*.develcompat-libstdc++-33 compat-libstdc++-33*.devel gcc gcc-c++ glibc glibc*.i686glibc-devel glibc-devel*.i686 ksh libaio libaio*.i686 libaio-devellibaio-devel*.devel libgcc libgcc*.i686 libstdc++ libstdc++*.i686libstdc++-devel libstdc++-devel*.devel libXi libXi*.i686 libXtst libXtst*.i686make sysstat unixODBC unixODBC*.i686 unixODBC-devel unixODBC-devel*.i686
參考官方:http://docs.oracle.com/cd/E11882_01/install.112/e24326/toc.htm#BHCCADGD
The following or later version of packagesfor Oracle Linux 7, and Red Hat Enterprise Linux 7 must be installed:
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
hosts文件中,要講主機(jī)名添加到配置文件中,及添加到127.0.0.1后面,如果沒(méi)有加,安裝過(guò)程中會(huì)出錯(cuò)。
首先查看主機(jī)名:使用hostname命令
[root@test-1 oracle]# hostname
test-1
主機(jī)名為test-1,則把test-1添加到/etc/hosts文件中:
[root@test-1 oracle]# vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4test-1
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
將自己的主機(jī)名添加到文件中,保存退出。
編輯sysctl.conf文件
`[root@test-1 oracle]# vi /etc/sysctl.conf
加入如下配置
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
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
vm.hugetlb_shm_group = 1001 #此處與id oracle中的dba中一致
讓內(nèi)核參數(shù)生效,執(zhí)行:/sbin/sysctl -p
vi /etc/security/limits.conf
#在末尾添加
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
保存退出。
vi /etc/pam.d/login
打開(kāi)編輯此文件,在末尾加入如下配置:
session required /lib64/security/pam_limits.so
session required pam_limits.so
說(shuō)明:此處,要使用lib64,如果使用lib,則可能會(huì)出現(xiàn)無(wú)法登陸系統(tǒng)的情況,使用lib是在32位的情況下,如果是64位系統(tǒng),則應(yīng)該使用lib64
保存退出。
vi /etc/profile
加入如下配置:
if [[ $USER = "oracle" ]]; then
if [[ $SHELL = "/bin/ksh" ]]; then
ulimit -p16384
ulimit -n65536
else
ulimit -u16384 -n 65536
fi
fi
注意空格
保存退出
使其生效 source /etc/profile
vi /home/oracle/.bash_profile
加入如下配置文件:
#oracle
export TMP=/tmp;
export TMPDIR=$TMP;
export ORACLE_BASE=/mnt/app/oracle;
exportORACLE_HOME=$ORACLE_BASE/product/12.1.0/db_1;
export ORACLE_SID=orcl;
export ORACLE_TERM=xterm;
export PATH=/usr/sbin:$PATH;
export PATH=$ORACLE_HOME/bin:$PATH;
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
exportCLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
保存退出。
使其生效:source /home/oracle/.bash_profile
使用sftp將安裝文件上傳至服務(wù)器。
解壓文件夾
[root@test-1 oracle]# unziplinuxamd64_12102_database_1of2.zip
[root@test-1 oracle]# unziplinuxamd64_12102_database_2of2.zip
加壓之后,得到一個(gè)database的文件夾,將其移動(dòng)到/mnt/app/oracle目錄下
mv database /mnt/app/oracle
對(duì)文件授權(quán)
chown -R oracle:oinstall/mnt/app/oracle/database
最終的安裝主要在與三個(gè)響應(yīng)文件的配置:dbca.rsp,netca.rsp,db_install.rsp,分別對(duì)應(yīng)于創(chuàng)建數(shù)據(jù)庫(kù),創(chuàng)建監(jiān)聽(tīng),安裝數(shù)據(jù)庫(kù)。三個(gè)文件的路徑在database/response 文件夾下。
為了防止出錯(cuò),我們把三個(gè)響應(yīng)文件復(fù)制到oracle用戶路徑下,出錯(cuò)之后可以刪除再?gòu)?fù)制更改即可。
在oracle用戶目錄下,創(chuàng)建一個(gè)etc文件夾
[oracle@test-1 /]$ mkdir /home/oracle/etc
復(fù)制響應(yīng)文件
[oracle@test-1 /]$ cp /mnt/app/oracle/database/response/*/home/oracle/etc
[oracle@test-1 /]$ ls /home/oracle/etc/
dbca.rsp db_install.rsp netca.rsp
授權(quán)
[oracle@test-1 /]$ su - root
[root@test-1 ~]# chmod 777 /home/oracle/etc/*.rsp
編輯安裝響應(yīng)文件
[root@test-1 ~]# vi /home/oracle/etc/db_install.rsp
找到如下的配置,將配置更改如下:
`oracle.install.option=INSTALL_DB_SWONLY //安裝類型
ORACLE_HOSTNAME=test-1 // 主機(jī)名稱(hostname查詢)
UNIX_GROUP_NAME=oinstall // 安裝組
INVENTORY_LOCATION=/mnt/app/oracle/oraInventory//INVENTORY目錄(不填就是默認(rèn)值)
SELECTED_LANGUAGES=en // 選擇語(yǔ)言
ORACLE_HOME=/mnt/app/oracle/product/12.1.0/db_1//oracle_home
ORACLE_BASE=/mnt/app/oracle //oracle_base
oracle.install.db.InstallEdition=EE // oracle版本
oracle.install.db.isCustomInstall=false //自定義安裝,否,使用默認(rèn)組件
oracle.install.db.DBA_GROUP=dba // dba用戶組
oracle.install.db.OPER_GROUP=dba // oper用戶組
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE//數(shù)據(jù)庫(kù)類型
oracle.install.db.config.starterdb.globalDBName=orcl//globalDBName
oracle.install.db.config.starterdb.SID=orcl//SID
oracle.install.db.config.starterdb.password.ALL=Admin@123#@!//設(shè)定所有數(shù)據(jù)庫(kù)用戶使用同一個(gè)密碼
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false//(手動(dòng)寫(xiě)了false)
DECLINE_SECURITY_UPDATES=true //設(shè)置安全更新(貌似是有bug,這個(gè)一定要選true,否則會(huì)無(wú)限提醒郵件地址有問(wèn)題,終止安裝。PS:不管地址對(duì)不對(duì))`
配置好后。保存退出。
[root@test-1 ~]# su - oracle
[oracle@test-1 database]$/mnt/app/oracle/database/runInstaller -silent -responseFile /home/oracle/etc/db_install.rsp
安裝過(guò)程如下,出現(xiàn)如下結(jié)果,說(shuō)明安裝成功
Starting Oracle Universal Installer...
Checking Temp space: must be greater than500 MB. Actual 17997 MB Passed
Checking swap space: must be greater than150 MB. Actual 2999 MB Passed
Preparing to launch Oracle UniversalInstaller from /tmp/OraInstall2017-06-04_07-51-31PM. Please wait...[oracle@test-1 database]$ [WARNING] [INS-32055] The Central Inventory is locatedin the Oracle base.
ACTION: Oracle recommends placing thisCentral Inventory in a location outside the Oracle base directory.
[WARNING] [INS-13014] Target environmentdoes not meet some optional requirements.
CAUSE: Some of the optional prerequisitesare not met. See logs for details./tmp/OraInstall2017-06-04_07-51-31PM/installActions2017-06-04_07-51-31PM.log
ACTION: Identify the list of failedprerequisite checks from the log:/tmp/OraInstall2017-06-04_07-51-31PM/installActions2017-06-04_07-51-31PM.log.Then either from the log file or from installation manual find the appropriateconfiguration to meet the prerequisites and fix it manually.
You can find the log of this installsession at:
/mnt/app/oracle/oraInventory/logs/installActions2017-06-04_07-51-31PM.log
The installation of Oracle Database 12c wassuccessful.
Please check'/mnt/app/oracle/oraInventory/logs/silentInstall2017-06-04_07-51-31PM.log' formore details.
As a root user, execute the followingscript(s):
1. /mnt/app/oracle/oraInventory/orainstRoot.sh
2. /mnt/app/oracle/product/12.1.0/db_1/root.sh
Successfully Setup Software
/mnt/app/oracle/oraInventory/orainstRoot.sh
/mnt/app/oracle/product/12.1.0/db_1/root.sh
到此,數(shù)據(jù)庫(kù)已成功安裝上。
監(jiān)聽(tīng)器配置響應(yīng)文件為:/home/oracle/etc/netca.rsp,此文件使用默認(rèn)即可。
執(zhí)行配置監(jiān)聽(tīng)
[oracle@test-1 database]$ netca /silent/responsefile /home/oracle/etc/netca.rsp
出現(xiàn)如下信息,說(shuō)明監(jiān)聽(tīng)配置成功。
[oracle@test-1 oracle]$ netca /silent/responsefile /home/oracle/etc/netca.rsp
正在對(duì)命令行參數(shù)進(jìn)行語(yǔ)法分析:
參數(shù)"silent" = true
參數(shù)"responsefile" =/home/oracle/etc/netca.rsp
完成對(duì)命令行參數(shù)進(jìn)行語(yǔ)法分析。
Oracle Net Services 配置:
完成概要文件配置。
Oracle Net 監(jiān)聽(tīng)程序啟動(dòng):
正在運(yùn)行監(jiān)聽(tīng)程序控制:
/mnt/app/oracle/product/12.1.0/db_1/bin/lsnrctl start LISTENER
監(jiān)聽(tīng)程序控制完成。
監(jiān)聽(tīng)程序已成功啟動(dòng)。
監(jiān)聽(tīng)程序配置完成。
成功完成 Oracle Net Services 配置。退出代碼是0
成功運(yùn)行后,在/mnt/app/oracle/product/12.1.0/db_1/network/admin/中生成listener.ora和sqlnet.ora
通過(guò)netstat命令可以查看1521端口正在監(jiān)聽(tīng)。
Yum安裝netstat軟件,軟件包是在net-tools中
[root@test-1 ~]# yum install net-tools
[root@test-1 ~]# netstat -lntup|grep 1521
tcp6 0 0 :::1521 :::* LISTEN 14496/tnslsnr
[oracle@test-1 database]$ lsnrctl start
查看監(jiān)聽(tīng)狀態(tài)
[oracle@test-1 database]$ lsnrctl status
LSNRCTL for Linux: Version 12.1.0.2.0 -Production on 04-JUN-2017 20:15:07
Copyright (c) 1991, 2014, Oracle. Allrights reserved.
Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521)))
STATUS of the LISTENER
Alias LISTENER
Version TNSLSNR for Linux: Version12.1.0.2.0 - Production
Start Date 04-JUN-2017 20:08:08
Uptime 0 days 0 hr. 7 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File/mnt/app/oracle/product/12.1.0/db_1/network/admin/listener.ora
Listener Log File/mnt/app/oracle/diag/tnslsnr/test-1/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully
[oracle@test-1 database]$ lsnrctl reload
[oracle@test-1 /]$ su - root
[root@test-1 ~]# vim/home/oracle/etc/dbca.rsp
設(shè)置以下參數(shù):
GDBNAME = "orcl"
SID = "orcl"
SYSPASSWORD = "oracle"
SYSTEMPASSWORD = "oracle"
SYSMANPASSWORD = "oracle"
DBSNMPPASSWORD = "oracle"
DATAFILEDESTINATION=/mnt/app/oracle/oradata
RECOVERYAREADESTINATION=/mnt/app/oracle/fast_recovery_area
CHARACTERSET = "ZHS16GBK"
TOTALMEMORY = "1638"
其中TOTALMEMORY = "1638" 為1638MB,物理內(nèi)存2G*80%。執(zhí)行安裝數(shù)據(jù)庫(kù)實(shí)例
切換到oracle用戶
[root@test-1 ~]# su - oracle
[oracle@test-1 ~]$ dbca -silent-responseFile /home/oracle/etc/dbca.rsp
日志顯示,數(shù)據(jù)庫(kù)實(shí)例已經(jīng)成功創(chuàng)建。
[oracle@test-1 ~]$ ps -ef | grep ora_ |grep -v grep
[oracle@test-1~]$ lsnrctl status
[oracle@test-1 ~]$ sqlplus / as sysdba
SQL> select status from v$instance;
進(jìn)入到oracle安裝目錄的bin目錄下,執(zhí)行 dbstop即可停止數(shù)據(jù)庫(kù)。
由于數(shù)據(jù)庫(kù)安裝了一般需要外網(wǎng)訪問(wèn),所以需要開(kāi)放數(shù)據(jù)庫(kù)連接端口。
[root@test-1 /]# firewall-cmd --zone=public--add-port=1521/tcp --permanent
success
[root@test-1 /]# firewall-cmd --zone=public--add-port=5500/tcp --permanent
success
[root@test-1 /]# firewall-cmd --reload
success
命令含義:
--zone #作用域
--add-port=80/tcp #添加端口,格式為:端口/通訊協(xié)議
--permanent #永久生效,沒(méi)有此參數(shù)重啟后失效
重啟防火墻
firewall-cmd --reload
1、修改/mnt/app/oracle/product/12.1.0/db_1/bin/dbstart
[oracle@test-1 ~]$ vim/mnt/app/oracle/product/12.1.0/db_1/bin/dbstart
將ORACLE_HOME_LISTNER=$1修改為ORACLE_HOME_LISTNER=$ORACLE_HOME
2、修改/mnt/app/oracle/product/12.1.0/db_1/bin/dbshut
[oracle@test-1 ~]$ vim /mnt/app/oracle/product/12.1.0/db_1/bin/dbshut
將ORACLE_HOME_LISTNER=$1修改為ORACLE_HOME_LISTNER=$ORACLE_HOME
3、修改/etc/oratab文件
[oracle@test-1~]$ vim /etc/oratab
將orcl:/mnt/app/oracle/product/11.2.0:N中最后的N改為Y,成為orcl:/mnt/app/oracle/product/11.2.0:Y
[oracle@test-1~]$ dbshut
Oracle監(jiān)聽(tīng)停止,進(jìn)程消失。
Oracle監(jiān)聽(tīng)啟動(dòng),進(jìn)程啟動(dòng)。
vi /etc/rc.d/rc.local
加入如下配置:
su oracle -lc "/mnt/app/oracle/product/12.1.0/db_1/bin/lsnrctlstart"
su oracle -lc /mnt/app/oracle/product/12.1.0/db_1/bin/dbstart
保存退出
重啟系統(tǒng),再次連接數(shù)據(jù)庫(kù),將正常連接上。
[oracle@test-1~]$ su -
[root@test-1~]# vim /etc/rc.d/init.d/oracle
添加以下內(nèi)容(有些值如ORACLE_HOME和ORACLE_USER等根據(jù)實(shí)際情況可以修改):
[root@test-1 ~]# cat/etc/rc.d/init.d/oracle
#!/bin/bash
# oracle: Start/Stop Oracle Database 11g R2
# chkconfig: 345 90 10
# description: The Oracle Database is anObject-Relational Database Management System.
#
. /etc/rc.d/init.d/functions
LOCKFILE=/mnt/app/oracle/var/lock/subsys/oracle
ORACLE_HOME=/mnt/app/oracle/product/12.1.0/db_1/
ORACLE_USER=oracle
case "$1" in
'start')
if[ ! -f $LOCKFILE ];
then
touch "$LOCKFILE"
else
exit 1
fi
su- $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"
su- $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart"
su- $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"
echo -n $"Starting Oracle Database:"
;;
'stop')
if[ ! -f $LOCKFILE ]; then
echo $0 already stopping.
exit 1
fi
echo-n $"Stopping Oracle Database:"
su- $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"
su- $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"
su- $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
rm-f "$LOCKFILE"
;;
'restart')
$0stop
$0start
;;
'status')
if[ -e $LOCKFILE ];
then
echo $0 started.
else
echo $0 stopped.
fi
;;
*)
echo "Usage: $0 [start|stop|status]"
exit 1
esac
exit 0
[root@test-1 ~]# chmod 755 /etc/init.d/oracle
[root@test-1 ~]# ll /etc/init.d/oracle
-rwxr-xr-x 1 root root 1203 6月 29 10:59 /etc/init.d/oracle
[root@test-1 ~]# chkconfig oracle on