Oracle數據庫部署

    在計算機信息安全領域中,數據庫系統無疑有着舉足輕重的地位,例如,微軟的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. 請稍候...

楊書凡16.png



 

3. 典型安裝過程

(1)配置安全更新

(2)安裝選項,選擇「建立和配置數據庫」

楊書凡17.png

(3)在系統類中選擇「服務器類」

楊書凡18.png


(4)網格選項中選擇「單實例數據庫安裝」

楊書凡19.png

(5)安裝類型選擇「典型安裝」

若是爲各類管理帳號分別設置口令,或者選擇語言版本,設置自動備份,存儲管理等,則應選擇「高級安裝」。

楊書凡20.png

 

(6)典型安裝的配置,必須設置管理員口令,其它參數採用默認值,系統將自動建立3個用戶,分別是:超級管理員sys,system和數據庫全部者sysman,當選擇高級安裝時,能夠爲3個用戶分別設置口令,不然將使用同一個管理口令。

楊書凡21.png

 

(7)建立產品清單,將清單目錄修改成/opt/oracle/oralnventory,以便oracle用戶有權限寫入oracle數據庫的清單信息。

楊書凡22.png

 

(8)先決條件檢查及概要,出現下面的程序包狀態失敗,由於這些包是32位的包,而咱們的系統是64位的,因此不用理會,點擊「所有忽略」。而後點擊「下一步」。

楊書凡23.png

楊書凡24.png 


    能夠保存響應文件,之後安裝oracle時可使用這個腳本執行安裝,就不用配置這麼多了。

 

(9)安裝中......

楊書凡25.png

楊書凡26.png

 

(10)當彈出「口令管理」的窗口時,單擊「口令管理」按鈕,將用戶scott解鎖,修改完成後,單擊「肯定」按鈕。

楊書凡00.png

楊書凡01.png 


(11)完成安裝

文件複製及相關部署結束以後,會彈出「執行配置腳本」對話框,根據提示切換爲root用戶並以此執行腳本,以下所示。

楊書凡02.png

 

楊書凡03.png


(12)最後單擊「肯定」按鈕,會提示訪問https://oracle:1158/em/,使用此地址訪問OEM(企業管理器)平臺,以便對oracle數據庫實例進行管理。

楊書凡04.png360截圖20180319151630691.jpg 





4. 驗證安裝結果

(1)訪問OEM平臺(OEM平臺能夠進行圖像化管理oracle,比較方便)。

在瀏覽器中輸入:https://oracle:1158/em/,輸入用戶名,密碼,鏈接身份選擇SYSDBA

楊書凡05.png


楊書凡06.png



(2)使用sqlplus命令行訪問oracle數據庫

在命令行界面中輸入:sqlplus  sys/123.aaa AS SYSDBA

楊書凡10.png


或者:

楊書凡09.png

 

(3)執行HELP INDEX命令查看全部可使用的命令

楊書凡08.png

 


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實例,以及有些命令也須要啓用監聽)


楊書凡18.png


楊書凡12.png

楊書凡13.png

楊書凡14.png 


 

後面下一步便可。

 

或者使用命令啓動監聽:

楊書凡15.png

 

(2)運行DBCA

楊書凡17.png

 

楊書凡19.png


楊書凡20.png 


楊書凡21.png 


楊書凡22.png


全部管理員口令使用同一口令,固然生產環境中爲了安裝最好設置爲不一樣的密碼。

楊書凡23.png 


楊書凡24.png

 


爲了在系統出現故障時可以恢復數據庫中存儲的數據,須要制定快速恢復區,採用默認便可。

楊書凡25.png 


楊書凡26.png 


 

設置內存、SGA、PGA的大小,值越大,oracle性能越好,這裏就默認了。

楊書凡27.png


楊書凡28.png 


楊書凡29.png 


楊書凡30.png

 

楊書凡31.png


注意:建議一臺服務器上只建立一個數據庫,安裝oracle的時候咱們建立過一個orcl數據庫,平時作實驗使用orcl便可。(固然,咱們須要學會建立新的數據庫)

 

 

鏈接新創建的數據庫

1)打開dbca配置數據庫監聽

楊書凡32.png

 

2)選擇數據庫

楊書凡33.png

 

3)將數據庫註冊給監聽器

楊書凡34.png

 

4)啓用監聽

楊書凡35.png

 

5)鏈接到WLGCSZS數據庫

楊書凡36.png

 

 

啓動關閉數據庫

一、數據庫的啓動

啓動(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命令

楊書凡37.png


能夠看出數據庫已經打開

楊書凡38.png 

注意:

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

 

 

 

三、關閉數據庫

楊書凡39.png

 

四、開始startup  nomount狀態

楊書凡40.png

能夠看出如今處於STARTED狀態

楊書凡41.png


五、修改數據庫到open狀態

楊書凡42.png

 

六、數據庫的關閉

normal:這是默認選項,使用該選項時,不容許任何新的用戶鏈接,可是容許繼續當前的全部鏈接,只有全部用戶(自願的)退出登陸時,數據庫才能真正的關閉

一般,正常的數據庫關閉是沒有意義的,即便只剩下database control在運行,也老是存在未退出登陸的用戶。也許關閉一個數據庫須要幾天或更長的事件(若是用戶一直沒有本身關閉)

immediate:使用這個選項時,不容許任何新的用戶鏈接,當前的全部鏈接的會話都被終止。任何活動的事務都會都將回滾,隨後數據庫會被關閉。是一種經常使用的關閉數據庫方式,快速關閉數據庫。

transactional:使用這個選項時,不容許任何新的用戶鏈接,沒有存在於某個事務中的現有會話被終止,容許當前位於某個事務中的會話在完成該事務以後終止。一但全部會話終止,數據就會被關閉(使用shutdown  immediate)

abort:就oracle而言,使用這個選項至關於斷電。實例被當即終止。此時,任何數據都不會被寫入磁盤。可是在下一次啓動數據庫的時候,速度比較慢(須要實例恢復)。建議在如下狀況使用這種方式。

1)數據庫一直處於非正常的工做狀態,不能用shutdown normal或者shutdown  immediate命令關閉。

2)須要當即關閉數據庫

3)在啓動數據庫實例時遇到問題

楊書凡43.png 


 

使用Navicat for Oracle工具遠程圖形化管理oracle

一、在win7上安裝軟件Navicat for Oracle。

楊書凡44.png

相關文章
相關標籤/搜索