Linux下oracle10g安裝配置說明(ZT)

tolywang發表於2007-03-23
Linux 下ORACLE10g的安裝及配置:
注意:可以從 OTN 下載 Oracle 資料庫 10g。Oracle 提供了一個免費的開發和測試許可。
但不提供支援,且該許可不允許用於生產目的。
資源需要:
至少1024 MB實體記憶體
1024-2048 需1.5倍的互動空間
2048-8192 需1倍的互動空間
8192- 需0.75倍的互動空間
至少400 MB /tmp 臨時目錄空間
oracle軟體需要1.5 GB 到 3.5 GB 磁碟空間
預設資料庫需要1.2 GB

檢視系統資源相關語句:
cat /etc/issue
uname -r
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
grep "model name" /proc/cpuinfo
free
df -k /tmp
df -k
安裝前的檢查和準備工作:
p4198954_21_linux.zip 在執行 runInstaller 之前打.
rpm -ivh compat-oracle-rhel4-1.0-5.i386.rpm (p4198954_21_linux.zip)
(不打PATH也可以)
安裝 libaio-0.3.102-1.i386.rpm 和libaio-devel0.3.102-1.i386.rpm
在Red Hat Enterprise Linux 介質的第三張 CD
以 root 使用者身份執行以下命令:
rpm -ivh /mnt/cdrom/RedHat/RPMS/ libaio-0.3.102-1.i386.rpm

建立資料庫安裝的準備工作:
1,建立user/group;
groupadd dba
groupadd oinstall
useradd oracle -g oinstall -G dba
passwd oracle
如果nobody使用者不存在(id nobody命令檢視),則建立:
useradd nobody
2,建立oracle安裝資料夾(sample);
mkdir -p /opt/oracle/product/10g
mkdir /opt/oracle/database
chown -R oracle.oinstall /opt/oracle
chmod 755 -R /opt/oracle
2, 配置環境變數;
要使用 Oracle 產品,應該或必須設定幾個環境變數。
如果您在同一伺服器上安裝了多個 Oracle 產品或資料庫,則 ORACLE_HOME、ORACLE_SID 和 PATH 變數可能會更改。
ORACLE_BASE 變數不應更改,並可以在需要時在您的登入配置檔案中設定它。Oracle 提供了一個稱作 oraenv 的實用程式來設定其他變數。
對於資料庫伺服器,建議設定以下環境變數:
使用Oracle使用者登陸:
su oracle
vi ~/.bash_profile
以下是配置檔案的內容
export ORACLE_BASE=/opt/oracle/
export ORACLE_HOME=/opt/oracle/product/10g
export ORACLE_SID=ge01
export PATH=$ORACLE_HOME/bin:$PATH
# 安裝好後再取消遮蔽這些環境變數設定
# export TNS_ADMIN=$ORACLE_HOME/network/admin
#export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#export LANG=AMERICAN_AMERICA.ZHS16GBK
配置好後用 source .bash_profile 命令使配置生效
4, 設定系統引數;
Oracle 資料庫 10g 需要以下所示的核心引數設定。
其中給出的是最小值,因此如果您的系統使用的值較大,則不要更改它。
切換到root使用者:
su root
a) 修改/etc/sysctl.conf(vi /etc/sysctl.conf), 新增:

kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=262144
net.core.rmem_max=262144
net.core.wmem_default=262144
net.core.wmem_max=262144

修改後執行"/sbin/sysctl -p"命令使得核心改變立即生效;

B) 設定oracle對檔案的要求:
編輯檔案:vi /etc/security/limits.conf 加入以下語句:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
編輯檔案:vi /etc/pam.d/login 加入以下語句(可能應該加在最後一條規則之前):
session required /lib/security/pam_limits.so

解壓縮Oracle10G的安裝檔案 :
1. Oracle
(1) 簡化過程(以oracle登入,釋放安裝檔案,使用更少的磁碟空間,速度更快)
在/tmp下解壓縮10201_database_linux32.zip:
unzip 10201_database_linux32
開始安裝oracle
(一)開始安裝:
1.以oracle使用者登入系統,進行Oracle的安裝:
cd /tmp/database (或者你解壓縮安裝程式包的目錄)
./runInstaller
過一會兒就會出現Oracle的安裝介面
注意:
1、選擇advance install
2、資料庫home設定為/opt/oracle/product/10g
3、資料庫全域性名稱設定為ge01
4、資料庫字符集選Simplified Chinese ZHS16GBK
2.其他用預設設定!
注意:安裝過程中會提示以root使用者登陸執行一些指令碼 ,執行後再按“ok”按鈕繼續安裝。

3、登陸並啟動資料庫的操作。
[oracle@oracle oracle]$ lsnrctl start
[oracle@oracle oracle]$ sqlplus /nolog
SQL*Plus: Release 9.2.0.0 - Production on Sat Mar 12 22:58:53 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> connect / as sysdba
Connected.
SQL> shutdown immediate 關閉資料庫 (OR "dbshut" command)
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup; 啟動資料庫
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.
4, dbstart指令碼修改
資料庫建立完成後,修改vi /etc/oratab,把orcl:/opt/oracle/oracle/product/10g:N那一行最後的N改成Y,
然後執行dbstart啟動資料庫資料庫可能無法啟動,報告Can’t find init file …的錯誤,需要複製一個初始化檔案:
cp /opt/oracle/admin/ge01/pfile/init.ora.* /opt/oracle/product/10.2.0/dbs/initge01.ora
重新執行dbstart就可以了。
修改vi /opt/oracle/product/10g/bin/dbstart中ORACLE_HOME_LISTNER=/opt/oracle/oracle/product/10g/
vi /etc/rc.local 加入下面一行 起動ORACLE ON system boot
/opt/oracel/product/10g/bin/dbstart
5. 編寫啟動指令碼(OPTION)
為了方便管理,可以寫一個啟動指令碼ora10g:
以root身份進入,編寫以下指令碼:
#!/bin/bash
#
# chkconfig: 2345 91 19
# description: starts the oracle listener and instance
status() {
pid=`ps -ef | grep ora_pmon | grep -v grep | awk '{print $8}'`
if [ "X$pid" = "X" ]
then
echo "oracle10g is not running."
exit 1
else
echo "oracle10g is running."
exit 0
fi
}
case "$1" in
start)
#startup the listener and instance
echo -n "oracle begin to startup: "
su - oracle -c "lsnrctl start"
su - oracle -c dbstart
echo "oracle10g started"
;;
stop)
# stop listener, apache and database
echo -n "oracle begin to shutdown:"
su - oracle -c "lsnrctl stop"
su - oracle -c dbshut
echo "oracle10g shutdowned"
;;
reload|restart)
$0 stop
$0 start
;;
'status')
status
;;
*)
echo "Usage: ora10g [start|stop|reload|restart]"
exit 1
esac
exit 0
存為ora10g後,然後
chmod a+x ora10g
ln -s /opt/oracle/product/10.2.0/bin/ora10g /etc/rc.d/init.d/
即可在以後以root身份執行/etc/rc.d/init.d/ora10g start |stop 來管oracle的啟動和停止了。
如果要將這個指令碼加入到系統中使其可開機執行,那麼要執行以下命令:
chkconfig --level 345 ora10g on

或者可在/etc/rc.d/rc.local中加入如下:
su - oracle -c "lsnrctl start"
su - oracle -c "dbstart"
6, 關於資料庫刪除重新安裝的問題:
把ORACLE安裝目錄刪除及/etc/ora*.*刪除就行了
#rm –f /etc/ora*.*
7.修改Oracle10g資料庫字符集
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=0;
System altered.
SQL> alter system set aq_tm_processes=0;
System altered.
SQL> alter database open;
Database altered.
SQL> set linesize 120;
SQL> alter database character set zhs16gbk;
alter database character set zhs16gbk
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
SQL> ALTER DATABASE character set INTERNAL_USE zhs16gbk; # 使用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 name,value$ from props$ where name like '%NLS%';
NLS_CHARACTERSET
ZHS16GBK
8. oracle database備份
(1)vi bachupDb.sh
#!/bin/sh
#oracle使用者下
#crontab -e 增加 "35 4 * * * /home/oracle/dbbackup/backupDb.sh",儲存後自動安裝
#或echo "35 4 * * * /home/oracle/dbbackup/backupDb.sh" > backupDb.cron
#crontab backupDb.cron
#############
修改為本機資料庫home目錄
export ORACLE_HOME=/opt/oracle/product/10g
export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin
# 注意字符集必須和資料庫的字符集一致,以避免字符集轉化失敗
export NLS_LANG=AMERICAN_AMERICA.zhs16gbk
125修改為要備份的oracle的ip地址的最後一段
dmpfile="`echo ~/`dbbackup/gedb_`date +%w`.dmp"
logfile="`echo ~/`dbbackup/gedb_`date +%w`.log"

if [ -w $dmpfile ]
then
echo "rm -f $dmpfile"
rm -f "$dmpfile"
fi
ip地址修改為要備份的oracle的主機地址
exp
file=$dmpfile log=$logfile owner=gedb grants=y
(2)copy bachupDb.sh 到slave oracle srever 相應目錄,
chown oracle.oinstall bachupDb.sh
chmod 744 bachupDb.sh
vi bachupDb.sh 以符合安裝情況
(3)以oracle user role
crontab -e
35 4 * * * /home/oracle/dbbackup/backupDb.sh
9. restore oracle backup
su - oracle
imp USERID=gedb/gedb file=gedb_6.dmp log=implogfile commit=y grants=y full=y

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-84537/,如需轉載,請註明出處,否則將追究法律責任。

相關文章