Linux Oracle數據庫的安裝


// 注釋 # root用戶 $oracle用戶
1. 關閉安全措施
  
# chkconfig iptables off // 永久關閉防火牆
# serviceiptables stop // 暫時關閉防火牆,重啟系統后會自動打開
# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config // 關閉Selinux
 
2. 驗證硬件
2.1 內存:
要求:內存最小1G,推薦2G或者更高。
查看命令:# grep MemTotal /proc/meminfo
 
2.2 Swap:
要求:
RAW
Swap
1G至2G 1.5倍
2G至16G 同RAW相等
16G以上 16G
查看命令:# grep SwapTotal /proc/meminfo
          # free
 
3. 驗證軟件
 
3.3 驗證需要的包:
# rpm -qa binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers glibc-static kernel-headers pdksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel libstdc++-static make numactl-devel sysstat unixODBC unixODBC-devel // 驗證命令26個包
  • kernel-headers-3.10.0-123.el7.x86_64
  • gcc-c++-4.8.2-16.el7.x86_64
  • numactl-devel-2.0.9-2.el7.x86_64
  • glibc-headers-2.17-55.el7.x86_64
  • glibc-common-2.17-55.el7.x86_64
  • binutils-2.23.52.0.1-16.el7.x86_64
  • unixODBC-devel-2.3.1-10.el7.x86_64
  • libaio-0.3.109-12.el7.x86_64
  • make-3.82-21.el7.x86_64
  • elfutils-libelf-0.158-3.el7.x86_64
  • elfutils-libelf-devel-0.158-3.el7.x86_64
  • sysstat-10.1.5-4.el7.x86_64
  • glibc-static-2.17-55.el7.x86_64
  • glibc-devel-2.17-55.el7.x86_64
  • glibc-2.17-55.el7.x86_64
  • elfutils-libelf-devel-static-0.158-3.el7.x86_64
  • libaio-0.3.109-12.el7.i686
  • gcc-4.8.2-16.el7.x86_64
  • libgcc-4.8.2-16.el7.i686
  • libstdc++-static-4.8.2-16.el7.x86_64
  • libaio-devel-0.3.109-12.el7.x86_64
  • libstdc++-4.8.2-16.el7.x86_64
  • libaio-devel-0.3.109-12.el7.i686
  • unixODBC-2.3.1-10.el7.x86_64
  • libstdc++-devel-4.8.2-16.el7.x86_64
  • compat-libstdc++-33-3.2.3-71.el7.x86_64
  • libgcc-4.8.2-16.el7.x86_64
  • libgomp-4.8.2-16.el7.x86_64
 
#rpm 方式安裝,加載centos光盤鏡像文件。在Packages中找到對應安裝包。
-ivh 安裝包名 // 安裝程序包
 
yum方式安裝:聯網更新工具包,必須聯網
yum install  binutils elfutils-libelf elfutils-libelf-devel gcc   gcc-c++   glibc   glibc-common   glibc-devel   glibc-headers   ksh   libaio   libaio-devel   bgcc   ibstdc++   bstdc++-devel   make   sysstat   unixODBC   unixODBC-devel
 
4. 創建組和用戶
# groupadd dba
# groupadd oinstall
# useradd -m -g oinstall -G dba oracle
# passwd oracle
// 如果nobody用戶不存在(id nobody命令查看),則創建:
# useradd nobody
 
5. 配置內核
注:配置大於系統數據需要配置更改,否則不需要配置。
 
要求配置:
參數 最小值 文件 命令
semmsl
semmns
semopm
semmni
50
32000
100
128
/proc/sys/kernel/sem
# /sbin/sysctl -a | grep sem
shmall
2097152
/proc/sys/kernel/shmall
# /sbin/sysctl -a | grep shm
shmmax
4294967296
/proc/sys/kernel/shmmax
// 最大共享內存,官方文檔建議是內存的1/2
// 我的服務器是8G內存,所以為4*1024*1024*1024
// 最小值為536870912(1G內存/2)
# /sbin/sysctl -a | grep shm
shmmni
4096
/proc/sys/kernel/shmmni
# /sbin/sysctl -a | grep shm
file-max
6815744
/proc/sys/fs/file-max
# /sbin/sysctl -a | grep file-max
ip_local_port_range
9000 65500
/proc/sys/net/ipv4/ip_local_port_range
# /sbin/sysctl -a | grep ip_local_port_range
rmem_default
262144 
/proc/sys/net/core/rmem_default
# /sbin/sysctl -a | grep rmem_default
rmem_max
4194304
/proc/sys/net/core/rmem_max
# /sbin/sysctl -a | grep rmem_max
wmem_default
262144
/proc/sys/net/core/wmem_default
# /sbin/sysctl -a | grep wmem_default
wmem_max 
1048576
/proc/sys/net/core/wmem_max
# /sbin/sysctl -a | grep wmem_max
aio-max-nr 1048576    
 
# vi /etc/sysctl.conf
按照系統值對比添加:
 
fs.aio-max-nr = 1048576                        
fs.file-max = 6815744                                          
kernel.shmall = 2097152                                       
kernel.shmmax = 536870912                               
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 = 1048576                          
 
保存后生效命令:
# /sbin/sysctl -p
 
6. 創建安裝目錄
# mkdir -p /opt/oracle/product/11.2.0.1
# chown -R oracle:oinstall /opt/oracle 
# chmod 755 /opt/oracle
 
7. 設置進程數和最大會話數
編輯文件:
# vi /etc/security/limits.conf 加入以下語句:
oracle           soft    nproc           2047
oracle           hard    nproc           16384
oracle           soft    nofile          1024
oracle           hard    nofile          65536
 
8. 關聯設置
編輯文件:vi /etc/pam.d/login 加入以下語句:
session    required     pam_limits.so
(注意:根據最后一條session規則的注釋,應該加在最后一條規則之前)
 
9. 配置環境變量
vi /etc/profile
增加下面行:
if [ $USER = "oracle" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -p 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
fi
 
10 . 使用Oracle用戶登陸:
su - oracle
vi ~/.bash_profile
以下是配置文件的內容,里面已有的部分就不必在次添加了。

export ORACLE_HOME=/opt/oracle/product/11.2.0.1
export ORACLE_BASE=/opt/oracle
export ORACLE_SID=orcl
export TNS_ADMIN=$ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export PATH=$PATH:$ORACLE_HOME/bin
 
執行:source ~/.bash_profile
 
9. 解壓縮
將linux.x64_11gR2_database_1of2.zip和linux.x64_11gR2_database_2of2.zip移動到移動到/tmp目錄下進行解壓縮。
$ cd /tmp
$ unzip linux.x64_11gR2_database_1of2.zip -d /tmp
$ unzip linux.x64_11gR2_database_2of2.zip -d /tmp
 
11. 安裝
$ cd /tmp/database/
$ ./runInstaller
設置安裝前的字符集。否則會出現亂碼
export LANG=AMERICAN_AMERICA.ZHS16GBK
 
注意:
選擇advance install
數據庫home設置為/opt/oracle/product/11.2.0.1
數據庫全局名稱設置為afcsc
字符集選Simplified Chinese ZHS16GBK
 
oracle沒有權限啟動圖形界面:
xhost local:oracle
 
檢查后會運行圖形化安裝界面。
安裝過程中連接庫時會出現兩個錯誤:
 
  • 第一個:
/lib64/libstdc++.so中memcpy@GLIBC_2.4找不到。
問題:glibc是2.17的庫,連接找的是2.14的庫。
解決辦法:改成靜態鏈接。
查看 /usr/lib64/libc.a是否存在。
修改oracle安裝目錄下:$ORACLE_HOME/ctx/lib/ins_ctx.mk
ctxhx: $(CTXHXOBJ)
        $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK)
修改為:
ctxhx: $(CTXHXOBJ)
        -static $(LINK_CTXHX) $(CTXHXOBJ) $(INSO_LINK) /usr/lib64/libc.a
然后點擊retry通過。
 
  • 第二個:
問題:undefinied reference symbol'B_DestroyKeyObject',查看日志,實際就是沒有找到nnz11這個庫。
解決辦法:
修改/opt/oracle/product/11.2.0.1/sysman/lib/ins_emagent
$(MK_EMAGENT_NMECTL)
修改為:
$(MK_EMAGENT_NMECTL) -lnnz11
然后點擊retry通過。
 
 
注:安裝需要遠程圖形化連接安裝oracle,具體方式和軟件這里不說了。
 

啟動關閉和自啟動

先打開監聽:lsnrctl start  

再啟動:方法1:sqlplus /nolog  ;SQL> startup ;SQL> shutdown immediate

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM