熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

RedHatas4下ORACLE10g的安裝及配置

2013-11-12 23:40:00  來源: Oracle 


Red Hat as 下ORACLEg的安裝及配置
注意可以從 OTN 下載 Oracle 數據庫 gOracle 提供了一個免費的開發和測試許可
但不提供支持且該許可不允許用於生產目的
資源需要
至少 MB物理內存
倍的交互空間
倍的交互空間
-     需倍的交互空間
至少 MB /tmp 臨時目錄空間
oracle軟件需要 GB 到 GB 磁盤空間
默認數據庫需要 GB
查看系統資源相關語句
cat /etc/issue
uname r
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
grep model name /proc/cpuinfo
free
df h /tmp
df h
安裝前的檢查和准備工作
  禁用selinux和iptables
  chkconfig level pcmcia off
  chkconfig level kudzu off
  chkconfig level isdn off
  chkconfig level sendmail off
  chkconfig level rhnsd off
  chkconfig level cups off
  chkconfig level cupsconfigdaemon off
  chkconfig level cpuspeed off
  chkconfig level gpm off
  chkconfig level apmd off
  chkconfig level lm_sensors off
  chkconfig level mdmonitor off
  chkconfig level nfs off
  chkconfig level nfslock off
  chkconfig level iiim  off
  chkconfig level canna off
  chkconfig level portmap off
 
  rpm Uvh libaioirpm
 
 [linux as ]
 chkconfig level rhnsd off
 chkconfig level isdn off
 chkconfig level avahidaemon off
 chkconfig level avahidnsconfd off
 chkconfig level bluetooth off
 chkconfig level cpuspeed off
 chkconfig level hidd off
 chkconfig level iptables off
 chkconfig level mcstrans off
 chkconfig level pcscd off
 chkconfig level netfs  off
 chkconfig level yumupdatesd  off
 chkconfig level restorecond   off
 chkconfig level setroubleshoot   off
 chkconfig level yumupdatesd   off
 chkconfig level libvirtd off
 chkconfig level xendomains off
 chkconfig level xend off
 chkconfig level iptables off
 chkconfig level sendmail off
 chkconfig level cups off

 install the following packages:
# From RedHat AS Disk
cd /media/cdrom/Server
rpm Uvh setarch*
rpm Uvh make*
rpm Uvh glibc*
rpm Uvh libaio*
cd /
eject
# From RedHat AS Disk
cd /media/cdrom/Server
rpm Uvh compatlibstdc++*
rpm Uvh compatgcc*
rpm Uvh compatgccc++*
rpm Uvh gcc*
rpm Uvh libXp* (一定要裝!)
cd /
eject
 
# From RedHat AS Disk
cd /media/cdrom/Server
rpm Uvh openmotif*
rpm Uvh compatdb*
cd /
eject
vi /etc/redhatrelease
replacing the current release information:
 Red Hat Enterprise Linux Server release (Tikanga)
 with the following: redhat
安裝完成後復原

配置XDMCP服務
)        對於XDM服務配置
修改服務運行級別為
打開/etc/inittab文件配置服務初始化運行級別為如下
id::initdefault:
)        配置XDMCP服務自啟動
For GDM:
打開/etc/gdm/nf文件查找[xdmcp]選項並設置Enable值為如下
[xdmcp]
Enable=
For KDM:
打開/usr/share/config/kdm/Xaccess文件並刪除下述內容前面的#
修改前
#* #any host can get a login window ==>
修改後
* #any host can get a login window
打開/usr/share/config/kdm/kdmrc文件查找[xdmcp]選項並設置Enable值為true如下
[xdmcp]
Enable=true
)配置防火牆增加端口(/UDP)端口到防火牆
)至此已經完成XDMCP服務的配置之後重器服務器啟動XDMCP服務
)下載並安裝客戶端(Xmanager xx)並在客戶機上運行Xmanager輸入所需要管理的服務器的IP地址用戶名及密碼即可對服務器進行遠程管理


vnc server配置
使用root用戶啟動系統的vncserver服務
#service vncserver start
然後切換到登陸用戶下面我這裡假設要使用oracle系統帳戶進行遠程登陸
#su oracle
使用oracle用戶輸入以下命令
$vncserver
如果是第一次運行則系統會出現提示信息提示你輸入密碼這是通過終端進行登陸時需要輸入的
另外還有一個數字信息這個也是需要在終端登陸時輸入的即冒號後面跟著的一個數字  等等需要記住
在windows客戶端使用vncviewer輸入如下xxxxxxxxxxxx: 或者xxxxxxxxxxxx:後面的數字需要和服務器端的對應才行xxx是你服務器的ip地址了
[linux as ]
 軟件要求
其他所需程序包的版本(或更高版本)
        gcc
        make
        binutils
        openmotif
        glibc
要查看系統上安裝了這些程序包的哪些版本運行以下命令
rpm q gcc make binutils openmotif glibc setarch
p__linuxzip 在運行 runInstaller 之前打
rpm ivh compatoraclerhelirpm     (p__linuxzip)
 (不打PATH也可以)
安裝 libaioirpm 和libaiodevelirpm
  在Red Hat Enterprise Linux 介質的第三張 CD
  以 root 用戶身份運行以下命令
rpm ivh /mnt/cdrom/RedHat/RPMS/ libaioirpm

創建數據庫安裝的准備工作:
創建user/group
groupadd dba
groupadd oinstall
useradd oracle g oinstall G dba
passwd oracle
如果nobody用戶不存在(id nobody命令查看)則創建
useradd nobody
建立oracle安裝文件夾(sample)
mkdir p /opt/oracle/ /opt/oracle/oradata /opt/oracle/archivelog
chown R oracleoinstall  /opt/oracle
chmod R /opt/oracle
配置環境變量
要使用 Oracle 產品應該或必須設置幾個環境變量
如果您在同一服務器上安裝了多個 Oracle 產品或數據庫則 ORACLE_HOMEORACLE_SID 和 PATH 變量可能會更改
ORACLE_BASE 變量不應更改並可以在需要時在您的登錄配置文件中設置它Oracle 提供了一個稱作 oraenv 的實用程序來設置其他變量
對於數據庫服務器建議設置以下環境變量
使用root用戶:
 
vi /home/oracle/bash_profile
以下是配置文件的內容
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/
ORACLE_SID=ge
PATH=$ORACLE_HOME/bin:$ORACLE_HOME/OPatch:$PATH     
TNS_ADMIN=$ORACLE_HOME/network/admin
NLS_LANG=AMERICAN_AMERICAZHSGBK
LANG=AMERICAN_AMERICAZHSGBK
export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID  TNS_ADMIN NLS_LANG LANG
   
設置系統參數
 Oracle 數據庫 g 需要以下所示的內核參數設置
 一般情況下可以設置最大共享內存為物理內存的一半如果物理內存是 G則可以設置最大共享內存為
如上如物理內存是 G則可以設置最大共享內存為 * * = 以此類推在redhat上最大共享內存不建議超過
  ***=
切換到root用戶:
su root
 修改vi /etc/nf 添加
kernelshmmax =
kernelshmmni =
kernelshmall =
kernelsem =
fsfilemax =
netipvip_local_port_range =
rermem_default=
rermem_max=
rewmem_default=
rewmem_max=
修改後運行/sbin/sysctl p命令使得內核改變立即生效

B) 設置oracle對文件的要求
編輯文件vi /etc/security/nf 加入以下語句
oracle           soft    nproc          
oracle           hard    nproc          
oracle           soft    nofile         
oracle           hard    nofile         
編輯文件vi /etc/pamd/login 加入以下語句(可能應該加在最後一條規則之前):
session    required     /lib/security/pam_limitsso
設置oraInstloc文件
[root@enterprice ~]#vi /etc/oraInstloc 
inventory_loc=/opt/oracle/oraInventory
inst_group=oinstall
[root@enterprice ~]#chown oracleoinstall /etc/oraInstloc
確保/etc/oraInstloc中包含上面的信息且Oracle包含訪問權限
解壓縮OracleG的安裝文件
 使用Oracle用戶登陸:
su oracle
在/home/oracle 上傳和解壓縮_database_linuxzip:
unzip _database_linux


開始安裝oracle

L i n u x 命令行環境下安裝(也可以在圖形界面下安裝)
使用Oracle用戶登陸:
su oracle
根據希望安裝的數據庫版本類型選擇Silent安裝模式的response_file文件的類似比如enterpriserspstandardrsp還是customrsp
這裡選擇enterpisersp類型安裝盤中的database/response目錄下對應的response文件拷貝出來根據文件裡面的提示對輸入值進行修改
比如這個例子中對如下的參數進行設置
UNIX_GROUP_NAME=oinstall
FROM_LOCATION=/home/oracle/database/stage/productsxml
ORACLE_BASE=/opt/oracle
ORACLE_HOME=/opt/oracle/
ORACLE_HOME_NAME=OraDbHome
SHOW_INSTALL_PROGRESS_PAGE= true
SHOW_END_OF_INSTALL_MSGS= true
COMPONENT_LANGUAGES={zh_CN}
s_nameForDBAGrp= dba
s_nameForOPERGrp=dba
INSTALL_TYPE=EE
n_configurationOption=
RESTART_SYSTEM=false
RESTART_REMOTE_SYSTEM=false
注意所有的字符串需要放在雙引號中注意大小寫數字和布爾變量直接寫就可以
由於這裡沒有選擇建立數據庫而只安裝軟件因此沒有設置數據庫相關的配置參數
[oracle@enterprice data]$ chmod enterprisersp
面可以開始SILENT安裝了
注意響應文件需要使用絕對路徑
cd /home/oracle/database
[oracle@enterprice database]$ /runInstaller silent responseFile /home/oracle/enterprisersp
用root執行如下腳本
/opt/oracle//oraInventory/orainstRootsh
/opt/oracle//rootsh
不過這裡Oracle存在一個bug在rootsh腳本中自動將OUI_SILENT參數設置為TRUE而後的檢查中
如果發現這個值為TRUE那麼這個腳本運行會自動退出了這裡需要手工將其修改為false
最後使用root執行一下$ORACLE_HOME/rootsh腳本就可以了
根據提示按 Enter 就可以了
這樣就在字符下成功安裝了
通過SILENT模式安裝數據庫之後下面繼續使用SILENT模式進行數據庫的建立
仍然是拷貝安裝目錄下的/home/oracle/database/response/dbcarsp到安裝目錄並進行編譯
根據數據庫建立方式的不同編輯不同的數據庫庫選項
比如在本次安裝過程中設置了下列參數
RESPONSEFILE_VERSION =
OPERATION_TYPE = createDatabase
GDBNAME = ge
SID = ge
TEMPLATENAME = New_Databasedbt
SYSPASSWORD = georacle
SYSTEMPASSWORD = georacle
DATAFILEDESTINATION =/opt/oracle/oradata/
RECOVERYAREADESTINATION=/opt/oracle/flash_recovery_area
STORAGETYPE=FS
CHARACTERSET = ZHSGBK
MEMORYPERCENTAGE =
SCRIPTDESTINATION =/opt/oracle/admin/orag/scripts
EMCONFIGURATION=LOCAL
SYSMANPASSWORD = georacle
DBSNMPPASSWORD = georacle
其中最後項不是必須的這個的目的是在建立數據庫的同時生成腳本
下面就可以開始SILENT模式的數據庫創建了
[oracle@enterprice database]$ dbca silent responseFile /home/oracle/dbcarsp
用root執行如下腳本
/opt/oracle//oraInventory/orainstRootsh
最後可以利用netca來SILENT方式設置網絡部分同樣的方法設置netcarsp
RESPONSEFILE_VERSION=
CREATE_TYPE= CUSTOM
SHOW_GUI=false
LOG_FILE=/opt/oracle//network/tools/log/netcalog
INSTALLED_COMPONENTS={servernetjavavm}
INSTALL_TYPE=typical
LISTENER_NUMBER=
LISTENER_NAMES={LISTENER}
LISTENER_PROTOCOLS={TCP;}
LISTENER_START=LISTENER
NAMING_METHODS={TNSNAMESONAMESHOSTNAME}
設置的參數包括上面的部分然後就可以使用netca啟動silent配置
[oracle@enterprice database]$ netca /silent /responsefile  /home/oracle/netcarsp

靜默卸載Oracle數據庫ge
dbca silent deleteDatabase sourceDB    <source database sid> [sysDBAUserName     <user name  with SYSDBA privileges> sysDBAPassword <password for sysDBAUserName user name>]
例如dbca silent deleteDatabase sourceDB ge sysDBAUserName sys sysDBAPassword georacle
靜默卸載Oracle數據庫軟件
 
執行以下命令靜默卸載Oracle數據庫軟件
$/runInstaller silent deinstall removeallfiles removeAllPatches REMOVE_HOMES={$ORACLE_HOME} responseFile ~/enterprisersp

(一)圖形界面開始安裝
以oracle用戶登錄XWINDOWS系統進行Oracle的安裝(遠程安裝需打開XDM)
[ linux }
export DISPLAY=
cd /opt/database (或者你解壓縮安裝程序包的目錄)
/runInstaller 或者/runInstaller   ignoreSysPrereqs
過一會兒就會出現Oracle的X安裝界面
注意
選擇advance install
數據庫home設置為/opt/oracle/
數據庫全局名稱設置為ge
數據庫字符集選Simplified Chinese ZHSGBK
其他用默認設置!
注意安裝過程中會提示以root用戶登陸執行一些腳本 執行後再按ok按鈕繼續安裝


登陸並啟動數據庫的操作
su oracle
[oracle@oracle oracle]$ lsnrctl start
[oracle@oracle oracle]$ sqlplus /nolog
SQL*Plus: Release Production on Sat Mar ::
Copyright (c) Oracle Corporation All rights reserved
SQL> connect / as sysdba
Connected
SQL> startup; 啟動數據庫
ORACLE instance started
Total System Global Area bytes
Fixed Size bytes
Variable Size bytes
Database Buffers bytes
Redo Buffers bytes
Database mounted
Database opened
SQL> shutdown immediate ;關閉數據庫 (OR dbshut command)
Database closed
Database dismounted
ORACLE instance shut down
dbstart腳本修改
數據庫創建完成後修改vi /etc/oratab把ge:/opt/oracle/:N那一行最後的N改成Y
修改vi /opt/oracle//bin/dbstart中ORACLE_HOME_LISTNER=/opt/oracle/
然後執行dbstart啟動數據庫數據庫可能無法啟動報告Cant find init file …的錯誤需要復制一個初始化文件:
cp /opt/oracle/admin/ge/pfile/initora* /opt/oracle//dbs/initgeora
重新執行dbstart就可以了
可以執行dbshut 停止ORACLE
vi /etc/rclocal 加入下面一行 起動ORACLE ON system boot
su oracle c lsnrctl start
su oracle c dbstart
為了root方便管理可以寫一個啟動腳本
vi /etc/initd/orag
 
#!/bin/bash
#
# chkconfig:
# description: starts the oracle listener and instance
status() {
    pid=`ps ef | grep ora_pmon | grep v grep | awk {print $}`
    if [ X$pid = X ]
    then
        echo oracleg is not running
        exit
    else
        echo oracleg is running
        exit
    fi
}
case $ in
    start)
        #startup the listener and instance
        echo n oracle begin to startup:
        su oracle c lsnrctl start
        su oracle c dbstart
        echo oracleg started
        ;;
    stop)
        # stop listener apache and database
        echo n oracle begin to shutdown:
        su oracle c lsnrctl stop
        su oracle c dbshut
        echo oracleg shutdowned
        ;;
    reload|restart)
        $ stop
        $ start
        ;;
    status)
        status
        ;;
     *)
        echo Usage: orag [start|stop|reload|restart]
        exit
esac
exit
存為orag後然後
chmod a+x /etc/initd/orag
即可在以後以root身份運行/etc/rcd/initd/orag start |stop 來管oracle的啟動和停止了
如果要將這個腳本加入到系統中使其可開機運行那麼要運行以下命令
chkconfig level orag on
 
關於數據庫刪除重新安裝的問題:
去除 /usr/local/bin 目錄 下的 coraenv dbhome oraenv
去除 /etc/oratab /etc/oracle
去掉安裝 目錄 /opt/oracle 目錄下的 product admin oradata oralnventor 目錄
# userdel r oracle
# groupdel dba oinstall
rm rf /tmp/ora*
rm rf /opt/oracle/*
rm rf /opt/ORCLfmap
rm f /etc/ora*
rm f /usr/local/bin/oraenv
rm f /usr/local/bin/coraenv
rm f /usr/local/bin/dbhome

修改Oracleg數據庫字符集
SQL> connect sys/oracle as sysdba
SQL> startup mount
SQL> alter session set sql_trace=true;
Session altered
SQL> alter system enable restricted session;
System altered
SQL> alter system set job_queue_processes=;
System altered
SQL> alter system set aq_tm_processes=;
System altered
SQL> alter database open;
Database altered
SQL> set linesize ;
SQL> alter database character set zhsgbk;
alter database character set zhsgbk
*
ERROR at line :
ORA: new character set must be a superset of old character set
SQL> ALTER DATABASE character set INTERNAL_USE zhsgbk; # 使用INTERNAL_USE可以跳過超集的檢查ALTER DATABASE character set INTERNAL_USE
Database altered
SQL> shutdown immediate;
Database closed
Database dismounted
ORACLE instance shut down
SQL> STARTUP
SQL> select namevalue$ from props$ where name like %NLS%;
NLS_CHARACTERSET
ZHSGBK
oracle database異機備份腳本
su oracle
mkdir /home/oracle/dbbackup
()vi /home/oracle/dbbackup/bachupdbsh
#!/bin/bash
#As oracle user chmod /home/oracle/dbbackup/DBbackuprecoversh
#crontab e * * * /home/oracle/dbbackup/DBbackuprecoversh >/dev/null >&
#@tip: modify local databases home directory
#@tip <ip> is remote database ip address
export ORACLE_HOME=/opt/oracle/
export PATH=$ORACLE_HOME/bin:$PATH:
export NLS_LANG=AMERICAN_AMERICAzhsgbk
export LANG=AMERICAN_AMERICAZHSGBK
export ORACLE_SID=ge
dmpfile=gedb_`date +%F`dmp
logfile=gedb_`date +%F`log
restoredblog=restoredb_`date +%F`log
WORK_DIR=~/dbbackup
cd $WORK_DIR
exp USERID=gedb/gegedb@<ip>/ge file=$dmpfile log=$logfile  owner=gedb
if [ eq $? ]
     then
         sqlplus / as sysdba @usersql 
         imp USERID=gedb/gegedb file=$dmpfile log=/$restoredblog fromuser=gedb  touser=gedb
         find  /*dmp type f mtime + exec rm {} \;
         find  /*log type f mtime + exec rm {} \;
         exit
      else
         echo backup errorquit! > $logfile
         exit
fi
 
#@tip ip地址修改為要備份的oracle的主機地址
exp USERID=gedb/gedb@/ge file=$dmpfile log=$logfile  owner=gedb direct=y
  ()更改腳本權限
     chown oracleoinstall backupdbsh
     chmod backupdbsh   
    
 
 ()以oracle user role
    crontab e
    * * * /home/oracle/dbbackup/backupdbsh
restore oracle backup
() 先創建gedb用戶和授權
  su oracle
  sqlplus / as sysdba @createUsersql 
()imp USERID=gedb/gegedb file=dmp fromuser=gedb touser=gedb
  如果要第二次IMP操作要先刪除用戶gedb再新建用戶gedb這樣imp才不會出錯
  DROP USER gedb CASCADE;
  CREATE USER gedb  IDENTIFIED BY gegedb;
  GRANT UNLIMITED TABLESPACE TO gedb;
  GRANT CONNECT TO gedb;
  GRANT RESOURCE TO gedb;
  GRANT DBA TO gedb;
 
oracle優化
SQL> alter system set _kgl_large_heap_warning_threshold= scope=spfile ; (ONLY FOR
SQL> shutdown immediate
SQL> startup


  
BUG FIX
()g EM亂碼之快速解決
[oracle@danaly ~]$ cd $ORACLE_HOME/jdk/jre/lib
[oracle@danaly lib]$ ls font*zh_CN*
fontpropertieszh_CNRedhat fontpropertieszh_CNRedhat
fontpropertieszh_CNSun fontpropertieszh_CN_UTFSun
[oracle@danaly lib]$ cd $ORACLE_HOME/jre//lib/
[oracle@danaly lib]$ ls font*zh_CN*
fontpropertieszh_CNRedhat fontpropertieszh_CNRedhat
fontpropertieszh_CNSun fontpropertieszh_CN_UTFSun
我們只要用合適的中文字符集文件替換缺省文件即可我選擇使用fontpropertieszh_CNRedhat來替換缺省字體定義文件:
[oracle@danaly lib]$ cp fontpropertieszh_CNRedhat fontproperties
替換之後需要清理一下Cache重啟EM即可
Cache路徑通常位於:
$ORACLE_HOME/ocj/jee/ocj_applications/applications/em/em/cabo/images/cache/zhs
清除所有gif文件即可然後重新啟動EM
()上一個嚴重的BUG
環境 AIX
但據ORACLE解釋在任何操作系統版本都有此問題
現象監聽器啟動後隔一段時間(長短不定)就會出現無法
連接 若是用版本的SQLPLUS則會出現 NO LISTENER
版本的SQLPLUS則會出現沒反應HANG住
原因 版本上的一個BUG其會自動創建一個子
監聽器當出現此情況時監聽器將會掛起
/opt/oracle/product/g/network/log/listenerlog有如下語句:
WARNING: Subscription for node down event still pending
檢查是否真因為此BUG造成此現象
$ ps ef | grep tnslsnr
orag Sep ? : /u/GHOME/DBHOME/bin/tnslsnr sales inherit
orag :: ? : /u/GHOME/DBHOME/bin/tnslsnr sales –inherit
正常情況只有一個監聽器而此BUG則會出現兩個監聽器
解決方法
打補丁
或者在listenerora 文件裡加入
SUBSCRIBE_FOR_NODE_DOWN_EVENT_<listener_name>=OFF
其中<listener_name> 是數據庫的監聽器的名稱
默認情況下監聽器名為LISTENER 則語句就是
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF
同時
cd $ORACLE_HOME/opmn/conf
mv nfig nfigorig
重啟監聽程序:
lsnrctl stop
lncrctl start


From:http://tw.wingwit.com/Article/program/Oracle/201311/11191.html
  • 上一篇文章: 没有了

  • 下一篇文章:
  • Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.