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