版權(quán)聲明:本文為北島向南(www.zhouie.cn)原創(chuàng)文章孟辑,未經(jīng)博主允許不得轉(zhuǎn)載哎甲。 https://blog.csdn.net/jave_f/article/details/88779915
寫在前面
貼上與這次安裝相關(guān)文件、安裝包的鏈接:
- 實體機(客戶端)
鏈接:https://pan.baidu.com/s/13lpEv04jb1AL41yFRkU6kQ
提取碼:dqa0
- 虛擬機(服務(wù)器端)
鏈接:https://pan.baidu.com/s/1AYuwHc2ECMawgc8sEf-H7Q
提取碼:jel2
如遇鏈接失效饲嗽,Mail To
nanzhouieATqq.com
!
一炭玫、實驗內(nèi)容
- 安裝
virtualbox
虛擬機(我更喜歡的是VMware
); - 在虛擬機上安裝
Oracle Linux
貌虾; - 在
Oracle Linux
上安裝Oracle 11g
吞加; - 配置虛擬機的網(wǎng)絡(luò),數(shù)據(jù)庫服務(wù)器的監(jiān)聽尽狠,
TNS
衔憨,使得可以遠(yuǎn)程訪問數(shù)據(jù)庫服務(wù)器。 - 采用遠(yuǎn)程登錄方式袄膏,使用
ssh
登錄數(shù)據(jù)庫服務(wù)器践图,進行數(shù)據(jù)庫實例管理。 - 采用遠(yuǎn)程訪問方式沉馆,使用
i*sqlplus
或者第三方管理軟件登錄服務(wù)器码党,進行數(shù)據(jù)庫實例管理。 - 建立
HR
的模式(建議使用官方腳本)斥黑。
二揖盘、實驗前期準(zhǔn)備
1.軟件目錄
名稱 | 版本號 |
---|---|
Vmware虛擬機 | 15.0.0-full-10134415-64bit |
linux_11gR2_database_1of2 | 11.2.0.1.0 - 64bit |
Putty.exe | Release 0.70-64bit |
Toad for oracle | 12.8.0.49 -32bit |
Oracle_11gR2_client | 11g Release2 (11.2)-32bit |
Oracle Linux文件(DOC-1002902.ova) | Oracle Linux x64 |
2.準(zhǔn)備一些配置文件、腳本文件
- 在Oracle服務(wù)器端建立
HR(Human Resource)
模式所需的腳本執(zhí)行文件锌奴; - Oracle客戶端配置
TNS
服務(wù)所需要的tnsname.ora
兽狭、listener.ora
文件。
ps:以上這些安裝缨叫、配置椭符、腳本文件在上面我分享的百度云鏈接文件中都能找到。
三耻姥、實驗方案(具體步驟)
(一)在虛擬機上安裝Oracle Linux
1.在虛擬機中導(dǎo)入老師提供的 DOC-1002902.ova
文件销钝,由于實驗室32位PC機的原因,導(dǎo)入過程總是以失敗結(jié)束琐簇;因此改選64位PC機(配載VM虛擬機)
來操作蒸健。
2.在VM虛擬機成功安裝
Oracle linux
(我的賬戶登錄密碼 (二)在Linux上安裝Oracle 11g R2(服務(wù)器端)
1. 前期準(zhǔn)備
1.1 硬件環(huán)境監(jiān)測
Content | Instruction |
---|---|
檢查物理內(nèi)存 | grep MemTotal /proc/meminfo |
查看交換分區(qū) | grep SwapTotal /proc/meminfo |
查看當(dāng)前內(nèi)存使用情況 | free |
PS:這一類指令可以有很多,但其實只要在之前導(dǎo)入虛擬機文件過程沒有什么異常盯捌,不是很有必要去了解這些硬件環(huán)境信息淳衙,那么這一步可以跳過。
1.2 檢查各種補丁包饺著、函數(shù)依賴包
- 方法:通過上網(wǎng)查找到需要的函數(shù)依賴包有以下這些:
binutils-2.17.50.0.6 compat-libstdc++-33-3.2.3 compat-libstdc++-33-3.2.3 (32 bit) elfutils-libelf-0.125 elfutils-libelf-devel-0.125 gcc-4.1.2 gcc-c++-4.1.2 glibc-2.5-24 glibc-2.5-24 (32 bit) glibc-common-2.5 glibc-devel-2.5 glibc-devel-2.5 (32 bit) glibc-headers-2.5 ksh-20060214 libaio-0.3.106 libaio-0.3.106 (32 bit) libaio-devel-0.3.106 libaio-devel-0.3.106 (32 bit) libgcc-4.1.2 libgcc-4.1.2 (32 bit) libstdc++-4.1.2 libstdc++-4.1.2 (32 bit) libstdc++-devel 4.1.2 make-3.81 sysstat-7.0.2
- 通過類似重復(fù)以下的操作箫攀,借助root用戶終端
yum search/install
命令將這些未安裝的依賴包全部安裝到服務(wù)端。
- 然后幼衰,再使用
yum
快速安裝oracle預(yù)裝環(huán)境——yum install oracle-rdbms-server-11gR2-preinstall
1.3 修改用戶環(huán)境配置等參數(shù)文件
- 通過
vi .bash_profile
命令進入編輯界面靴跛,點擊i
進入insert模式
,就可以寫入以下數(shù)據(jù)了渡嚣,寫完數(shù)據(jù)后梢睛,點擊ESC
退出insert模式
敲入:wq
保存本次修改并回到終端。#!/bin/bash ORACLE_BASE=/u01/app/oracle ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 ORACLE_SID=prod #這個位置填寫的是Service_name
- 修改
/etc/hosts
,增加ip地址
和主機名
的對應(yīng)關(guān)系识椰,按照和上面同樣的方法绝葡,添加下面這條:192.168.216.128 docker.oracleworld.com #ip地址 hostname
注意:如果出現(xiàn)
其他IP地址
與hostname
的對應(yīng)關(guān)系,應(yīng)當(dāng)在前面加上#
注釋掉或者直接刪掉裤唠。
- 同樣的方法挤牛,通過終端
vi mk_dir.sh
添入以下數(shù)據(jù)mkdir -p /u01/app/oraInventory chmod -R 775 /u01/app/oraInventory mkdir -p /u01/app/oracle mkdir /u01/app/oracle/cfgtoollogs chown -R oracle:oinstall /u01 chmod -R 775 /u01/app/oracle mkdir -p /u01/app/oracle/product/11.2.0/db_1 chown -Roracle:oinstall/u01/app/oracle/product/11.2.0/db_1 chmod -R 775 /u01/app/oracle/product/11.2.0/db_1
1.4 切換到Oracle用戶
去設(shè)置里面找到users
,解鎖并修改已經(jīng)生成的oracle
用戶密碼种蘸,再切換用戶登錄到oracle
下墓赴。
2. 安裝Oracle 11g
在終端輸入命令:unzip oracle11g 11.2.0.4
兩個安裝文件(也可以手動合并到同一個文件夾下),進入安裝文件中的目錄database
航瞭,運行命令: ./runInstaller
同時诫硕,如果由于環(huán)境配置的原因,發(fā)現(xiàn)隨后
安裝界面出現(xiàn)亂碼
刊侯,那么最好在執(zhí)行安裝之前添上這樣一條語句:export LANG=en_US_UTF-8
章办。在隨后出現(xiàn)的安裝界面中,依次選擇如下:
- 注意:過程中可能省去了一些安裝界面(默認(rèn)
Next
即可)
- 這里不填email等直接
next
滨彻,出現(xiàn)彈窗點擊Yes
藕届;
- 在接下來的界面中,依次選
install software only
亭饵。
-
選擇單實例類型的數(shù)據(jù)庫
-
選擇oracle的語言休偶,選擇英文
-
數(shù)據(jù)庫類型選擇企業(yè)版
- 這里注意查看
Oracle_Base
路徑和Oracle_home
路徑,必須保證和用戶的初始化參數(shù)文件一致
- 設(shè)置
INVENTORY DIRECTORY
- 檢查
oracle
用戶所屬的組
-
preinstall
檢查階段辜羊,監(jiān)測oracle
所依賴的軟件包踏兜,重新安裝缺失的軟件包词顾,如果仍然有錯誤,那么全部忽略即可
- 最后一步監(jiān)測
oracle
的情況
- 久違的安裝界面
安裝到這個步驟碱妆,基本上問題不多了,copying files
階段時肉盹,root
模式下開一個終端,進入安裝目錄下的sysman/lib
疹尾,編輯ins_emagent.mk
文件上忍。把$(MK_EMAGENT_NMECTL)
替換成$(MK_EMAGENT_NMECTL) -lnnz11
同時這個過程中有可能會有一個提示對話框,然后按照指定路徑及說明方法運行兩個腳本纳本。
打開終端睡雇,通過su – root
切換到root
用戶,再通過bash
命令依次執(zhí)行對應(yīng)目錄的兩個腳本饮醇,然后再來這個彈窗界面點擊OK
即可。
- 隨后秕豫,就可以點擊
next
朴艰,出現(xiàn)如下界面,表示在虛擬機這邊安裝服務(wù)端的Oracle 11g
就已經(jīng)成功了
3. 服務(wù)端NETCA創(chuàng)建配置監(jiān)聽程序
3.1 執(zhí)行netca指令
3.2 接下來的界面彈窗中直接默認(rèn)Next
在選擇TCP/IP端口號時混移,可能會出現(xiàn)一個彈窗提示:默認(rèn)的1521端口可能被占用祠墅。通過查找并沒有發(fā)現(xiàn)被占用問題,因此選擇Yes繼續(xù)歌径。
4. 建立一個數(shù)據(jù)庫實例DBCA建庫
4.1 設(shè)置數(shù)據(jù)庫名和SID
4.2 不啟用OEM
4.3 設(shè)置密碼
4.4 不需修改毁嗦、直接next
4.5 不啟用快速恢復(fù)區(qū)、不啟用歸檔
4.6 不需修改回铛、直接next
至此狗准,Oracle服務(wù)端實例數(shù)據(jù)庫創(chuàng)建完畢。
5. 服務(wù)端啟用ssh服務(wù)
(三)在主機上安裝Oracle 11g Client(客戶端)
檢查ssh服務(wù)是否正常
下載putty.exe
茵肃,打開以后腔长,安裝下圖填入相對應(yīng)信息(虛擬機IP地址可以在網(wǎng)絡(luò)設(shè)置中找到,同時验残,建議虛擬機端網(wǎng)絡(luò)連接方式選擇僅主機模式)進行測試(確保虛擬機處于開啟狀態(tài))捞附。
(四)安裝Oracle客戶端并配置本地網(wǎng)絡(luò)服務(wù)監(jiān)聽
1. 點擊setup.exe啟動安裝
-
安裝過程中,除修改安裝路徑外您没,其余直接默認(rèn)Next即可鸟召。
-
選擇管理員選項
2. 配置前的一些準(zhǔn)備
- 將之前準(zhǔn)備好的
listener.ora
、tnsnames.ora
文件(兩個文件里面的內(nèi)容如下所示)放到如下所示目錄下氨鹏。
-
同時欧募,在環(huán)境變量中添加以下系統(tǒng)變量。
-
在ssh服務(wù)控制終端執(zhí)行如下(開啟數(shù)據(jù)庫喻犁、開啟監(jiān)聽)
3. 本地網(wǎng)絡(luò)服務(wù)名配置
在所有程序中找到Net Configuration Assistant
槽片,進入配置界面操作如下何缓。在測試連接過程中更改登錄如果忘了數(shù)據(jù)庫服務(wù)端密碼(以sys
用戶為例),則需要重新給sys
設(shè)置密碼(詳見后面的實驗問題及解決辦法)还栓。
(五)第三方軟件Toad for Oracle連接數(shù)據(jù)庫
1. TNS檢測
進入cmd
測試如下碌廓,說明數(shù)據(jù)庫監(jiān)聽配置無誤
2. 使用Toad連接
打開Toad for Oracle
中的toad.exe
啟動,輸入數(shù)據(jù)庫服務(wù)端用戶名以及密碼后成功連接會出現(xiàn)如下的工作界面剩盒。
(六)建立HR的模式(服務(wù)器端進行)
1. 準(zhǔn)備腳本文件
在如下所示目錄中谷婆,將已準(zhǔn)備好的腳本文件粘貼過來
2. 執(zhí)行腳本文件
進入數(shù)據(jù)庫層面,按照下面流程執(zhí)行hr_main.sql
這個腳本文件設(shè)置參數(shù)辽聊,就可以解鎖HR用戶并構(gòu)建HR模式
纪挎,且數(shù)據(jù)表中都有初始樣例數(shù)據(jù)。
四跟匆、實驗出現(xiàn)的問題及解決辦法
- 第一次嘗試安裝時异袄,總是在
Linking Text File
出失敗,且界面卡死在那里玛臂。
- 解決辦法:
虛擬機重新啟動并通過恢復(fù)快照這一特性重新進行安裝烤蜕,主要在對那些依賴包的安裝過程要尤為注意,一個一個一次檢查確保已安裝迹冤,雖然方法很笨拙讽营,但至少不會出錯。
同時泡徙,在Prerequisite Checks
階段忽略所有錯誤繼續(xù)下一步橱鹏,隨后完成安裝。
- 整個過程中經(jīng)常會出現(xiàn)各種類型的錯誤,下面列出一些我遇到的這類問題
錯誤類型 | 錯誤原因 | 解決方案 |
---|---|---|
ORA-12162 |
TNS:net service name is incorrectly specified |
給出ORACLE_SID(可賦臨時值或是去host文件添加參數(shù))堪藐,重新嘗試登錄數(shù)據(jù)庫服務(wù)端 |
TNS-12545 |
Connect failed because target host or object does not exist |
服務(wù)端root模式下修改host和listener.ora文件(即host文件里添上一條“IP地址 主機名”莉兰,listener文件里將host賦為修改后的主機名) |
ORA-01078、LRM-00109 |
Failure in processing system parameters |
將$ORACLE_BASE/admin/數(shù)據(jù)庫名稱/pfile 目錄下的init.ora.\******** 形式的文件copy到$ORACLE_HOME/dbs 目錄下 initoracle.ora 即可 |
ORA-12514 |
TNS 監(jiān)聽程序當(dāng)前無法識別連接描述符中請求服務(wù) |
listener.ora中添加:(SID_DESC = (GLOBAL_DBNAME=全局?jǐn)?shù)據(jù)庫名) (ORACLE_HOME =依照相對應(yīng)的路徑來填) (SID_NAME = 數(shù)據(jù)庫服務(wù)名) ) |
ORA-12154 |
TNS無法解析指定的連接標(biāo)識符 |
重新進行配置網(wǎng)絡(luò)礁竞,在服務(wù)端查詢此數(shù)據(jù)庫服務(wù)下的服務(wù)名贮勃,并重新檢查配置,填寫相對應(yīng)虛擬機的IP地址苏章,對于賬號寂嘉、口令登陸的問題,需要去sysdba用戶下去設(shè)置枫绅。 |
- 用戶忘記了數(shù)據(jù)庫服務(wù)端的口令泉孩,導(dǎo)致在本地客戶端進行配置網(wǎng)絡(luò)服務(wù)時總是出現(xiàn)口令錯誤的提示
- 解決辦法:按照下面的操作步驟進行,這樣使用修改后的用戶名和口令就可以測試成功了并淋。
只能選擇用戶狀態(tài)是open
的用戶進行重新設(shè)置口令的處理
參考文章
- ?Oracle linux安裝Oracle 11G
- HR Schema
- Oracle 11g中執(zhí)行Execute的時候報異常ORA-01031的解決辦法
- Oracle PL/SQL DBA 編程實踐基礎(chǔ)
- Oracle數(shù)據(jù)庫任何用戶密碼都能以sysdba角色登入
- 淺析Oracle PL/SQL 學(xué)習(xí)(部分)
- Oracle 11gR2安裝亂碼解決方案
最后一點說明
這是我有史以來寫過的最長最長的一篇安裝配置教程了寓搬,大部分的內(nèi)容步驟都還是大三選修所記錄的實驗報告內(nèi)容。這段時間需要準(zhǔn)備數(shù)據(jù)庫知識的復(fù)習(xí)县耽,這才重新拾起來句喷,大體按照上面的步驟依次給重現(xiàn)了镣典。讓我意外的是,當(dāng)時竟然沒有po出一份安裝配置教程放網(wǎng)上唾琼。所以兄春,這次趕緊加了把勁,整理了這篇锡溯。
這里面有些地方可能比較混亂赶舆,一是因為圖片量太大了,可能會有一些偏差祭饭,還有就是我得承認(rèn)文中有用了幾張別的地方的圖片芜茵;二是因為這次的整個安裝配置過程相當(dāng)繁瑣,很多地方可能會出現(xiàn)報錯倡蝙、失敗等等九串,我還記得當(dāng)年選修這門課第一個實驗就是弄這個,當(dāng)時Linux指令等一些知識還不夠嫻熟寺鸥,好像前后花了三天時間才完事蒸辆。
最后,我想說的就是析既,教程寫的再完美,實際去操作的時候谆奥,每個人可能都難免會出現(xiàn)這樣那樣的問題眼坏,放在這篇來講,出現(xiàn)最多的就是形如 “ORA-××××××
” 的類似問題酸些,出了問題并不可怕宰译,去某度和谷歌搜一下“ORA-××××××
”,只要不是特別棘手魄懂,基本上都能解決沿侈。
貼張圖!J欣酢缀拭!