Knight of the round table

          wansong

          oracle 安裝

          http://hi.baidu.com/lovederh/blog/item/3377fd252f1d1932d40742e6.html

          http://my.oschina.net/yunbaobao/blog/28832


          linux redhat 5 安裝 oracle 數據庫總結
          2011-06-29 11:59

          總結了無數先人的經驗:下面簡短節說。

          1、首先是安裝環境的檢查:

          #free -m

          查看swap 分區大小 應該大于1024M

          增加swap的大小 重設交換分區可以使用如下操作:

          dd if=/dev/zero of=tmp_swap bs=1k count=900000

          chmod 600 tmp_swap

          mkswap tmp_swap

          swapon tmp_swap

          完成安裝以后,可以釋放這個空間:

          swapoff tmp_swap

          rm tmp_swap

          2.安裝Oracle10G需要的包,缺少哪個包就安裝哪個包。

          用如下命令檢查

          rpm -q binutils compat-db control-center gcc gcc-c++ glibc glibc-common \
          gnome-libs libstdc++ libstdc++-devel make pdksh sysstat xscreensaver libaio openmotif21

          安裝命令

          rpm -ivh 包名

          3.

           設置內核參數(在/etc/sysctl.conf文件中加入下列行)

          命令 vi  /etc/sysctl.conf 回車,然后按字母“o” 進入 編輯狀態。直接在后面加就可以了,這個文件中有些參數是存在的,不用管,直接加最后。我裝的時候發現存在參數沒有加,后來出現out of memery 錯誤就是因為 kernel.shmmax這個參數沒加的原因。總之,把下面的都加在后面沒錯的。
          kernel.shmall = 2097152
          kernel.shmmax = 2147483648
          kernel.shmmni = 4096
          # semaphores: semmsl, semmns, semopm, semmni
          kernel.sem = 250 32000 100 128
          fs.file-max = 65536
          net.core.rmem_default = 262144
          net.core.rmem_max = 4194304
          net.core.wmem_default = 262144
          net.core.wmem_max = 1048586

          net.ipv4.ip_local_port_range = 1024 65000

          按"esc" 退出編輯  輸入:wq  (保存并退出 )如果只退出 不保存輸入:q!

          然后輸入命令

          # /sbin/systcl -p 使參數生效。

          4.

          其他資源設置
           4.1 修改/etc/security/limits.conf 文件
          vi /etc/security/limits.conf

          *    soft    nproc   2047
          *    hard    nproc   16384
          *    soft    nofile  1024
          *    hard    nofile  65536

          5.將下面一行添加到/etc/pam.d/login文件中最后一行:

          vi /etc/pam.d/login

          session    required     pam_limits.so

          6.添加用戶和組,如果你想新建一個新用戶可以建一個oracle用戶。或者直接裝在你的常用用戶下面。

          # useradd oracle

          #groupadd dba

          #groupadd oinstall

          #groupadd nobody 這個組有可能是存在的,如果存在就不用管了

          #gpasswd -a oracle dba 將oracle加入到dba組中

          #gpasswd -a oracle oinstall 將oracle 加入到oinstall組中

          #gpasswd -a oracle nobody

          刪除用戶和組的命令是

          userdel oracle

          groupdel dba

          7.建文件夾命令

          mkdir -p /opt/oracle

          chown -R oracle:root /opt

          chmod -R 777 /opt

          8.修改編輯內核

          vi /etc/redhat-release

          將內核參數5.4 這行前加個#

          然后再下面加一行將上面的復制下來把5.4改成 3

          #Red Hat Enterprise Linux Server release 5 (Tikanga) 
          Red Hat Enterprise Linux Server release 3

          9.配置環境變量,這一步是重點中的重點,如果配置不好,問題多多。

          vi ~/.bash_profile 加入下面的環境變量

          export ORACLE_BASE=/opt/oracle

          export ORACLE_HOME=/opt/oracle/product/10.2.0/db_1  這個目錄是沒有的,裝完oracle就有了

          export ORACLE_SID=orcl  名字隨便起這個就是服務名

          export PATH=/opt/oracle/product/10.2.0/db_1/bin:$PATH

          export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK"  引號不能少

          export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib:/lib

          然后保存退出編輯,輸入命令

          source ~/.bash_profile

          然后輸入命令

          env 查看上面的環境變量是否都生效了。

          最好在是將bashrc 這個文件也加入上面的環境變量 vi ~/.bashrc

          10.切換到oracle用戶到安裝文件目錄下,首先要有oracle10G的安裝文件 然后用unzip 文件名 解壓到一個目錄下,我是將10201_database_linux32.zip放到opt目錄下,解壓出來一個database文件夾

          執行

          #export LANG=en_US

          ./runInstaller

          開始安裝,安裝可以選擇完全安裝,語言選擇english 還有簡體中文 (SIMPLIFIED CHINESE)和windows上安裝是一樣的,就不多說了。

          但是有一個非常非常重要的,就是在數據庫安裝完之后會彈出一個框,里面有二個命令要執行切換到root用戶下,

          su root 輸入密碼

          然后將二個命令執行一下,有一個讓輸入fullpath ,回車就好。

          oracle就裝好了。

          在窗口中執行sqlplus可以登陸,Ok。

          11.設置實例自啟動
          修改/etc/oratab將所需啟動的實例修改為Y
          oracle:/opt/oracle/product/10.2.0/db_1:Y
          12.編寫啟動腳本(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"

          安裝后還有一些配置。網上有好多,下面的僅供參考

          過一會兒就會出現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
          #############
          #@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

          posted on 2012-01-13 10:00 w@ns0ng 閱讀(349) 評論(0)  編輯  收藏 所屬分類: DB-oracle

          主站蜘蛛池模板: 德兴市| 盐池县| 界首市| 新化县| 裕民县| 大余县| 汕尾市| 华坪县| 昌黎县| 凉城县| 邵武市| 宜兴市| 漳平市| 丰台区| 哈尔滨市| 九江市| 阜宁县| 博乐市| 波密县| 华坪县| 海林市| 迭部县| 巴南区| 双辽市| 望谟县| 东光县| 荆门市| 朝阳区| 桦南县| 云龙县| 明星| 宝应县| 临沂市| 余庆县| 香格里拉县| 山东省| 枣阳市| 阳西县| 铜陵市| 青冈县| 阳泉市|