Linux安裝Oracle12C及一些參考

目錄

安裝

系統配置

安裝前裝備

 安裝依賴包

創建用戶和組

修改內核參數

修改系統資源限制

創建安裝目錄及設置權限

設置oracle環境變量

安裝Oracle

一些參考

compat-libstdc++ 老是裝不上

pdksh-5.2.14-37.el5_8.1.x86_64.rpm

沒有網絡的情況下安裝依賴包

提示:檢查監視器: 監視器配置至少必須顯示 256 種顏色。。。解決辦法 

linux通過一根網線與筆記本直連上網

設置sqlplus中的退格鍵

查詢表空間

檢查oracle死鎖

System.Data.OracleClient 需要 Oracle 客戶端軟件 8.1.7 或更高版本


安裝

系統配置

操作系統:CentOS6.5_x64 

安裝前裝備

#關閉防火牆

#service iptables stop


#修改主機名

[root@oracledb~]# sed -i "s/HOSTNAME=localhost.localdomain/HOSTNAME=oracledb/" /etc/sysconfig/network

[root@oracledb ~]# hostname oracledb


#添加主機名與IP對應記錄

[root@oracledb ~]# vi /etc/hosts

127.0.0.1  oracledb


#關閉Selinux

[root@oracledb ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config 

[root@oracledb ~]# setenforce 0

 安裝依賴包

#需要在能上網的情況下進行
[root@oracledb ~]# yum -y install  gcc gcc-c++ make binutil scompat-libstdc++-33 elfutils-libelf elfutils-libelf-devel glibc glibc-common glibc-devel libaio libaio-devel libgcc libstdc++ libstdc++-devel unixODBC unixODBC-devel

創建用戶和組

 #sysctl -p 
 #groupadd -g 200 oinstall 
 #groupadd -g 201 dba 
 #useradd -u 440 -g oinstall -G dba oracle 
 #passwd oracle

修改內核參數

#vi /etc/sysctl.conf  #末尾添加如下 
net.ipv4.ip_local_port_range= 9000 65500 
fs.file-max = 6815744 
kernel.shmmni = 4096 
kernel.sem = 250 32000 100 128 
net.core.rmem_default=262144 
net.core.wmem_default=262144 
net.core.rmem_max=4194304 
net.core.wmem_max=1048576 
fs.aio-max-nr = 1048576
vm.dirty_background_ratio=3
vm.dirty_ratio=5
vm.min_free_kbytes = 1048576

修改系統資源限制

#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    pam_namespace.so  #下面添加一條pam_limits.so 
session    required    pam_limits.so

#vi /etc/profile   
if [ $USER = "oracle" ] || [ $USER = "grid" ]; then
        if [ $SHELL = "/bin/ksh" ]; then
              ulimit -u 16384
              ulimit -n 65536
        else
              ulimit -u 16384 -n 65536
        fi
        umask 022
fi

創建安裝目錄及設置權限

#mkdir /data1/
#mkdir /data1/oracle/
#mkdir /data1/oracle/app/ 
#mkdir /data1/oracle/oradata/ 
#chmod 755 /data1/oracle/ 
#chmod 775 /data1/oracle/app/ 
#chown oracle.oinstall -R /data1/oracle/

設置oracle環境變量

#su - oracle
#vi ~/.bash_profile 
export ORACLE_BASE=/data1/oracle/app
export ORACLE_HOME=$ORACLE_BASE/product/12.1.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl
#source .bash_profile  #立即生效

安裝Oracle

下載並解壓:

下載壓縮包放在/tmp 路徑下

[root@oracledb~]# xhost +  #使所有用戶都能訪問圖形桌面 
[root@oracledb~]# su –oracle 
[oracle@oracle~]#./tmp/database/runInstaller

運行過程會提示讓你用root賬戶執行2個腳本,你將腳本的文件拿下來,在root賬戶下執行即可。

一些參考

開啓、關閉數據庫

1)切換用戶
su - oracle

2)命令行啓動監聽
lsnrctl 
>start #啓動
>stauts #查看狀態
>exit #退出

3)啓動數據庫
sqlplus "/as sysdba"
>startup

4)關閉數據庫
sqlplus "/as sysdba"
>shutdown immediate

compat-libstdc++ 老是裝不上

在Linux上安裝Oracle時,檢測軟件包 compat-libstdc++時老是顯示沒有安裝,重新從網上下載了最新的安裝包後雖然顯示安裝成功了,但是重新檢測還是顯示沒有安裝。最後Google到了結果,原因是,檢測的時候應該使用:

rpm -qa 'compat-libstdc++*'

 而非

rpm -q compat-libstdc++

pdksh-5.2.14-37.el5_8.1.x86_64.rpm

pdksh-5.2.14-37.el5_8.1.x86_64.rpm Oracle安裝時需要安裝的包
rpm –qa|grep pdksh #查看是否安裝
rpm –ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm #安裝,衝突時rpm -e 卸載衝突的包

沒有網絡的情況下安裝依賴包

在沒有網絡的情況下可以從啓動優盤或光盤中將Packages文件夾拷貝到目標機器上。

Packages中都是rmp包

#檢查
rpm -q binutils compat-libstdc++ gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXext libXtst libX11 libXau libXi make sysstat

#cd 到拷貝的路徑中,按照以下順利安裝。
rpm -ivh compat-libstdc++-33-3.2.3-61.x86_64.rpm
rpm -ivh libaio-0.3.107-10.el6.x86_64.rpm
rpm -ivh libaio-devel-0.3.107-10.el6.x86_64.rpm
rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm
rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm
rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm
rpm -ivh cpp-4.4.7-4.el6.x86_64.rpm
rpm -ivh gcc-4.4.7-4.el6.x86_64.rpm
rpm -ivh libstdc++-devel-4.4.7-4.el6.x86_64.rpm
rpm -ivh gcc-c++-4.4.7-4.el6.x86_64.rpm
rpm -ivh compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm
rpm -ivh ksh-20120801-10.el6.x86_64.rpm

提示:檢查監視器: 監視器配置至少必須顯示 256 種顏色。。。解決辦法 

切換到root用戶
# su root

# xhost +
提示:xhost: unable to open display “”

# export DISPLAY=:0.0
# xhost +
提示:access control disabled, clients can connect from any host

切換oracle用戶
# su – oracle

再執行# sh runInstaller
問題解決!

出現亂碼則設置
export LANG="en_US.UTF-8"

linux通過一根網線與筆記本直連上網

首先將筆記本(筆記本IP爲11.101.9.20)的無線網絡共享。
 然後在linux輸入 
 route -net 11.101.9.100 netmask 255.255.255.0 gw 11.101.9.104 route add default gw 11.101.9.104
 注:
 11.101.9.100(與筆記本IP一個網段)
 11.101.9.104(筆記本的IP)
然後重啓網卡 /etc/init.d/network restart

設置sqlplus中的退格鍵

有些時候當你使用sqlplus登錄到數據庫中的時候,敲錯了命令想要刪除修改的時候,發現以前敲入的字符無法刪除,反而多出了^H字符。
SQL> show^H^H  
[oracle@zeng ~]$ stty -a //顯示所有的終端設置。其中會有這樣的一個字段 erase = ^?;表示終端的清除字符的方式是Ctrl+Backspace。
可以修改成我們經常使用的Backspace鍵。
[oracle@zeng ~]$ stty erase ^H 
在進入sqlplus中就可以按照我們熟悉的方式刪除敲錯的字符了。當你註銷linux會話再次登錄linux系統進入sqlplus的時候問題又來了。
SQL> show^H^H
想要讓該設置在每次登錄linux系統創建會話的時候生效,可以寫入.bash_profile文件中,在執行生效。
[oracle@zeng ~]$ vi .bash_profile //加入stty erase ^H
[oracle@zeng ~]$ . .bash_profile

查詢表空間

SELECT UPPER(F.TABLESPACE_NAME) "表空間名",
  D.TOT_GROOTTE_MB "表空間大小(M)",
  D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空間(M)",
  TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",
  F.TOTAL_BYTES "空閒空間(M)",
  F.MAX_BYTES "最大塊(M)"
  FROM (SELECT TABLESPACE_NAME,
  ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
  ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
  FROM SYS.DBA_FREE_SPACE
  GROUP BY TABLESPACE_NAME) F,
  (SELECT DD.TABLESPACE_NAME,
   ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
  FROM SYS.DBA_DATA_FILES DD
  GROUP BY DD.TABLESPACE_NAME) D
  WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
  ORDER BY 1;

檢查oracle死鎖

查看鎖表進程SQL語句1: 
select sess.sid, 
   sess.serial#, 
   lo.oracle_username, 
   lo.os_user_name, 
   ao.object_name, 
   lo.locked_mode 
   from v$locked_object lo, 
   dba_objects ao, 
   v$session sess 
where ao.object_id = lo.object_id and lo.session_id = sess.sid; 

查看鎖表進程SQL語句2: 
select * from v$session t1, v$locked_object t2 where t1.sid = t2.SESSION_ID; 

殺掉鎖表進程: 
如有記錄則表示有lock,記錄下SID和serial# ,將記錄的ID替換下面的738,1429,即可解除LOCK 
alter system kill session '738,1429';

System.Data.OracleClient 需要 Oracle 客戶端軟件 8.1.7 或更高版本

  原因:NTFS權限問題,在ORACLE9I時總是遇到

  解決方法:

  1、以管理員的用戶登錄;

  2、找到ORACLE_HOME文件夾(我的是C:\oracle\ora92),點右鍵,選屬性--安全,在組或用戶欄中選“Authenticated Users”,在下面權限列表中把“讀取和運行”的權限去掉,再按應用;重新選上“讀取和運行”權限,點擊應用;選權限框下面的“高級”按鈕,確認“Authenticated Users”後面的應用於是“該文件夾、子文件夾及文件”,按確定把權限的更改應用於該文件夾;

  3、重新啓動計算機,讓權限設置生效(請注意,這一步很重要);

  4、登錄後運行asp.net應用,正常取得Oracle數據庫的數據。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章