Oracle數據庫是一個相對龐大的應用軟件,對服務器的系統類型、內存、交換分區、硬盤空間、軟件環境、用戶環境、內核參數、進程會話限制等都有着相應的要求,只有滿足了這些必備的條件,才能確保Oracle 11g安裝成功、運行穩定。
一、準備安裝條件
1、系統配置要求
cat /etc/redhat-release
grep MemTotal /proc/meminfo
grep SwapTotal /proc/meminfo
df -hT /
hostname
vi /etc/hosts
192.168.4.254 tangxiaoyang tangxiaoyang.domain.com
ifconfig
2、軟件環境要求
①開發工具
yum -y install binutils compat-libstdc++-33 compat-libstdc++ elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-devel glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
②安裝pdksh軟件包
rpm -ivh /root/pdksh-5.2.14-36.el5.i386.rpm
③安裝java-1.6.0軟件包並進行調整,以支持中文界面安裝
yum -y install java-1.6.0
cd /usr/lib/jvm/jre-1.6.0/lib/
mv fontconfig.bfc fontconfig.bfc.bak ------備份默認字體配置
cp fontconfig.RedHat.6.0.bfc fontconfig.bfc ----拷貝RHEL6的字體配置
3、用戶環境要求
①創建運行用戶oracle、安裝組oinstall、管理組dba及存放Oracle程序的基本目錄
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
mkdir /opt/oracle
chown -R oracle:oinstall /opt/oracle
chmod -R 775 /opt/oracle/
②調整oracle用戶的環境配置
vi /home/oracle/.bash_profile
umask 022 -----文件權限掩碼
export ORACLE_BASE=/opt/oracle -----定義基本目錄
export ORACLE_SID=orcl -----定義數據庫實例名
export DISPLAY=:0.0 -----默認的顯示終端號
export.UTF-8 -----安裝界面的語言類型
③由於當前圖形環境是以root登陸的,因此還需允許oracle用戶能訪問使用圖形終端
xhost +oracle@localhost
注:xhost是用來控制X server訪問權限的命令
中文界面有時會因缺少字體、字體配置不當等導致界面亂碼,此時可改爲en_US.UTF-8
4、內核及會話要求
①調整內核參數,包括內存調試、端口範圍、打開文件數、I/O請求等設置
vi /etc/sysctl.conf
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 = 1048586
sysctl –p
②調整進程會話限制,加大打開的進程數及進程使用的文件數
vi /etc/pam.d/login
session required pam_limits.so ---啓用pam_limits認證模塊
vi /etc/security/limits.conf
oracle soft nproc 8192
oracle hard nproc 16384
oracle soft nofile 32768
oracle hard nofile 65536
----分別爲進程數軟限制、硬限制,文件數軟限制、硬限制
二、安裝Oracle 11g
放入Oracle 11g的安裝光盤,並將其掛載到/mnt/iso目錄
1、以oracle用戶登陸圖形桌面環境並安裝,添加-jreLoc選項指定jre的位置
/mnt/iso/database/runInstaller -jreLoc /usr/lib/jvm/jre-1.6.0
在如下界面中指定安裝選項,併爲用戶指定管理密碼
將清單目錄修改爲/opt/oracle/oralnventory,使oracle用戶有寫入清單信息的權限
安裝過程
Oracle典型的安裝設置
基本目錄:/opt/oracle/
軟件位置:/opt/oracle/product/11.2.0/dbhome_1/
數據庫位置:/opt/oracle/oradata/
產品清單:/opt/oracle/oraInventory/
2、運行腳本進行初始化
安裝完成後會彈出“執行配置腳本”對話框,根據提示切換爲root用戶並執行相應腳本
su - root
/opt/oracle/oraInventory/orainstRoot.sh
/opt/oracle/product/11.2.0/dbhome_1/root.sh
訪問OEM企業管理器平臺並對Oracle數據庫進行管理,用戶名sys,連接身份SYSDBA
https://y2:1158/em/或https://192.168.4.254:1158/em/
登陸成功後可以看到OEM管理控制檯,並可對其進行管理
3、優化調整環境配置
vi /etc/profile -----添加如下內容
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_OWNER=oracle
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$PATH:$ORACLE_HOME/bin
source /etc/profile -----source命令可使配置文件立即生效
修改/etc/oratab配置文件,以便運行dbstart時自動啓用數據庫實例
vi /etc/oratab
orcl:/opt/oracle/product/11.2.0/dbhome_1:Y ----將末尾的N改爲Y
使用sqlplus命令訪問Oracle數據庫
sqlplus sys/orcl AS SYSDBA
SQL>
help index; -----查看支持的指令列表
show user; -----查看當前登陸的用戶名稱
三、Oracle基本管理
1、基本服務組件
lsnrctl:監聽器程序,用來提供數據庫訪問,默認端口TCP 1521
dbstart、dbshut:數據庫控制程序,用來啓動、停止數據庫實例
emctl:管理器控制工具,用來開啓或關閉OEM平臺,默認通過1158端口提供HTTPS訪問
注:①lsnrctl status ------查看監聽器狀態
②emctl stop dbconsole ------關閉OEM管理控制檯
③dbshut $ORACLE_HOME ------停止數據庫實例
④dbstart $ORACLE_HOME ------啓動數據庫實例
2、添加Oracle服務
vi /etc/init.d/oracle
chmod a+x /etc/init.d/oracle
chkconfig --add oracle
chkconfig --list oracle
service oracle status
service oracle restart
四、備份與恢復
1、配置備份目錄
創建備份目錄並將其作爲expdp的備份目錄,授權備份用戶sysman允許寫入備份文件
mkdir /opt/mydbbackup
chown oracle:oinstall /opt/mydbbackup/
sqlplus sys/orcl AS SYSDBA
create directory dmpdir as '/opt/mydbbackup';
grant read,write on directory dmpdir to sysman;
2、備份數據
expdp sysman directory=dmpdir dumpfile=orcl20130126.dmp
----directory參數指定Oracle管理的備份位置
----dumpfile參數指定備份文件名稱
ls –lh /opt/mydbbackup/
3、恢復數據
impdp sysman directory=dmpdir dumpfile=orcl20130126.dmp reuse_datafiles=y table_exists_action=replace
----reuse_datafiles=y表示重用原有的數據文件 ----table_exists_action=replace表示覆蓋已存在的表