2011年5月6日 星期五

Suse Enterprise 11 安裝Oracle 11.2

好文收藏
本文轉載自:Suse Enterprise 11 安装Oracle 11.2(上) | Linux视野
運行Vitualbox,啟動已經安裝好的Suse Enterprise 11

第一件事我要把oracle11g軟件給那過去。之前的文章我會採用filezilla去傳輸,現在我用的是局域網共享。如果對這方面不清楚的可以參考ubuntu 10.04與XP實現網絡共享
啟動suse的samba服務,service smb start
(註:suse裡操作samba的命令:
# service smb start
# /etc/rc.d/smb restart
# /etc/init.d/smb restart)

輸入 smb://192.168.1.102(ubuntu的IP),輸入密碼進入

在Ubuntu上共享oracle11g 直接拷貝到suse裡面。

 開始檢測所需RPM包。按照官方文檔裡的要求,suse需要的rpm包有:
SUSE Linux Enterprise
Server 11
The following packages (or later versions) must be installed:
binutils-2.19
gcc-4.3
gcc-c++-4.3
glibc-2.9
glibc-devel-2.9
ksh-93t
libstdc++33-3.3.3
libstdc++43-4.3.3_20081022
libstdc++43-devel-4.3.3_20081022
libaio-0.3.104
libaio-devel-0.3.104
libgcc43-4.3.3_20081022
libstdc++-devel-4.3
make-3.81
sysstat-8.1.5
On SUSE 11:
unixODBC-32bit-2.2.12 (32-bit) or later
unixODBC-devel-32bit-2.2.12 (32 bit) or later
據以往的經驗,rpm包肯定不全,要補齊。
 
 在suse裡可以利用它的特點,操作如下,計算機—安裝軟件

缺少了gcc 直接搜索gcc,把需要的gcc,gcc++勾上,點擊接受就可以自動安裝了,期間需要插入光盤。

每個軟件都可以用這種步驟操作,知道所以缺少的包都安裝完畢。再次運行查找命令,發現所有包已經安裝了。

繼續oracle的安裝。本來以為我之前有安裝的經驗,本次可以很順利就通過的。而原來suse和centos還是有一點小差別,因此沒能很快就完成安裝,當中卡在幾個問題上。
我們繼續按應有的步驟進行下去
檢查系統硬件
如圖,利用linux命令檢查系統是否滿足要求。
內存1G以上 交換空間1.5G以上 磁盤空間16G

 
修改linux內核參數
檢查內核參數是否滿足

 
 /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 = 1048586
net.ipv4.tcp_wmem = 262144 262144 262144
net.ipv4.tcp_rmem = 4194304 4194304 4194304

# /sbin/chkconfig boot.sysctl on  suse啟動時加載/etc/sysctl.conf
# /sbin/sysctl –p   使修改的參數立即生效

 
創建oracle用戶和組及安裝目錄
linuxsight:/# groupadd oinstall   (創建用戶組oinstall
linuxsight:/#  groupadd dba(創建用戶組dba

linuxsight:/#  useradd –g oinstall –G dba –m oracle ( 第一個問題就在這裡,必須加 -m )
[linuxsight:/#  passwd oracle(設置密碼)
linuxsight:/#  mkdir –p /fantlam/oracle 
linuxsight:/#  chown -R oracle:oinstall /fantlam(改目錄組)

linuxsight:/#  su – oracle
oracle@linuxsight:/home/oracle> vi .profile 添加

ORACLE_BASE=/fantlam
ORACLE_HOME=$ORACLE_BASE/oracle
ORACLE_SID=fantlam
PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH

oracle@linuxsight:/home/oracle> exit (退出登錄讓設置生效)
linuxsight:/# su – oracle
oracle@linuxsight:/home/oracle> env | grep ORA
ORACLE_SID=fantlam
ORACLE_BASE=/fantlam
ORACLE_HOME=/fantlam/oracle



oracle用戶設置shell的限制
1gedit /etc/security/limits.conf 加入如下內容
oracle soft nproc  2047
oracle hard nproc  16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle hard stack  10240

2gedit /etc/pam.d/login 加入
session required /lib/security/pam_limits.so

3gedit /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


解壓文件並移動到fantlam目錄
linuxsight:/# unzip linux_11gR2_database_1of2.zip
linuxsight:/# unzip linux_11gR2_database_2of2.zip
linuxsight:/# mv database/ /fantlam
linuxsight:/# cd /fantlam
linuxsight:/# chown -R oracle:oinstall database/ 
接下來的步驟就是切換至oracle用戶然後運行安裝了。
按照以往的經驗,只需要在shell上su – oracle 就可以運行安裝程序了。而本次在suse我卻碰到問題了。
這是本次安裝碰到第二個問題
問題所在:
無法使用命令 /usr/bin/xdpyinfo 自動檢查顯示器顏色。請檢查是否設置了 DISPLAY 變量。
其實在上次安裝我已經遇到過了,當時用了xhost local:oracle就可以解決,但據網上介紹說是suseredhat是有些不同。就算是設置DISPLAY=192.168.1.103:0.0也不行,用su – oracle切換至oracle用戶,運行xclock都會出錯,can’t open display
一連幾天我都束手無策。最後終於找到一個解決方法:
註銷–切換用戶–直接用oracle登錄
用這種方法發現 xclock就可以正常運行,所以也能正常運行oracle安裝程序了。

第三個問題:安裝界面出現亂碼

上一次記得用oracle 10G的時候就出現過這種情況,晚上的解決方案是下載jdk去重新設置,感覺這種方法太麻煩了,而我認為安裝界面並不一定要用中文,英文也可以。
所以改為英文環境即可
設置語言環境  LANG和LC_ALL
$ export LANG=en_US
$ export LC_ALL=en_US

終於成功運行了

第一步是設置郵件的,我略過了。
第二步:選擇只安裝軟件

 第三步:單獨的數據庫,不是集群。
(註:如果是出現磁盤空間不足的話,可以檢查一下到底哪裡有多餘的數據,本來預設16G是足夠的。可以清空TMP目錄,清空命令 rm –rf *
-r 就是向下遞歸,不管有多少級目錄,一併刪除
-f
就是直接強行刪除,不作任何提示的意思

第四步:語言:英文 English

第五步:選第一個:企業版

第六步:系統已經根據我們設定的變量自動讀取了安裝目錄

第七步:繼續默認

第八步:同樣已經讀到了組 dba  oinstall

第九步:進行安裝檢測。一切沒問題,不過提示一個錯誤是系統內存不足,可以在虛擬機把內存調大點,不過這裡我選擇忽略。

第十步:一切準備就緒。

第十一步:等著它安裝

最後一步:執行腳本。

如圖所示


安裝到此已經結束了,上一次在centos上我還安裝了數據庫,如果需要可以參考我的做法

2011年5月5日 星期四

ORACLE 11g 修改Archive Log存放路徑

啟動archive mode後:

SQL> archive log list
Database log mode                  Archive Mode
Automatic archival                   Enabled
Archive destination                  USE_DB_RECOVERY_FILE_DEST     #預設值
Oldest online log sequence       12
Next log sequence to archive   14
Current log sequence               14

修改archive log存放路徑:
SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/路徑' SCOPE=SPFILE;
如: alter system set LOG_ARCHIVE_DEST_1='LOCATION=/archlog' SCOPE=SPFILE;
restart the database
SQL> archive log list
Database log mode                  Archive Mode
Automatic archival                   Enabled
Archive destination                  /archlog  
Oldest online log sequence       12
Next log sequence to archive   14
Current log sequence               14

Oracle [abcu]dump位置設定

11g 以前:
*.audit_file_dest='/路徑/adump'
*.background_dump_dest='/路徑/bdump'
*.core_dump_dest='/路徑/cdump'
*.user_dump_dest='/路徑/udump'

11g可參考:(轉載自)

Alert log changes in 11g

Oracle now writes two alert logs, the traditional alert log in plain text plus a new XML formatted alert.log which is named as log.xml.
Prior to Oracle 11g, the alert log resided in $ORACLE_HOME/admin/$ORACLE_SID/bdump directory, but it now resides in the $ORACLE_BASE/diag/$ORACLE_SID directory
Fortunately, you can re-set it to the 10g and previous location by specifying the BDUMP location for the diagnostic_dest parameter. 
But best of all, you no longer require server access to see your alert log since it is now accessible via standard SQL using the new v$diag_info view:
select name, value from v$diag_info.
For complete details, see MOSC Note:438148.1 - "Finding alert.log file in 11g".
NOTE: Rampant author Laurent Schneider has some additional insight into creating an Oracle Automatic Diagnostic Repository (ADR)

Oracle Spfile 和 Pfile 的關係

好文收藏,轉載自此連結

1、pfile 文本文件 client端參數文件;不能動態修改,可以用普通的編輯器修改,修改之後需要重啟。pfile可能會導致服務器啟動不一致,因為可以在客戶端啟動。
2、spfile 二進制文件 服務器端參數文件,有了spfile,oracle可以實現動態參數在線修改,部分參數修改之後無需重啟。但是,因為是二進制文件,所以不能用普通的編輯器修改,要用alter命令從sql裡面來修改。spfile保證服務器每次的啟動都是一致的。只有spfile而沒有pfile文件時,可以通過:

create pfile='位置+名字' from spfile;
如:
create pfile='E:\ORACLE\PRODUCT\10.2.0\DB_1\DBS\spfileorcl_bak.ora' from spfile;
進行創建pfile文件。
同理,只有pfile而沒有spfile時,可以通過:
create spfile='位置+名字' from pfile;
進行創建spfile文件。pfile和spfile二者可以互相備份。
3、通過spfile或pfile啟動數據庫
(1)startup nomount啟動方式,查找文件的順序是 spfileSID.ora-〉spfile.ora-〉initSID.ora-〉init.ora(spfile優先於pfile)。
(2)startup pfile='文件目錄'----通過pfile文件啟動;
(3)startup spfile='文件目錄'----通過spfile文件啟動。

-------------------------------------------------------
查看系統是以pfile還是spfile啟動
Select isspecified,count(*) from v$spparameter group by isspecified;
如果isspecified裡有true,表明用spfile進行了指定配置
如果全為false,則表明用pfile啟動

使用SPfile的好處
Spfile改正了pfile管理混亂的問題,在多結點的環境裡,pfile會有多個image
啟動時候需要跟蹤最新的image。這是個煩瑣的過程。
用spfile以後,所有參數改變都寫到spfile裡面(只要定義scope=spfile或both),參數配置有個權威的來源。

查看spfile location
show parameter spfile

從spfile獲取pfile
Create pfile='d:pfileSID.ora' from spfile;
Create pfile='d:pfileSID.ora' from spfile='spfile_location';

從pfile獲取spfile
Create spfile from pfile='Your_pfile_location'
Create spfile='spfile_location' from pfile='Your_pfile_location'

動態修改參數
alter system set parameter=Value scope=spfilebothmemory

Startup nomount的時候需要讀去spfile或pfile,兩者共存,spfile優先

強制用pfile啟動
SQL>startup pfile='Your_Pfile.ora'
startup spfile='/data/oracle/product/10.2.0/db_1/dbs/dbs/spfile_mqq.ora' force

通過pfile連接到spfile啟動
修改pfile文件