暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

RedHat Enterprise Linux 6.6静默安裝Oracle 11.2.0

原创 dastone 2025-03-10
65

RedHat Enterprise Linux 6.6安裝Oracle 11.2.0

  1. 前言

由於工作需要使用到oracle,所以就想裝個oracle來試下,而工作上用到的環境是這樣的:linux版本是RHEL 6.6,Oracle版本是11.2。

而沒有特別的空閒機器,我只能在自己開發機器上裝個虛擬器來試下。

虛擬機:Oracle VM VirtualBox; 版本:5.2.44

註明:由於開發機器比較舊,是32位版本的windows 7,內存也不大,最關鍵的是不能上網。所以必須下載好所有軟件,然後通過U盤複製過來。

準備軟件:

  1. 在Redhat的官網下載軟件,我這裡下載的為rhel-server-6.6-x86_64-dvd.iso,約3.7G大小;
  2. 在oracle官網下載對應版本,我這裡下載了2個文件為:linux.x64_11gR2_database_1of2.zip;linux.x64_11gR2_database_2of2.zip。
  3. 虛擬機安裝與設置
  4. 首先新建虛擬機,如下圖:

內存設置為2048M,虛擬硬盤設置為動態80G;

  1. 設置網絡

主要是網絡設置:設置介面卡2為橋接介面卡;

  1. 存放裝置設置,將下載的安裝介質裝載到光碟機中,如下圖:

  1. RHEL6.6的安裝

由於想靜默安裝oracle,所以不需要使用到圖形界面;安裝如下圖:

選擇第一個進行下一步;

選擇‘Skip’,跳過檢測,進入下一步;

點擊‘Next’,進入到下一步;

選擇缺省的,建議不要選擇‘中文’或其他,點擊‘Next’,進入到下一步;

點擊‘Next’,進入到下一步;

點擊‘Next’,進入到下一步;

選擇‘Yes’,刪除所有數據,

設置主機名為:twporatst;

配置網絡,將eth1的IPv4 Settings設置為如上圖,IP地址:10.130.26.199,掩碼:255.255.255.0,網關:10.130.26.238;

eth0與eth1都設置為自動連接(Connect automatically);

點擊‘Next’,進入到下一步;

設置root的密碼(注:如有提示密碼設置簡單,點擊“Use Anyway”),然後點擊‘Next’,進入到下一步;

按缺省的(Replace Existing Linux System(s)),點擊‘Next’,進入到下一步;

出現上面提示,選擇“Write changes to disk”,然後系統會分區,格式化,再進入到下一步;

靜默安裝oracle,不需要桌面,所以選擇Basic Server,然後點擊‘Next’,進入到下一步;

然後就等待安裝了,大約10多分鐘吧。

安裝完成,按‘Reboot’,重啟來完成linux的安裝。

  1. 安裝Oralce前的準備工作
  2. 首先要安裝需要的依賴包,下圖為需要安裝的依賴包,版本不可低於列出的版本;

  1. 由於不能上網,也不能使用yum來自動安裝,只能在光盤中找對應的包來安裝,走了很多彎路,有些包是有相互依賴關係的,所有需要按順序來安裝。

開啟終端機,切換到root;將下載的rhel-server-6.6-x86_64-dvd.iso裝載在光碟機上;然後切換到安裝包所在目錄;

在這個目錄下我們開始安裝所需依賴包;安裝時都在root權限下安裝;

安裝gcc包之前要安裝好ppl,cloog,mpfr,cpp等包,並且要按上面順序,不然會出錯的。再繼續安裝其他包。

注意:無桌面情況下安裝unitODBC包之前要安裝libtool-ltdl和libtool-ltdl-devel這2個包,不然會提示如“找不到libltdl.so”的錯誤!

記住只需要安裝x86_64對應的包就可以了。

我們檢查下是否需要的包都安裝完成了。

#

rpm -q binutils ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat unixODBC unixODBC-devel compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel

上面顯示都已經安裝有了!

  1. 配置linux内核参数

以root權限開終端,編輯/etc/system.conf文件。

[root@twporauat ~]# vim /etc/sysctl.conf

# Kernel sysctl configuration file for Red Hat Linux

#

# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and

# sysctl.conf(5) for more details.

# Controls IP packet forwarding

net.ipv4.ip_forward = 0

# Controls source route verification

net.ipv4.conf.default.rp_filter = 1

# Do not accept source routing

net.ipv4.conf.default.accept_source_route = 0

# Controls the System Request debugging functionality of the kernel

kernel.sysrq = 0

# Controls whether core dumps will append the PID to the core filename.

# Useful for debugging multi-threaded applications.

kernel.core_uses_pid = 1

# Controls the use of TCP syncookies

net.ipv4.tcp_syncookies = 1

# Disable netfilter on bridges.

net.bridge.bridge-nf-call-ip6tables = 0

net.bridge.bridge-nf-call-iptables = 0

net.bridge.bridge-nf-call-arptables = 0

# Controls the default maxmimum size of a mesage queue

kernel.msgmnb = 65536

# Controls the maximum size of a message, in bytes

kernel.msgmax = 65536

# Controls the maximum shared segment size, in bytes

kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages

kernel.shmall = 4294967296

# Oracle config

fs.aio-max-nr = 104857

fs.file-max = 6815744

#kernel.shmall = 2097152

#kernel.shmmax = 4294967295

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

然後是設置生效,運行/sbin/sysctl -p

上面有錯誤,可執行如下:

  1. 關閉selinux,確保SELINUX=disabled;

然後執行setenforce=0,關閉selinux;

  1. 修改用戶的Shell限制;
  • 修改limits.conf文件;

#

vi /etc/security/limits.conf

新增(在 #End of file 之前)

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

  • 修改login文件;

#

vi /etc/pam.d/login

新增

session required /lib/security/pam_limits.so

session required pam_limits.so

  • 修改profile文件;

#

vi /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

  1. 建立目錄以及用戶組、用戶
  • 建立目錄

計劃將數據庫安裝在/u01目錄下,而數據文件保存在/u02下。

#

mkdir -p /u01/app/oracle/product

mkdir -p /u02

mkdir -p /u01/app/oraInventory

  • 建立用戶組、用戶;並修改上面建立用戶的權限;注意:將用戶oracle的Home目錄設置為了/u01/app/oracle/product/11.2.0

#

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba -d /u01/app/oracle/product/11.2.0 oracle

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

chown -R oracle:oinstall /u02

chown -R oracle:oinstall /u01/app/oraInventory

passwd oracle

  1. 以oracle登入,配置環境變量

#

su - oracle

vi .bash_profile

新增

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=/u01/app/oracle/product/11.2.0

export NLS_LANG=AMERICAN_AMERICA.ZHS32GB18030

export LIBPATH=$ORACLE_HOME/lib

export LD_LIBRARY_PATH=$ORACLE_HOME/network/lib

export TNS_ADMIN=$ORACLE_HOME/network/admin

export ORACLE_SID=twpcrd

export ADR_HOME=/u01/app/oracle/diag/rdbms/twpcrd/twpcrd

  1. 將USB中介質copy到/tmp,並解壓,然後修改database所有者!

#

su - root

mkdir -p /mnt/usb

mount /dev/sdb /mnt/usb

cd /mnt/usb

cp linux.x64_11gR2_database_1of2.zip /tmp

cp linux.x64_11gR2_database_2of2.zip /tmp

cd /tmp

unzip linux.x64_11gR2_database_1of2.zip

unzip linux.x64_11gR2_database_2of2.zip

chown -R oracle:oinstall database

解壓後在/tmp目錄下有個database目錄;

  1. 確保 /etc/sysconfig/network中hostname要与 /etc/hosts中的一致,如不一致則編輯成一致;

  1. 安裝Oracle;
  2. 編輯響應文件;

#

su - oracle

cd /tmp/database

vim /tmp/database/response/db_install.rsp

需要修改的配置有以下内容(参考大神说明 http://blog.csdn.net/jameshadoop/article/details/48086933)

oracle.install.option=INSTALL_DB_SWONLY #选择安装类型:1.只装数据库软件 2.安装数据库软件并建库 3.升级数据库

ORACLE_HOSTNAME=twporatst #指定操作系统主机名,通过hostname命令获得

UNIX_GROUP_NAME=oinstall #指定oracle inventory目录的所有者,通常会是oinstall或者dba

INVENTORY_LOCATION=/u01/app/oraInventory #指定产品清单oracle inventory目录的路径

SELECTED_LANGUAGES=en,zh_CN,zh_TW #指定数据库语言,可以选择多个,用逗号隔开

ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1 #设置ORALCE_HOME的路径

ORACLE_BASE=/u01/app/oracle # 设置ORALCE_BASE的路径

oracle.install.db.InstallEdition=EE #选择Oracle安装数据库软件的版本

oracle.install.db.isCustomInstall=false

oracle.install.db.DBA_GROUP=dba #指定拥有OSDBA、OSOPER权限的用户组,通常会是dba组

oracle.install.db.OPER_GROUP=oinstall

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE #选择数据库的用途,一般用途/事物处理,数据仓库

oracle.install.db.config.starterdb.globalDBName=twporatst #指定GlobalName

oracle.install.db.config.starterdb.SID=twporatst #指定SID

oracle.install.db.config.starterdb.characterSet=ZHS16GBK #选择字符集。不正确的字符集会给数据显示和存储带来麻烦无数。
#通常中文选择的有ZHS16GBK简体中文库,根据公司规定自行选择
oracle.install.db.config.starterdb.password.ALL=123456 #设定所有数据库用户使用同一个密码,其它数据库用户就不用单独设置了。可不設置!

DECLINE_SECURITY_UPDATES=true # False表示不需要设置安全更新,注意,在11.2的静默安装中疑似有一个BUG
# Response File中必须指定为true,否则会提示错误,不管是否正确填写了邮件地址

  1. 輸入命令開始安裝:

#

su - oracle

cd /tmp/database

./runInstaller -silent -ignorePrereq -responseFile /tmp/database/response/db_install.rsp

如出現上面界面,則表示在安裝,如界面上出現有[WARNING]字樣,則表示警告提示,不用理會,程序還在繼續安裝,但如果出現了[FATAL],則安裝程序已經停止了,要排查原因,解決後再繼續執行命令來靜默安裝;

可另開一個終端,以root來登錄,查看運行日誌。

出現如上界面,則表示安裝完成了。

  1. 另開終端以root登入,執行提示的腳本;

#

su -

sh /u01/app/oraInventory/orainstRoot.sh

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

  1. 驗證安裝:

#

su - oracle

sqlplus /nolog

出現如上界面,則安裝完成了。

  1. 配置netca
  2. 首先編輯響應文件netca.rsp:

#

su - oracle

cd /tmp/database

vim /tmp/database/response/netca.rsp

暫不修改該文件,按缺省的執行;

  1. 輸入命令開始安裝:

#

su - oracle

cd ~/bin

./netca -silent -responseFile /tmp/database/response/netca.rsp

輸入命令後會出現錯誤,netca是圖形工具,則需要配置DISPLAY參數,配置好後再運行即可,運行完成後會在目錄/u01/app/oracle/product/11.2.0/network/admin下建立listener.ora和sqlnet.ora;同時查看端口1521,發現都已經啟動了。

現在我們還沒有創建數據庫實例,所以只是啟動了數據庫,而沒能打開數據庫實例;下面繼續創建數據庫實例;

  1. 靜默建立數據庫實例;
  2. 首先編輯響應文件dbca.rsp:

#

su - oracle

cd /tmp/database

vim /tmp/database/response/dbca.rsp

#修改如下參數即可

GDBNAME = "TWPCRD"

SID = "TWPCRD"

DATAFILEDESTINATION =/u02

CHARACTERSET = "ZHS32GB18030"

#

su - oracle

cd ~/bin

./dbca -silent -responseFile /tmp/database/response/dbca.rsp

  1. 按提示輸入SYS的口令和SYSTEM的口令,然後開始安裝;

  1. 建庫完成後查看下實例進程以及偵聽器;

  1. 檢驗安裝;

出現了上面錯誤,將/u01/app/oracle/admin/TWPCRD/pfile下的文件init.ora.916202044754,複製到/u01/app/oracle/product/11.2.0/dbs目錄下,並改名為inittwpcrd.ora

#

su - oracle

cd /u01/app/oracle/admin/TWPCRD/pfile

cp init.ora.916202044754 /u01/app/oracle/product/11.2.0/dbs/inittwpcrd.ora

複製後再啟動數據庫還是出現了錯誤ORA-00845,重啟電腦,釋放內存,然後在執行成功;

  1. 最後的配置
  • 開發端口

#

su - root

vi /etc/sysconfig/iptables

新增(注意,一定要增加到COMMIT前,開發端口22的後面!)

-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT

#

service iptables restart

  • 修改oracle偵聽配置(如進行過netca配置,一般不需要再配置了!)

#

vi ~/network/admin/listener.ora

修改(# Generated by Oracle configuration tools 之后)

# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/networ

k/admin/listener.ora

# Generated by Oracle configuration tools.

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = TWPCRD)

(SID_NAME = TWPCRD)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

(ADDRESS = (PROTOCOL = TCP)(HOST =twporauat)(PORT = 1521))

)

)

ADR_BASE_LISTENER = /u01/app/oracle

  • 修改dbstart

#

su - oracle

vi ~/bin/dbstart

修改(# First argument is used to bring up Oracle Net Listener 之后)

ORACLE_HOME_LISTNER=$ORACLE_HOME

然後運行./dbstart,數據庫能正常啟動;

請同時修改dbshut文件。

  • 設置自啟動

#

su - root

vim /u01/app/oracle/product/11.2.0/install/oratab

修改

TWPCRD:/u01/app/oracle/product/11.2.0:Y

#

chmod 700 /etc/rc.d/rc.local

vi /etc/rc.d/rc.local

新增

su oracle -lc "/u01/app/oracle/product/11.2.0/bin/lsnrctl start"

su oracle -lc "/u01/app/oracle/product/11.2.0/bin/dbstart"

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论