溫馨提示×

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

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

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

發(fā)布時(shí)間:2021-07-29 10:23:57 來源:億速云 閱讀:153 作者:小新 欄目:數(shù)據(jù)庫(kù)

這篇文章主要介紹了如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù),具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

在計(jì)算機(jī)信息安全領(lǐng)域中,數(shù)據(jù)庫(kù)系統(tǒng)無疑有著舉足輕重的地位。比如:SQL Server、MySQL、DB2、Oracle等,都是比較知名的數(shù)據(jù)庫(kù)管理軟件,由于Oracle數(shù)據(jù)庫(kù)的安全性,所以在一些比較重要的場(chǎng)合被普遍使用,比如:電信、銀行、政府部門等。

本次以O(shè)racle 12c數(shù)據(jù)庫(kù)的64位企業(yè)版為例,學(xué)習(xí)如何在Centos 操作系統(tǒng)中的安裝和基本配置,包括安裝的準(zhǔn)備等。

博文大綱:
一、安裝Oracle 12c
二、創(chuàng)建Oracle 12c數(shù)據(jù)庫(kù)
三、Oracle 12c數(shù)據(jù)庫(kù)的啟動(dòng)與關(guān)閉
四、將Oracle數(shù)據(jù)庫(kù)設(shè)置為開機(jī)自啟動(dòng)

一、安裝Oracle 12c

1.安裝CentOS 7操作系統(tǒng)的注意事項(xiàng)

由于本次安裝Oracle 12c軟件是在CentOS 7系統(tǒng)上實(shí)現(xiàn)的,那么首次安裝CentOS 7操作系統(tǒng)有幾點(diǎn)要求:

  • 防火墻的配置選項(xiàng)設(shè)置為禁用;

  • SELinux設(shè)置為禁用;

  • 默認(rèn)安裝設(shè)置為軟件開發(fā);

  • 內(nèi)核選擇3.10.0-862.el7.x86_64及以上版本;

2.前置條件的準(zhǔn)備

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

(1)系統(tǒng)及配置要求

Oracle 12c明確支持的Linux操作系統(tǒng)包括Oracle Linux 7、Oracle Linux 6、Oracle Linux 5、Red Hat Enterprise Linux 7、Red Hat Enterprise Linux 6、Red Hat Enterprise Linux 5等,因?yàn)镽ed Hat Enterprise 和CentOS屬于同步并行的操作系統(tǒng),所以O(shè)racle 12 c同樣支持CentOS 7、CentOS 6、CentOS 5操作系統(tǒng)。在其他Linux系統(tǒng)中安裝時(shí),個(gè)別軟件或配置文件可能需要進(jìn)行適當(dāng)?shù)恼{(diào)整。

[root@localhost ~]# cat /etc/centos-release              //查看系統(tǒng)版本信息
CentOS Linux release 7.5.1804 (Core) 
[root@localhost ~]# uname -r                   //查看系統(tǒng)內(nèi)核信息
3.10.0-862.el7.x86_64

Linux操作系統(tǒng)要求:

  • 物理內(nèi)存:必須高于1GB,對(duì)于VMware虛擬機(jī)建議不少于2GB;

  • 交換空間:物理內(nèi)存為1~2GB時(shí),交換分區(qū)為物理內(nèi)存的1.5~2倍;物理內(nèi)存為2~16GB時(shí),交換分區(qū)于物理內(nèi)存大小相同;物理內(nèi)存超過16GB時(shí),交換分區(qū)使用16GB就可以了;

如果交換分區(qū)空間不足的話,可以使用以下方式擴(kuò)展交換分區(qū)

[root@localhost ~]# dd if=/dev/zero of=/swap_file bs=1024 count=2097152        
//這是擴(kuò)展了2GB的交換分區(qū),2097152除以1024等于2048,所以是2GB
[root@localhost ~]# mkswap /swap_file
[root@localhost ~]# swapon /swap_file
//完成之后,再次查詢就會(huì)發(fā)現(xiàn)交換分區(qū)多了2GB的空間
[root@localhost ~]# grep MemTotal /proc/meminfo
MemTotal:    7992344 kB
[root@localhost ~]# grep SwapTotal /proc/meminfo
SwapTotal:   18568716 kB                         //交換分區(qū)空間及內(nèi)存空間已經(jīng)滿足要求

對(duì)于Oracle 12c數(shù)據(jù)庫(kù),若程序文件和數(shù)據(jù)文件安裝在同一分區(qū),則該分區(qū)硬盤空間的最要要求為企業(yè)級(jí)為6.4G,標(biāo)準(zhǔn)版6.1G;除此之外,還應(yīng)確保/tmp目錄的可用空間不少于1G??偟膩碚f,建議安裝Oracle 12c準(zhǔn)備至少15G的硬盤空間。

[root@localhost ~]# df -hT /tmp       //查看/tmp目錄的磁盤使用情況
文件系統(tǒng)        類型 容量 已用 可用 已用% 掛載點(diǎn)
/dev/mapper/centos-root xfs  50G  21G  30G  42% /
//很明顯,滿足了要求

安裝Oracle數(shù)據(jù)庫(kù)前,要求規(guī)劃好主機(jī)名和IP。服務(wù)器的主機(jī)名、IP地址應(yīng)提前確認(rèn)無誤,一旦Oracle數(shù)據(jù)庫(kù)安裝完成,建議不要輕易的修改主機(jī)名,否則會(huì)導(dǎo)致數(shù)據(jù)庫(kù)啟動(dòng)失敗。方法如下:

[root@localhost ~]# sed -i '1c oracle' /etc/hostname
//設(shè)置主機(jī)名為oracle
[root@localhost ~]# echo -e "192.168.1.1 oracle" >> /etc/hosts
//添加主機(jī)名與IP地址的對(duì)應(yīng)關(guān)系

(2)軟件環(huán)境要求

Oracle 12c的安裝過程通常是在圖形界面中進(jìn)行,因此建議使用已安裝有GNOME中文桌面環(huán)境的CentOS服務(wù)器,軟件開發(fā)工具當(dāng)然是必不可少的,應(yīng)使用yum方式安裝以下必要的軟件環(huán)境。

[root@localhost ~]# yum -y install binutils compat-* gcc gcc-c++ glibc  glibc-devel ksh \
 libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat \
 unixODBC unixODBC-devel
//使用本地光盤或者網(wǎng)絡(luò)yum都可以

Oracle 12c自身集成了Java運(yùn)行環(huán)境,但安裝界面對(duì)中文的支持并不完善,因此若希望使用中文的Oracle安裝界面,建議提前安裝好Java軟件包。

(3)內(nèi)核要求

為了確保數(shù)據(jù)庫(kù)運(yùn)行穩(wěn)定,Oracle 12c針對(duì)Linux內(nèi)核參數(shù),進(jìn)程會(huì)話限制提出了一些要求,其中一部分設(shè)置可以在安裝過程中自動(dòng)檢測(cè)并進(jìn)行修復(fù),但并一定很完整,所以最好的做法是根據(jù)安裝文檔提前進(jìn)行配置。

內(nèi)核參數(shù)調(diào)整體現(xiàn)在/etc/sysctl.conf文件中,主要包括與內(nèi)存調(diào)度、端口范圍、打開文件數(shù)、I/O請(qǐng)求等相關(guān)的一些設(shè)置,相關(guān)數(shù)值不可低于安裝要求。如下:

[root@localhost ~]# vim /etc/sysctl.conf 
         ………………            //省略部分內(nèi)容,在末尾添加即可!
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_max = 4194304
net.core.rmem_default = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
[root@localhost ~]# sysctl -p           //重新加載配置文件

各參數(shù)詳解:

  • fs.aio-max-nr:此參數(shù)限制并發(fā)未完成的請(qǐng)求,應(yīng)該設(shè)置避免I/O子系統(tǒng)故障;

  • fs.file-max:該參數(shù)決定了系統(tǒng)中所允許的最大可以打開的文件數(shù)量;

  • kernel.shmall:該參數(shù)控制可以使用的共享內(nèi)存的總頁(yè)數(shù);.

  • kernel.shmmax:是核心參數(shù)中最重要的參數(shù)之一,用于定義單個(gè)共享內(nèi)存段的最大值。

  • 建議:

  • 32位linux系統(tǒng):可取最大值為4GB(4294967296bytes)-1byte,即4294967295。建議值為多于內(nèi)存的一半,所以如果是32為系統(tǒng),一般可取值為4294967295。

  • 64位linux系統(tǒng):可取的最大值為物理內(nèi)存值-1byte,建議值為多于物理內(nèi)存的一半,例如,如果為12GB物理內(nèi)存,可取1210241024*1024-1=12884901887。

  • kernel.shmmni:該參數(shù)是共享內(nèi)存段的最大數(shù)量。shmmni缺省值4096,一般肯定是夠用了。

  • kernel.sem:

  • 以kernel.sem = 250 32000 100 128為例:

  • 250是參數(shù)semmsl的值,表示一個(gè)信號(hào)量集合中能夠包含的信號(hào)量最大數(shù)目。

  • 32000是參數(shù)semmns的值,表示系統(tǒng)內(nèi)可允許的信號(hào)量最大數(shù)目。

  • 100是參數(shù)semopm的值,表示單個(gè)semopm()調(diào)用在一個(gè)信號(hào)量集合上可以執(zhí)行的操作數(shù)量。

  • 128是參數(shù)semmni的值,表示系統(tǒng)信號(hào)量集合總數(shù)。

  • net.ipv4.ip_local_port_range:表示應(yīng)用程序可使用的IPv4端口范圍;

  • net.core.rmem_default:表示套接字接收緩沖區(qū)大小的缺省值;

  • net.core.rmem_max:表示套接字接收緩沖區(qū)大小的最大值;

  • net.core.wmem_default:表示套接字發(fā)送緩沖區(qū)大小的缺省值;

  • net.core.wmem_max:表示套接字發(fā)送緩沖區(qū)大小的最大值;

(4)Oracle用戶環(huán)境要求

Oracle 12c需要固定的運(yùn)行用戶oracle、安裝組oinstall、管理組dba,這些賬號(hào)應(yīng)提前創(chuàng)建好。用于存放Oracle程序及數(shù)據(jù)庫(kù)文件的基本目錄也應(yīng)提前創(chuàng)建好。

[root@localhost ~]# groupadd oinstall
[root@localhost ~]# groupadd dba
[root@localhost ~]# useradd -g oinstall -G dba oracle
[root@localhost ~]# echo '123456' | passwd --stdin oracle
更改用戶 oracle 的密碼 。
passwd:所有的身份驗(yàn)證令牌已經(jīng)成功更新。
[root@localhost ~]# mkdir -p /u01/app/oracle
[root@localhost ~]# chown -R oracle:oinstall /u01/app
[root@localhost ~]# chmod -R 775 /u01/app/oracle

Oracle 12c的安裝任務(wù)應(yīng)以運(yùn)行用戶oracle的身份執(zhí)行,需適當(dāng)調(diào)整oracle用戶的環(huán)境配置以滿足需求。

[root@localhost ~]# vim /home/oracle/.bash_profile
         ………………            //省略部分內(nèi)容,在末尾添加即可!
umask 022
ORACLE_BASE=/u01/app/oracle #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 #是針對(duì)Oracle語言、地區(qū)、字符集的設(shè)置 
PATH=$PATH:$ORACLE_HOME/bin
LANG=zh_CN.UTF-8 #LANG是針對(duì)Linux系統(tǒng)的語言、地區(qū)、字符集的設(shè)置。 
DISPLAY=:0.0 #在哪個(gè)終端可以使用圖形 
export PATH LANG NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID DISPLAY #將變量導(dǎo)出為全局變量

(5)oracle用戶資源限制要求

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

[root@localhost ~]# vim /etc/pam.d/login 
         ………………            //省略部分內(nèi)容,在末尾添加即可!
session required /lib/security/pam_limits.so
session required pam_limits.so
[root@localhost ~]# vim /etc/security/limits.conf
         ………………            //省略部分內(nèi)容,在末尾添加即可!
oracle soft nproc 2047           #設(shè)置進(jìn)程數(shù)軟限制      
oracle hard nproc 16384         #設(shè)置進(jìn)程數(shù)硬限制
oracle soft nofile 1024           #設(shè)置文件數(shù)軟限制
oracle hard nofile 65536         #設(shè)置文件數(shù)硬限制
oracle soft stack 10240         # Oracle軟堆棧限制

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

[root@localhost ~]# 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

準(zhǔn)備工作完成后重新啟動(dòng)系統(tǒng),重啟之后,再次檢查之前的配置是否生效。

3.Oracle 12c安裝過程

Oracle的中文官方網(wǎng)址是https://www.oracle.com/index.html 可以自行進(jìn)行下載,也可通過本人提供的Oracle安裝包 進(jìn)行安裝。

[root@oracle ~]# cd /
[root@oracle /]# unzip /root/linuxx64_12201_database.zip 
//進(jìn)入根目錄對(duì)下載的Oracle軟件包進(jìn)行解壓
[root@oracle /]# ls database/           //解壓之后生成database目錄
install response rpm runInstaller sshsetup stage welcome.html

授權(quán)允許用戶oracle使用圖形終端,例如執(zhí)行:xhost + oracle@localhost,表示允許用戶oracle從本機(jī)訪問,或者執(zhí)行xhost + 表示取消所有限制,這里執(zhí)行xhost +即可。

[root@oracle /]# xhost +          //一定要以root用戶的身份在圖形環(huán)境中操作
[root@oracle /]# su - oracle              //切換到oracle用戶
[oracle@oracle ~]$ cd /database/
[oracle@oracle database]$ export DISPLAY=:0.0          設(shè)置DISPLAY環(huán)境變量
[oracle@oracle database]$ ./runInstaller      //執(zhí)行安裝腳本

執(zhí)行完成后會(huì)彈出圖形化界面,進(jìn)行以下操作:

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

執(zhí)行過程中,會(huì)有這樣的提示信息:

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

[root@oracle ~]# /u01/app/oraInventory/orainstRoot.sh
[root@oracle ~]# /u01/app/oracle/product/12.2.0/dbhome_1/root.sh
//執(zhí)行第二個(gè)腳本,遇到提示,一路回車即可!

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

Web頁(yè)面訪問如下:

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

接下來使用命令行進(jìn)行登錄訪問:

首先需要解決sqlplus命令行方向鍵不能使用的問題,方法如下:

獲取rlwrap軟件包

[root@oracle ~]# yum -y install ncurses* readline*         //安裝軟件包所需依賴
[root@oracle ~]# tar zxf rlwrap-0.30.tar.gz.zip -C /usr/src
[root@oracle ~]# cd /usr/src/rlwrap-0.30/
[root@oracle rlwrap-0.30]# ./configure && make && make install
//使用root身份進(jìn)行編譯安裝,安裝完成后即可使用!
[oracle@oracle ~]$ rlwrap sqlplus "/ as sysdba"

SQL*Plus: Release 12.2.0.1.0 Production on 星期二 11月 26 10:51:44 2019

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

連接到: 
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL>

這樣登錄到數(shù)據(jù)庫(kù)庫(kù)時(shí),就可以使用方向鍵了。但是這樣每次登錄數(shù)據(jù)庫(kù)時(shí)都需要使用 rlwrap 命令稍嫌麻煩,可以進(jìn)行一下操作:

[oracle@oracle ~]$ vim /home/oracle/.bash_profile 
             ………………       //在末尾添加以下內(nèi)容
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
//就是將命令創(chuàng)建別名而已

退出當(dāng)前oracle用戶,重新登錄才可使用。

[oracle@oracle ~]$ sqlplus sys/123456 as sysdba
//使用命令行登錄
SQL*Plus: Release 12.2.0.1.0 Production on 星期二 11月 26 10:57:41 2019

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

連接到: 
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL>

或者

[oracle@oracle ~]$ sqlplus /nolog

SQL*Plus: Release 12.2.0.1.0 Production on 星期二 11月 26 10:59:10 2019

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

SQL> conn sys/123456 as sysdba
已連接。
//也可以使用這樣方式登錄Oracle數(shù)據(jù)庫(kù)

二、創(chuàng)建Oracle 12c數(shù)據(jù)庫(kù)

如果在安裝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ù)(不過為了使oracle數(shù)據(jù)庫(kù)充分利用系統(tǒng)資源,建議一個(gè)服務(wù)器上只創(chuàng)建一個(gè)數(shù)據(jù)庫(kù))。
創(chuàng)建數(shù)據(jù)庫(kù)的方法有兩種:通過圖形化界面,或者采用“CREATE DATABASE”命令,這里說一下圖形化界面創(chuàng)建數(shù)據(jù)庫(kù)的方法:

[oracle@oracle ~]$ dbca         //使用oracle用戶創(chuàng)建數(shù)據(jù)庫(kù)
//執(zhí)行這條命令就會(huì)彈出圖形化界面創(chuàng)建數(shù)據(jù)庫(kù)

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

彈出的圖形化界面如下:

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)
如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)

數(shù)據(jù)庫(kù)已經(jīng)創(chuàng)建完成!

三、Oracle 12c數(shù)據(jù)庫(kù)的啟動(dòng)與關(guān)閉

oracle數(shù)據(jù)庫(kù)的啟動(dòng)與關(guān)閉是日常工作之一。對(duì)于大多數(shù)oracle DBA來說,啟動(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ù)(裝載階段);③打開數(shù)據(jù)庫(kù)(打開階段)。
在startup命令中,可以使用不同的選項(xiàng)來控制數(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 ~]$ sqlplus / as sysdba          //以oracle用戶登錄數(shù)據(jù)庫(kù)

SQL*Plus: Release 12.2.0.1.0 Production on 星期二 11月 26 11:18:36 2019

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

連接到: 
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

SQL> startup nomount

2)startup mount(某些時(shí)候會(huì)用到該命令)

startup mount 命令啟動(dòng)實(shí)例并且裝載數(shù)據(jù)庫(kù),但是沒有打開數(shù)據(jù)庫(kù)。oracle系統(tǒng)讀取控制文件中關(guān)于數(shù)據(jù)文件和重做日志文件的內(nèi)容,但并不打開該文件。這種打開方式常在數(shù)據(jù)庫(kù)維護(hù)操作中使用,如對(duì)數(shù)據(jù)文件的更名、改變重做日志及打開歸檔模式等。在這種打開方式下,除了可以看到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ù)和打開數(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)打開”的提示;數(shù)據(jù)庫(kù)系統(tǒng)處于正常的工作狀態(tài),可以接收用戶的請(qǐng)求。

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

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

SQL> alter database open;

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

SQL> startup      //在數(shù)據(jù)庫(kù)關(guān)閉狀態(tài)下執(zhí)行該命令,數(shù)據(jù)庫(kù)會(huì)依次啟動(dòng)、裝載、打開。
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)打開。

(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)。也就是說,如果用戶發(fā)出shutdown命令,即執(zhí)行shutdown normal命令。
發(fā)出該命令后,任何新的連接都將不再允許連接到數(shù)據(jù)庫(kù)。在數(shù)據(jù)庫(kù)關(guān)閉之前,oracle將等待目前連接的所有用戶都從數(shù)據(jù)庫(kù)中退出后才開始關(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語句立即中斷,系統(tǒng)中任何沒有提交的事務(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ù),然后斷開所有的連接用戶。

3)shutdown transactional
shutdown transactional 命令常用來計(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ù)方式的最后選擇,是在沒有任何辦法關(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í)遇到問題。

發(fā)出該命令后,所有正在運(yùn)行的SQL語句將立即中止,所有未提交的事務(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ì)較快。不是萬不得已不要使用shutdown abort 方式,因?yàn)檫@種方式會(huì)造成數(shù)據(jù)丟失,并且恢復(fù)數(shù)據(jù)庫(kù)也需要較長(zhǎng)時(shí)間。

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

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

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

啟動(dòng)監(jiān)聽是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.

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

LSNRCTL> start     //啟動(dòng)監(jiān)聽
啟動(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
寫入/u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml的日志信息
監(jiān)聽: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
監(jiān)聽: (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)聽程序參數(shù)文件     /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
監(jiān)聽程序日志文件     /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
監(jiān)聽端點(diǎn)概要...
 (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
 (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
監(jiān)聽程序不支持服務(wù)
命令執(zhí)行成功

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

[oracle@oracle ~]$ lsnrctl start     //啟動(dòng)監(jiān)聽

(2)關(guān)閉監(jiān)聽

[oracle@oracle ~]$ lsnrctl stop     //關(guān)閉監(jiān)聽

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í)行成功

四、將Oracle數(shù)據(jù)庫(kù)設(shè)置為開機(jī)自啟動(dòng)

[root@oracle ~]# vim /etc/oratab 
              ………………      //修改以下內(nèi)容
orcl:/u01/app/oracle/product/12.2.0/dbhome_1:Y

[root@oracle ~]# vim /etc/rc.local 
su - oracle -c 'dbstart'             //啟動(dòng)數(shù)據(jù)庫(kù)
su - oracle -c 'lsnrctl start'           //啟用監(jiān)聽進(jìn)程
[root@oracle ~]# chmod +x /etc/rc.d/rc.local
//添加執(zhí)行權(quán)限

重啟之后,進(jìn)行驗(yàn)證:

[root@oracle ~]# netstat -anpt | grep 5500        //oracle數(shù)據(jù)庫(kù)的監(jiān)聽端口
tcp6    0   0 :::5500         :::*          LISTEN   2144/tnslsnr    
[root@oracle ~]# netstat -anpt | grep 1521      //oracle數(shù)據(jù)庫(kù)監(jiān)聽進(jìn)程
tcp    0   0 192.168.1.1:24251    192.168.1.1:1521    ESTABLISHED 1816/ora_lreg_orcl 
tcp6    0   0 :::1521         :::*          LISTEN   2144/tnslsnr    
tcp6    0   0 192.168.1.1:1521    192.168.1.1:24251    ESTABLISHED 2144/tnslsnr    
tcp6    0   0 192.168.1.1:1521    192.168.1.1:24143    TIME_WAIT  -

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何部署Oracle 12c企業(yè)版數(shù)據(jù)庫(kù)”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!

向AI問一下細(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