CentOS 7靜默(無圖形化界面)安裝Oracle 11g


CentOS 7靜默(無圖形化界面)安裝Oracle 11g

 

准備CentOS 7 系統環境

我以 CentOS-7-x86_64-DVD-1511.iso 為例,簡述Oracle 11g的安裝過程。

由於是使用靜默模式(silent)安裝的,無需使用圖形化界面,我選擇了最小安裝的服務器版的CentOS 7。

安裝過程可參考 https://jingyan.baidu.com/article/fd8044fade8ac35031137a82.html

安裝完成后,只有命令行界面。

 

為了方便命令操作,我使用了遠程連接工具Xshell

我在這里和大家分享下綠色版的XshellXftpPortable:

http://pan.baidu.com/s/1pL5DL4B

下載后解壓即可使用

 

下載 Oracle 11g

Oracle官方網站

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

我的機器安裝的是CentOS7 64位系統,因此下載的Oracle版本也是64位的

 

11.2.0.2.0  zlinux64版本的Oracle是安裝在IBM服務器的,CentOS 7是無法安裝的。

下載完成后,有兩個壓縮文件

linux.x64_11gR2_database_1of2.zip 和 linux.x64_11gR2_database_2of2.zip

 

通過Xftp將壓縮文件上傳到 /db/

安裝依賴包

安裝依賴包之前,個人建議將yum源修改為aliyun源,下載速度快些,執行如下命令即可:

cd /etc

mv yum.repos.d yum.repos.d.bak

mkdir yum.repos.d

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum clean all

yum makecache

 

修改成功后,安裝如下依賴包:

yum -y install binutils \

compat-libstdc++-33 \

elfutils-libelf \

elfutils-libelf-devel \

expat \

gcc \

gcc-c++ \

glibc \

glibc-common \

glibc-devel \

glibc-headers \

libaio \

libaio-devel \

libgcc \

libstdc++ \

libstdc++-devel \

make \

pdksh \

sysstat \

unixODBC \

unixODBC-devel

 

yum -y install binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel

 

 

安裝完成后顯示如下界面

 

使用如下命令檢查依賴是否安裝完整

rpm -q \

binutils \

compat-libstdc++-33 \

elfutils-libelf \

elfutils-libelf-devel \

expat \

gcc \

gcc-c++ \

glibc \

glibc-common \

glibc-devel \

glibc-headers \

libaio \

libaio-devel \

libgcc \

libstdc++ \

libstdc++-devel \

make \

pdksh \

sysstat \

unixODBC \

unixODBC-devel | grep "not installed"

發現 pdksh 沒有安裝

rpm -q \
binutils \
compat-libstdc++-33 \
elfutils-libelf \
elfutils-libelf-devel \
expat \
gcc \
gcc-c++ \
glibc \
glibc-common \
glibc-devel \
glibc-headers \
libaio \
libaio-devel \
libgcc \
libstdc++ \
libstdc++-devel \
make \
pdksh \
sysstat \
unixODBC \
unixODBC-devel | grep "not installed"

 

  

 

執行 yum -y install pdksh,發現CentOS 7 沒有相關安裝包可用

 

通過wget命令直接下載pdksh的rpm包,我下載到了/tmp/

wget -O /tmp/pdksh-5.2.14-37.el5_8.1.x86_64.rpm http://vault.centos.org/5.11/os/x86_64/CentOS/pdksh-5.2.14-37.el5_8.1.x86_64.rpm

下載完成后,進入 /tmp/

 

rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm

 

再次檢查依賴包是否安裝完整

rpm -q \

binutils \

compat-libstdc++-33 \

elfutils-libelf \

elfutils-libelf-devel \

expat \

gcc \

gcc-c++ \

glibc \

glibc-common \

glibc-devel \

glibc-headers \

libaio \

libaio-devel \

libgcc \

libstdc++ \

libstdc++-devel \

make \

pdksh \

sysstat \

unixODBC \

unixODBC-devel | grep "not installed"

 

到此依賴包安裝完整

添加oracle用戶組和用戶

groupadd oinstall

groupadd dba

groupadd asmadmin

groupadd asmdba

useradd -g oinstall -G dba,asmdba oracle -d /home/oracle

添加完成后,查看oracle用戶

id oracle

初始化oracle用戶的密碼

passwd oracle

 

配置hostname(本機IP映射)

hostnamectl set-hostname centos-orcl

vim /etc/hosts

192.168.154.154 centos-oracle

測試hostname

ping -c 3 centos-oracle

 

優化OS內核參數

kernel.shmmax 參數設置為物理內存的一半

vim /etc/sysctl.conf

fs.aio-max-nr=1048576

fs.file-max=6815744

kernel.shmall=2097152

kernel.shmmni=4096

kernel.shmmax = 1073741824

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=1048586

使參數生效

sysctl -p

 

限制oracle用戶的shell權限

vim /etc/security/limits.conf

oracle              soft    nproc   2047

oracle              hard    nproc   16384

oracle              soft    nofile  1024

oracle              hard    nofile  65536

vim /etc/pam.d/login

session  required   /lib64/security/pam_limits.so

session  required   pam_limits.so

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

創建oracle安裝目錄

mkdir -p /db/app/oracle/product/11.2.0

mkdir /db/app/oracle/oradata

mkdir /db/app/oracle/inventory

mkdir /db/app/oracle/fast_recovery_area

chown -R oracle:oinstall /db/app/oracle

chmod -R 775 /db/app/oracle

配置oracle用戶環境變量

su - oracle

vim .bash_profile

umask 022

export ORACLE_HOSTNAME=centos-orcl

export ORACLE_BASE=/db/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/

export ORACLE_SID=ORCL

export PATH=.:$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH

export LC_ALL="en_US"

export LANG="en_US"

export NLS_LANG="AMERICAN_AMERICA.ZHS16GBK"

export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"

以上配置完成后,個人建議重啟下系統

reboot

解壓oracle壓縮文件到 /db

cd /db/

unzip linux.x64_11gR2_database_1of2.zip -d /db

unzip linux.x64_11gR2_database_2of2.zip -d /db

 

解壓完成后

mkdir /db/etc/

cp /db/database/response/* /db/etc/

vim /db/etc/db_install.rsp

 

oracle.install.option=INSTALL_DB_SWONLY

DECLINE_SECURITY_UPDATES=true

UNIX_GROUP_NAME=oinstall

INVENTORY_LOCATION=/db/app/oracle/inventory

SELECTED_LANGUAGES=en,zh_CN

ORACLE_HOSTNAME=centos-oracle

ORACLE_HOME=/db/app/oracle/product/11.2.0

ORACLE_BASE=/db/app/oracle

oracle.install.db.InstallEdition=EE

oracle.install.db.isCustomInstall=true

oracle.install.db.DBA_GROUP=dba

oracle.install.db.OPER_GROUP=dba

 =================

oracle.install.responseFileVersion=/oracle/install/rspfmt_dbinstall_response_schema_v11_2_0
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=centos-oracle
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/db/app/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/db/app/oracle/product/11.2.0
ORACLE_BASE=/db/app/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=true
oracle.install.db.customComponents=oracle.server:11.2.0.1.0,oracle.sysman.ccr:10.2.7.0.0,oracle.xdk:11.2.0.1.0,oracle.rdbms.oci:11.2.0.1.0,oracle.network:11.2.0.1.0,oracle.network.listener:11.2.0.1.0,oracle.rdbms:11.2.0.1.0,oracle.options:11.2.0.1.0,oracle.rdbms.partitioning:11.2.0.1.0,oracle.oraolap:11.2.0.1.0,oracle.rdbms.dm:11.2.0.1.0,oracle.rdbms.dv:11.2.0.1.0,orcle.rdbms.lbac:11.2.0.1.0,oracle.rdbms.rat:11.2.0.1.0
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
oracle.install.db.CLUSTER_NODES=
oracle.install.db.config.starterdb.type=
oracle.install.db.config.starterdb.globalDBName=
oracle.install.db.config.starterdb.SID=
oracle.install.db.config.starterdb.characterSet=AL32UTF8
oracle.install.db.config.starterdb.memoryOption=true
oracle.install.db.config.starterdb.memoryLimit=
oracle.install.db.config.starterdb.installExampleSchemas=false
oracle.install.db.config.starterdb.enableSecuritySettings=true
oracle.install.db.config.starterdb.password.ALL=
oracle.install.db.config.starterdb.password.SYS=
oracle.install.db.config.starterdb.password.SYSTEM=
oracle.install.db.config.starterdb.password.SYSMAN=
oracle.install.db.config.starterdb.password.DBSNMP=
oracle.install.db.config.starterdb.control=DB_CONTROL
oracle.install.db.config.starterdb.gridcontrol.gridControlServiceURL=
oracle.install.db.config.starterdb.dbcontrol.enableEmailNotification=false
oracle.install.db.config.starterdb.dbcontrol.emailAddress=
oracle.install.db.config.starterdb.dbcontrol.SMTPServer=
oracle.install.db.config.starterdb.automatedBackup.enable=false
oracle.install.db.config.starterdb.automatedBackup.osuid=
oracle.install.db.config.starterdb.automatedBackup.ospwd=
oracle.install.db.config.starterdb.storageType=
oracle.install.db.config.starterdb.fileSystemStorage.dataLocation=
oracle.install.db.config.starterdb.fileSystemStorage.recoveryLocation=
oracle.install.db.config.asm.diskGroup=
oracle.install.db.config.asm.ASMSNMPPassword=
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
SECURITY_UPDATES_VIA_MYORACLESUPPORT=
DECLINE_SECURITY_UPDATES=true
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=

 

開始安裝

su - oracle

cd /db/database/

./runInstaller -silent -ignorePrereq -responseFile /db/etc/db_install.rsp

安裝期間可以使用tail命令監看oracle的安裝日志

tail -f /db/app/oracle/inventory/logs/installActions2017-07-12_03-48-29PM.log

 

安裝完成,提示Successfully Setup Software.

根據提示完成配置

 

su root

sh /db/app/oracle/inventory/orainstRoot.sh

sh /db/app/oracle/product/11.2.0/root.sh

 

配置靜默監聽

su - oracle

netca /silent /responsefile /db/etc/netca.rsp

或者

如果沒有啟動修改下面文件后  lsnrctl start  

[oracle@localhost ~]$ cat /db/app/oracle/product/11.2.0/network/admin/listener.ora
# listener.ora Network Configuration File: /db/app/oracle/product/11.2.0/network/admin/listener.ora
# Generated by Oracle configuration tools.

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = centos-oracle)(PORT = 1521))
)
)

ADR_BASE_LISTENER = /db/app/oracle

 

查看監聽端口

netstat -tnulp | grep 1521


靜默創建數據庫

TOTALMEMORY 設置為總內存的80%

vi /db/etc/dbca.rsp

GDBNAME = "orcl"

SID = "orcl"

SYSPASSWORD = "oracle"

SYSTEMPASSWORD = "oracle"

SYSMANPASSWORD = "oracle"

DBSNMPPASSWORD = "oracle"

DATAFILEDESTINATION =/db/app/oracle/oradata

RECOVERYAREADESTINATION=/db/app/oracle/fast_recovery_area

CHARACTERSET = "AL32UTF8"

TOTALMEMORY = "1638"

[GENERAL]
RESPONSEFILE_VERSION = "11.2.0"
OPERATION_TYPE = "createDatabase"
[CREATEDATABASE]
GDBNAME = "orcl"
SID = "orcl"
TEMPLATENAME = "General_Purpose.dbc"
SYSPASSWORD = "Zc4GVmOzNQ2XrinI"
SYSTEMPASSWORD = "SYSTEMPASSWORD"
SYSMANPASSWORD = "Zc4GVmOzNQ2XrinI"
DBSNMPPASSWORD = "Zc4GVmOzNQ2XrinI"
DATAFILEDESTINATION =/db/app/oracle/oradata
RECOVERYAREADESTINATION=/db/app/oracle/fast_recovery_area
CHARACTERSET = "AL32UTF8"
TOTALMEMORY = "1638"
[createTemplateFromDB]
SOURCEDB = "myhost:1521:orcl"
SYSDBAUSERNAME = "system"
TEMPLATENAME = "My Copy TEMPLATE"
[createCloneTemplate]
SOURCEDB = "orcl"
TEMPLATENAME = "My Clone TEMPLATE"
[DELETEDATABASE]
SOURCEDB = "orcl"
[generateScripts]
TEMPLATENAME = "New Database"
GDBNAME = "orcl11.us.oracle.com"
[CONFIGUREDATABASE]
[ADDINSTANCE]
DB_UNIQUE_NAME = "orcl11g.us.oracle.com"
NODELIST=
SYSDBAUSERNAME = "sys"
[DELETEINSTANCE]
DB_UNIQUE_NAME = "orcl11g.us.oracle.com"
INSTANCENAME = "orcl11g"
SYSDBAUSERNAME = "sys"

 

執行靜默建庫

dbca -silent -responseFile /db/etc/dbca.rsp

 

查看oracle實例進程

ps -ef | grep ora_ | grep -v grep

 

查看監聽狀態

lsnrctl status

cp -a /db/app/oracle/admin/orcl/pfile/init.ora.522018105539 /db/app/oracle/product/11.2.0/dbs/initORCL.ora

 

====================

以默認參數文件(SPFILE)開啟實例,裝載默認的數據庫,並打開數據庫。

等於以下三個命令

 

sqlplus /as sysdba

 

startup nomount

alter database mount

alter database open

==============================================

創建目錄文件

[root@localhost ~]# cat /etc/oracle/olr.loc
olrconfig_loc = /db/app/oracle/product/11.2.0/cdata/centos-oracle.olr
CRS_HOME = /db/app/oracle/product/11.2.0/

touch  /db/app/oracle ......olr

===================

reboot

 lsnrctl start  

登錄sqlplus,查看實例狀態

sqlplus / as sysdba

select status from v$instance;

 

查看數據庫編碼

select userenv('language') from dual;

 

查看數據庫版本信息

select * from v$version;

 

1.用有dba權限的用戶登錄:sys用戶

2.創建一個新用戶:create user abc identified by 123456;

3.授予DBA權限: grant connect,resource,dba to abc;

ok,創建好了,就可以用abc這個用戶登錄了,abc用戶擁有dba權限。

 

Navicat遠程連接Oracle

開放1521端口

firewall-cmd --zone=public --add-port=1521/tcp --permanent

firewall-cmd --reload

官方網站

http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html

下載 instantclient-basic,解壓壓縮文件

 

下載Navicat

http://pan.baidu.com/s/1c2GP9U4

打開Navicat,工具→選項

打開OCI界面,在右側OCI library一欄中選擇instantclient-basic解壓目錄下的oci.dll,然后點擊確定。

 

重啟Navicat,點擊連接,選中Oracle

 

IP為Oracle服務器的IP地址,服務名為Oracle的實例名,可忽略大小寫

select instance_name from v$instance;

 

用戶名使用剛激活的scott,密碼為tiger,填完以上信息后點擊連接測試

 

到此Navicat遠程連接Oracle數據庫成功

設置Oracle開機啟動

vi /db/app/oracle/product/11.2.0/bin/dbstart

ORACLE_HOME_LISTNER=$ORACLE_HOME

vi /db/app/oracle/product/11.2.0/bin/dbshut

ORACLE_HOME_LISTNER=$ORACLE_HOME

vi /etc/oratab

orcl:/db/app/oracle/product/11.2.0:Y

vi /etc/rc.d/init.d/oracle

 

[plain]  view plain  copy
 
  1. #! /bin/bash  
  2. # oracle: Start/Stop Oracle Database 11g R2  
  3. #  
  4. # chkconfig: 345 90 10  
  5. # description: The Oracle Database is an Object-Relational Database Management System.  
  6. #  
  7. # processname: oracle  
  8. . /etc/rc.d/init.d/functions  
  9. LOCKFILE=/var/lock/subsys/oracle  
  10. ORACLE_HOME=/db/app/oracle/product/11.2.0  
  11. ORACLE_USER=oracle  
  12. case "$1" in  
  13. 'start')  
  14.    if [ -f $LOCKFILE ]; then  
  15.       echo $0 already running.  
  16.       exit 1  
  17.    fi  
  18.    echo -n $"Starting Oracle Database:"  
  19.    su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl start"  
  20.    su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"  
  21.    su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl start dbconsole"  
  22.    touch $LOCKFILE  
  23.    ;;  
  24. 'stop')  
  25.    if [ ! -f $LOCKFILE ]; then  
  26.       echo $0 already stopping.  
  27.       exit 1  
  28.    fi  
  29.    echo -n $"Stopping Oracle Database:"  
  30.    su - $ORACLE_USER -c "$ORACLE_HOME/bin/lsnrctl stop"  
  31.    su - $ORACLE_USER -c "$ORACLE_HOME/bin/dbshut"  
  32.    su - $ORACLE_USER -c "$ORACLE_HOME/bin/emctl stop dbconsole"  
  33.    rm -f $LOCKFILE  
  34.    ;;  
  35. 'restart')  
  36.    $0 stop  
  37.    $0 start  
  38.    ;;  
  39. 'status')  
  40.    if [ -f $LOCKFILE ]; then  
  41.       echo $0 started.  
  42.       else  
  43.       echo $0 stopped.  
  44.    fi  
  45.    ;;  
  46. *)  
  47.    echo "Usage: $0 [start|stop|status]"  
  48.    exit 1  
  49. esac  
  50. exit 0  

開機啟動oracle

systemctl enable oracle

開機啟動問題

oracle ORA-12547: TNS:lost contact

cd /db/app/oracle/product/11.2.0/bin/

chmod 6751 oracle

TNS-12555: TNS:permission denied

cd /var/tmp

chown -R oracle:oinstall .oracle

版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/Kenny1993/article/details/75038670


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM