Step1.配置本地yum源,方便安裝依賴包 補充: df命令查看 linux系統磁碟空間以及使用情況,-h代表方便閱讀方式顯示 ;/dev/sr0為光碟機設備名 補充: 將光碟機掛在到 /mnt/cdrom下 補充:本地yum源,enabled為1代表啟用 Redhat修改了redhat.repo之後 ...
Step1.配置本地yum源,方便安裝依賴包
df -h
補充: df命令查看 linux系統磁碟空間以及使用情況,-h代表方便閱讀方式顯示 ;/dev/sr0為光碟機設備名
mkdir cdrom mount /dev/sr0 /mnt/cdrom
補充: 將光碟機掛在到 /mnt/cdrom下
vim /etc/yum.repos.d/redhat.repo
補充:本地yum源,enabled為1代表啟用
Redhat修改了redhat.repo之後, 每次yum操作之後redhat.repo改動都沒了,只會保留註釋行,解決方法重命名自己的repo文件 或者 取消插件自動檢查:
下圖為該插件功能,每次都會檢測並提示沒有註冊到Redhat的yum源,
這時候回去看之前改動的redhat.repo文件,改動地方沒了已經,取消插件自動檢查方法(將enabled由0改為1即可,然後將redhat.repo文件內容重新寫一遍 或者一開始就將文件名隨便重新取一個):
vim /etc/yum/pluginconf.d/subscription-manager.conf
上面準備工作完成就可以準備安裝Oracle依賴了, 測試之前安裝是否成功可以通過以下簡單嘗試:
Root用戶下安裝lrzsz成功之後,rz可以彈出文件選擇框上傳文件 ; 或者yum list 命令彈出一大可安裝,每行最後都有 Server的名字,就是我們之前配置的源名字[Server]
yum install -y lrzsz
Step2.Oracle安裝步驟準備
以下配置需要Root用戶執行
2.1 配置Oracle內核參數信息 補充說明:內核參數設置 Oracle安裝內核參數詳解
vi /etc/sysctl.conf
追加以下內容:
kernel.shmmax = 68719476736 kernel.shmall = 4294967296 fs.file-max = 6815744 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 fs.aio-max-nr = 1048576
執行命令使之生效
sysctl -p
2.2 配置Oracle 資源使用情況 補充說明:資源使用情況解釋 Oracle資源使用情況詳解
vi /etc/security/limits.conf
追加以下內容
oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle hard stack 10240
2.3 配置Oracle 登陸設置 補充說明:Oracle登陸設置解釋
vi /etc/pam.d/login
追加以下內容 (說明:當前機器為64位 所以是lib64目錄下, 32位的機器目錄下 lib下 ,查看機器目錄方式有 getconf LONG_BIT)
session required /lib64/security/pam_limits.so session required pam_limits.so
註意上面的目錄寫錯了會導致linux系統登陸出現問題,雖然沒遇到這樣的問題,但是貼上解決的博客,萬一遇到:解決Oracle安裝後linux登陸出現問題
2.4 同樣Root用戶下修改/etc/profile
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
2.5 添加用戶 (補充說明:為什麼linux下安裝oracle需要創建用戶,以及用戶組呢?個人見解,先說創建Oracle用戶,不可能每次操作資料庫都用root用戶來登陸伺服器,所以肯定要有這樣一個用戶來管理資料庫,處於系統安全、數據完整考慮;第二點,用戶組個人認為兩個組才可以,OINSTALL以及DBA組,OINSTALL軟體安裝組,Oracle軟體的所有者,而DBA組安全性來說就比較重要了,DBA組用戶可以 conn / as sysdba方式通過操作系統認證進而登陸任意資料庫實例,後面會補充介紹;以上都是這四天從零完成測試環境Oracle安裝的發現,有不對之處歡迎討論)
groupadd oinstall groupadd dba useradd -g oinstall -G dba oracle passwd oracle
之後輸入兩次密碼即可完成給oracle用戶設置密碼; 補充說明:useradd 的 –g代表 指定用戶所屬群組,-G 指定用戶所屬附加群組, 也就是說 -g是覆蓋式的 -G是增量式的 ;
比如useradd -g oinstall –g dba XXX 這樣XXX只屬於oinstall組
2.6 配置環境變數以及 設定好安裝目錄
先規劃好打算安裝oracle的路徑,我將oracle安裝到 /data/app/oracle目錄,安裝時候記得查看 磁碟空間大小,不要安裝到一半沒有空間了;
mkdir -p /data/app/oracle chown -R oracle:oinstall /data/app/
補充說明:mkdir -p 需要時創建上級目錄, chown –R 遞歸將目錄擁有者給oinstall組的oracle用戶
設定ORACLE用戶環境變數,當然要切換用戶到ORACLE ,.bash_profile在ORACLE的家目錄下, ls –al可以查看到該文件
su - oracle vi .bash_profile
這裡可以提前設置環境變數:解釋下,ORACLE_SID代表你後面想要創建的資料庫實例名,這裡可以先寫上,文章後面會說有什麼用處; ORACLE_HOME代表你打算安裝ORACLE產品的目錄,這裡寫了後面就要按照這個來,可以先把目錄手動創建起來
export ORACLE_BASE=/data/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/dbhome_1 export ORACLE_SID=olcom114DB export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
修改完成.bash_profile文件,立即生效命令 ; 可以通過 echo $環境變數名字 查看是否起作用了
source .bash_profile
2.7 上傳好Oracle安裝包並完成解壓
Oracle11gR2安裝包Oracle官網就需要登錄才能下載,因為公司內網不知道啥情況,點擊下載連接死活下不了,就去用積分下載,這裡吐槽下某些鏈接,寫的64位,裝到一半報錯什麼libxxso的,才發現是32位的壓縮包;
這裡Oracle64位的安裝包是linux.x64……..這樣的,而linux_11gR2這種是32位的,直接通過fxp工具上傳到伺服器某個目錄下,註意磁碟空間大小,2個文件加起來2G多;
解壓命令: unzip解壓就會解壓到database目錄下
unzip linux.x64_11gR2_database_1of2.zip unzip linux.x64_11gR2_database_2of2.zip
2.8 依賴包的安裝
前面Step1配置過了本地yum源之後,現在安裝這些依賴包應該不存在問題,第一天安裝的時候完全不知道什麼命令查看哪些依賴,厚臉皮去請教一位資料庫工程師,前輩發來一段命令
rpm -q --queryformat "%{NAME}-%{VERSION}-%{RELEASE} (%{ARCH})\n" \ binutils.x86_64 \ compat-libcap1.x86_64 \ compat-libstdc++-33.i686 \ compat-libstdc++-33.x86_64 \ gcc-c++.x86_64 \ glibc.i686 \ glibc.x86_64 \ glibc-devel.i686 \ glibc-devel.x86_64 \ ksh-*.x86_64 \ libaio.i686 \ libaio.x86_64 \ libaio-devel.i686 \ libaio-devel.x86_64 \ libX11.i686 \ libX11.x86_64 \ libXau.i686 \ libXau.x86_64 \ libXi.i686 \ libXi.x86_64 \ libXtst.i686 \ libXtst.x86_64 \ libgcc.i686 \ libgcc.x86_64 \ libstdc++.i686 \ libstdc++.x86_64 \ libstdc++-devel.i686 \ libstdc++-devel.x86_64 \ libxcb.i686 \ libxcb.x86_64 \ make.x86_64 \ net-tools.x86_64 \ smartmontools.x86_64 \ sysstat.x86_64 | grep "not installed\|未安裝"
查看下當前依賴: (補充下,有些依賴通過後面安裝,沒發現需要這樣依賴)
Root用戶下執行下麵的安裝命令:
yum install compat-libcap1 yum install compat-libstdc++-33* yum install compat-libstdc++-33*.i686 yum install gcc* yum install glibc-devel-*.i686 yum install libstdc++-devel*.i686 yum install libaio*.i686 yum install libaio-devel* yum install unixODBC* yum install unixODBC*.i686 yum install ksh
執行完之後,查看還有哪些依賴沒有安裝(這些依賴後面安裝 check dependencies時候沒發現需要,也就沒有繼續安裝)
Step3.圖形化界面安裝Oracle,因為習慣圖形化安裝,下麵的只介紹圖形化安裝,我是先安裝資料庫軟體 (因為伺服器需要VPN連接,VPN經常斷,沒辦法堅持到安裝資料庫軟體建庫一起完成),然後dbca建庫,netca建立監聽,dbca\netca圖形以及靜默安裝方式都有;
3.1 安裝資料庫軟體(圖形化界面)
圖形化安裝工具使用的是Xshell,以Oracle用戶登陸XShell工具,進入到上面2.7的解壓目錄database
./runInstaller
一切正常的話就會彈出來Oracle安裝界面,也會出現檢查不通過,臨時空間、交換空間不足,這兩個我沒有遇到就自行解決啦;
安裝過程第一個問題就出現了:
解決方案:
vi /etc/hosts
修改添加當前主機名,主機名通過 hostname 命令查看,由於localhost.localdomain我覺得沒啥用途,就全刪掉改成主機名了
再次啟動安裝命令 ./runInstaller 不警告,通過;
簡單通過 LICECap 將之前安裝過程中圖片做成動畫形式,簡單記錄下安裝說明:
1. 將安全更新的√取消 ;
2. 這裡暫時只安裝資料庫軟體,不創建實例(伺服器VPN不穩定,資料庫實例創建時間稍長,所以只安裝資料庫軟體);
3.選擇單實例資料庫;
4. 語言只選擇了英語;
5. 這裡安裝的是企業版 ;
6. ORACLE_BASE、ORACLE_HOME 在前面2.6環境變數寫好了,這裡指定ORACLE_BASE為 /data/app/oracle 以及 ORACLE_HOME為/data/app/oracle/product/dbhome_1 ;
7. Inventory目錄為清單目錄,這最好不要在ORACLE_BASE目錄下,安裝過程中的日誌都在清單目錄裡面,下麵還指定了ORACLE清單組,oinstall就可以了;
8. 指定DBA組為之前添加的dba組,OSOPER組為之前的oinstall組就可以;
9.依賴檢查,這裡如果按照之前yum全部安裝了,仍然會包缺少依賴,咨詢過相關DBA說最好依賴版本相同,但是安裝時候gcc版本安裝時候 gcc如果不小心安裝就會導致系統宕機、崩潰等各種問題;
如果確認之前2.8步驟的yum install都執行成功,那點擊右上角的Ignore All再點擊下一步;(沒執行2.9的yum install可能會出現一種情況,生成的bin目錄裡面lsnrctl可能為空,我第一次安裝就有這樣的問題)
10.安裝產品步驟時,快完成時候會跳出來提示框,Root用戶下執行兩個腳本即可,截圖也在下麵有;
11.回到安裝界面,點擊OK,至此Oracle軟體安裝完成。
Step4.Oracle用戶 圖形化 dbca建庫、netca建立監聽
環境變數如果之前設置正確,xshell工具 Oracle用戶登錄後 輸入 dbca ,會彈出如下界面進行建庫操作:
Create a database 創建資料庫 ; 資料庫實例名SID 設置,和前面環境變數里的ORACLE_SID一致 (這裡有篇文章介紹 環境變數ORACLE_SID的作用 關於環境變數ORACLE_SID簡單談下); 後面有很多具體配置,
Enterprise Manger (企業管理,就會有個類似控制台的東西),SGA、PGA等等,具體自行百度設置; 這裡有個不太明白的地方: 前面會先設置一遍 All account的密碼,後面建庫完畢彈出來的Password Management打開發現密碼都是空的, 這裡重新設置一遍Sys用戶和Sysadmin等用戶,點擊OK,這樣就建庫完畢 ( 點擊OK之前再開打密碼管理器,發現還是空白, 但是後面登陸時候密碼確實是設置上的,這塊希望有人知道能評論告訴我,)
環境變數設置正確的話,xshell工具 Oracle用戶登錄後 輸入 netcat ,會彈出如下界面進行建庫操作:
建立監聽的目的是讓其他機器可通過PLSQL等工具連接上本機的資料庫實例, 具體監聽這裡有篇資料mark Oracle 監聽器 Listener
查看監聽器是否啟動可以通過如下兩種方式:
netstat -tnlp |grep 1521
或者
lsnrctl status
Step5.到這裡建庫,監聽建立都完畢可以測試下,按照以上安裝步驟都是沒有問題的,本機安裝了兩次,伺服器也裝了一次,有什麼問題後續會補充;
本機測試連接(後面會有介紹 本機Oracle用戶登錄SYS用戶哪怕不要密碼 密碼錯誤都可以登陸):
sqlplus /nolog conn / as sysdba select * from v$instance;
可能登陸會有 connected to an idle instance ,啟動下資料庫實例 startup 即可
外部機器測試連接(通過PLSQL測試連接) 資料庫訪問這麼寫:192.168.88.114:1521/olcom114DB , 記得Oracle所在機器開放監聽埠;
Step6. 圖形化安裝過程中遇到的幾個錯誤 以及解決方案
問題一. 安裝Oracle軟體過程指定清單目錄時候,報錯 Unable to create a new central Inventory at the specified location.
問題說明:安裝的時候沒註意到清單所在目錄/data/oracle/oraInventory下麵有其他文件,解決方案把該文件夾下麵文件清掉或者換個文件夾;
另外,該目錄最好不要在ORACLE_BASE目錄下
問題二. 安裝Oracle軟體檢查依賴時候,交換空間不足
/root目錄下(目錄隨意) dd if=/dev/zero of=swapfree bs=32k count=65515 mkswap swapfree swapon swapfree free /etc/fstab編輯開啟自啟動交換分區 /root/swapfree swap swap defaults 0 0
之後Check Again就可以通過了
問題三.Oracle dbca建庫過程中 Tns could not resolve the connect identifier specified
說明DBCA建庫為啥會報這種錯,一般我以為只有PLSQL連接時候才報錯, 這種錯誤我這裡出現情況是設置資料庫用戶密碼中包含了@ 符號,把密碼稍微改動下 去掉 @ 試試
Step7.靜默方式dbca netca建庫
至於為什麼採用dbca 靜默方式建庫呢? 因為伺服器需要用VPN連接不太穩定, 好幾次建庫等進度條的時候VPN斷了,嘗試了多次VPN死心時候,採用靜默dbca建庫;
dbca命令在安裝完Oracle軟體之後就可以使用,配置文件 dbca.rsp到 database/responseFile/dbca.rsp複製過來就可以
[GENERAL] RESPONSEFILE_VERSION = "11.2.0" OPERATION_TYPE = "createDatabase" [CREATEDATABASE] GDBNAME = "olcom114DB" SID = "olcom114DB" TEMPLATENAME = "General_Purpose.dbc" SYSPASSWORD = "你的SYS用戶密碼" SYSTEMPASSWORD = "你的SYSTEM用戶密碼" DATAFILEDESTINATION = /data/app/oracle/oradata/ CHARACTERSET = "ZHS16GBK" NATIONALCHARACTERSET= "UTF8" TOTALMEMORY = "2048"
這是最基礎的配置,全局資料庫名、實例名、字元集、數據文件存儲位置等
Oracle用戶下執行命令,執行成功就可以在伺服器上使用SQLPLUS連接Oracle
dbca -silent -responseFile /data/oracle/dbca.rsp
netca建立監聽才可以通過其他機器的PLSQL連接本機的ORACLE資料庫
netca /silent /responseFile /data/database/responseFile/netca.rsp
Step8.好了 文章感覺第一次寫這麼長的,謝謝你這麼好看,還看完這篇,希望能幫到你們,也希望懂的大兄弟告訴下我,之前那塊密碼安裝時候沒顯示的問題。點我回到問題的地方