1. 程式人生 > >linux 靜默安裝Oracle(Centos)

linux 靜默安裝Oracle(Centos)

提示都是有問題時看。真正開始從 第一步 那裡開始,所以剛開始可以跳過直接去第一步 51行
操作過程有疑惑的時候就看這提示
提示1/home/oracle/------這個指你的oracle路徑,所以這個根據你安裝在哪裡而進行改動。
提示2 yum -y install------這個會報錯不用管,繼續執行下面的語句
提示3 echo "192.168.99.30    testoracle" >> /etc/hosts  ----testoracle這個就是你伺服器名 就是你建立linux系統時設定的名稱與/etc/sysconfig/network中的hostname一致
提示4 安裝過程中是不會出現日誌的。安裝日誌在他給出的那個日誌檔案 再開啟一個操作視窗 輸入 tail -300f 那個他給出的日誌檔案路徑 就可以看到拉 安裝完成的時候 介面會出現中文一段提示 說明安裝成功
提示5 怎麼看一個檔案的時候顯示行號以及怎麼根據行號搜尋 vi xxxx檔案 然後執行esc : 輸入set nu 回車 然後在esc :在輸入行號 回車就可以定位在對應行。
提示6 一定要按行號搜尋去改 放心都是對應的  
提示7 安裝監聽時 只能開一個視窗,否則報錯。
提示8 安裝完成後 sqlplus /nolog 會沒有效果 這時輸入export PATH=$ORACLE_HOME/bin:$PATH(這是個命令) 如果有效。就去/home/oracle/下 vi .bash_profile 在最後追加export PATH=$ORACLE_HOME/bin:$PATH 
然後 source .bash_profile  就搞定
提示9 這種安裝下我們設定的字符集是沒有效的 (
SELECT USERENV('LANGUAGE') FROM DUAL;這句sql可以檢視現在使用的字符集) 這時如果你需要改的話。還是改吧否則以後做資料遷移會亂碼。操作如下
shutdown immediate;
startup mount
alter system enable restricted session;
alter system set job_queue_processes=0;
alter system set aq_tm_processes=0;
alter database open;
alter database character set INTERNAL_USE ZHS16GBK
如果你資料庫已有資料,記得一定要先把資料清空(包括索引什麼的一切)
提示10 這樣安裝完了 你會發現你只有自己本機上能登 其他人都登不了 這是你應該這樣
設定一個靜態監聽 當然也有動態 動態自己百度(應該也很少資料),但是一般靜態的足夠
  SID_LIST_LISTENER=
    (SID_LIST=
        (SID_DESC=
               (GLOBAL_DBNAME=orcl)
               (SID_NAME=orcl)
        )
    )
orcl時指你的伺服器名以及例項名 下面步驟中如果你沒出錯肯定時這個不要改動
 
提示11 如果做錯了也不要慌 你不是梅西  再說梅西也不慌了
解除安裝:
停資料庫
停監聽
root使用者刪除安裝目錄
rm -rf /etc/oraInst.loc
rm -rf  /etc/oratab
rm -rf   /usr/local/bin/coraenv  
rm -rf  /usr/local/bin/oraenv
userdel -r oracle
groupdel oinstall
groupdel  dba
chkconfig --del dbora

提示12 如果安裝資料包那裡出錯,百度吧
因為每次每個碰到的問題都有可能不一樣 時間太長的化建議重新安裝linux重來。
推薦安裝選擇介面的那種

第一步、設定selinux引數
vi /etc/sysconfig/selinux
 SELINUX=disabled
第二步、關閉iptables、Postfix不必要的系統服務
chkconfig iptables off
chkconfig postfix off
第三步、重啟系統
reboot  或者 shutdown -r -t 0 0
23.安裝Mysql資料庫
第一步、配置yum源,安裝缺少的服務包
 
mount /dev/cdrom /mnt
mkdir /etc/yum.repos.d/oldrepo
mv /etc/yum.repos.d/CentOS-* /etc/yum.repos.d/oldrepo/
vi /etc/yum.repos.d/local.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0
yum -y install perl
 

#1 先解壓rpm包   rpm -ivh 包名 --nodeps

加個提示(如果你yum執行這句沒問題下面那句不用執行。有問題的話,不用管,執行下一句 帶#號的都不用執行)
使用yum安裝資料包
yum -y install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc.i686 glibc-common glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make numactl-devel sysstat unixODBC unixODBC-devel libXext.i686

rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel gcc- gcc-c++ libaio-devel libaio libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel ksh readline readline-devel rlwrap | grep 'not installed' | awk  '{print "yum install -y " $2 }' | bash

修改hostname和hosts
特別注意 /etc/sysconfig/network中的hostname要與/etc/hosts中的一致 去看下就好,改為對應的就好
#sed -i '/^HOSTNAME=/s/localhost.localdomain/db1/g' /etc/sysconfig/network

#192.168.99.30  為你ip testoracle為你linux伺服器名,記得改為你對應的。這是我的

echo "192.168.99.30    testoracle" >> /etc/hosts

#關閉selinux和iptables
#sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config      
#setenforce 0
#/etc/init.d/iptables stop && chkconfig iptables off

建立使用者和組
#這是個命令直接複製貼上
groupadd oinstall
groupadd dba -g oinstall -G dba
echo 'oracle' | passwd  --stdin oracle    

修改核心引數
#這是個命令直接複製貼上
echo "
fs.file-max = 6815744 
kernel.shmmni = 4096 
kernel.sem = 250 32000 100 128 
net.core.rmem_default=262144 
net.core.wmem_default=262144 
net.core.rmem_max=4194304 
net.core.wmem_max=1048576 
net.ipv4.ip_local_port_range = 9000 65500
fs.aio-max-nr = 1048576
">>  /etc/sysctl.conf
#這是個命令直接複製貼上
sysctl -p

修改系統資源限制
#這是個命令直接複製貼上
echo "
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack  10240
">> /etc/security/limits.conf
#這是個命令直接複製貼上
if [[ `grep "session required /lib64/security/pam_limits.so" /etc/pam.d/login|wc -l` -lt 1 ]]
then
echo "session required /lib64/security/pam_limits.so" >> /etc/pam.d/login
fi
#這是個命令直接複製貼上
echo "
#oracle 
if [ $USER = "oracle" ]; then
   if [ $SHELL = "/bin/ksh" ]; then
   ulimit -p 16384
   ulimit -n 65536
   ulimit -u 16384 -n 65536
fi
fi
">> /etc/profile
#這是個命令直接複製貼上
source /etc/profile

建立安裝目錄及設定許可權
mkdir -pv /home/oracle/data/app/ 
mkdir -pv /home/oracle/data/oradata/ 
chmod 755 /home/oracle/data 
chmod 775 /home/oracle/data/app/ 
chown oracle.oinstall -R /home/oracle/data

建立一個配置檔案,包含oraInventory目錄位置,最好放在ORACLE_BASE下面
#這是個命令直接複製貼上
echo "# chown digoal:users /etc/oraInst.loc 
inventory_loc=/home/oracle/data/oracle/product/oraInventory
inst_group=users" >> /etc/oraInst.loc

設定oracle環境變數
su - oracle
#這是個命令直接複製貼上
echo "
unset USERNAME
export ORACLE_BASE=/home/oracle/data
export ORACLE_HOME=/home/oracle/data/app/product/11.2.0/dbhome_1
export PATH=/home/oracle/data/app/product/11.2.0/dbhome_1/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_SID=orcl
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export LD_LIBRARY_PATH=/home/oracle/data/app/product/11.2.0/dbhome_1/lib:/usr/lib
#export ORACLE_HOME_LISTNER=$ORACLE_HOME   
# Oracle安裝完成後再開啟Listener
umask 022
#下面這兩行是解決Linux中Oracle的sqlplus下退格鍵和Del鍵無效的解決方法
#alias sqlplus='rlwrap sqlplus'
#alias rman='rlwrap rman'" >> /home/oracle/.bash_profile

source /home/oracle/.bash_profile           

下載並解壓:我個人認為還是用oracle賬號操作,更方便一點
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
unzip linux.x64_11gR2_database_1of2.zip 
unzip linux.x64_11gR2_database_2of2.zip
mkdir -pv /home/oracle/data/etc
           
cp /home/oracle/database/response/* /home/oracle/data/etc 
          
設定響應檔案許可權 
chmod   /home/oracle/data/etc/*.rsp

#內容中出現的路徑記得改為自己的

vi /home/oracle/data/etc/db_install.rsp
oracle.install.option=INSTALL_DB_SWONLY                //29 行 安裝型別
ORACLE_HOSTNAME=testoracle                                 //37 行 主機名稱
UNIX_GROUP_NAME=oinstall                            //42 行 安裝組
#INVENTORY_LOCATION=/home/oracle/data/oracle/oraInventory         //47 行 INVENTORY目錄
SELECTED_LANGUAGES=en,zh_CN                         //78 行 選擇語言
ORACLE_HOME=/home/oracle/data/app/product/11.2.0/dbhome_1          //83 行
ORACLE_BASE=/home/oracle/data                                      //88 行 oracle_base
oracle.install.db.InstallEdition=EE                 //99 行 oracle版本
oracle.install.db.isCustomInstall=true                 //108行 自定義安裝
oracle.install.db.DBA_GROUP=dba                     //142行 dba使用者組
oracle.install.db.OPER_GROUP=oinstall                 //147行 oper使用者組
oracle.install.db.config.starterdb.type=GENERAL_PURPOSE        //160行 資料庫型別
oracle.install.db.config.starterdb.globalDBName=orcl         //165行 globalDBName
oracle.install.db.config.starterdb.SID=orcl                  //170行 SID
oracle.install.db.config.starterdb.characterSet=ZHS16GBK     //184行
oracle.install.db.config.starterdb.memoryLimit=512             //200行 自動管理記憶體的最小記憶體(M)
oracle.install.db.config.starterdb.password.ALL=password     //233行 設定所有資料庫使用者使用同一個密碼
DECLINE_SECURITY_UPDATES=true                                 //385行 設定安全更新

進行靜默安裝Oracle軟體
cd /home/oracle/database
#這是個命令直接複製貼上
./runInstaller -silent -force  -ignorePrereq -responseFile /home/oracle/data/etc/db_install.rsp

-silent指的是靜默安裝,-ignorePrereq忽略prerequisite的檢查結果,showProgress顯示進度,responseFile是種子檔案

檢視安裝日誌資訊瞭解安裝進度  在/tmp下的安裝日誌,不出現[FALTE]就行
tail -100f installActions*.log
出現類似如下提示表示安裝完成:
#-------------------------------------------------------------------
...
As a root user, execute the following script(s):
 #1. /home/oracle/oraInventory/orainstRoot.sh
 2. /home/oracle/data/product/11.2.0/dbhome_1/root.sh    

#-------------------------------------------------------------------
 
使用root使用者執行上面兩個指令碼

配置靜默網路
#這是個命令直接複製貼上
$ORACLE_HOME/bin/netca /silent /responsefile /home/oracle/data/etc/netca.rsp       #$ORACLE_HOME/data/etc/netca.rsp 
這個完成後,應該會開啟網路監聽,1521埠應該會開啟了

靜默設定資料庫
vi /home/oracle/data/etc/dbca.rsp

加上密碼後,安裝過程不用輸入密碼
GDBNAME="orcl"                                     //78 行 全域性資料庫的名字
#orcl.oracle.hans.com
SID="orcl"                                         //149行 SID
CHARACTERSET=""AMERICAN_AMERICA.ZHS16GBK         //415行 編碼字符集
NATIONALCHARACTERSET=" ZHS16GBK "                 //425行 編碼
#memoryPercentage = "60"                           //510行
#emConfiguration = "LOCAL"                       //836行
sysPassword = "password"                        //190行
systemPassword = "password"                     //200行
dbsnmpPassword = "password"                     //241行
sysmanPassword = "password"                     //846行

執行下面這條命令,靜默安裝
$ORACLE_HOME/bin/dbca -silent -responseFile  /home/oracle/data/etc/dbca.rsp
這個要是設定正常的話,會有進度出現並提示完成。有問題會清屏


#這個可裝可不裝和資料庫沒什麼關係,這是一個工具,因為oracle登入後輸入mysql命令時後退鍵和回車鍵沒有,這個工具能解決這個問題。不用這個工具的話 需要按ctrl+後退鍵或回車鍵
安裝rlwrap
yum install libtermcap-devel readline readline-devel
tar -xf rlwrap-0.37.tar.gz
cd rlwrap-0.37
./configure
make && make install
echo "
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'">> /home/oracle/.bash_profile

source /home/oracle/.bash_profile
注:
oracle不能跨系統,如果一定要在高版本系統上安低版本oracle就要改配置,不過核心肯定會報錯,過高,直接跳過也能用,就是審計日誌會有error

10g 是rhel5
11g是6
12c是7
:
Oracle只支援rhel和oraclelinux,
:
centos得改主機屬性那個配置
需要oracel安裝檔案自己去官網下吧太大我也不好發你。