溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)

發(fā)布時(shí)間:2020-05-24 07:30:42 來(lái)源:網(wǎng)絡(luò) 閱讀:694 作者:warrent 欄目:關(guān)系型數(shù)據(jù)庫(kù)

oracle數(shù)據(jù)庫(kù)是一個(gè)相對(duì)龐大的應(yīng)用軟件,對(duì)服務(wù)器的系統(tǒng)類型,內(nèi)存和交換分區(qū)、硬盤(pán)空間、內(nèi)核參數(shù)、軟件環(huán)境、用戶環(huán)境等都有相應(yīng)的要求。只有滿足了必備的條件,才能確保oracle 12c安裝成功,運(yùn)行穩(wěn)定。

部署oracle 12c對(duì)系統(tǒng)的要求:

  • 防火墻需要放行相關(guān)流量,oracle默認(rèn)端口號(hào)是5500;
  • SELinux必須關(guān)閉;
  • 內(nèi)核選擇3.10及以上版本;
  • 物理內(nèi)存;必須高于1G,交換空間,當(dāng)物理內(nèi)存為1~2G 時(shí),交換分區(qū)為物理內(nèi)存的1.5\~2倍,當(dāng)物理內(nèi)存為2\~16G時(shí),交換分區(qū)與物理內(nèi)存大小一樣就可以,當(dāng)物理內(nèi)存超過(guò)16G時(shí),交換分區(qū)使用16GB就行了。
  • 至少需要20GB的磁盤(pán)空間,如果不單獨(dú)給oracle創(chuàng)建分區(qū),那么至少要保證根分區(qū)有15GB的可用磁盤(pán)空間

一、安裝oracle 12c前準(zhǔn)備

以上基本是硬件的要求,接下來(lái)開(kāi)始為了可以部署oracle,還需要修改軟件方面的參數(shù)。

先下載oracle的安裝程序吧,我這里提供了一個(gè)oracle 12c的安裝文件百度網(wǎng)盤(pán)鏈接,是oracle 12c的版本,也可以去oracle中文官方網(wǎng)站,它支持oracle安裝文件的免費(fèi)下載(需要注冊(cè)賬號(hào),最新的版本是oracle 19c),找到所需的版本下載使用即可,我這里就安裝12c了。

安裝oracle數(shù)據(jù)庫(kù)前,要求規(guī)劃好主機(jī)名和IP。服務(wù)器的主機(jī)名、IP地址也應(yīng)提前確定無(wú)誤,一旦oracle數(shù)據(jù)庫(kù)安裝完成,建議不要再修改主機(jī)名,否則會(huì)導(dǎo)致數(shù)據(jù)庫(kù)啟動(dòng)失敗。一般需要執(zhí)行以下操作:

[root@localhost ~]# hostnamectl set-hostname oracle       #修改主機(jī)名,并寫(xiě)入配置文件
[root@localhost ~]# bash          #使主機(jī)名生效
[root@oracle ~]# echo "192.168.1.1 oracle" >> /etc/hosts    #將本機(jī)主機(jī)名及IP對(duì)應(yīng)寫(xiě)入/etc/hosts文件,以便解析
#也可以通過(guò)DNS來(lái)解析,這里為了省事
[root@oracle ~]# tail -1 /etc/hosts     #確認(rèn)已添加
192.168.1.1 oracle

oracle 12c的安裝過(guò)程是在圖形界面中進(jìn)行,因此建議使用帶有GNOME中文桌面環(huán)境的centos服務(wù)器,軟件開(kāi)發(fā)工具當(dāng)然也是必不可少的,可以使用yum安裝系統(tǒng)盤(pán)中的必要的軟件環(huán)境,具體如下:

[root@oracle ~]# mount /dev/cdrom /media         #掛載系統(tǒng)盤(pán)
#以下是配置本地yum源
[root@oracle yum.repos.d]# cd /etc/yum.repos.d/
[root@oracle yum.repos.d]# mkdir /yum.repo.bak
[root@oracle yum.repos.d]# mv * /yum.repo.bak/
[root@oracle yum.repos.d]# vim system.repo           #寫(xiě)入以下內(nèi)容

[oracle]
baseurl=file:///media
gpgcheck=0
[root@oracle yum.repos.d]# yum clean all            #清除yum緩存
[root@oracle yum.repos.d]# cd
#以下是安裝一些開(kāi)發(fā)工具
[root@oracle ~]# yum  -y  install  binutils compat-libcap1 compat-libstdc++-33  gcc gcc-c++  glibc  glibc-devel ksh  libaio  libaio-devel       libgcc  libstdc++  libstdc++-devel libXi  libXtst  make  sysstat       unixODBC  unixODBC-devel
[root@oracle ~]# vim /etc/sysctl.conf  #調(diào)整內(nèi)核參數(shù),主要是內(nèi)存調(diào)度、端口范圍、打開(kāi)文件數(shù)、I/O請(qǐng)求等相關(guān)設(shè)置
                ..........................#省略部分內(nèi)容
#在文件末尾寫(xiě)入以下參數(shù)
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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 = 1048576
[root@oracle ~]# sysctl -p          #重新加載配置文件,確保輸出的信息沒(méi)有報(bào)錯(cuò)
fs.aio-max-nr = 1048576 
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
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 = 1048576
[root@oracle ~]# groupadd -g 54321 oinstall          #創(chuàng)建安裝組
[root@oracle ~]# groupadd -g 54322 dba          #創(chuàng)建管理組
[root@oracle ~]# useradd -u 54321 -g oinstall -G dba oracle      #創(chuàng)建運(yùn)行用戶
[root@oracle ~]# echo "123.comf" |  passwd --stdin oracle        #為該用戶設(shè)置密碼
[root@oracle ~]# mkdir -p /u01/app/oracle          #創(chuàng)建基本目錄
[root@oracle ~]# chown -R oracle:oinstall /u01/app/     #更改屬組
[root@oracle ~]# chmod -R 755 /u01/app/oracle/      #更改權(quán)限
[root@oracle ~]# vim /home/oracle/.bash_profile      #調(diào)整oracle用戶的環(huán)境變量
             ........................#省略部分內(nèi)容
#寫(xiě)入以下內(nèi)容
umask  022
ORACLE_BASE=/u01/app/oracle         #定義基本目錄
ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1/    #定義安裝家目錄
ORACLE_SID=orcl    #定義數(shù)據(jù)庫(kù)實(shí)例名稱
NLS_LANG="SIMPLIFIED CHINESE_CHINA".UTF8     #確定使用何種語(yǔ)言環(huán)境
PATH=$PATH:$ORACLE_HOME/bin
LANG=zh_CN.UTF-8
export PATH LANG NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID
export  DISPLAY=:0.0

oracle用戶資源限制要求
進(jìn)程會(huì)話限制可以采用pam_limits認(rèn)證模塊來(lái)實(shí)現(xiàn),通過(guò)修改登錄程序login的PAM設(shè)置以啟用該認(rèn)證,然后修改/etc/security/limits.conf文件,使用戶oracle能夠打開(kāi)的進(jìn)程數(shù)、進(jìn)程使用的文件數(shù)加大。如下:

[root@oracle ~]# vim /etc/pam.d/login           #修改PAM設(shè)置以便啟用該認(rèn)證
           ......................#省略部分內(nèi)容
#在末尾寫(xiě)入以下兩行:
session   required  /lib/security/pam_limits.so
session   required  pam_limits.so
[root@oracle ~]# vim /etc/security/limits.conf        #修改該文件
           ......................#省略部分內(nèi)容
#在文件末尾寫(xiě)入以下內(nèi)容:
oracle   soft    nproc   2047             #進(jìn)程數(shù)軟限制
oracle   hard    nproc   16384            #進(jìn)程數(shù)硬限制
oracle   soft   nofile   1024             #文件數(shù)軟限制
oracle   hard   nofile    65536           #文件數(shù)硬限制
oracle   soft  stack    10240             #Oracle軟堆棧限制
[root@oracle ~]# vim /etc/profile      #添加如下內(nèi)容到該文件末尾
           ......................#省略部分內(nèi)容
#在文件末尾寫(xiě)入以下內(nèi)容:
if  [  $USER  = "oracle" ];then
        if [ $SHELL = "/bin/ksh"  ];then
                ulimit  -p  16384
                ulimit   -n  65536
        else
                ulimit  -u  16384  -n  65536

        fi
fi

不配置oracle用戶資源的限制,也不會(huì)影響到oracle數(shù)據(jù)庫(kù)的成功安裝,但是,若有糟糕的SQL語(yǔ)句對(duì)服務(wù)器的資源無(wú)限占用,導(dǎo)致長(zhǎng)時(shí)間對(duì)用戶請(qǐng)求無(wú)響應(yīng),則建議提前限制oracle用戶資源。

準(zhǔn)備工作至此就完成了,需要重啟系統(tǒng),重啟之后,最好再次檢查之前的配置是否生效。建議不要做臨時(shí)配置。

二、安裝oracle 12c過(guò)程

[root@oracle ~]# mkdir /tmp/abc         #創(chuàng)建目錄,/tmp目錄下,oracle用戶才可以讀取到
[root@oracle ~]# mount /dev/cdrom /media         #掛載我提供的oracle光盤(pán)鏡像文件
[root@oracle ~]# ls /media/             #確認(rèn)oracle文件存在
linuxx64_12201_database.zip
[root@oracle ~]# cd /tmp/abc          #切換至/tmp/abc/目錄下
[root@oracle abc]# cp /media/linuxx64_12201_database.zip .  #將安裝文件復(fù)制到當(dāng)前目錄下,文件有點(diǎn)大,請(qǐng)耐心等待
[root@oracle abc]# unzip linuxx64_12201_database.zip    #解壓該安裝文件

oracle 12c的安裝主要通過(guò)runInstaller腳本進(jìn)行,訪問(wèn)網(wǎng)頁(yè)welcome.html可以查看產(chǎn)品手冊(cè),其中包括產(chǎn)品說(shuō)明、發(fā)行注記、安裝指南等文檔,為我們提供了極為豐富的幫助信息。

所有前置條件準(zhǔn)備好以后,就可以正式開(kāi)始安裝了,如果當(dāng)前的圖形桌面環(huán)境是以其他用戶的身份(如root)登錄的,則還應(yīng)添加授權(quán)以允許oracle使用圖形終端。例如:“xhost + oracle@localhost”表示允許用戶oracle從本機(jī)訪問(wèn),執(zhí)行“xhost +”表示取消所有限制。

以用戶oracle的身份登錄到centos 的圖形桌面環(huán)境,啟動(dòng)database目錄下的runInstaller腳本文件,具體操作如下(若安裝oracle 19c則需要將存放oracle 19c的目錄下都更改屬主為oracle,如解壓出來(lái)的oracle安裝文件都位于/tmp/abc目錄下,那么需要執(zhí)行命令:chown -R oracle /tmp/abc,以便更改它的屬主,否則會(huì)報(bào)錯(cuò),這里安裝的oracle 12c就不會(huì)出現(xiàn)這個(gè)問(wèn)題。):

[root@oracle ~]# xhost +          #一定要以root用戶在圖形環(huán)境中操作
[root@oracle ~]# su - oracle     #切換至oracle用戶
[oracle@oracle ~]$ cd /tmp/abc/database/         #切換至剛才解壓出來(lái)的oracle安裝文件目錄
[oracle@oracle database]$ ./runInstaller  #執(zhí)行腳本進(jìn)行安裝,執(zhí)行該腳本后,就會(huì)啟動(dòng)oracle圖形化的安裝程序

接下來(lái)的操作基本就是在圖形化窗口上進(jìn)行操作了,如下:

執(zhí)行runInstaller腳本后打開(kāi)的窗口如下:
1、
基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)
2、
基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)

3、
基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)
4、基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)

5、基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)
6、
基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)
7、
基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)

8、基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)

9、
基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)

10、
基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)

11、
基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)

12、
基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)

13、
基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)
14、在安裝過(guò)程中,會(huì)提示讓使用root身份,執(zhí)行下面的兩個(gè)腳本,此時(shí),切換一個(gè)工作區(qū),使用root登錄,將腳本名復(fù)制過(guò)去執(zhí)行以下,即可!如下:

基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)

15、使用root身份執(zhí)行上面圖中提示的腳本:

[root@oracle ~]# /u01/app/oraInventory/orainstRoot.sh
[root@oracle ~]# /u01/app/oracle/product/12.2.0/dbhome_1/root.sh  
#執(zhí)行第二個(gè)腳本時(shí),會(huì)有兩次交互界面,第一次直接按回車鍵即可;
#第二次是要安裝oracle跟蹤文件分析器,可直接回車,也可輸入“yes”進(jìn)行安裝

16、
基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)
17、安裝成功,關(guān)閉即可
基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)

安裝完成后,可以通過(guò)https://oracle服務(wù)器IP:5500/em ,實(shí)現(xiàn)訪問(wèn)EM(Enterprise Manager,企業(yè)管理器)database Express 平臺(tái),以便對(duì)oracle 12c的數(shù)據(jù)庫(kù)進(jìn)行簡(jiǎn)單管理,但訪問(wèn)EM database express平臺(tái),需要flase的支持。我這里使用的Windows客戶端直接訪問(wèn)的(安裝了flase),若使用Linux自帶的火狐瀏覽器,可以下載我提供的Linux中的flase player插件,是個(gè)rpm格式的,直接執(zhí)行命令rpm -ivh進(jìn)行安裝即可。

登錄頁(yè)面如下:
基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)
上圖中提到的密碼,就是在下面這個(gè)過(guò)程中定義的口令:
基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)

登錄后的界面如下:
基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)

關(guān)于這個(gè)管理界面,就不多做介紹了,自行研究即可。

三、關(guān)于oracle的命令行界面操作

使用sqlplus命令可以在命令行界面訪問(wèn)oracle數(shù)據(jù)庫(kù),但是登錄到數(shù)據(jù)庫(kù)后,不可以使用上下鍵翻歷史命令,如果想要解決,可以進(jìn)行以下操作。

1、下載我提供的tar.gz軟件包
2、掛載系統(tǒng)盤(pán),然后執(zhí)行以下命令:

[root@oracle ~]# yum -y install ncurses* readline*    #安裝依賴包
[root@oracle abc]# tar -zxvf rlwrap-0.30.tar.gz     #解壓我提供的tar包
[root@oracle abc]# cd rlwrap-0.30/             #進(jìn)入解壓后的目錄
[root@oracle rlwrap-0.30]# ./configure && make && make install       #編譯安裝
[root@oracle ~]# vim /home/oracle/.bash_profile  #配置oracle用戶的環(huán)境變量,以便方便使用rlwrap命令
#經(jīng)過(guò)以上配置,執(zhí)行rlwrap + 原命令登錄到oracle數(shù)據(jù)庫(kù),便可以使用上下鍵翻歷史命令了
[root@oracle ~]# su - oracle           #切換到oracle用戶,才可以登錄到oracle數(shù)據(jù)庫(kù)
上一次登錄:三 9月 25 16:46:42 CST 2019
[oracle@oracle ~]$ rlwrap sqlplus / as sysdba     #登錄數(shù)據(jù)庫(kù)

在上面的登錄數(shù)據(jù)庫(kù)命令中,是實(shí)現(xiàn)了sys以sysdba的身份連接到本機(jī)的oracle數(shù)據(jù)庫(kù),sys用戶是oracle的最高管理員,以sys用戶登錄的時(shí)候一般要加上as sysdba,而其他用戶則不需要,若以其他用戶身份登錄oracle數(shù)據(jù)庫(kù),可以執(zhí)行命令:“[oracle@oracle ~]$ sqlplus system/oracle

進(jìn)入SQL環(huán)境后的簡(jiǎn)單操作(在SQL>模式下,不區(qū)分大小寫(xiě)):

SQL> help index           #查看支持的指令列表
SQL> show user            #查看當(dāng)前的用戶

四、oracle 12c數(shù)據(jù)庫(kù)的創(chuàng)建

如果在安裝oracle產(chǎn)品時(shí)不創(chuàng)建數(shù)據(jù)庫(kù),那么要使用oracle系統(tǒng)就必須先創(chuàng)建數(shù)據(jù)庫(kù)。如果在安裝oracle時(shí)選擇建立數(shù)據(jù)庫(kù),也可以再創(chuàng)建第二個(gè)數(shù)據(jù)庫(kù)(不過(guò)為了使oracle數(shù)據(jù)庫(kù)充分利用系統(tǒng)資源,建議一個(gè)服務(wù)器上只創(chuàng)建一個(gè)數(shù)據(jù)庫(kù))。
創(chuàng)建數(shù)據(jù)庫(kù)的方法有兩種:通過(guò)圖形化界面,或者采用“CREATE DATABASE”命令,這里說(shuō)一下圖形化界面創(chuàng)建數(shù)據(jù)庫(kù)的方法:

[oracle@oracle database]$ dbca          #以oracle身份運(yùn)行命令dbca,會(huì)彈出一個(gè)窗口

如果沒(méi)有彈出窗口,可以參考前面的步驟,以root用戶運(yùn)行“xhost +”命令,再以oracle身份運(yùn)行“export DISPLAY=:0.0”命令。

執(zhí)行命令后會(huì)彈出以下窗口:

基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)
基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)
基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)

基于Cent os7安裝部署oracle 12c數(shù)據(jù)庫(kù)

五、oracle 數(shù)據(jù)庫(kù)的啟動(dòng)與關(guān)閉

oracle數(shù)據(jù)庫(kù)的啟動(dòng)與關(guān)閉是日常工作之一。對(duì)于大多數(shù)oracle DBA來(lái)說(shuō),啟動(dòng)和關(guān)閉oracle數(shù)據(jù)庫(kù)最常用的方式是在命令行方式下執(zhí)行。

1、啟動(dòng)、關(guān)閉oracle數(shù)據(jù)庫(kù)

要啟動(dòng)和關(guān)閉數(shù)據(jù)庫(kù),必須要以具有oracle管理員權(quán)限的用戶登錄,通常以具有SYSDBA權(quán)限的用戶登錄。

(1)數(shù)據(jù)庫(kù)的啟動(dòng)

啟動(dòng)一個(gè)數(shù)據(jù)庫(kù)需要三個(gè)步驟:①啟動(dòng)oracle實(shí)例(非裝載階段);②由實(shí)例裝載數(shù)據(jù)庫(kù)(裝載階段);③打開(kāi)數(shù)據(jù)庫(kù)(打開(kāi)階段)。

在startup命令中,可以使用不同的選項(xiàng)來(lái)控制數(shù)據(jù)庫(kù)的不同啟動(dòng)步驟。

1)startup nomount(該命令不常用)
nomount選項(xiàng)僅僅啟動(dòng)一個(gè)oracle實(shí)例,讀取init.ora初始化參數(shù)文件、啟動(dòng)后臺(tái)進(jìn)程、初始化SGA。當(dāng)實(shí)例啟動(dòng)后,系統(tǒng)將顯示一個(gè)SGA內(nèi)存結(jié)構(gòu)和大小的列表,如下:

[oracle@oracle ~]$ rlwrap sqlplus / as sysdba       #進(jìn)入oracle數(shù)據(jù)庫(kù)
SQL> startup nomount             #執(zhí)行該命令
ORACLE 例程已經(jīng)啟動(dòng)。

Total System Global Area 1593835520 bytes
Fixed Size          8793256 bytes
Variable Size        1023411032 bytes
Database Buffers      553648128 bytes
Redo Buffers            7983104 bytes

2)startup mount(某些時(shí)候會(huì)用到該命令)
startup mount 命令啟動(dòng)實(shí)例并且裝載數(shù)據(jù)庫(kù),但是沒(méi)有打開(kāi)數(shù)據(jù)庫(kù)。oracle系統(tǒng)讀取控制文件中關(guān)于數(shù)據(jù)文件和重做日志文件的內(nèi)容,但并不打開(kāi)該文件。這種打開(kāi)方式常在數(shù)據(jù)庫(kù)維護(hù)操作中使用,如對(duì)數(shù)據(jù)文件的更名、改變重做日志及打開(kāi)歸檔模式等。在這種打開(kāi)方式下,除了可以看到SGA系統(tǒng)列表以外,系統(tǒng)還會(huì)給出“數(shù)據(jù)庫(kù)裝載完畢”的提示。

SQL> alter database mount; #由于上面已經(jīng)執(zhí)行了startup nomount命令,所以再更改它的狀態(tài),就需要使用該命令

3)startup(正常時(shí)使用的命令)
startup命令完成啟動(dòng)實(shí)例,裝載數(shù)據(jù)庫(kù)和打開(kāi)數(shù)據(jù)庫(kù)三個(gè)步驟。此時(shí),數(shù)據(jù)庫(kù)使數(shù)據(jù)文件和重做日志文件在線,通常還會(huì)請(qǐng)求一個(gè)或者多個(gè)回滾段;系統(tǒng)除了可以看到前面startup mount 方式下的所有提示外,還會(huì)給出一個(gè)“數(shù)據(jù)庫(kù)已經(jīng)打開(kāi)”的提示;數(shù)據(jù)庫(kù)系統(tǒng)處于正常的工作狀態(tài),可以接收用戶的請(qǐng)求。

如果采用startup nomount或者startup mount的數(shù)據(jù)庫(kù)打開(kāi)方式,必須采用alter database命令來(lái)執(zhí)行裝載或打開(kāi)數(shù)據(jù)庫(kù)的操作。

前面兩條命令都執(zhí)行過(guò)了(startup nomount和alter database mount),所以這里再執(zhí)行下面命令,數(shù)據(jù)庫(kù)就可以說(shuō)是正確啟動(dòng)完成了。如下:

SQL> alter database open;             #執(zhí)行該命令

正常來(lái)說(shuō),可以直接使用下面一條命令來(lái)正常啟動(dòng)數(shù)據(jù)庫(kù),如下:

SQL> startup           #在數(shù)據(jù)庫(kù)關(guān)閉狀態(tài)下執(zhí)行該命令,數(shù)據(jù)庫(kù)會(huì)依次啟動(dòng)、裝載、打開(kāi)。
ORACLE 例程已經(jīng)啟動(dòng)。

Total System Global Area 1593835520 bytes
Fixed Size          8793256 bytes
Variable Size        1023411032 bytes
Database Buffers      553648128 bytes
Redo Buffers            7983104 bytes
數(shù)據(jù)庫(kù)裝載完畢。
數(shù)據(jù)庫(kù)已經(jīng)打開(kāi)。

2、數(shù)據(jù)庫(kù)的關(guān)閉

對(duì)于數(shù)據(jù)庫(kù)的關(guān)閉,有四種不同的關(guān)閉選項(xiàng)。
1)shutdown normal
shutdown normal是shutdown命令的默認(rèn)選項(xiàng)。也就是說(shuō),如果用戶發(fā)出shutdown命令,即執(zhí)行shutdown normal命令。
發(fā)出該命令后,任何新的連接都將不再允許連接到數(shù)據(jù)庫(kù)。在數(shù)據(jù)庫(kù)關(guān)閉之前,oracle將等待目前連接的所有用戶都從數(shù)據(jù)庫(kù)中退出后才開(kāi)始關(guān)閉數(shù)據(jù)庫(kù)。采用這種方式關(guān)閉數(shù)據(jù)庫(kù),在下一次啟動(dòng)時(shí)不需要進(jìn)行任何的實(shí)例恢復(fù)。但需要注意的是,采用這種方式時(shí),也許關(guān)閉一個(gè)數(shù)據(jù)庫(kù)需要幾天或更長(zhǎng)的時(shí)間。

2)shutdown immediate
shutdown immediate是常用的一種關(guān)閉數(shù)據(jù)庫(kù)的方式。若即想很快地關(guān)閉數(shù)據(jù)庫(kù),又想讓數(shù)據(jù)庫(kù)“干凈”的關(guān)閉,則常采用這種方式。

發(fā)出該命令后,當(dāng)前正在被oracle處理的SQL語(yǔ)句立即中斷,系統(tǒng)中任何沒(méi)有提交的事務(wù)全部回滾。如果系統(tǒng)中存在一個(gè)很長(zhǎng)的未提交的事務(wù),那么采用這種方式關(guān)閉數(shù)據(jù)庫(kù)也需要一段時(shí)間(該事務(wù)回滾時(shí)間)。系統(tǒng)不會(huì)等待連接到數(shù)據(jù)庫(kù)的所有用戶退出系統(tǒng),而會(huì)強(qiáng)行回滾當(dāng)前所有的活動(dòng)事務(wù),然后斷開(kāi)所有的連接用戶。

3)shutdown transactional
shutdown transactional 命令常用來(lái)計(jì)劃關(guān)閉數(shù)據(jù)庫(kù),它會(huì)等待當(dāng)前連接到系統(tǒng)且正在活動(dòng)的事務(wù)執(zhí)行完畢,運(yùn)行該命令后,任何新的連接和事務(wù)都是不允許的。它所有活動(dòng)的事務(wù)執(zhí)行完成后,數(shù)據(jù)庫(kù)將以和shutdown immediate同樣的方式關(guān)閉數(shù)據(jù)庫(kù)。

4)shutdown abort
shutdown abort是關(guān)閉數(shù)據(jù)庫(kù)方式的最后選擇,是在沒(méi)有任何辦法關(guān)閉數(shù)據(jù)庫(kù)的情況下不得不采用的方式,一般不要采用。在下列情況出現(xiàn)時(shí)可以考慮采用這種方式關(guān)閉數(shù)據(jù)庫(kù)。

  • 數(shù)據(jù)庫(kù)處于一種非正常工作狀態(tài),不能用shutdown normal或shutdown immediate命令關(guān)閉數(shù)據(jù)庫(kù);
  • 需要立即關(guān)閉數(shù)據(jù)庫(kù);
  • 在啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例時(shí)遇到問(wèn)題。

    發(fā)出該命令后,所有正在運(yùn)行的SQL語(yǔ)句將立即中止,所有未提交的事務(wù)將不回滾,oracle也不等待目前連接到數(shù)據(jù)庫(kù)的用戶退出系統(tǒng);下一次啟動(dòng)數(shù)據(jù)庫(kù)時(shí)需要實(shí)例恢復(fù),因此,下一次啟動(dòng)可能比平時(shí)需要更多的時(shí)間。

在關(guān)閉數(shù)據(jù)庫(kù)時(shí)最好使用shutdown immediate方式,因?yàn)檫@種方式安全且相對(duì)較快。不是萬(wàn)不得已不要使用shutdown abort 方式,因?yàn)檫@種方式會(huì)造成數(shù)據(jù)丟失,并且恢復(fù)數(shù)據(jù)庫(kù)也需要較長(zhǎng)時(shí)間。

3、啟動(dòng)、關(guān)閉oracle監(jiān)聽(tīng)進(jìn)程

當(dāng)oracle數(shù)據(jù)庫(kù)實(shí)例啟動(dòng)完成后,為了使客戶端用戶能連接到oracle實(shí)例,DBA還需要在oracle所在的服務(wù)器上使用lsnrctl命令啟動(dòng)監(jiān)聽(tīng)進(jìn)程。如果數(shù)據(jù)庫(kù)實(shí)例關(guān)閉,一般也要關(guān)閉監(jiān)聽(tīng)進(jìn)程。

1)啟動(dòng)監(jiān)聽(tīng)

啟動(dòng)監(jiān)聽(tīng)是oracle用戶在操作系統(tǒng)下執(zhí)行的命令,可以直接在lsnrctl后加參數(shù),也可在該命令提示符后進(jìn)行操作,具體如下:

[oracle@oracle ~]$ lsnrctl              #執(zhí)行該命令

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 25-9月 -2019 21:59:04

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

歡迎來(lái)到LSNRCTL, 請(qǐng)鍵入"help"以獲得信息。

LSNRCTL> start          #啟動(dòng)監(jiān)聽(tīng)
啟動(dòng)/u01/app/oracle/product/12.2.0/dbhome_1//bin/tnslsnr: 請(qǐng)稍候...

TNSLSNR for Linux: Version 12.2.0.1.0 - Production
系統(tǒng)參數(shù)文件為/u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
寫(xiě)入/u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml的日志信息
監(jiān)聽(tīng): (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
監(jiān)聽(tīng): (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
LISTENER 的 STATUS
------------------------
別名                      LISTENER
版本                      TNSLSNR for Linux: Version 12.2.0.1.0 - Production
啟動(dòng)日期                  25-9月 -2019 21:59:12
正常運(yùn)行時(shí)間              0 天 0 小時(shí) 0 分 0 秒
跟蹤級(jí)別                  off
安全性                    ON: Local OS Authentication
SNMP                      OFF
監(jiān)聽(tīng)程序參數(shù)文件          /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
監(jiān)聽(tīng)程序日志文件          /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
監(jiān)聽(tīng)端點(diǎn)概要...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
監(jiān)聽(tīng)程序不支持服務(wù)
命令執(zhí)行成功

也可以直接使用以下命令“來(lái)啟動(dòng)監(jiān)聽(tīng):

[oracle@oracle ~]$ lsnrctl start         #啟動(dòng)監(jiān)聽(tīng)
2)關(guān)閉監(jiān)聽(tīng)
[oracle@oracle ~]$ lsnrctl stop         #關(guān)閉監(jiān)聽(tīng)

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 25-9月 -2019 22:00:31

Copyright (c) 1991, 2016, Oracle.  All rights reserved.

正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
命令執(zhí)行成功

———————— 本文至此結(jié)束,感謝閱讀 ————————

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI