Linux部署Oraclejava
1、 實驗環境c++
VMware+CentOS 5.8(32位)sql
2、操做步驟數據庫
1. 配置IP地址、修改主機名vim
[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 -->修改IP地址centos
DEVICE=eth0緩存
BOOTPROTO=dhcp -->改成staticbash
IPADDR=192.168.1.10網絡
NETMASK=255.255.255.0session
GATEWAY=192.168.1.1 --> 配置IP地址、子網掩碼、網關
[root@localhost ~]# vim /etc/sysconfig/network -->修改主機名
HOSTNAME=localhost.localdomain -->隨意改
[root@localhost ~]# vim /etc/hosts -->添加本地hosts
192.168.1.10 Oracle Oracle.y2t08.cn
[root@localhost ~]# service network reload -->重啓網絡服務
2. 掛載系統盤, 安裝以下rpm包
①. binutils-2.17.50.0.6-20.el5.i386.rpm
compat-libstdc++-33-3.2.3-61.i386.rpm
②. elfutils-libelf-0.137-3.el5.i386.rpm
elfutils-libelf-devel-0.137-3.el5.i386.rpm
③. glibc-2.5-81.i686.rpm
glibc-common-2.5-81.i386.rpm
glibc-devel-2.5-81.i386.rpm
glibc-headers-2.5-81.i386.rpm
④. gcc-4.1.2-52.el5.i386.rpm
gcc-c++-4.1.2-52.el5.i386.rpm
⑤. libaio-0.3.106-5.i386.rpm
libaio-devel-0.3.106-5.i386.rpm
libgcc-4.1.2-52.el5.i386.rpm
libstdc++-4.1.2-52.el5.i386.rpm
libstdc++44-devel-4.4.6-3.el5.1.i386.rpm
libstdc++-devel-4.1.2-52.el5.i386.rpm
⑥. make-3.81-3.el5.i386.rpm
sysstat-7.0.2-11.el5.i386.rpm
⑦. unixODBC-libs-2.2.11-10.el5.i386.rpm
unixODBC-2.2.11-10.el5.i386.rpm
unixODBC-devel-2.2.11-10.el5.i386.rpm
[root@oracle ~]# mount /dev/cdrom /media/ -->掛在系統盤
mount: block device /dev/cdrom is write-protected, mounting read-only -->掛盤成功
⑧. ksh-5.2.14-37.el5.i386.rpm
//僅當RHEL 6.X版本時,做如下更改
[root@dbserver ~]# rpm -e ksh
[root@dbserver ~]# rpm -ivh .../pdksh-5.2.14-36.el5.i386.rpm
3. 搭建本地yum
[root@oracle ~]# vim /etc/yum.repos.d/CentOS-Base.repo
[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
-->添加註釋
baseurl=file:///media/ -->修改成本地路徑.(已修改). 去掉前面的註釋.
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5
[root@oracle ~]# yum -y clean all -->清空yum緩存
清緩存時, 終端出現滾動畫面, 執行如下命令
[root@oracle ~]#kill -9 $(cat /var/yum/yum.pdi) -->殺死yum進程
[root@oracle ~]# rpm -qa | grep java -->安裝java環境
//僅當RHEL 6.X版本時,做如下更改
[root@dbserver ~]# cd /usr/lib/jvm/jre-1.6.0/lib
[root@dbserver lib]# mv fontconfig.bfc fontconfig.bfc.origin -->備份默認字體配置
[root@dbserver lib]# cp fontconfig.RedHat.6.0.bfc fontconfig.bfc -->創建RHEL 6的字體配置
4. 建立用戶環境要求
[root@oracle ~]# groupadd oinstall -->建立安裝組
[root@oracle ~]# groupadd dba -->建立管理組
[root@oracle ~]# useradd -g oinstall -G dba oracle
-->建立oraccle用戶, 將它加入到oinstall附加到oracle
[root@oracle ~]# passwd oracle -->爲oracle用戶設置密碼
[root@oracle ~]# mkdir /opt/oracle -->在opt目錄下建立oracle
[root@oracle ~]# chown -R oracle:oinstall /opt/oracle/ -->將oracle下全部文件屬主改成oracle,屬組改成oinstall
[root@oracle ~]# chmod -R 775 /opt/oracle/ -->將oracle下全部文件權限修改成755
[root@oracle ~]# mkdir /opt/oraInventory
[root@oracle ~]# chown -R oracle:oinstall /opt/oraInventory/
[root@oracle ~]# chown -R 775 /opt/oraInventory/
5. 配置以orcale身份運行的環境
[root@oracle ~]# vim ~oracle/.bash_profile -->修改用戶的bash
umask 022 -->文件權限掩碼
export ORACLE_BASE=/opt/oracle -->定義基本目錄
export ORACLE_SID=orcl -->定義數據庫實力名稱
export DISPLAY=:0.0 -->告知默認的顯示終端號
export LANG=zh_CN.UTF-8 -->肯定使用何種語言環境
6. 修改內核及會和要求
[root@oracle ~]# vim /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
[root@oracle ~]# sysctl -p -->從新加載配置文件
[root@oracle ~]# vim /etc/pam.d/login -->修改認證模塊
…………/以上省略
session required pam_limits.so -->手動添加
[root@oracle ~]# vim /etc/security/limits.conf -->將用戶oracle可以打開的進程數
oracle soft nproc 8192
oracle hard nproc 16384
oracle soft nofile 32768
oracle hard nofile 65536
7. Oracle 11g安裝
[root@oracle ~]#umount /dev/cdrom -->卸載CentOS系統光盤
[root@oracle ~]#mount /dev/cdrom /media -->將Oracle 11g(x86)光盤掛載上
[root@oracle ~]# su - oracle -->用oracle執行如下操做
[oracle@oracle ~]$ mkdir dbin -->建立dbin目錄
[oracle@oracle ~]$ cp -rf /media/* dbin/ -->將系統盤裏全部文件拷貝到dbin
[oracle@oracle ~]$ chmod -R 775 dbin/ -->修改dbin權限
[oracle@oracle ~]$ exit -->退出
exit
[root@oracle ~]# reboot -->重啓Linux 開機用oracle用戶登錄.
[oracle@oracle ~]$ cd dbin/database/
[oracle@oracle database ]$ ./runInstaller -jreLoc /usr/lib/jvm/jre-1.6.0
--> 啓動yunInstaller腳本文件
-->注:上面腳本窗口別關閉, 新開一個終端, 切換到root用戶, 執行以上腳本.
8. 驗證安裝結果
[oracle@oracle ~]$ reboot -->重啓Linux, 使用root登錄
[root@oracle ~]# vim /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 -->手動添加
[root@oracle ~]# vim /etc/oratab -->使orcl實例隨數據庫軟件啓動
orcl:/opt/oracle/product/11.2.0/dbhome_1:Y -->將N改成Y
9. 添加Oracle服務
[root@oracle ~]# vim /etc/init.d/oracle
#!/bin/bash
#### 2011.10.10 by TsengYia. ####
# chkconfig: 35 90 10
# description: Oracle Database Service Daemon.
ORCL_BASE="/opt/oracle"
ORACLE_HOME=$ORCL_BASE/product/11.2.0/dbhome_1
ORACLE_OWNER=oracle
case "$1" in
start)
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl start"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole"
touch /var/lock/subsys/oracle11g
;;
stop)
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/lsnrctl stop"
rm -rf /var/lock/subsys/oracle11g
;;
status)
if ( pgrep "tnslsnr" && netstat -anpt | grep ":1521" ) &> /dev/null
then
echo "Oracle 11g Net Listener is running."
else
echo "Oracle 11g Net Listener is not running."
fi
if ( netstat -anpt | grep ":1158" && netstat -anpt | grep ":5520" ) &> /dev/null
then
echo "Oracle 11g Enterprise Manager is running."
else
echo "Oracle 11g Enterprise Manager is not running."
fi
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 { start|stop|restart|status }"
exit 1
;;
esac
exit 0 -->將Oracle數據庫腳本添加進去
[root@oracle ~]# chmod +x /etc/init.d/oracle -->將oracle添加可執行全新
[root@oracle ~]# chkconfig --add oracle -->將oracle加入到系統服務
[root@oracle ~]# service oracle start -->啓動oracle服務
10. 數據庫的邏輯備份
[root@oracle ~]# sqlplus sys AS SYSDBA
Enter password: -->輸入的密碼爲:Pa9865321
SQL> CREATE DIRECTORY dmpdir AS '/opt/mydbbackup'; -->指定備份目錄
SQL> GRANT read,write ON DIRECTORY dmpdir TO sysman; -->受權備份用戶
-->以上操做將/opt/mydbback做爲expdp的備份目錄, 容許數據庫用戶sysman寫入備份文件.
備份數據:
[root@oracle ~]# expdp sysman DIRECTORY=dmpdir DUMPFILE=orac20140717.dmp
Password: -->輸入的密碼爲:Pa9865321
-->以上操做將把用戶sysman所擁有的數據導出爲orac20140717.dmp文件,保存到/opt/mydbbackup目錄
恢復數據:
[root@oracle ~]# impdp sysman DIRECTORY=dmpdir DUMPFILE=orac20140717.dmp REUSE_DATAFILES=Y TABLE_EXISTS_ACTION=REPLACE
Password: -->輸入的密碼爲:Pa9865321
-->以上操做將從備份文件orac20140717.dmp 中讀取數據, 導入到用戶sysman所擁有的數據庫中.
REUSE_DATAFILES=Y -->表示重用原來的數據文件
TABLE_EXISTS_ACTION=REPLACE -->表示覆蓋已存在的表