因業務遷移,需重新部署oracle DB,此文僅作部署記錄,部署文檔主要參考官方文檔http://docs.oracle.com/cd/E11882_01/install.112/e47689/toc.htm
概要:
主機:OpenStack 云主機
系統:Completing a Minimal Linux centos 6.8 x86_64
DB:Oracle Database 11g Release 2(11.2)
內存:2Gb
硬盤:/dev/vda 20Gb
/dev/vdb 30Gb
swap:0
一 系統要求:
Oracle DB是使用圖形界面進行安裝的,這也就要求,系統必須支持圖形界面。
注:此處做下說明,圖形界面安裝并不是必須的。ORACLE 同樣支持命令行安裝,只是貌似不能自定義安裝
對于Minimal安裝的Linux 默認是沒有圖形界面的,使用如下命令安裝X Window System
#yum groupinstall -y "Desktop" "X Window System"
其次要能遠程連接到系統,這就需要openssh-server。如下命令確認,沒有就安裝
#rpm -qa | grep ssh #yum install openssh-server
確認系統防火墻允許ssh端口通過
使用如下命令,可遠程調用圖形界面
#ssh -X name@example.com
二 硬件要求:
系統必須滿足以下最低硬件要求
1. 內存:
最低: 1 GB of RAM
推薦: 2 GB of RAM or more
通過如下命令確認內存大小
#grep MemTotal /proc/meminfo
注:下表說明了RAM和swap space 之間的關系
RAM | Swap Space |
---|---|
1 GB < RAM < 2 GB | 1.5 倍RAM大小 |
2 GB < RAM < 16 GB | 等于 RAM 實際大小 |
RAM >16 GB | 16 GB |
通過如下命令確認Swap空間
#grep SwapTotal /proc/meminfo
查看可用內存和Swap
#free
自動內存管理:
Oracle 11G開始,自動內存管理特性需要更多的共享內存(/dev/shm)和文件描述符。共享內存的大小要大于每個實例的memory_max_target和memory_target的參數。如果參數設置為非零或一個不正確的大小,將導致oracle啟動時報錯ora-00845。
如下命令確認共享可用容量:
#df -h /dev/shm/
如遇ora-00845錯誤,增加/dev/shm掛載點大小。
例如:
#mount -t tmpfs shmfs -o size=7g /dev/shm
在/etc/fstab添加條目:
shmfs /dev/shm tmpfs size=7g 0
2. 系統架構:
確認系統可以運行oracle
uname -m
3. 磁盤空間:
/tmp:1Gb空閑空間
查看可用空間
df -h /tmp
注:如空閑空間不滿足要求,可配置oracle用戶的TMP 和TMPDIR 環境變量。
The following tables describe the disk space requirements for software files and data files for each installation type on Linux x86-64:
Installation Type | Requirement for Software Files (GB) |
---|---|
Enterprise Edition | 4.7 |
Standard Edition | 4.6 |
Installation Type | Disk Space for Data Files (GB) |
---|---|
Enterprise Edition | 1.7 |
Standard Edition | 1.5 |
如下命令確認可用磁盤空間
#df -h
顯示:
oracle 11G R2 需要不低于1024*768的分辨率
確認系統版本:
#cat /proc/version 或 #lsb_release
確認內核:
#uame -r
2.6.32-573.el6.x86_64
依賴包:
Oracle Linux 6, Red Hat Enterprise Linux 6, and Asianux Server 4 | The following packages (or later versions) must be installed:binutils-2.20.51.0.2-5.11.el6 (x86_64) compat-libcap1-1.10-1 (x86_64) compat-libstdc++-33-3.2.3-69.el6 (x86_64) compat-libstdc++-33-3.2.3-69.el6.i686 gcc-4.4.4-13.el6 (x86_64) gcc-c++-4.4.4-13.el6 (x86_64) glibc-2.12-1.7.el6 (i686) glibc-2.12-1.7.el6 (x86_64) glibc-devel-2.12-1.7.el6 (x86_64) glibc-devel-2.12-1.7.el6.i686 ksh libgcc-4.4.4-13.el6 (i686) libgcc-4.4.4-13.el6 (x86_64) libstdc++-4.4.4-13.el6 (x86_64) libstdc++-4.4.4-13.el6.i686 libstdc++-devel-4.4.4-13.el6 (x86_64) libstdc++-devel-4.4.4-13.el6.i686 libaio-0.3.107-10.el6 (x86_64) libaio-0.3.107-10.el6.i686 libaio-devel-0.3.107-10.el6 (x86_64) libaio-devel-0.3.107-10.el6.i686 make-3.81-19.el6 sysstat-9.0.4-11.el6 (x86_64) |
如下命令確認是否安裝依賴包:
#rpm -q package_name
三 準備:
創建swap分區:
因私有云主機系統默認未分配swap,需手工建立swap
1.創建2G大小的swap分區
#dd if=/dev/zero of=/mnt/swap bs=1M count=2048
2.設置swap分區文件
#mkswap /mnt/swap
3.啟用swap分區
#swapon /mnt/swap
4.設置開機掛載swap分區
#echo "/mnt/swap swap swap defaults 0 0" >> /etc/fstab
安裝依賴包:
sudo yum install binutils \ compat-libcap1 \ compat-libstdc++-33 \ compat-libstdc++-33.i686 \ gcc \ gcc-c++ \ glibc \ glibc-devel \ glibc-devel.i686 \ ksh \ libgcc \ libstdc++ \ libstdc++.i686 \ libstdc++-devel \ libstdc++-devel.i686 \ libaio \ libaio.i686 \ libaio-devel \ libaio-devel.i686 \ make \ sysstat \ unixODBC.i686 \ unixODBC-devel
調整內核參數:
以下kernel 值是滿足oracle運行的最小值,如在生產系統,建議調整這些值優化系統。關于內核參數信息,請查看操作系統文件
1.編輯/etc/sysctl.conf 文件,修改以下參數值
fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax = 4294967295 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
2.更新kernel 當前值
#/sbin/sysctl -p
3.確認kernel 值更新
#/sbin/sysctl -a
4.更新kernel 參數值后,重啟系統或運行命令,讓/etc/sysctl.conf 的修改立即生效
集群共享磁盤驗證 cvuqdisk包,這里使用本地目錄做為數據目錄,對cvuqdisk不做說明
主機名解析:
1.查看主機名
#cat /etc/sysconfig/network
NETWORKING=yes HOSTNAME=dev-oracle.novalocal NOZEROCONF=yes
2.編輯/etc/hosts 文件,增加如下一行
127.0.0.1 dev-oracle.novalocal
3.確認主機名解析成功
#ping -c 3 dev-oracle.novalocal
PING dev-oracle.novalocal (127.0.0.1) 56(84) bytes of data. 64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.109 ms 64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.109 ms 64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.054 ms
關閉transparent_hugepage
linux 6 transparent_hugepage是默認啟用的。內存動態分配的問題,可能導致內存分配延遲。因此oracle建議禁用transparent_hugepage,避免性能問題。
Red Hat Linux kernels:
#cat /sys/kernel/mm/redhat_transparent_hugepage/enabled
Other kernels
#cat /sys/kernel/mm/transparent_hugepage/enabled
如下的輸出,代表啟用
[always] madvise never
禁用transparent_hugepage
在kernel 引導文件/etc/grub.conf 添加一下條目
transparent_hugepage=never
如:
title CentOS (2.6.32-642.4.2.el6.x86_64) root (hd0,0) kernel /boot/vmlinuz-2.6.32-642.4.2.el6.x86_64 ro \ root=UUID=4b816de7-ec12-431c-a571-5f3d828bf0e1 rd_NO_LUKS rd_NO_LVM \ LANG=en_US.UTF-8 rd_NO_MD console=ttyS0,115200 SYSFONT=latarcyrheb-sun16 \ crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet \ transparent_hugepage=never initrd /boot/initramfs-2.6.32-642.4.2.el6.x86_64.img
重啟系統生效
創建系統用戶和組:
角色權限分離:
Oracle建議創建一個擁有軟件安裝權限的所有者。
創建單獨的用戶和獨立的操作提同權限的組
dba
第一次在系統上安裝Oracle 數據庫,必須創建此組。此組辨別操作系統用戶有管理數據庫的權限(sysdba privilege)
oper
這是一個可選組。如果想創建一個有限的數據庫管理權限,創建此組。
創建角色分離的組和用戶:
創建oinstall組
#groupadd oinstall
創建dba組
#groupadd -g 502 dba
創建per組
groupadd -g 503 oper
創建軟件所有者用戶
1. 創建一個Oracle用戶
#useradd -u 502 -g oinstall -G dba,oper oracle
2. 設置用戶密碼
#passwd oracle
檢查安裝用戶的資源限制:
參考以下推薦范圍值
Resource Shell Limit | Resource | Soft Limit | Hard Limit |
---|---|---|---|
Open file descriptors | nofile | at least 1024 | at least 65536 |
Number of processes available to a single user | nproc | at least 2047 | at least 16384 |
Size of the stack segment of the process | stack | at least 10240 KB | at least 10240 KB, and at most 32768 KB |
1.使用安裝用戶登錄
2.檢查文件描述符、軟硬限制。確保結果在推薦范圍內
$ ulimit -Sn 1024 $ ulimit -Hn 65536
3.檢查用戶進程數限制。確保結果在推薦范圍內
$ ulimit -Su 2047 $ ulimit -Hu 16384
4.檢查堆棧設置。確保在推薦范圍內
$ ulimit -Ss 10240 $ ulimit -Hs 32768
編輯 /etc/security/limits.conf 在文件尾增加如下參數,可調限制
* soft nofile 65535 * hard nofile 65535 oracle soft nproc 2047 oracle hard nproc 16384 oracle soft stack 10240
創建目錄
使用root用戶登錄
創建Oracle 根目錄
這里是用戶目錄,根據用戶名設定的,如果你的用戶名為ora,那就將oracle替換成ora
#mkdir -p /data/app/oracle #chown -R oracle:oinstall /data/app/oracle #chmod -R 775 /data/app/oracle
創建數據庫文件目錄(用于自動存儲)
#mkdir /data/oradata #chown oracle:oinstall /data/oradata #chmod 775 /data/oradata
創建恢復文件目錄(快速恢復,用于自動存儲)
#mkdir /data/fast_recovery_area #chown oracle:oinstall /data/fast_recovery_area #chmod 775 /data/fast_recovery_area
設置語言
$export LANG=en_US.UTF-8
使用英文語言安裝,以防出現亂碼問題
或下載中文字庫zysong.ttf 放到/usr/share/fonts/zh_CN/TrueType 目錄下,即可使用中文語言安裝
$export LANG=zh_CN.UTF-8
設置用戶環境
此環境變量可在數據庫安裝完成并建立數據庫實例后設置
ORACLE_BASE:為數據庫用戶根目錄
ORACLE_HOME:為實際數據庫軟件安裝目錄
ORACLE_SID:為實際數據庫實例名稱
$vim ~/.bash_profile
PATH=$PATH:$HOME/bin export PATH umask 022 export ORACLE_BASE=/data/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export PATH=$PATH:$ORACLE_HOME/bin export ORACLE_SID=orcl
四 安裝oracle:
通過使用ssh -X 開啟遠程窗口調用支持以oracle用戶連接服務器
執行數據庫安裝腳本
$./runInstaller
Starting Oracle Universal Installer... Checking Temp space: must be greater than 120 MB. Actual 10608 MB Passed Checking swap space: must be greater than 150 MB. Actual 2047 MB Passed Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2016-09-12_08-22-04PM. Please wait ...
客戶端會彈出圖形安裝界面,按照圖形界面提示,一步步安裝。
注意,安裝方式有兩種選擇
一種是安裝并配置數據庫,另一種是僅安裝數據庫。本案例選擇默認安裝并配置數據庫
兩種安裝方式沒有太大區別,圖形界面均有說明
選擇僅安裝數據庫,安裝后可執行 `dbca` 命令調用圖形界面創建數據庫,`netca`命令調用圖形界面創建監聽,具體可參見此鏈接后半部分http://dengqsintyt.iteye.com/blog/1991930/
取消勾選,下一步 沒有購買oracle支持,就全部為空
yes 繼續
默認 創建并配置數據庫
選擇服務器類
單實例模式
高級安裝模式
默認語言
默認選擇企業版
Oracle Base: 選擇oracle 根目錄
Software Location:選擇軟件安裝目錄
默認為 通用/事物處理
數據庫名及服務名。配置用戶環境時的ORACLE_SID 要與此相同
開啟自動內存管理
設置編碼為UTF8
啟用Oracle 企業管理控制臺OEM
選擇數據庫文件目錄,選擇之前建立的數據庫文件目錄/data/oradata
自動備份設置,生產環境建議開啟,選擇之前建立的快速恢復目錄/data/fast_recovery_area
設置數據庫用戶和密碼,可為每個用戶設置獨立的密碼,也可選擇下面的Use the same password for all accounts 使用統一的密碼
選擇授權組,一般默認即可,如果之前創建了oper組,則OSOPER 應該選擇oper組
檢查安裝要求,確認相關包已安裝,可選擇“Ignore All“直接忽略,否則不能繼續。這里顯示缺少包是因為版本的問題
安裝結束后,會彈出如下窗口,點擊紅色圈可重新設置用戶密碼
最后會彈出如下窗口,使用root 用戶執行兩個腳本
# /bin/sh /data/app/oraInventory/orainstRoot.sh
Changing permissions of /data/app/oraInventory. Adding read,write permissions for group. Removing read,write,execute permissions for world. Changing groupname of /data/app/oraInventory to oinstall. The execution of the script is complete.
# /bin/sh /data/app/oracle/product/11.2.0/dbhome_2/root.sh
Running Oracle 11g root.sh script... The following environment variables are set as: ORACLE_OWNER= oracle ORACLE_HOME= /data/app/oracle/product/11.2.0/dbhome_2 Enter the full pathname of the local bin directory: [/usr/local/bin]: Copying dbhome to /usr/local/bin ... Copying oraenv to /usr/local/bin ... Copying coraenv to /usr/local/bin ... Creating /etc/oratab file... Entries will be added to the /etc/oratab file as needed by Database Configuration Assistant when a database is created Finished running generic part of root.sh script. Now product-specific root actions will be performed. Finished product-specific root actions.
安裝到此全部結束
如何將oracle加入系統服務,可參考之前一篇文檔http://morrowind.blog.51cto.com/1181631/1696145
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。