Centos下Oracle11gR2安裝教程與自動(dòng)化配置腳本的方法
系統(tǒng)環(huán)境準(zhǔn)備
開發(fā)組件與依賴庫(kù)安裝

安裝centos時(shí)選擇Server with GUI,右面的可以不勾選,后面統(tǒng)一來裝
配置本地yum源
以上包如果缺乏可配置本地yum源進(jìn)行安裝
sudo mount /dev/cdrom /mnt/ [galen@localhost yum.repos.d]$ sudo vim /etc/yum.repos.d/cdrom.repo [galen@localhost yum.repos.d]$ cat cdrom.repo [c7-media] name=isofile baseurl=file:///mnt enable=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 [galen@localhost yum.repos.d]$ sudo mv CentOS-Base.repo CentOS-Base.repo-bak [galen@localhost yum.repos.d]$ sudo mv CentOS-Media.repo CentOS-Media.repo-bak [galen@localhost yum.repos.d]$ sudo mv cdrom.repo CentOS-Media.repo
配置好yum源后開始安裝依賴庫(kù),如下
yum install glibc glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh compat-libcap1 compat-libstdc++ elfutils-libelf-devel gcc-c++
關(guān)閉防火墻
[galen@localhost ~]$ systemctl stop firewalld.service [galen@localhost ~]$ systemctl disable firewalld.service Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
關(guān)閉selinux
編輯/etc/sysconfig/selinux文件,保存退出后執(zhí)行 setenforce 0命令
vim /etc/sysconfig/selinux SELINUX=disabled #SELINUXTYPE=targeted #注釋掉
創(chuàng)建oracle用戶、修改系統(tǒng)參數(shù)
創(chuàng)oracle建用戶和組
[root@localhost galen]# groupadd oinstall [root@localhost galen]# groupadd dba [root@localhost galen]# useradd -g oinstall -G dba oracle [root@localhost galen]# passwd oracle [root@localhost galen]# id oracle uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)
系統(tǒng)參數(shù)設(shè)置
官方推薦值:
fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 536870912 #推薦超過一半的物理內(nèi)存 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 -a |grep xxx 查看系統(tǒng)各參數(shù),如果大于官方推薦值不修改,如果小于官方推薦值則修改為官方推薦值,寫入/etc/sysctl.conf文件中,使用sysctl -p使其生效,示例如下
[root@localhost etc]# cat sysctl.conf fs.aio-max-nr = 6815744 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
修改資源限制如下
[root@localhost etc]# vim /etc/security/limits.conf oracle soft nproc 2048 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240
添加以下內(nèi)容到/etc/pam.d/login
[root@localhost ~]# vim /etc/pam.d/login session required pam_limits.so
添加以下內(nèi)容到/etc/profile
[root@localhost ~]# 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
保存后執(zhí)行source /etc/profile生效
配置oracle用戶環(huán)境變量,在/home/oracle/.bash_profile中加入如下內(nèi)容
[root@localhost ~]# vim /home/oracle/.bash_profile export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID=orcl export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH export LANG="en_US.UTF-8" export NLS_LANG=american_AMERICA.UTF8 export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
創(chuàng)建oracle安裝目錄
mkdir -p /u01/app/oracle/product/11.2.0/db_1 chown -R oracle:oinstall /u01/app chmod -R 775 /u01/app
安裝oracle 11g
掛載oracle11g安裝包iso(也可以通過其他方式將oracle安裝包傳到主機(jī)),將安裝文件復(fù)制到oracle home目錄下,修改文件權(quán)限給oracle用戶
[root@localhost /]# mkdir /mnt/oracle11g [root@localhost /]# mount /dev/cdrom /mnt/oracle11g/ [root@localhost /]# cp -r /mnt/oracle11g /home/oracle/ # 復(fù)制到oracle home目錄下并修改權(quán)限 [root@localhost oracle]# chown -R oracle:oinstall /home/oracle/oracle11g/ [root@localhost oracle]# chmod -R 775 /home/oracle/oracle11g/
接下來使用oracle用戶登錄桌面

執(zhí)行./runInstaller開始安裝,Centos 7安裝的時(shí)候錯(cuò)誤彈框有時(shí)候會(huì)變成一條豎線,安裝無法進(jìn)行下去,所以運(yùn)行時(shí)執(zhí)行
./runInstaller -jreLoc /etc/alternatives/jre_1.8.0

每項(xiàng)操作如下
[Configure Security Updates] 取消勾選 I wish to receive security updates via My Oracle Support,Next
[Installation Option] Install database software only,Next
[Grid Options] Next
[Product Languages] Next
[Enterprise Edition] Next
[Installation Location] Next
[Create Inventory] Next
[Operating System Groups] Next
[Prerequisite Checks] Next
[Summary] Finish,開始安裝oracle 11g
安裝到84%的時(shí)候可能會(huì)出現(xiàn)ins_ctx.mk相關(guān)的錯(cuò)誤,如下

修改/u01/app/oracle/product/11.2.0/db_1/ctx/lib/ins_ctx.mk文件
# 源文件
ctxhx: $(CTXHXOBJ)
$(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
# 修改為
ctxhx: $(CTXHXOBJ)
-static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/stdc.a
修改/u01/app/oracle/product/11.2.0/db_1/sysman/lib/ins_emagent.mk文件
# 源文件
$(SYSMANBIN)emdctl:
$(MK_EMAGENT_NMECTL)
# 修改為
$(SYSMANBIN)emdctl:
$(MK_EMAGENT_NMECTL) -lnnz11
retry繼續(xù)安裝到94%時(shí),彈出

使用root用戶ssh到主機(jī)到上述目錄分別執(zhí)行orainstRoot.sh與root.sh,執(zhí)行root.sh時(shí)根據(jù)提示填入路徑
/u01/app/oracle/product/11.2.0/dbhome_1/bin,執(zhí)行完成后到UI點(diǎn)擊OK,安裝完成
環(huán)境配置腳本
- 使用root用戶登錄
- 確保系統(tǒng)iso驅(qū)動(dòng)器已連接(/dev/cdrom可mount)
- 復(fù)制腳本到主機(jī)并給予可執(zhí)行權(quán)限,執(zhí)行腳本完成后即可開始安裝oracle 11g
oracle 11g環(huán)境配置腳本
#!/bin/bash
# 配置yum源為本地iso
function set_yum_media() {
cd /etc/yum.repos.d/
for repo_file in `ls /etc/yum.repos.d/ | grep -v Media`
do
new_file=$repo_file.bak
mv $repo_file $new_file
done
mkdir -p /mnt/media-dir
mount /dev/cdrom /mnt/media-dir
sed -i -e 's/baseurl=file:\/\/\/.*/baseurl=file:\/\/\/mnt\/media-dir\//g' -e 's/enabled=0/enabled=1/g' `ls /etc/yum.repos.d/ | grep Media`
cd -
rm -rf /var/run/yum.pid
yum -y update
}
function install_packages() {
for package in glibc glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel pdksh compat-libcap1 compat-libstdc++ elfutils-libelf-devel gcc-c++
do
yum -y install $package
done
}
function create_oracle_user() {
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
# 設(shè)置oracle用戶密碼為oracle
echo oracle|passwd --stdin oracle
}
function set_system_parm() {
sed -i '$a\fs.aio-max-nr = 1048576' /etc/sysctl.conf
sed -i '$a\fs.file-max = 6815744' /etc/sysctl.conf
sed -i '$a\kernel.shmall = 2097152' /etc/sysctl.conf
sed -i '$a\kernel.shmmax = 536870912' /etc/sysctl.conf
sed -i '$a\kernel.shmmni = 4096' /etc/sysctl.conf
sed -i '$a\kernel.sem = 250 32000 100 128' /etc/sysctl.conf
sed -i '$a\net.ipv4.ip_local_port_range = 9000 65500' /etc/sysctl.conf
sed -i '$a\net.core.rmem_default = 262144' /etc/sysctl.conf
sed -i '$a\net.core.rmem_max = 4194304' /etc/sysctl.conf
sed -i '$a\net.core.wmem_default = 262144' /etc/sysctl.conf
sed -i '$a\net.core.wmem_max = 1048586' /etc/sysctl.conf
sysctl -p
}
function set_system_limit_parm() {
sed -i '$a\oracle soft nproc 2048' /etc/security/limits.conf
sed -i '$a\oracle hard nproc 16384' /etc/security/limits.conf
sed -i '$a\oracle soft nofile 1024' /etc/security/limits.conf
sed -i '$a\oracle hard nofile 65536' /etc/security/limits.conf
sed -i '$a\oracle soft stack 10240' /etc/security/limits.conf
}
function set_profile_parm() {
sed -i '$a\session required pam_limits.so' /etc/pam.d/login
sed -i '$a\if [[ $USER = "oracle" ]]; then' /etc/profile
sed -i '$a\ if [[ $SHELL = "/bin/ksh" ]]; then' /etc/profile
sed -i '$a\ ulimit -p 16384' /etc/profile
sed -i '$a\ ulimit -n 65536' /etc/profile
sed -i '$a\ else' /etc/profile
sed -i '$a\ ulimit -u 16384 -n 65536' /etc/profile
sed -i '$a\ fi' /etc/profile
sed -i '$a\fi' /etc/profile
source /etc/profile
}
function set_oracle_env() {
sed -i '$a\export ORACLE_BASE=/u01/app/oracle' /home/oracle/.bash_profile
sed -i '$a\export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1' /home/oracle/.bash_profile
sed -i '$a\export ORACLE_SID=orcl' /home/oracle/.bash_profile
sed -i '$a\export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$ORACLE_HOME/jdk/bin:$PATH' /home/oracle/.bash_profile
sed -i '$a\export LANG="en_US.UTF-8"' /home/oracle/.bash_profile
sed -i '$a\export NLS_LANG=american_AMERICA.UTF8' /home/oracle/.bash_profile
sed -i '$a\export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"' /home/oracle/.bash_profile
source /home/oracle/.bash_profile
}
function create_oracle_dir() {
mkdir -p /u01/app/oracle/product/11.2.0/db_1
chown -R oracle:oinstall /u01/app
chmod -R 775 /u01/app
}
function disable_firewall() {
systemctl stop firewalld.service
systemctl disable firewalld.service
sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
setenforce 0
}
if [ `whoami` == "root" ]
then
set_yum_media
install_packages
create_oracle_user
echo "set system parm"
set_system_parm
echo "set limits"
set_system_limit_parm
echo "set /etc/profile"
set_profile_parm
echo "set oracle env"
set_oracle_env
echo "create oracle dir"
create_oracle_dir
echo "disable firwall"
disable_firewall
fi
到此這篇關(guān)于Centos下Oracle11gR2安裝教程與自動(dòng)化配置腳本的方法的文章就介紹到這了,更多相關(guān)Oracle11gR2安裝與自動(dòng)化配置內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解析如何查看Oracle數(shù)據(jù)庫(kù)中某張表的字段個(gè)數(shù)
本篇文章是對(duì)查看Oracle數(shù)據(jù)庫(kù)中某張表的字段個(gè)數(shù)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
Oracle數(shù)據(jù)庫(kù)中的用戶授權(quán)、取消權(quán)限方式
Oracle數(shù)據(jù)庫(kù)中的用戶授權(quán)分為系統(tǒng)權(quán)限和對(duì)象權(quán)限,系統(tǒng)權(quán)限允許用戶執(zhí)行特定的系統(tǒng)級(jí)操作,如創(chuàng)建表或啟動(dòng)事務(wù),對(duì)象權(quán)限針對(duì)特定數(shù)據(jù)庫(kù)對(duì)象,如表、視圖或過程,包括SELECT、INSERT、UPDATE和DELETE等,角色是一組權(quán)限的集合,可以簡(jiǎn)化權(quán)限管理2024-12-12
Oracle創(chuàng)建自增字段--ORACLE SEQUENCE的簡(jiǎn)單使用介紹
在oracle中sequence就是所謂的序列號(hào),每次取的時(shí)候它會(huì)自動(dòng)增加,一般用在需要按序列號(hào)排序的地方接下來為大家介紹下Oracle創(chuàng)建自增字段方法感興趣的各位可不要錯(cuò)過了哈2013-03-03
Oracle監(jiān)控?cái)?shù)據(jù)庫(kù)性能的方法步驟
監(jiān)控?cái)?shù)據(jù)庫(kù)性能是確保數(shù)據(jù)庫(kù)系統(tǒng)高效運(yùn)行并快速響應(yīng)用戶請(qǐng)求的關(guān)鍵步驟,有效的數(shù)據(jù)庫(kù)性能監(jiān)控可以幫助識(shí)別和解決性能瓶頸,預(yù)測(cè)潛在問題,并優(yōu)化資源使用,以下是詳細(xì)的步驟和代碼示例,指導(dǎo)你如何監(jiān)控?cái)?shù)據(jù)庫(kù)性能,需要的朋友可以參考下2024-08-08
淺析常用數(shù)據(jù)庫(kù)的自增字段創(chuàng)建方法匯總
本篇文章是對(duì)常用數(shù)據(jù)庫(kù)的自增字段創(chuàng)建方法進(jìn)行了全面的匯總介紹,需要的朋友參考下2013-07-07

