之前為某某大學後勤部門開發了一套幹部考核系統,我也參與了開發。後來公司用此作為案例,接到了一些其他學校的考核系統的開發專案。原來系統是用mysql作為資料庫,如今接到的一所學校的考核系統,要求用oracle資料庫。所以公司要求我來為客戶那邊安裝oracle資料庫。之前我對mysql的安裝有所瞭解,而對liunx上oracle安裝從來沒接觸過。通過兩天的不斷的找資料後,最終安裝成功,其中也多虧了同事的指點,讓安裝變得順利許多。
在此,我寫下此文,希望對大家有所幫助。
Oracle安裝前,依賴包的檢測
這個就不用多說什麼了,直接的上程式碼:
rpm -q binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel
elfutils-libelf-devel expat gcc gcc-c++ glibc glibc-common glibc-devel
glibc-headers libaio libaio-devel libgcc libstdc++ libstdc++-devel make
pdksh sysstat unixODBC unixODBC-devel | grep "not installed"複製程式碼
執行以上程式碼後,如果顯示某個包名,說明該包沒有被安裝。
安裝以上依賴包需要系統的安裝盤或系統映象。
使用者那邊把系統的映象檔案copy到了系統根目錄上,我通過mount掛載了映象:
mount -o loop -t iso9660 /ISONAME.iso /media/cdrom/複製程式碼
然後在/media/cdrom
裡面就有相應的依賴包,我是在裡面的Server目錄下面
找到了所有的依賴包。
安裝依賴需要執行以下命令:
rpm -ivh <依賴包名>複製程式碼
安裝依賴包是個麻煩的過程,我是一個個安裝的,而且在安裝某個包的時候有時會提示你先安裝其他的包,非常的麻煩。不知道有沒有什麼簡單方便的方式進行操作。如果有誰有更好的方法,希望能評論告訴
我。
沒有圖形,就靜默吧
不管圖形還是靜默都需要做的事
- 建立群組
groupadd oinstall
groupadd dba複製程式碼
- 建立oracle使用者並使用其屬於剛建立的群組
useradd –m –g oinstall –G dba oracle複製程式碼
-
檢查oracle是否屬於組oinstall 和 dba
id oracle
正確的顯示:uid=1001(oracle) gid=1000(oinstall) groups=1001(dba)
-
給oracle設定密碼
passwd oracle
-
建立安裝oracle的目錄並賦相應的許可權
mkdir -p /u01/oracle
chown -R oracle:oinstall /u01
chmod -R 775 /u01複製程式碼
-
核心引數的配置(網上尋找到的,這一步不是很明白其作用),使用
vi
或vim
(其他編輯器也行)修改/ect/sysctl.conf
檔案,一般都有,沒有就建立一個,對它做如下的修改或新增:fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
輸入命令:
sysctl -p
使其立即生效 -
配置oracle使用者的環境變數
切換到oracle使用者下:
su -l oracle
,然後輸入:vim ~/.bash_profile
,在其中新增如下環境變數export ORACLE_HOME=/u01/oracle/product/11.2/db_1 export ORACLE_BASE=/u01/oracle export ORACLE_SID=orcl export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib複製程式碼
source ~/.bash_profile
使其立即生效
Oracle的下載,解壓,安裝
下載oracle並進行解壓: 這裡提供一下我使用的oracle, 點選此處下載
建立目錄mkdir /oinstall
,我把下載下來的oracle放到了/oinstall
下,再通過以下命令解壓:
unzip p10404530_112030_Linux-x86-64_1of7.zip
unzip p10404530_112030_Linux-x86-64_2of7.zip複製程式碼
由於靜默(silent)安裝oracle,需要配置靜默響應檔案,在/oinstall/database/response
下用三個檔案,其中一個檔案就是用來安裝使用,複製一份出來修改其內容。 這是一種方法,若不配置響應檔案,則需要設定響應變數。我用了第二種方式 ,程式碼如下:
./runInstaller -silent -force
FROM_LOCATION=/oinstall/database/stage/products.xml
oracle.install.option=INSTALL_DB_SWONLY
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/home/oracle/oraInventory
ORACLE_HOME=/u01/oracle/product/11.2/db_1
ORACLE_HOME_NAME="OraDb11g_Home1"
ORACLE_BASE=/u01/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.isCustomInstall=false
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true複製程式碼
為了方便使用,通過vim create_db.sh
,新增上述程式碼,給該文件許可權修改為可執行。
執行需要數分鐘的時間,結束時,提示安裝成功並且會給出兩個檔案的路徑,分別執行這兩個檔案。
靜默安裝監聽
複製/oinstall/database/response
下netca.rsp
:
cd /oinstall/database/response
cp netca.rsp ../myNetca.rsp
cd ..
vim myNetca.rsp複製程式碼
vim MyNetca.rsp
修改檔案,以下為需要修改的專案:
NSTALL_TYPE=""custom"" 安裝的型別
LISTENER_NUMBER=1 監聽器數量
LISTENER_NAMES={"LISTENER"} 監聽器的名稱列表
LISTENER_PROTOCOLS={"TCP;1521"} 監聽器使用的通訊協議列表
LISTENER_START=""LISTENER"" 監聽器啟動的名稱複製程式碼
然後執行:
$ORACLE_HOME/bin/netca /silent /responsefile /oinstall/database/response/myNetca.rsp複製程式碼
建立oracle例項庫
複製/oinstall/database/response
下dbca.rsp
:
cd /oinstall/database/response
cp dbca.rsp ../myDbca.rsp
cd ..
vim myDbca.rsp複製程式碼
vim myDbca.rsp
修改檔案,以下為需要修改的專案:
# RESPONSEFILE_VERSION = "11.2.0"
# OPERATION_TYPE = "createDatabase"
# [CREATEDATABASE]
# GDBNAME = "orcl"
# SID = "orcl"
# TEMPLATENAME = "General_Purpose.dbc"
#
# [CONFIGUREDATABASE]
# EMCONFIGURATION = "LOCAL"
# SYSMANPASSWORD = "123456"
# DBSNMPPASSWORD = "123456"複製程式碼
然後執行:
$ORACLE_HOME/bin/dbca -silent -responsefile /oinstall/database/response/dbca.rsp複製程式碼
到這裡,ORACLE的安裝差不多了。但我用本機訪問伺服器上oracle時,連線不上,出現監聽超時的錯誤,以為是伺服器上防火牆沒有開放1521埠,但檢視後發現1521埠已經加上了。經過幾翻折騰才知道,是連線伺服器的網路上1521埠未開放,問題總算解決了。
問題總會一個接一個的,在向表插入資料時,發現中文存在無法識別的情況。
在網上找了一堆的資料,最後通過閱讀這篇部落格解決了問題。
主要原因是:當前的系統的語言環境和環境變數,與oracle的字符集不一致。
可以通過以下步驟修改
su -l oracle
vim ~/.bash_profile複製程式碼
檔案bash_profile中修改或新增以下內容:
NLS_LANG = AMERICAN _ AMERICA. ZHS16GBK複製程式碼
然後修改sudo vim /etc/sysconfig/i18n
LANG="en_US.UTF-8"
SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="latarcyrheb-sun16"複製程式碼
檢視oracle的字符集:
sqlplus / as sysdba
select userenv(`language`) from dual;複製程式碼
總結
Oracle在Liunx下安裝是件麻煩的事,由於是沒有圖形介面使用靜默安裝,貌似不會出錯停止,還會繼續安裝,然後就一堆的問題,oracle沒法用還得重新安裝,這種情況下oracle安裝後的Log是一定要看的,看看在安裝過程中有什麼錯誤資訊。但也發現,oracle靜默安裝的速度確實是相當的快。與我在WIN上安裝Oracle速度根本不是一個級別的。