換了好幾個系統終於還是利用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=/oracle/oraclebase #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: