換了好幾個系統終於還是利用centos安裝oralce成功了,這裡我也參考了網上的好多資料以及oracle的官方文檔
1、下載oracle,我這裡選擇的是11gr2版本,下載下來後有兩個檔案,利用unzip命令解壓到相同目錄
2、在磁碟中建立oracle的安裝目錄
mkdir -p /oracle/oraclebase #這是oracle的安裝基目錄
mkdir -p /oracle/oraInventory #這是一些檔案日誌的目錄
3、建立oracle使用者和組
這裡說以下為什麼要建立使用者和組,因為資料庫存放一些重要的資料,並不是誰想訪問就可以訪問的,必須對使用者的許可權進行管理,只有使用者加入了當前組,並賦予其許可權才能夠對資料庫進行操作。
groupadd oinstall #建立使用者組oinstall
groupadd dba #建立使用者組dba
useradd -g oinstall -g dba -m oracle #建立使用者oracle,並加入oinstall和dba使用者組
passwd oracle #設定使用者oracle的登入密碼,根據提示輸入兩次密碼
chown -R oracle:oinstall /oracle/oraclebase #設定目錄所有者為oinstall使用者組的oracle使用者
chown -R oracle:oinstall /oracle/oraInventory
4、修改作業系統名稱
vi /etc/redhat-release #編輯
修改為:redhat-7
這裡我也不大清楚,因為oracle官方認證的系統是redhat、oracle linux、suse等等,最後選擇centos來安裝oracle,也是因為centos是redhat的一個發行版,我想相容還是可以的。
5、修改核心參數
這一步修改主要是因為,在oracle的官方文檔中有對oracle資料庫安裝配置的最低要求,因此需要修改一下
vi /etc/sysctl.conf #編輯,
#在最後添加以下代碼
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
fs.file-max = 6815744 #設定最大開啟檔案數
fs.aio-max-nr = 1048576
kernel.shmall = 2097152 #共用記憶體的總量,8G記憶體設定:2097152*4k/1024/1024
kernel.shmmax = 2147483648 #最大共用記憶體的段大小
kernel.shmmni = 4096 #整個系統共用記憶體端的最大數
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500 #可使用的IPv4連接埠範圍
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default= 262144
net.core.wmem_max= 1048576
儲存退出後要進行如下操作以使配置生效
sysctl -p #使配置立即生效
6、對oracle使用者佈建限制
vi /etc/security/limits.conf #在末尾添加以下代碼
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
註:突然想起來,加入要是vi編輯檔案內容較多的話,可以進入命令模式輸入“$”來跳到文尾。
7、配置使用者的環境變數
vi /home/oracle/.bash_profile
#在最後添加以下代碼
export ORACLE_BASE=/data/oracle #oracle資料庫安裝目錄
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 #oracle資料庫路徑
export ORACLE_SID=orcl #oracle啟動資料庫執行個體名
export ORACLE_TERM=xterm #xterm視窗模式安裝
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH #添加系統內容變數
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib #添加系統內容變數
export #防止安裝過程出現亂碼
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK #設定Oracle用戶端字元集,必須與Oracle安裝時設定的字元集保持一致,如:ZHS16GBK,否則出現資料匯入匯出中文亂碼問題
儲存退出以後,輸入如下命令使配置生效
source .bash_profile #使設定立刻生效
8、關閉SELINUX
vi /etc/selinux/config
#編輯設定檔
#注釋掉SELINUX=enforcing
# 注釋掉SELINUXTYPE=targeted
SELINUX=disabled #增加
9、配置防火牆
由於我安裝的系統是centos 7 的Live版本,所以有好多東西沒有,我再添加完如下代碼之後,沒有找到iptables restart命令,然後重啟了下系統,反正最後也沒什麼影響,我猜我的這個版本中沒有防火牆。網上代碼如下:
vi /etc/sysconfig/iptables #編輯防火牆設定檔,添加以下內容
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 1521 -j ACCEPT
/etc/init.d/iptables restart #重啟防火牆使配置生效
10、檢查依賴關係
這裡我檢查了兩步,首先是按照官方文檔檢查了一遍,在官方文檔中我參考的是redhat-7所有需要的東西,如下:
binutils-2.23.52.0.1-12.el7.x86_64
compat-libcap1-1.10-3.el7.x86_64
gcc-4.8.2-3.el7.x86_64
gcc-c++-4.8.2-3.el7.x86_64
glibc-2.17-36.el7.i686
glibc-2.17-36.el7.x86_64
glibc-devel-2.17-36.el7.i686
glibc-devel-2.17-36.el7.x86_64
ksh
libaio-0.3.109-9.el7.i686
libaio-0.3.109-9.el7.x86_64
libaio-devel-0.3.109-9.el7.i686
libaio-devel-0.3.109-9.el7.x86_64
libgcc-4.8.2-3.el7.i686
libgcc-4.8.2-3.el7.x86_64
libstdc++-4.8.2-3.el7.i686
libstdc++-4.8.2-3.el7.x86_64
libstdc++-devel-4.8.2-3.el7.i686
libstdc++-devel-4.8.2-3.el7.x86_64
libXi-1.7.2-1.el7.i686
libXi-1.7.2-1.el7.x86_64
libXtst-1.2.2-1.el7.i686
libXtst-1.2.2-1.el7.x86_64
make-3.82-19.el7.x86_64
sysstat-10.1.5-1.el7.x86_64
檢查的時候就利用如下命令即可,直接線上安裝,假如安裝了的肯定會提示,否則就安裝了
yum install binutils #以第一個包為例子
接下來順便將我參考的一篇文章檢測以來關係的方法也用了下,這條命令有萬用字元,安裝的package比以上更多,輻射範圍更廣,保證萬無一失麼。
yum install gcc* gcc-* gcc-c++-* glibc-devel-* glibc-headers-* compat-libstdc* libstdc* elfutils-libelf-devel* libaio-devel* sysstat* unixODBC-* pdksh-*
這個有一個pdksh可能提示沒有此包之類的,不過沒關係,在第一步的時候已經檢測安裝了ksh
11、接下來進行圖形介面的安裝,首先要切換到上邊建立的使用者oracle下,最好logout後在登陸。
12、cd進入上邊解壓的oracle安裝檔案目錄database中
注意:由於上邊的那個database的owner是root,oracle沒有許可權訪問,可以利用如下命令,將此檔案夾的所有者該為oracle.
su - root #切換到root使用者
chown -R oracle /.../database
13、運行如下命令啟動安裝介面
export LANG=en_US #設定編碼,防止圖形介面亂碼
./runInstaller
注意:此處可能會提醒DISPLAY未通過是怎麼的,我忽略的,貌似沒影響
接下來就進入一步一步的安裝步驟中,很簡單的,按部就班來就可以了,選擇部分按預設的就可以
在接下來的安裝當中可能會提示有錯誤之類的email的忽略繼續,
然後可能還會有主機名稱與Ip沒映射的利用如下命令修改hosts檔案就可以
vi /etc/hosts
#進入之後將你的主機名稱加入到127.0.0.1的對應中,注意是主機名稱,不是你的使用者名稱
14、我在安裝過程中還遇到了兩個其他的錯誤是關於makefile,和一個警告,但是我忽略後,安裝完畢以後,也沒發現有問題,將錯誤碼貼到這裡,留待以後解決
install makfile error
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'install' of makefile '/oracle/oraclebase/product/11.2.0/db_1/ctx/lib/ins_ctx.mk'. See '/oracle/oraInventory/logs/installActions2014-12-22_05-24-27PM.log' for details.
Exception Severity: 1
INFO: Calling Action unixActions10.2.0.3.0 make
registerOnly = false
installMakePath = /usr/bin/make
installMakeFileName = /oracle/oraclebase/product/11.2.0/db_1/racg/lib/ins_has.mk
installTarget = racg_install
undoMakeFileName =
installArguments = ORACLE_HOME=/oracle/oraclebase/product/11.2.0/db_1
logFile = /oracle/oraclebase/product/11.2.0/db_1/install/make.log
undoTarget =
progMsg = Linking RACG Executables
INFO: Linking RACG Executables
INFO: Linking RACG Executables
INFO: The output of this make operation is also available at: '/oracle/oraclebase/product/11.2.0/db_1/install/make.log'
INFO:
agent nmhs makefile error
INFO: Exception thrown from action: make
Exception Name: MakefileException
Exception String: Error in invoking target 'agent nmhs' of makefile '/oracle/oraclebase/product/11.2.0/db_1/sysman/lib/ins_emagent.mk'. See '/oracle/oraInventory/logs/installActions2014-12-22_05-24-27PM.log' for details.
Exception Severity: 1
INFO: Calling Action unixActions10.2.0.3.0 make
registerOnly = false
installMakePath = /usr/bin/make
installMakeFileName = /oracle/oraclebase/product/11.2.0/db_1/rdbms/lib/ins_rdbms.mk
installTarget = all_no_orcl
undoMakeFileName =
installArguments = ORACLE_HOME=/oracle/oraclebase/product/11.2.0/db_1
logFile = /oracle/oraclebase/product/11.2.0/db_1/install/make.log
undoTarget =
progMsg = Linking RDBMS Executables
INFO: Linking RDBMS Executables
INFO: Linking RDBMS Executables
INFO: The output of this make operation is also available at: '/oracle/oraclebase/product/11.2.0/db_1/install/make.log'
INFO: