Centos史上新版最詳細步驟-Linux無腦命令式oracle11g靜默安裝


1、 關閉selinux

1.1 sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config

1.2 或者手動編輯 vi /etc/selinux/config將SELINUX=enforcing改為SELINUX=disabled

1.3 執行setenforce 0

2、 關閉防火牆firewall

2.1關閉防火牆

systemctl status firewalld.service

systemctl stop firewalld.service

3、安裝依賴包

3.1 檢查依賴包安裝情況

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

3.2 使用yum源安裝所需依賴包

yum -y install binutils compat-libcap1 vsftpd gcc gcc-c++ glibc-devel glibc elfutils-libelf-devel compat-libcap1 libaio-devel ksh libgcc libstdc++ libstdc++-devel libaio libaio-devel make sysstat unixODBC unixODBC-devel

4、修改主機名(可選)

 

設置主機名hostnamectl set-hostname xxxxx

xxxxx為主機名

hostnamectl set-hostname hairundb

5、修改內核參數

# vi /etc/sysctl.conf

在最后添加(注意重復參數,不能小於以下數值)

kernel.shmall = 2097152

kernel.shmmax = 1073741824

fs.aio-max-nr = 1048576

fs.file-max = 6815744

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

6、修改用戶限制文件

# 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

保存退出

 

7、關聯設置

# vi /etc/pam.d/login

在最后添加

session required  /lib64/security/pam_limits.so

session required   pam_limits.so

保存退出

 

8、設置系統環境變量

# 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

保存退出

使環境變量生效

# source /etc/profile

9、創建oracle系統用戶

groupadd oinstall

groupadd dba

useradd -g oinstall -G dba oracle

passwd oracle

 

檢查oracle用戶權限

id oracle

10、創建oracle安裝目錄

mkdir -p /opt/oracle/product/11r2

mkdir /opt/oracle/oradata

mkdir /opt/oracle/inventory

mkdir /opt/oracle/flash_recovery_area

 

11、將oracle用戶加入到sudo組

# vi /etc/sudoers

在root    ALL=(ALL)       ALL這一行下加入

oracle  ALL=(ALL)       ALL

強制保存退出(:wq!)

 

12、修改oracle用戶環境變量

# vi /home/oracle/.bash_profile

在最后添加(ORACLE_SID=XXX按實際情況修改)

export ORACLE_BASE=/opt/oracle;

export ORACLE_HOME=/opt/oracle/product/11r2;

export ORACLE_SID=ora11;

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

if [ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

umask 022

fi

保存退出

 

使環境變量生效

# source /home/oracle/.bash_profile

查看環境變量

# env

13、修改hosts文件

# vi /etc/hosts

在最后添加

主機ip 主機名hairundb

 

14、root用戶登錄,把數據庫安裝包上傳至/opt/oracle目錄下

chown -R oracle:oinstall /opt/oracle

chmod -R 775 /opt/oracle

15、安裝oracle數據庫

切換至oracle用戶

su - oracle

解壓安裝包文件(如果沒有unzip命令,可以先登錄root用戶,使用yum源安裝:yum -y install unzip)

cd /opt/oracle

unzip oracle.zip

編輯oracle數據庫基准配置文件

vi /opt/oracle/database/response/db_install.rsp

輸入(:set number)顯示行號

修改

oracle.install.option=INSTALL_DB_SWONLY   //29行 安裝類型,只安裝數據庫軟件

 

ORACLE_HOSTNAME=hairundb //37行 主機名稱通過hostname查看

 

UNIX_GROUP_NAME=oinstall //42 行 安裝組

 

INVENTORY_LOCATION=/opt/oracle/inventory //49 行INVENTORY目錄

 

SELECTED_LANGUAGES=en,zh_CN //86 行 選擇語言

 

ORACLE_HOME=/opt/oracle/product/11r2 //91 行oracle_home

 

ORACLE_BASE=/opt/oracle //96 行oracle_base

 

oracle.install.db.InstallEdition=EE //107 行oracle版本

 

oracle.install.db.DBA_GROUP=dba //154行dba用戶組

 

oracle.install.db.OPER_GROUP=oinstall //160行oper用戶組

 

oracle.install.db.config.starterdb.type=GENERAL_PURPOSE //189行數據庫類型,一般用途

 

oracle.install.db.config.starterdb.globalDBName=ora11 //194行globalDBName

 

oracle.install.db.config.starterdb.SID=ora11 //199行SID

 

oracle.install.db.config.starterdb.memoryLimit=800  //229行自動管理內存的最小內存(M)

 

oracle.install.db.config.starterdb.password.ALL=oracle //262行所有數據庫用戶使用同一個密碼

 

DECLINE_SECURITY_UPDATES=true //400行設置安全更新

 

編譯安裝oracle

cd /opt/oracle/database/

chmod -R 750 /opt/oracle/database/

./runInstaller -silent -responseFile /opt/oracle/database/response/db_install.rsp -ignorePrereq

 

 

 

 

安裝過程中新開一個root窗口,執行

/opt/oracle/inventory/orainstRoot.sh

/opt/oracle/product/11r2/root.sh

 

執行完成后返回oracle界面按下回車鍵完成安裝

vi /opt/oracle/database/response/netca.rsp

修改

INSTALL_TYPE=""custom""

 

netca /silent /responseFile /opt/oracle/database/response/netca.rsp

 

檢查監聽文件

ll /opt/oracle/product/11r2/network/admin/

 

查看監聽端口(root用戶執行)

netstat -tnulp | grep 1521

vi /opt/oracle/database/response/dbca.rsp

修改

SID = "ora11"  、、170行  SID

 

SYSPASSWORD = "oracle"  //212行

 

SYSTEMPASSWORD = "oracle" //221行

 

SYSMANPASSWORD = "oracle"  //252行

 

DBSNMPPASSWORD = "oracle"  、、262行

 

DATAFILEDESTINATION =/opt/oracle/oradata  //360行

 

RECOVERYAREADESTINATION=/opt/oracle/flash_recovery_area  //370行

 

CHARACTERSET = "ZHS16GBK"  //418行 字符集

 

GDBNAME = "ora11"  //713行 全局名

 

cd /opt/oracle/product/11r2/bin/

dbca -silent -responseFile /opt/oracle/database/response/dbca.rsp

等待建庫完成

 

檢查實例進程

ps -ef | grep ora_ | grep -v grep

 

數據庫實例連接測試

查看監聽狀態

lsnrctl status

使用sqlplus命令測試連接oracle

sqlplus / as sysdba

SQL> conn /as sysdba

 

登錄數據庫

sqlplus /nolog

SQL> conn /as sysdba

SQL> startup

16、修改Oracle數據庫密碼180天限制

SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

SQL> select * from dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

17、修改Oracle數據庫嘗試登錄失敗次數限制(默認10次,更改為無限制)

SQL> ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;

18、修改Oracle數據庫無法導出空表的問題

SQL> alter system set deferred_segment_creation=false;

以root用戶登錄:命令:exit

vi /etc/oratab

ora11:/data/oracle/product/11r2:N中的 N 改成 Y

 

vi /opt/oracle/product/11r2/bin/dbstart

注釋原有的ORACLE_HOME_LISTNER行,新增一行 export ORACLE_HOME_LISTNER=$ORACLE_HOME

 

vi /opt/oracle/product/11r2/bin/dbshut

注釋原有的ORACLE_HOME_LISTNER行,新增一行 export ORACLE_HOME_LISTNER=$ORACLE_HOME

 

編寫自啟動腳本

vi /etc/init.d/oracle

添加

#!/bin/sh

# chkconfig: 345 99 10

##其中chkconfig:345 99 10 是指腳本將為運行級3、4、5啟動Oracle 10g服務,啟動優先級為99,關閉優先級為10

# description: Oracle auto start-stop script.

# /etc/rc.d/init.d/oracle

# description: starts the oracle database

ORA_HOME=/opt/oracle/product/11r2

ORA_OWNER=oracle

case "$1" in

start)

echo -n "Starting Oracle Databases: "

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

date +"! %T %a %D : Starting Oracle Databases as part of system up." >> /var/log/oracle

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >> /var/log/oracle

echo "Done."

echo -n "Starting Oracle Listeners: "

su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >> /var/log/oracle

echo "Done."

su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole" >> /var/log/oracle

echo "Done."

echo ""

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

date +"! %T %a %D : Finished." >> /var/log/oracle

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

touch /var/lock/subsys/oracle

;;

stop)

echo -n "Shutting Down Oracle Listeners: "

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

date +"! %T %a %D : Shutting Down Oracle Databases as part of system down." >> /var/log/oracle

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole" >> /var/log/oracle

echo "Done."

su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >> /var/log/oracle

echo "Done."

rm -f /var/lock/subsys/oracle

echo -n "Shutting Down Oracle Databases: "

su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >> /var/log/oracle

echo "Done."

echo ""

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

date +"! %T %a %D : Finished." >> /var/log/oracle

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

;;

restart)

echo -n "Restarting Oracle Databases: "

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

date +"! %T %a %D : Restarting Oracle Databases as part of system up." >> /var/log/oracle

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut" >> /var/log/oracle

su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart" >> /var/log/oracle

echo "Done."

echo -n "Restarting Oracle Listeners: "

su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl stop" >> /var/log/oracle

su - $ORA_OWNER -c "$ORA_HOME/bin/lsnrctl start" >> /var/log/oracle

echo "Done."

su - $ORA_OWNER -c "$ORA_HOME/bin/emctl stop dbconsole" >> /var/log/oracle

su - $ORA_OWNER -c "$ORA_HOME/bin/emctl start dbconsole" >> /var/log/oracle

echo "Done."

echo ""

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

date +"! %T %a %D : Finished." >> /var/log/oracle

echo "---------------------------------------------------------------------------------" >> /var/log/oracle

touch /var/lock/subsys/oracle

;;

*)

echo "Usage: oracle { start | stop | restart }"

exit 1

esac

exit 0

賦予執行權限

chmod 755 /etc/init.d/oracle

創建軟鏈接

ln -s /etc/init.d/oracle /etc/rc.d/rc3.d/S10oracle

ln -s /etc/init.d/oracle /etc/rc.d/rc4.d/S10oracle

ln -s /etc/init.d/oracle /etc/rc.d/rc5.d/S10oracle

添加自啟動服務

chkconfig --add oracle

chkconfig --level 345 oracle on

chkconfig --list|grep oracle

重啟數據庫

service oracle restart

 

重啟服務器,測試數據庫是否啟動

sqlplus / as sysdba

SQL> conn /as sysdba

SQL> startup

 


免責聲明!

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



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