1.安裝說明
使用到的工具:
軟件名稱 | 版本 | 軟件包 |
系統 | centOS6.8 | CentOS-6.8-x86_64-bin-DVD1.iso |
數據庫 | ORACLE11g | linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip |
ssh工具 | Xshell5 | |
文件傳輸工具 | Xftp | |
圖形化顯示工具 | Xming | Xming-6-9-0-31-setup.exe |
安裝用戶:
我安裝時使用到的是普通用戶myos,並不是大部分教程當中使用到的oracle.
[root@localhost myos]# id myos uid=500(myos) gid=501(oinstall) groups=501(oinstall),502(dba)
2. 切換到root用戶
因為我是在自己搭建的虛擬機上進行的操作,所以在普通用戶和root之間切換用的是su命令,在實際項目開發過程中,推薦使用sudo命令來切換,這樣利於系統安全性管理。
3. 修改操作系統核心參數
[root@localhost myos]# vi /etc/security/limits.conf 添加以下內容: oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536
4. 修改/etc/pam.d/login 文件
[root@localhost myos]# vi /etc/pam.d/login 添加如下內容 session required /lib/security/pam_limits.so session required pam_limits.so
5. 修改內核
[root@localhost myos]# vi /etc/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 使文件生效 [root@localhost myos]# sysctl -p
6. 編輯/etc/profile
[root@localhost myos]# vi /etc/profile 添加如下內容: if [ $USER = "myos" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
7. 創建oinstall、dba組 將myos用戶加入組 修改並設定oracle用戶密碼
[root@localhost myos]# groupadd oinstall [root@localhost myos]# groupadd dba [root@localhost myos]# usermod -g oinstall -G dba myos [root@localhost myos]# id myos uid=500(myos) gid=501(oinstall) groups=501(oinstall),502(dba)
8. 創建目錄並修改所屬組及權限
[root@localhost myos]# mkdir application/oracle [root@localhost myos]# mkdir application/oracle/oracle [root@localhost myos]# mkdir application/oracle/oradata [root@localhost myos]# mkdir application/oracle/oracle/product 修改權限 [root@localhost myos]# chown -R myos:oinstall application/oracle [root@localhost myos]# chmod -R 777 application/oracle 查看信息 [root@localhost myos]# id myos uid=500(myos) gid=501(oinstall) groups=501(oinstall),502(dba)
9. 切換到myos用戶
[root@localhost oracle]# su myos
10. 添加環境變量
[myos@localhost oracle]$ vi ~/.bash_profile 添加如下內容 export ORACLE_BASE=/home/myos/application/oracle/oracle export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
11. 修改服務器的DISPLAY環境變量,使得oracle的安裝界面可以顯示在客戶機上
[myos@localhost oracle]$ echo $DISPLAY [myos@localhost oracle]$ DISPLAY="192.168.1.106:0.0" [myos@localhost oracle]$ export DISPLAY [myos@localhost oracle]$ echo $DISPLAY 192.168.1.106:0.0
12. 上傳文件並解壓
[myos@localhost application]$ unzip linux.x64_11gR2_database_1of2.zip [myos@localhost application]$ unzip linux.x64_11gR2_database_2of2.zip
13. 安裝
這時候在windows下打開Xming,執行安裝的時候,圖形安裝界面就會在windows下顯示了。
[myos@localhost application]$ cd database [myos@localhost database]$ ./runInstaller Starting Oracle Universal Installer... Checking Temp space: must be greater than 120 MB. Actual 8386 MB Passed Checking swap space: must be greater than 150 MB. Actual 2047 MB Passed Checking monitor: must be configured to display at least 256 colors. Actual 16777216 Passed Preparing to launch Oracle Universal Installer from /tmp/OraInstall2018-04-05_05-27-15PM. Please wait ...[myos@localhost database]$
14. 彈出圖形安裝界面,安裝數據庫軟件和實例
點擊下一步
點擊下一步
實際開發中,服務器沒有圖形界面,我們選擇服務類安裝,下一步
不需要集群,選擇單實例安裝,下一步
下一步
選擇語言,下一步
下一步
選擇目錄,下一步
下一步
下一步
內存
字符集
下一步
下一步
下一步
設置密碼
下一步
先決條件檢查,缺少依賴包
這時候打開一個終端,以root身份登錄,安裝依賴包
yum install binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc-2.5 glibc-common glibc-devel glibc-headers ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat unixODBC unixODBC-devel
再次檢查
有三個沒裝成功,不想裝了,忽略不檢查,下一步(不安裝不知道以后使用的過程中會出現什么問題)
finish配置完成
接下來就是等待安裝了,這個時候你可以趁機上個廁所。。。
安裝成功之后,會彈出這個界面:
設置密碼
然后會讓你以root身份登錄終端,執行以下腳本。
執行腳本:
[root@localhost myos]su root [root@localhost myos]# cd /home/myos/application/oracle/oraInventory [root@localhost oraInventory]# sh orainstRoot.sh [root@localhost oraInventory]# cd /home/myos/application/oracle/oracle/product/11.2.0/dbhome_1 [root@localhost dbhome_1]# sh root.sh
安裝完成
上面安裝成功之后,服務監聽和本地網絡服務應該是就配置好了,我實際安裝的過程中都會提示服務名稱已經存在。如果沒有的話,我們可以按照下面的步驟進行配置。
15. 配置監聽
打開終端,輸入:
[root@localhost dbhome_1]# netca
Oracle Net Services Configuration:
彈出界面:
創建監聽服務(充當oracle服務器,讓別的oracle客戶端連接本oracle服務器)
16. 配置本地網絡服務
配置本地網絡服務名(充當oracle客戶端,連接別的oracle服務器)
我填的是自己服務器的名稱,不知道填其他服務器的ip可不可以
進行連接測試
連接成功
到此就配置完畢了。
17. 查看監聽狀態
[myos@localhost ~]$ lsnrctl status LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 05-APR-2018 18:06:52 Copyright (c) 1991, 2009, Oracle. All rights reserved. Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production Start Date 05-APR-2018 17:41:44 Uptime 0 days 0 hr. 25 min. 8 sec Trace Level off Security ON: Local OS Authentication SNMP OFF Listener Parameter File /home/myos/application/oracle/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora Listener Log File home/myos/application/oracle/oracle/diag/tnslsnr/localhost/listener/alert/log.xml Listening Endpoints Summary... (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521))) (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=1521))) Services Summary... Service "orcl" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... Service "orclXDB" has 1 instance(s). Instance "orcl", status READY, has 1 handler(s) for this service... The command completed successfully
其中:
1、Linux oracle數據庫listener.ora存放路徑 /home/myos/application/oracle/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora 2、Linux oracle數據庫tnsnames.ora存放路徑 /home/myos/application/oracle/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora 3、ORACLE啟動監聽器 (1)切換至普通安裝用戶(我的是myos) su - myos (2)啟動監聽器 lsnrctl start (3)停止監聽器 lsnrctl stop
18. 啟動測試oracle
[myos@localhost ~]$ sqlplus /nolog SQL*Plus: Release 11.2.0.1.0 Production on Thu Apr 5 18:12:26 2018 Copyright (c) 1982, 2009, Oracle. All rights reserved. SQL>
19. Linux開放1521端口允許網絡連接Oracle Listener
症狀:
(1)TCP/IP連接是通的。可以用ping 命令測試。
(2)服務器上Oracle Listener已經啟動。
lsnrctl status 查看listener狀態
lsnrctl start 啟動Oracle listener
(3)客戶端得到的錯誤信息通常是:ORA-12170: TNS:連接超時
這時,我們基本可以肯定是服務器沒有開放1521端口(假設你用默認設置)
可配置防火牆開放1521端口:
[myos@localhost ~]$ vi /etc/sysconfig/iptables
添加如下內容
-A INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT
重啟防火牆
[root@localhost myos]# service iptables restart
iptables: Setting chains to policy ACCEPT: filter [ OK ]
iptables: Flushing firewall rules: [ OK ]
iptables: Unloading modules: [ OK ]
iptables: Applying firewall rules: [ OK ]
本地連接測試通過
接下來就可以創建用戶進行操作了。
20. linux下創建oracle用戶表空間
就是在已有的數據庫實例上創建一個新的帳號,訪問一些新的表
操作步驟如下:
(1)登錄linux,以oracle用戶登錄(如果是root用戶登錄的,登錄后用 su - oracle命令切換成oracle用戶)
(2)以sysdba方式來打開sqlplus,命令如下: sqlplus "/as sysdba"
(3)查看我們常規將用戶表空間放置位置:執行如下sql:
select name from v$datafile
(4)創建用戶表空間:
CREATE TABLESPACE NOTIFYDB DATAFILE '/home/oracle/app/oradata/orcl/scsdb.dbf' SIZE 200M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;
(5)創建用戶,指定密碼和上邊創建的用戶表空間
CREATE USER scs IDENTIFIED BY scs DEFAULT TABLESPACE NOTIFYDB;
(6)賦予權限
grant connect,resource to scs;
grant unlimited tablespace to scs;
grant create database link to scs;
grant select any sequence,create materialized view to scs;
--經過以上操作,我們就可以使用scs/scs登錄指定的實例,創建我們自己的表了
21. 啟動數據庫實例
重啟了服務器之后,查看監聽狀態,發現數據庫實例沒有啟動
執行如下命令就可以啟動了。
[myos@localhost ~]$ sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on Fri Apr 6 04:08:29 2018 Copyright (c) 1982, 2009, Oracle. All rights reserved. Connected to an idle instance. SQL> startup ORACLE instance started. Total System Global Area 776646656 bytes Fixed Size 2217384 bytes Variable Size 473959000 bytes Database Buffers 293601280 bytes Redo Buffers 6868992 bytes Database mounted. Database opened.
安裝的過程中參考了不少教程,版權意識我們是要有的,但是由於參考的太多,各種來源我也混淆了,所以就這樣寫吧:
來源:各種安裝過oracle寫過教程的網友。