在計算機信息安全領域中,數據庫系統無疑有着舉足輕重的地位,例如,微軟的SQL Server、IBM公司的DB2,以及甲骨文公司的Oracle、MySQL等,都是知名的數據庫管理軟件。其中,Oracle屬於很是安全、完善的大型數據庫管理軟件,在電信、銀行、證券等大型應用場合擁有着絕對的優點。今天就來搭建並介紹Oracle的安裝和基本的使用。Oracle能夠安裝到Windows和Linux系統上,但企業更多采用在Linux上安裝,接下來我就以Redhat6.5爲例,安裝Oracle 11g數據庫html
安裝Oracle的準備工做linux
1. 系統及配置要求sql
(1)物理內存,很多於1GB數據庫
(2)交換分區,爲物理內存的1.5-2倍vim
(3)磁盤空間,很多於8GB瀏覽器
(4)擁有固定的FQDN名稱,安裝後不建議再更改安全
[root@oracle ~]# cat /etc/redhat-release #查看Linux系統 Red Hat Enterprise Linux Server release 6.5 (Santiago) [root@oracle ~]# grep MemTotal /proc/meminfo #查看物理內存 MemTotal: 3909824 kB [root@oracle ~]# grep SwapTotal /proc/meminfo #查看交換分區 SwapTotal: 6097144 kB [root@oracle ~]# hostname #規劃好IP地址和主機名,建議不要更改 oracle [root@oracle ~]# vim /etc/hosts 192.168.10.1 oracle [root@oracle ~]# df -hT /tmp #建議爲Oracle至少準備8GB硬盤空間 Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root ext4 18G 4.3G 13G 27% /
2. 軟件環境要求bash
Oracle的安裝過程一般在圖形桌面進行,所以須要在已經安裝有GNOME桌面環境的服務器,必要的軟件開發工具也必不可少的
服務器
還須要安裝pdksh包,可是Redhat6.5光盤中的ksh存在兼容性衝突,因此須要單獨下載安裝pdksh-5.2.14-37.el5_8.1.x86_64.rpm,使用rpm安裝便可。session
[root@oracle ~]# yum -y install compat-libstdc* [root@oracle ~]# yum -y install elfutils-libelf-devel* [root@oracle ~]# yum -y install libaio-devel [root@oracle ~]# yum -y install numactl-devel [root@oracle ~]# yum -y install unixODBC* [root@oracle ~]# rpm -ivh pdksh-5.2.14-37.el5_8.1.x86_64.rpm
3. 調整內核參數
內核參數調總體如今/etc/sysctl.conf文件中。主要包括對內存調度、端口範圍、打開文件數、I/O請求等相關的一些設置,相關數值不可低於安裝要求。修改完畢後經過執行sysctl –p命令使新配置當即生效。
[root@oracle ~]# vim /etc/sysctl.conf #net.bridge.bridge-nf-call-ip6tables = 0 #此三行加註釋 #net.bridge.bridge-nf-call-iptables = 0 #net.bridge.bridge-nf-call-arptables = 0 fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 #此行默認已有,數值大於此值便可 kernel.shmmax = 536870912 #此行默認已有,數值大於此值便可 kernel.shmmni = 4096 kernel.sem = 250 32000 100 128 net.ipv4.ip_local_port_range = 9000 65500 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048586 [root@oracle ~]# sysctl -p #從新加載配置文件
各參數解釋以下:
fs.aio-max-nr:
此參數限制併發未完成的請求,應該設置避免I/O子系統故障。
fs.file-max:
該參數決定了系統中所容許的文件句柄最大數目,文件句柄設置表明linux系統中能夠打開的文件的數量。
kernel.shmall:
該參數控制可使用的共享內存的總頁數。Linux共享內存頁大小爲4KB,共享內存段的大小都是共享內存頁大小的整數倍。一個共享內存段的最大大小是16G,那麼須要共享內存頁數是16GB/4KB=16777216KB /4KB=4194304(頁),也就是64Bit系統下16GB物理內存,設置kernel.shmall = 4194304才符合要求.
kernel.shmmax:
是核心參數中最重要的參數之一,用於定義單個共享內存段的最大值。設置應該足夠大,設置的太低可能會致使須要建立多個共享內存段,這樣可能致使系統性能的降低。至於致使系統降低的主要緣由爲在實例啓動以及ServerProcess建立的時候,多個小的共享內存段可能會致使當時輕微的系統性能的下降(在啓動的時候須要去建立多個虛擬地址段,在進程建立的時候要讓進程對多個段進行「識別」,會有一些影響),可是其餘時候都不會有影響。
官方建議值:
32位linux系統:可取最大值爲4GB(4294967296bytes)-1byte,即4294967295。建議值爲多於內存的一半,因此若是是32爲系統,通常可取值爲4294967295。
64位linux系統:可取的最大值爲物理內存值-1byte,建議值爲多於物理內存的一半,例如,若是爲12GB物理內存,可取12*1024*1024*1024-1=12884901887。
kernel.shmmni:
該參數是共享內存段的最大數量。shmmni缺省值4096,通常確定是夠用了。
kernel.sem:
以kernel.sem = 250 32000 100 128爲例:
250是參數semmsl的值,表示一個信號量集合中可以包含的信號量最大數目。
32000是參數semmns的值,表示系統內可容許的信號量最大數目。
100是參數semopm的值,表示單個semopm()調用在一個信號量集合上能夠執行的操做數量。
128是參數semmni的值,表示系統信號量集合總數。
net.ipv4.ip_local_port_range:
表示應用程序可以使用的IPv4端口範圍。
net.core.rmem_default:
表示套接字接收緩衝區大小的缺省值。
net.core.rmem_max:
表示套接字接收緩衝區大小的最大值。
net.core.wmem_default:
表示套接字發送緩衝區大小的缺省值。
net.core.wmem_max:
表示套接字發送緩衝區大小的最大值。
4. oracle用戶環境要求
Oracle須要固定的運行用戶oracle,安裝組oinstall,管理組dba,這些帳號須要提早創建好。此外用來存放oracle程序及數據庫文件的基本目錄/opt/oracle也應該提早建立好。
[root@oracle ~]# groupadd oinstall #建立安裝組 [root@oracle ~]# groupadd dba #建立管理組 [root@oracle ~]# useradd -g oinstall -G dba oracle #建立運行用戶 [root@oracle ~]# passwd oracle #設置密碼 更改用戶 oracle 的密碼 。 新的 密碼: 從新輸入新的 密碼: passwd: 全部的身份驗證令牌已經成功更新。 [root@oracle ~]# mkdir /opt/oracle #創建基本目錄 [root@oracle ~]# chown -R oracle:oinstall /opt/oracle/ [root@oracle ~]# chmod -R 755 /opt/oracle/ [root@oracle ~]# sudo mkdir /opt/tmp #建立安裝時使用的臨時文件夾 [root@oracle ~]# sudo chmod a+wr /opt/tmp/ [root@oracle ~]# vim ~oracle/.bash_profile #調整Oracle用戶的環境配置 umask 022 export ORACLE_BASE=/opt/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2/db_1 export ORACLE_SID=orcl export LANG=zh_CN.UTF-8 export NLS_LANG="AMERICAN_AMERICA".ZHS16GBK export PATH=$ORACLE_HOME/bin:$PATH export DISPLAY=:0.0
5. Oracle用戶資源限制要求
[root@oracle ~]# vim /etc/pam.d/login #啓用pam_limits認證模塊 session required /lib/security/pam_limits.so session required pam_limits.so [root@oracle ~]# vim /etc/security/limits.conf #進程會話限制 oracle soft nproc 2047 #進程數軟限制 oracle hard nproc 16384 #進程數硬限制 oracle soft nofile 1024 #文件數軟限制 oracle hard nofile 65536 #文件數硬限制 oracle soft stack 10240 #Oracle軟堆棧限制 [root@oracle ~]# vim /etc/profile #添加如下內容 if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit -p 16384 ulimit -n 65536 else ulimit -u 16384 -n 65536 fi fi
配置oracle用戶資源限制,不配置也不會影響oracle數據庫的成功安裝,可是考慮到如有糟糕的sql語句對服務器資源的無限佔用,致使長時間對用戶請求無響應,建議提早限制oracle用戶資源。
6. 關閉防火牆和selinux
[root@oracle ~]# vim /etc/sysconfig/selinux SELINUX=disabled [root@oracle ~]# service iptables stop
7. 解決中文亂碼問題
在RHEL6.5中安裝Oracle11g時,中文安裝界面亂碼,解決方法:
在Linux命令提示符下執行如下命令,把字體庫安裝到相應位置便可
[root@oracle ~]# mkdir -p /usr/share/fonts/zh_CN/TrueType [root@oracle ~]# cp zysong.ttf /usr/share/fonts/zh_CN/TrueType/ [root@oracle ~]# chmod o+r /usr/share/fonts/zh_CN/TrueType/zysong.ttf
Oracle的安裝過程
1. 下載Oracle11g軟件包到系統/home/oracle中
2. 執行安裝程序
xhost + oracle@localhost,表示容許用戶oracle從本機訪問,或者執行xhost + 表示取消全部限制
[oracle@oracle ~]$ ls linux.x64_11gR2_database_1of2.zip p8670579_112010_LINUX.zip linux.x64_11gR2_database_2of2.zip zysong.ttf [oracle@oracle ~]$ unzip linux.x64_11gR2_database_1of2.zip [oracle@oracle ~]$ unzip linux.x64_11gR2_database_2of2.zip [oracle@oracle ~]$ ls database/ doc install response rpm runInstaller sshsetup stage welcome.html [root@oracle ~]# xhost + #取消全部限制,容許oracle用戶使用圖形終端,此操做須要在圖形環境執行 access control disabled, clients can connect from any host [root@oracle ~]# su - oracle [oracle@oracle ~]$ cd database/ [oracle@oracle database]$ ./runInstaller //打開圖形化的Oracle安裝程序 正在啓動 Oracle Universal Installer... 檢查臨時空間: 必須大於 120 MB。 實際爲 7730 MB 經過 檢查交換空間: 必須大於 150 MB。 實際爲 2047 MB 經過 檢查監視器: 監視器配置至少必須顯示 256 種顏色。 實際爲 16777216 經過 準備從如下地址啓動 Oracle Universal Installer /tmp/OraInstall2018-03-19_02-52-37AM. 請稍候...
3. 典型安裝過程
(1)配置安全更新
(2)安裝選項,選擇「建立和配置數據庫」
(3)在系統類中選擇「服務器類」
(4)網格選項中選擇「單實例數據庫安裝」
(5)安裝類型選擇「典型安裝」
若是爲各類管理帳號分別設置口令,或者選擇語言版本,設置自動備份,存儲管理等,則應選擇「高級安裝」。
(6)典型安裝的配置,必須設置管理員口令,其它參數採用默認值,系統將自動建立3個用戶,分別是:超級管理員sys,system和數據庫全部者sysman,當選擇高級安裝時,能夠爲3個用戶分別設置口令,不然將使用同一個管理口令。
(7)建立產品清單,將清單目錄修改成/opt/oracle/oralnventory,以便oracle用戶有權限寫入oracle數據庫的清單信息。
(8)先決條件檢查及概要,出現下面的程序包狀態失敗,由於這些包是32位的包,而咱們的系統是64位的,因此不用理會,點擊「所有忽略」。而後點擊「下一步」。
能夠保存響應文件,之後安裝oracle時可使用這個腳本執行安裝,就不用配置這麼多了。
(9)安裝中......
(10)當彈出「口令管理」的窗口時,單擊「口令管理」按鈕,將用戶scott解鎖,修改完成後,單擊「肯定」按鈕。
(11)完成安裝
文件複製及相關部署結束以後,會彈出「執行配置腳本」對話框,根據提示切換爲root用戶並以此執行腳本,以下所示。
(12)最後單擊「肯定」按鈕,會提示訪問https://oracle:1158/em/,使用此地址訪問OEM(企業管理器)平臺,以便對oracle數據庫實例進行管理。
4. 驗證安裝結果
(1)訪問OEM平臺(OEM平臺能夠進行圖像化管理oracle,比較方便)。
在瀏覽器中輸入:https://oracle:1158/em/,輸入用戶名,密碼,鏈接身份選擇SYSDBA
(2)使用sqlplus命令行訪問oracle數據庫
在命令行界面中輸入:sqlplus sys/123.aaa AS SYSDBA
或者:
(3)執行HELP INDEX命令查看全部可使用的命令
5. 配置oracle和OEM隨機啓動
完成oracle11g數據庫的安裝後,相關服務器會自動啓用,但並不表示下次開機後oracle服務器仍然可用。下面將介紹oracle的基本服務組件,以及如何編寫服務腳原本控制oracle數據庫系統的自動運行。
根據上面的安裝過程,oracle11g的數據庫軟件將安裝在變量ORACLE_HOME所北定的位置。例如/opt/oracle/product/11.2.0/dbhome_1/,而各類服務器組件程序(也包括sqlplus命令)正是位於其中的bin子目錄下。
Oracle11g數據庫的基本服務組件以下所述:(注:oracle服務組件最好以oracle用戶身份運行如:su - oracle)
lsnrctl:監聽器程序,用來提供數據庫訪問,默認監聽TCP 1521端口。
dbstart、dbshut:數據庫控制程序,用來啓動、中止數據庫實例。
emctl:管理器控制工具,用來控制OEM平臺的開啓與關閉,OEM平臺經過1158端口提供HTTPS訪問,5520端口提供TCP訪問。
爲了方便執行oracle11g的服務組件程序,建議對全部用戶的環境配置做進一步的優化調整、補充PATH路徑、oracle終端類型等變量設置。除此之外,還應該修改/etc/oratab配置文件,以便運行dbstart時自動啓用數據庫實例。
(1)修改/etc/oratab,修改內容以下:
[root@oracle ~]# vim /etc/oratab orcl:/opt/oracle/product/11.2.0/dbhome_1:Y #N改成Y
(2)修改/etc/rc.local文件,在文件末尾增長以下:
[root@oracle ~]# vim /etc/rc.local su - oracle -c 'dbstart' su - oracle -c 'lsnrctl start'
6. 常見系統控制命令
(1)執行」lsnrctl start」命令能夠啓動oracle監聽器。
(2)執行」lsnrctl status」命令能夠查看oracle監聽器的狀態。
(3)執行」emctl stop dbconsole」命令能夠關閉OEM管理控制檯。
(4)執行」dbshut $ORACLE_HOME」命令能夠中止數據庫實例。
(5)執行」dbstart $ORACLE_HOME」命令能夠啓動數據庫實例。
(6)使用sqlplus命令工具時,若以超級管理員sys登陸,則在」SQL>」環境中執行」STARTUP;」、」SHUTDOWN IMMEDIATE;」指令也能夠啓用、關閉默認的數據庫實例。
7. 配置Oracle命令行能夠翻頁和清屏的工具
(1)下載3個包:
1)IO-Tty-1.07.tar.gz
2)Term-ReadLine-Gnu-1.16.tar.gz
3)uniread-1.01.tar.gz
(2)安裝
[root@oracle ~]# tar zxf IO-Tty-1.07.tar.gz [root@oracle ~]# cd IO-Tty-1.07 [root@oracle IO-Tty-1.07]# perl Makefile.PL [root@oracle IO-Tty-1.07]# make [root@oracle IO-Tty-1.07]# make install [root@oracle ~]# tar zxf Term-ReadLine-Gnu-1.16.tar.gz [root@oracle ~]# cd Term-ReadLine-Gnu-1.16 [root@oracle Term-ReadLine-Gnu-1.16]# perl Makefile.PL [root@oracle Term-ReadLine-Gnu-1.16]# make [root@oracle Term-ReadLine-Gnu-1.16]# make install [root@oracle ~]# tar zxf uniread-1.01.tar.gz [root@oracle ~]# cd uniread-1.01 [root@oracle uniread-1.01]# perl Makefile.PL [root@oracle uniread-1.01]# make [root@oracle uniread-1.01]# make install
(3)登陸oracle:在命令前加 uniread
[oracle@oracle ~]$ uniread sqlplus sys as sysdba [uniread] Loaded history (0 lines) SQL*Plus: Release 11.2.0.1.0 Production on Tue Mar 20 00:18:19 2018 Copyright (c) 1982, 2009, Oracle. All rights reserved. Enter password: Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options SQL> show user; show user; USER is "SYS"
原來登陸是: sqlplus sys AS SYSDBA
如今是: uniread sqlplus sys AS SYSDBA
如今就可使用ctrl+l清屏了,還能夠上下翻頁。
8. 建立數據庫
若是在安裝oracle產品時選擇不創建數據庫,那麼要使用oracle系統就必須先建立數據庫,若是在安裝oracle產品時選擇創建數據庫,也能夠再建立第二個數據庫。
建立數據庫有兩種方法:一種經過圖形界面;另外一種採用create database命令,下面介紹圖形界面的方法。
在linux中,運行數據庫配置助手(DBCA),執行$ORACLE_HOME/bin目錄下執行DBCA
(1)執行netca啓用監聽的方法(若是沒有啓用須要作這一步)(爲了使客戶端能鏈接到oracle實例,以及有些命令也須要啓用監聽)
後面下一步便可。
或者使用命令啓動監聽:
(2)運行DBCA
全部管理員口令使用同一口令,固然生產環境中爲了安裝最好設置爲不一樣的密碼。
爲了在系統出現故障時可以恢復數據庫中存儲的數據,須要制定快速恢復區,採用默認便可。
設置內存、SGA、PGA的大小,值越大,oracle性能越好,這裏就默認了。
注意:建議一臺服務器上只建立一個數據庫,安裝oracle的時候咱們建立過一個orcl數據庫,平時作實驗使用orcl便可。(固然,咱們須要學會建立新的數據庫)
鏈接新創建的數據庫
1)打開dbca配置數據庫監聽
2)選擇數據庫
3)將數據庫註冊給監聽器
4)啓用監聽
5)鏈接到WLGCSZS數據庫
啓動關閉數據庫
一、數據庫的啓動
啓動(startup)一個數據庫須要3個步驟
1)啓動oracle實例
2)由實例安裝數據庫
3)打開數據庫
在startup命令中,能夠經過不一樣的選項來控制數據庫的不一樣的啓動步驟。
NOMOUNT選項:
nomount:已經經過參數文件知道控制文件在哪一個位置,可是尚未讀取控制文件。主要的做用就是啓動一個實例,讀取init.ora初始化參數文件,啓動後臺進程,初始化全局SGA
MOUNT選項:
讀取了控制文件,經過控制文件知道了其餘文件(數據文件和日誌文件),此時並無讀取數據文件和日誌文件,這個狀態叫mount狀態。啓動實例而且安裝了數據庫,但沒有打開數據庫。這種打開方式常在數據庫維護操做中使用,例如對數據文件改名,改變重作日誌及打開歸檔方式等,在這種打開方式下,除了能夠看到SGA 系統列表之外,系統還會給出「數據庫裝載完畢」提示。
Open選項:
讀取完控制文件以後,找到了數據文件和日誌文件,數據庫就處於OPEN狀態了。
startupnomount|mount|open
shudownnormal|immedieate|transactional|abort
注意:若是僅僅執行startup命令,將會完成啓動實例,安裝實例和打開數據庫的全部3個步驟,這是系統出了能夠看到前面startup mount方式下全部提示外,還會給出一個「數據庫已經打開」的提示,此時,數據庫系統處於正常的工做狀態,能夠接收用戶請求。
若是使用startup nomount 命令或者startup mount命令,必須採用alter database命令執行打開數據庫操做,例如:若是以startup nomount方式打開數據庫,也就是說實例已經啓動,可是數據庫沒有安裝和打開,這是必須運行下面的兩條命令,數據庫才能正確啓動。
ALTER DATABASE MOUNT;
ALTER DATABASE OPEN;
若是以startup mount方式啓動數據庫,只須要運行下面一條命令便可打開數據庫
ALTER DATABASE OPEN
二、執行startup命令
能夠看出數據庫已經打開
注意:
oracle11g數據庫在執行dbca或者調整sga後重啓oracle的時候可能會出現ORA-00845 MEMORY_TARGET not supported on this system 錯誤。 究其緣由就是Linux系統的shm的大小比SGA設置的小,形成的,距離來講,SGA設置4G,而shm可能只有1G 解決辦法: 調整shm的大小,具體操做以下: vi /etc/fstab 修改以下行的設置 tmpfs /dev/shm tmpfs defaults 0 0 改爲 tmpfs /dev/shm tmpfs defaults,size=6G 0 0 保存退出 從新mount下shm使其生效 mount -o remount /dev/shm
|
三、關閉數據庫
四、開始startup nomount狀態
能夠看出如今處於STARTED狀態
五、修改數據庫到open狀態
六、數據庫的關閉
normal:這是默認選項,使用該選項時,不容許任何新的用戶鏈接,可是容許繼續當前的全部鏈接,只有全部用戶(自願的)退出登陸時,數據庫才能真正的關閉
一般,正常的數據庫關閉是沒有意義的,即便只剩下database control在運行,也老是存在未退出登陸的用戶。也許關閉一個數據庫須要幾天或更長的事件(若是用戶一直沒有本身關閉)
immediate:使用這個選項時,不容許任何新的用戶鏈接,當前的全部鏈接的會話都被終止。任何活動的事務都會都將回滾,隨後數據庫會被關閉。是一種經常使用的關閉數據庫方式,快速關閉數據庫。
transactional:使用這個選項時,不容許任何新的用戶鏈接,沒有存在於某個事務中的現有會話被終止,容許當前位於某個事務中的會話在完成該事務以後終止。一但全部會話終止,數據就會被關閉(使用shutdown immediate)
abort:就oracle而言,使用這個選項至關於斷電。實例被當即終止。此時,任何數據都不會被寫入磁盤。可是在下一次啓動數據庫的時候,速度比較慢(須要實例恢復)。建議在如下狀況使用這種方式。
1)數據庫一直處於非正常的工做狀態,不能用shutdown normal或者shutdown immediate命令關閉。
2)須要當即關閉數據庫
3)在啓動數據庫實例時遇到問題
使用Navicat for Oracle工具遠程圖形化管理oracle
一、在win7上安裝軟件Navicat for Oracle。