溫馨提示×

溫馨提示×

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

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

CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

發(fā)布時(shí)間:2020-02-14 11:09:44 來源:網(wǎng)絡(luò) 閱讀:404 作者:俊偉祺i 欄目:關(guān)系型數(shù)據(jù)庫

一、安裝Oracle 12c

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

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

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

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

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

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

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

Oracle數(shù)據(jù)庫是一個(gè)相對龐大的應(yīng)用軟件,對服務(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)整。通過以下命令查看系統(tǒng)版本:

[root@Oracle ~]# cat /etc/centos-release
CentOS Linux release 7.4.1708 (Core) 

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

  • 物理內(nèi)存:必須高于1GB,對于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ū)

查看物理內(nèi)存和交換內(nèi)存的命令如下:

[root@Oracle ~]# grep MemTotal /proc/meminfo 
MemTotal:        4030172 kB
[root@Oracle ~]# grep SwapTotal /proc/meminfo 
SwapTotal:       8388604 kB

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

[root@Oracle ~]# df -hT
文件系統(tǒng)                類型      容量  已用  可用 已用% 掛載點(diǎn)
/dev/mapper/centos-root xfs        72G   21G   51G   30% /
devtmpfs                devtmpfs  2.0G     0  2.0G    0% /dev
tmpfs                   tmpfs     2.0G  960M 1008M   49% /dev/shm
tmpfs                   tmpfs     2.0G  9.0M  2.0G    1% /run
tmpfs                   tmpfs     2.0G     0  2.0G    0% /sys/fs/cgroup
/dev/sda1               xfs       197M  139M   59M   71% /boot
tmpfs                   tmpfs     394M   12K  394M    1% /run/user/42
tmpfs                   tmpfs     394M     0  394M    0% /run/user/0
/dev/sr0                iso9660   4.3G  4.3G     0  100% /mnt

安裝Oracle數(shù)據(jù)庫前,要求規(guī)劃好主機(jī)名和IP。服務(wù)器的主機(jī)名、IP地址應(yīng)提前確認(rèn)無誤,一旦Oracle數(shù)據(jù)庫安裝完成,建議不要再修改主機(jī)名,否則會(huì)導(dǎo)致數(shù)據(jù)庫啟動(dòng)失敗。查看主機(jī)名可以通過hostname命令實(shí)現(xiàn),修改主機(jī)名通過配置文件/etc/hosts實(shí)現(xiàn),代碼如下:

[root@centos01 ~]# hostnamectl set-hostname Oracle  <!--修改主機(jī)名-->
[root@centos01 ~]# bash   <!--刷新主機(jī)名-->
[root@oracle ~]# hostname  <!--查看主機(jī)名-->
oracle
[root@Oracle ~]# vim /etc/hosts   <!--配置主機(jī)解析-->
192.168.100.10 oracle

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

Oracle 12c的安裝過程通常是在圖形界面中進(jìn)行,因此建議使用已安裝有GNOME中文桌面環(huán)境的CentOS服務(wù)器,軟件開發(fā)工具當(dāng)然是必不可少的,如gcc、glibc、binutils等軟件包,建議使用yum工具來安裝以下必要的軟件環(huán)境。具體操作如下:

[root@Oracle ~]# yum -y install binutils elfutils-libelf elfutils-libelf-devel gcc gcc-c++ glibc glibc-common glibc-devel glibc-headers kernel-headers ksh libaio libaio-devel libgcc libgomp libstdc++ libstdc++-devel make numactl-devel unixODBC unixODBC-devel

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

3)內(nèi)核要求

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

內(nèi)核參數(shù)調(diào)整體現(xiàn)在/etc/sysctl.conf文件中,主要包括與內(nèi)存調(diào)度、端口范圍、打開文件數(shù)、I/O請求等相關(guān)的一些設(shè)置,相關(guān)數(shù)值不可低于安裝要求。修改完畢后通過執(zhí)行如下的“sysctl -p”命令使新配置立即生效。

[root@Oracle ~]# vim /etc/sysctl.conf 
............      <!--此處省略部分內(nèi)容-->
fs.file-max = 6815744
kernel.sem = 250 32000 100 128
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.panic_on_oops = 1
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
net.ipv4.conf.all.rp_filter = 2
net.ipv4.conf.default.rp_filter = 2
fs.aio-max-nr = 1048576
net.ipv4.ip_local_port_range = 9000 65500
[root@Oracle ~]# sysctl -p   <!--重新加載配置文件-->

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

Oracle 12c需要固定的運(yùn)行用戶oracle、安裝組oinstall、管理組dba,這些賬號應(yīng)提前創(chuàng)建好。用來存放Oracle程序及數(shù)據(jù)庫文件的基本目錄(如/u01/app/oracle)也應(yīng)提前創(chuàng)建好。具體創(chuàng)建的命令如下:

[root@Oracle ~]# groupadd -g 54321 oinstall   <!--創(chuàng)建安裝組-->
[root@Oracle ~]# groupadd -g 54322 dba   <!--創(chuàng)建管理oracle組-->
[root@Oracle ~]# useradd -u 54321 -g oinstall -G dba oracle  
         <!--創(chuàng)建管理oracle的用戶,加入到組中 -->
[root@Oracle ~]# passwd oracle    <!--設(shè)置管理數(shù)據(jù)庫密碼-->
[root@Oracle ~]# mkdir -p /u01/app/oracle<!--創(chuàng)建數(shù)據(jù)庫根目錄-->
[root@Oracle ~]# chown -R oracle:oinstall /u01/app/ <!--設(shè)置目錄所有者-->
[root@Oracle ~]# chmod -R 755 /u01/app/   <!--設(shè)置目錄權(quán)限-->

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

[root@Oracle ~]# vim /home/oracle/.bash_profile 
............<!--此處省略部分內(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ù)庫實(shí)例名稱-->
LANG=zh_CN.UTF-8   <!--確定使用何種語言環(huán)境-->
NLS_LANG="AMERICAN_AMERICA".ZHS16GBK 
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID LANG NLS_LANG PATH    <!--將變量導(dǎo)出為全局變量-->
[root@Oracle ~]# source /home/oracle/.bash_profile   <!--刷新配置-->

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@Oracle ~]# vim /etc/pam.d/login   <!--設(shè)置pam驗(yàn)證-->

session    required     /lib64/security/pam_limits.so
session    required     pam_limits.so
............<!--此處省略部分內(nèi)容-->
[root@Oracle ~]# vim /etc/security/limits.conf   
                  <!--限制oracle數(shù)據(jù)庫存儲(chǔ)和進(jìn)程使用-->
............<!--此處省略部分內(nèi)容-->
oracle   soft   nofile    1024           <!--文件數(shù)軟限制-->
oracle   hard   nofile    65536         <!--文件數(shù)硬限制-->
oracle   soft   nproc    16384           <!--進(jìn)程數(shù)軟限制-->
oracle   hard   nproc    16384          <!--進(jìn)程數(shù)硬限制-->
oracle   soft   stack    10240              <!--Oracle軟堆棧限制-->
[root@Oracle ~]# vim /etc/profile 
............<!--此處省略部分內(nèi)容-->
              <!--添加如下內(nèi)容-->
if [ $USER = "oracle"]; then
        if [$SHELLO = "/bin/ksh"]; then
        ulimit -p 16384
        ulimit n 65536
else
        ulimit -u 16384 -n 65536
fi
fi

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

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

3、Oracle 12c安裝過程

Oracle的中文官方網(wǎng)址是https://www.oracle.com/index.html 可以自行進(jìn)行下載,也可通過網(wǎng)盤自行提取:[https://pan.baidu.com/s/1VWFYZH0itXjXN-xt7hlD0A
提取碼:9n84]進(jìn)行安裝。具體操作如下:

[root@Oracle oracle]# ls      <!--通過rz命令上傳壓縮包-->
linuxx64_12201_database.zip
[root@Oracle oracle]# unzip linuxx64_12201_database.zip 
                       <!--解壓縮oracle包-->
[root@Oracle ~]# export DISPLAY=192.168.100.254:0.0  
                                  <!--配置界面顯示到宿主機(jī)-->
[root@Oracle ~]# xhost +    <!--一定要以root用戶的身份在圖形環(huán)境中操作-->

CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

[root@Oracle ~]# su oracle   <!--切換到oracle賬戶-->
[oracle@Oracle root]$ cd
[oracle@Oracle ~]$ export DISPLAY=192.168.100.254:0.0  
[oracle@Oracle ~]$ xhost +

CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

[oracle@Oracle ~]$ /u01/app/oracle/database/runInstaller <!--安裝oracle-->
正在啟動(dòng) Oracle Universal Installer...

CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫
執(zhí)行完成后過一會(huì)彈出圖形化界面,進(jìn)行以下操作:

1)配置安全更新,什么也不選下一步即可
CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫
CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

2)安裝選項(xiàng)選擇創(chuàng)建和配置數(shù)據(jù)庫,單擊下一步
CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

3)系統(tǒng)類選擇服務(wù)器類,單擊下一步
CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

4)數(shù)據(jù)庫安裝選項(xiàng)選擇單實(shí)例數(shù)據(jù)庫安裝,單擊下一步
CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

5)安裝類型選擇典型安裝,單擊下一步
CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

6)設(shè)置數(shù)據(jù)庫口令,單擊下一步
CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫
CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

7)清單保持默認(rèn),單擊下一步
CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

8)默認(rèn)下一步
CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

9)執(zhí)行腳本
CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

[root@Oracle ~]# /u01/app/oraInventory/orainstRoot.sh
[root@Oracle ~]# /u01/app/oracle/product/12.2.0/dbhome_1/root.sh

10)安裝完成,通過瀏覽器訪問
CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

11)瀏覽器訪問https://Oracle:5500/em 安裝flash player
CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

12)驗(yàn)證安裝結(jié)果,瀏覽器訪問https://Oracle:5500/em
CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

*接下來使用SQLPlus命令在命令行界面中訪問Oracle 12c數(shù)據(jù)庫:**

[root@Oracle ~]# su oracle  <!--切換到oracle賬戶-->
[oracle@Oracle root]$ cd
[oracle@Oracle ~]$ source .bash_profile    <!--運(yùn)行此項(xiàng)-->
[oracle@Oracle ~]$ sqlplus / as sysdba    <!--登錄數(shù)據(jù)庫-->
SQL> help index       <!--查看支持的指令列表-->
SQL> show user;        <!--查看當(dāng)前用戶-->
USER is "SYS"

在SQL>模式下,不區(qū)分大小寫,但是Linux提示符下區(qū)分大小寫。

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

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

在Linux環(huán)境下,采用運(yùn)行數(shù)據(jù)庫配置助手(database configuration assistant, DBCA)來實(shí)現(xiàn)。Oracle 12c安裝完成后,會(huì)在$ORACLE_HOME/bin目錄下生成Oracle系統(tǒng)可執(zhí)行程序,創(chuàng)建Oracle數(shù)據(jù)庫所用的DBCA也在該目錄下。

[oracle@Oracle ~]$ export DISPLAY=192.168.100.254:0.0
[oracle@Oracle ~]$ xhost +

CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

[oracle@Oracle ~]$  dbca   <!--以oracle用戶身份運(yùn)行dbca命令-->

CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

彈出的圖形化界面如下:
CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫
CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫

CentOS 7部署Oracle 12c企業(yè)版數(shù)據(jù)庫
數(shù)據(jù)庫已經(jīng)創(chuàng)建完成。為了使Oracle系統(tǒng)充分利用系統(tǒng)資源,建議一個(gè)服務(wù)器上只創(chuàng)建一個(gè)數(shù)據(jù)庫。

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

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

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

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

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

啟動(dòng)(STARTUP)一個(gè)數(shù)據(jù)庫需要三個(gè)步驟:①啟動(dòng)oracle實(shí)例(非裝載階段);②由實(shí)例裝載數(shù)據(jù)庫(裝載階段);③打開數(shù)據(jù)庫(打開階段)。
在STARTUP命令中,可以使用不同的選項(xiàng)來控制數(shù)據(jù)庫的不同啟動(dòng)步驟。

①STARTUP NOMOUNT

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

SQL> startup nomount;       <!--啟動(dòng)數(shù)據(jù)庫-->
ORACLE instance started.

Total System Global Area 1660944384 bytes
Fixed Size          8793448 bytes
Variable Size        1056965272 bytes
Database Buffers      587202560 bytes
Redo Buffers            7983104 bytes
SQL> alter database mount;      <!--裝載數(shù)據(jù)庫-->

Database altered.
SQL> alter database open;      <!--打開數(shù)據(jù)庫-->

Database altered.
②STARTUP MOUNT

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

SQL> startup mount;       <!--啟動(dòng)實(shí)例并且裝載數(shù)據(jù)庫-->
ORACLE instance started.

Total System Global Area 1660944384 bytes
Fixed Size          8793448 bytes
Variable Size        1056965272 bytes
Database Buffers      587202560 bytes
Redo Buffers            7983104 bytes
Database mounted.
SQL> alter database open;     <!--打開數(shù)據(jù)庫-->

Database altered.
③STARTUP

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

SQL> startup;   
<!--startup命令實(shí)現(xiàn)了啟動(dòng)實(shí)例,裝載數(shù)據(jù)庫,打開數(shù)據(jù)庫,一條命令搞定-->
ORACLE instance started.

Total System Global Area 1660944384 bytes
Fixed Size          8793448 bytes
Variable Size        1056965272 bytes
Database Buffers      587202560 bytes
Redo Buffers            7983104 bytes
Database mounted.
Database opened.

如果采用STARTUP NOMOUNT或者STARTUP MOUNT的數(shù)據(jù)庫打開方式,必須采用alter database命令來執(zhí)行裝載或打開數(shù)據(jù)庫的操作。例如,如果以STARTUP NOMOUNT方式打開數(shù)據(jù)庫,也就是說實(shí)例已經(jīng)啟動(dòng),但是數(shù)據(jù)庫沒有裝載和打開。這時(shí)必須運(yùn)行下面的兩條命令,數(shù)據(jù)庫才能正確啟動(dòng)。命令如下:

SQL> alter database mount;      <!--裝載數(shù)據(jù)庫-->
SQL> alter database open;      <!--打開數(shù)據(jù)庫-->

如果以STARTUP MOUNT方式啟動(dòng)數(shù)據(jù)庫,只需要運(yùn)行下面一條命令即可以打開數(shù)據(jù)庫:

SQL> alter database open;      <!--打開數(shù)據(jù)庫-->

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

對于數(shù)據(jù)庫的關(guān)閉,有四種不同的關(guān)閉選項(xiàng)。

①SHUTDOWN NORMAL

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

SQL> shutdown;
Database closed.
Database dismounted.
ORACLE instance shut down.

SQL> shutdown normal;
Database closed.
Database dismounted.
ORACLE instance shut down.
②SHUTDOWN IMMEDIATE

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

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
③SHUTDOWN TRANSACTIONAL

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

SQL> shutdown transactional;
Database closed.
Database dismounted.
ORACLE instance shut down.
④SHUTDOWN ABORT

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

SQL> shutdown abort;
ORACLE instance shut down.

數(shù)據(jù)庫處于一種非正常工作狀態(tài),不能用SHUTDOWN NORMAL或SHUTDOWN IMMEDIATE命令關(guān)閉數(shù)據(jù)庫;

  • 需要立即關(guān)閉數(shù)據(jù)庫;

  • 在啟動(dòng)數(shù)據(jù)庫實(shí)例時(shí)遇到問題。

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

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

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

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

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

啟動(dòng)(Start)監(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 06-JAN-2020 19:28:52

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

Welcome to LSNRCTL, type "help" for information.

LSNRCTL> start           <!--啟動(dòng)監(jiān)聽-->
Starting /u01/app/oracle/product/12.2.0/dbhome_1//bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 12.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 12.2.0.1.0 - Production
Start Date                06-JAN-2020 19:28:54
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/12.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
The listener supports no services
The command completed successfully

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

[oracle@Oracle ~]$ lsnrctl start

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

[oracle@oracle ~]$ lsnrctl stop

LSNRCTL for Linux: Version 12.2.0.1.0 - Production on 06-JAN-2020 19:33:04

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

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
The command completed successfully

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

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

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

AI