CentOS 6.5_x64安裝Oracle 11g R2
安裝環境:
作業系統:CentOS6.5_x64
主機名:Oracle
記憶體:2G(官方最低要求1G)
硬碟:500G(企業版安裝所需4.29G和1.7G資料檔案)
安裝centos的時候要注意,swap交換分割槽的大小最好為實體記憶體的兩倍,網路最好配置靜態ip,還有安裝時把開發工具裝上,因為Linux Oracle的安裝依賴於gcc,make等開發包。當然x系統也是必須安裝的,因為OUI是基於圖形介面的嘛。centos安裝成功後,我們可以修改一下/etc/initab檔案,這樣下次啟動時,就不會啟動圖形系統,可以節省不少的記憶體。
安裝前系統準備:
設定作業系統
系統支援Red Hat Enterprise Linux 6,CentOS 6其實就是RHEL6,如果Oracle不認,可以改一下。CentOS6.5 Oracle11gR2不需要修改。
老版本的Oracle需要修改這裡
vim /etc/redhat-release
#CentOS release 6.3 (Final) 這行註釋掉,加上下面的
Red Hat Enterprise Linux 6
1.安裝必需的包
安裝所需要的依賴包:
binutils-2.17.50.0.6-2.el5
compat-libstdc++-33-3.2.3-61
elfutils-libelf-0.125-3.el5
elfutils-libelf-devel-0.125
gcc-4.1.1-52
gcc-c++-4.1.1-52
glibc-2.5-12
glibc-common-2.5-12
glibc-devel-2.5-12
libaio-0.3.106
libaio-devel-0.3.106
libgcc-4.1.1-52
libstdc++-4.1.1
libstdc++-devel-4.1.1-52.e15
make-3.81-1.1
sysstat-7.0.0
unixODBC-2.2.11
unixODBC-devel-2.2.11
掛載安裝盤用rpm一個個安裝,或者在安裝盤中找到以上檔案的64位版本並複製到linux系統中指定的目錄下,用rpm *命令同時安裝。
以下是安裝圖形介面,已經已安裝圖形介面的,不需要安裝
yum -y groupinstall "Java Development"
yum -y groupinstall "GNOME Desktop Environment"
yum -y install vnc-server
2.修改主機名
特別注意 /etc/sysconfig/network中的hostname要與/etc/hosts中的一致
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=oracle
3.設定IP 新增主機名與IP對應記錄
vi /etc/hosts
127.0.0.1 localhost
::1 localhost
192.168.231.100 oracle
#其中192.168.231.100 oracle 很重要,如果不配置,會出錯.
4.關閉Selinux
vi /etc/selinux/config
SELINUX=disabled
5、建立使用者和組
[[email protected] ~]# sysctl -p
[[email protected] ~]# groupadd -g oinstall
[[email protected] ~]# groupadd -g dba
[[email protected] ~]# useradd -m -g oinstall -G dba oracle
[[email protected] ~]# passwd oracle
[[email protected] ~]# id oracle #檢視oracle使用者資訊
6、修改核心引數
[[email protected] ~]# vi/etc/sysctl.conf #末尾新增如下
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
net.ipv4.ip_local_port_range = 1024 65535
fs.aio-max-nr = 1048576
以上引數的含義解釋如下:
fs.file-max 該引數決定了系統中所允許的檔案控制代碼最大數目,檔案控制代碼設定代表linux系統中可以開啟的檔案的數量
kernel.shmmni 該引數是共享記憶體段的最大數量。shmmni預設值4096,一般肯定是夠用了。
kernel.sem以kernel.sem = 250 32000 100 128為例:
250是引數semmsl的值,表示一個訊號量集合中能夠包含的訊號量最大數目。
32000是引數semmns的值,表示系統內可允許的訊號量最大數目。
100是引數semopm的值,表示單個semopm()呼叫在一個訊號量集合上可以執行的運算元量
128是引數semmni的值,表示系統訊號量集合總數。
net.core.rmem_default 表示套接字接收緩衝區大小的預設值。
net.core.wmem_default 表示套接字傳送緩衝區大小的預設值。
net.core.rmem_max該引數指定了接收套接字緩衝區大小的最大值(以位元組為單位)
net.core.wmem_max該引數指定了傳送套接字緩衝區大小的最大值(以位元組為單位)
net.ipv4.ip_local_port_range = 1024 65535系統對本地埠範圍限制設定為1024~65000之間
fs.aio-max-nr此引數限制併發未完成的請求,應該設定避免I/O子系統故障。
7、修改系統資源限制
[[email protected] ~]# vi/etc/security/limits.conf #末尾新增如下
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
出於效能上的考慮,還需要需要進行以上設定,以便改進Oracle使用者的有關 nofile(可開啟的檔案描述符的最大數)和nproc(單個使用者可用
的最大程序數量)
soft是軟限制 ,使用者可以超過這個設定的值,但一定不能超過hard 的值 。一般soft比hard小。hard是硬限制
vi /etc/pam.d/login
session required pam_namespace.so #下面新增一條pam_limits.so
session required /lib64/security/pam_limits.so
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
如果使用者為oracle,使用者shell="/bin/ksh"
ulimit –p 16384限制管道緩衝區的大小為16384
ulimit –n 65536表示可以開啟最大檔案描述符的數量為65536
ulimit – u 16384;限制使用者最多可以使用16384個程序
8、建立安裝目錄及設定許可權
[[email protected] ~]# mkdir -p /hywl/oracle/app/product/11.1.1/db_1
[[email protected] ~]# mkdir /hywl/oracle/oradata/
[[email protected] ~]# chmod 755 /hywl/oracle/
[[email protected] ~]# chmod 775 /hywl/oracle/app/
[[email protected] ~]# chown oracle.oinstall -R /hywl/oracle
9、設定oracle環境變數
[[email protected] ~]$ vi ~/.bash_profile
unset USERNAME
export ORACLE_BASE=/hywl/oracle/app
export ORACLE_HOME=/hywl/oracle/app/product/11.1.1/db_1
export ORACLE_SID=hywl
export PATH=/hywl/oracle/app/product/11.1.1/db_1/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
export LD_LIBRARY_PATH=/hywl/oracle/app/product/11.1.1/db_1/lib:/usr/lib
#export ORACLE_HOME_LISTNER=$ORACLE_HOME
# Oracle安裝完成後再開啟Listener
umask 022
[[email protected] ~]$ source .bash_profile #立即生效
10、安裝oracle
重啟伺服器到圖形介面,並從本地安裝
下載並解壓:
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
[[email protected]~]# unzip /media/linux.x64_11gR2_database_1of2.zip
[[email protected]~]# unzip /media/linux.x64_11gR2_database_2of2.zip
[[email protected]~]# xhost + #使所有使用者都能訪問圖形桌面
[[email protected]~]# su – oracle
開啟linux終端,進去解壓後的目錄
[[email protected]~]$ cd /database
為了防止oracle安裝過程中的中文亂碼問題,設定語言為英文
[[email protected]oracle]$export LANG=US_en
[[email protected]]$ sh runInstaller
[[email protected]~]#./media/database/runInstaller
#輸入接受一些安全問題的郵件地址(什麼也不輸入)
# 選擇安裝資料庫軟體並建立資料,也可以選擇第二項僅安裝資料庫軟體
#選擇伺服器版本
#單例項資料庫
#高階模式安裝
#新增支援的語言
#選擇要安裝的版本
#安裝資料庫目錄
Oracle Base: /hywl/oracle/app
Sofeware Location: /hywl/oracle/app/product/11.1.1/db_1
#資料庫用途
#資料庫名及服務名:都為hywl
#開啟自動記憶體管理
#設定預設編碼為UTF8
#啟用Oracle企業管理控制檯OEM
#選擇資料庫檔案目錄
#自動備份設定:不啟用
#設定資料庫使用者名稱和密碼(oracleroot)
#授權的組
#檢查Oracle一些安裝要求,包都已經安裝,直接忽略
#開始安裝
#安裝即將完成
#解鎖使用者SCOTT, SCOTT的預設口令為tiger。
#彈出“執行配置指令碼”對對話方塊
安裝完成後,會出來一個對話方塊,如上圖,提示使用root使用者執行這兩個指令碼
[[email protected]~]$ /hywl/oracle/app/oraInventory/orainstRoot.sh
[[email protected]~]$ /hywl/oracle/app/product/11.2.0/dbhome_1/root.sh
#啟動資料庫錯誤:
錯誤是由於/dev/shm小於MEMORY_TARGET的大小,或者是/dev/shm根本就沒有掛載,如果同時設定了MEMORY_TARGET和MENORY_MAX_TARGET,那麼/dev/shm至少必須和MEMORY_MAX_TARGET的大小一致。
解決辦法:
vi /etc/fstab
修改如下行的設定
tmpfs /dev/shm tmpfs defaults 0 0
改成
tmpfs /dev/shm tmpfs defaults,size=2G 0 0
儲存退出
重新mount下shm使其生效
mount -o remount /dev/shm
然後檢視記憶體使用情況:df -h
在umount時,可能會出現device is busy。比較簡單的辦法可以重啟電腦。
$sqlplus / as sysdba
$startup 啟動成功了
檢視memory_target的大小
SQL> show parameter memory;
11.Oracle常用命令
[[email protected] ~]# su – oracle
[[email protected] ~]# sqlplus / as sysdba
SQL> startup #啟動資料庫例項
SQL> shutdown immediate #關閉資料庫例項
SQL> select * from tab; #檢視所有表
SQL> select name from v$datafile #檢視資料庫存放目錄
SQL> show parameter service #檢視服務名
SQL> select * from v$instance; #檢視例項名
SQL> select name from v$database; #檢視資料庫名
SQL> select * fromdba_users; #檢視所有使用者資訊
SQL> select username,password from dba_users; #只查詢使用者和密碼
SQL> select * from v$pwfile_users; #檢視具有sysdba許可權的使用者
SQL> select * from dba_ustats; #檢視當前使用者資訊
SQL> select * from user_sys_privs #檢視當前使用者系統許可權
SQL> select * fromuser_role_privs #檢視當前使用者角色
SQL> select * fromdba_sys_privs #檢視指定使用者所具有的系統許可權
SQL> select * from v$version #檢視oracle版本
SQL> select * fromuser_views #檢視檢視資訊
[[email protected] ~]# lsnrctl start #開啟遠端監聽埠
轉載於:https://blog.51cto.com/77jiayuan/1569389