注意:可以從 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 二.虛擬機分區情況: 三.查看系統資源相關語句: uname命令介紹 1.名稱:uname 2.適用對象:所有使用者 3.命令格式:uname [選項]... 4.作用:列印出系統信息 5.參數詳解: -a, --all #列印出所有信息,如果-p,-i的結果為unknown,將不顯示-p,-i的結果 -s, --kernel-name #列印出內核名稱 -n, --nodename #列印出網路上主機名稱 -r, --kernel-release #列印出操作系統發行號 -v, --kernel-version #列印出操作系統的版本 -m, --machine #列印出電腦硬體類型 -p, --processor #列印出處理器類型 -i, --hardware-platform #這個不懂什麼意思 高手解釋下 -o, --operating-system #列印出運行的系統 四.查看系統配置: cat /etc/issue uname -r grep MemTotal /proc/meminfo grep SwapTotal /proc/meminfo grep "model name" /proc/cpuinfo free df -k /tmp df –k 五.安裝前的檢查和準備工作:(下面是我在RHEL4.0上面安裝oracle時需要按章的軟體包,一定按順序安裝) Glibc-kernheaders-2.4-9.1.87.i386.rpm Glibc-headers-2.3.4-2.i386.rpm Glibc-devel-2.3.4-2.i386.rpm Compat-gcc-32-3.2.3-47.3.i386.rpm Compat-libstdc -33-3.2.3-47.3.i386.rpm compat-gcc-32-c -3.2.3-47.3.i386.rpm compat-libgcc-296-2.96-132.7.2.i386.rpm compat-libstdc -296-2.96.132.7.2.i386.rpm gcc-3.4.3-9.EL4.i386.rpm libstdc -devel-3.4.3-9.EL4.i386.rpm gcc-c -3.4.3-9.EL4.i386.rpm libaio-0.3.102-1.i386.rpm libaio-devel-0.3.102-1.i386.rpm openmotif21-2.1.30-11.RHEL4.2.i386.rpm zlib-devel-1.2.1.2-1.i386.rpm freetype-devel-2.1.9-1.i386.rpm fontconfig-devel-2.2.3-7.i386.rpm pkgconfig-0.15.0-3.i386.rpm xorg-x11-devel-6.8.1-23.EL.i386.rpm xorg-x11-deprecated-libs-devel-6.8.1-23.EL.i386.rpm compat-libcwait-2.0-2.i386.rpm(補丁包) compat-oracle-rhel4-1.0-5.i386.rpm(補丁包) 1.創建資料庫安裝的準備工作: ⑴ 創建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/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 命令使配置生效 3.置系統參數; 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 2.開始安裝oracle 以oracle用戶登錄系統,進行Oracle的安裝: cd /tmp/database (或者你解壓縮安裝程序包的目錄) ./runInstaller 過一會兒就會出現Oracle的安裝界面 注意:一定在linux圖形界面下安裝oracle,否則會報錯! 1、選擇advance install 2、資料庫home設置為/opt/oracle/product/10g 3、資料庫全局名稱設置為ge01 4、資料庫字符集選Simplified Chinese ZHS16GBK 5、其他用默認設置! 注意:安裝過程中會提示以root用戶登陸執行一些腳本 ,執行后再按「ok」按鈕繼續安裝. 3、登陸並啟動資料庫的操作. [oracle@oracle oracle]$ lsnrctl start [oracle@oracle oracle]$ sqlplus /nolog SQL*Plus: Release 10.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 ############# #@tip 修改為本機資料庫home目錄 export ORACLE_HOME=/opt/oracle/product/10g export PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin # 注意字符集必須和資料庫的字符集一致,以避免字符集轉化失敗 export NLS_LANG=AMERICAN_AMERICA.zhs16gbk #@tip 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 #@tip ip地址修改為要備份的oracle的主機地址 exp USERID=gedb/gedb@10.248.1.5/ge01 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 |