在計(jì)算機(jī)信息安全領(lǐng)域中,數(shù)據(jù)庫系統(tǒng)無疑有著舉足輕重的地位。比如:SQL Server、MySQL、DB2、Oracle等,都是比較知名的數(shù)據(jù)庫管理軟件,由于Oracle數(shù)據(jù)庫的安全性,所以在一些比較重要的場合被普遍使用,比如:電信、銀行、政府部門等。
創(chuàng)新互聯(lián)的客戶來自各行各業(yè),為了共同目標(biāo),我們在工作上密切配合,從創(chuàng)業(yè)型小企業(yè)到企事業(yè)單位,感謝他們對我們的要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。專業(yè)領(lǐng)域包括網(wǎng)站建設(shè)、做網(wǎng)站、電商網(wǎng)站開發(fā)、微信營銷、系統(tǒng)平臺開發(fā)。
本次博文以O(shè)racle 12c數(shù)據(jù)庫的64位企業(yè)版為例,學(xué)習(xí)如何在Centos 操作系統(tǒng)中的安裝和基本配置,包括安裝的準(zhǔn)備等。
博文大綱:
一、安裝Oracle 12c
二、創(chuàng)建Oracle 12c數(shù)據(jù)庫
三、Oracle 12c數(shù)據(jù)庫的啟動與關(guān)閉
四、將Oracle數(shù)據(jù)庫設(shè)置為開機(jī)自啟動
由于本次安裝Oracle 12c軟件是在CentOS 7系統(tǒng)上實(shí)現(xiàn)的,那么首次安裝CentOS 7操作系統(tǒng)有幾點(diǎ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)行。
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)要求:
如果交換分區(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
//完成之后,再次查詢就會發(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)滿足要求
對于Oracle 12c數(shù)據(jù)庫,若程序文件和數(shù)據(jù)文件安裝在同一分區(qū),則該分區(qū)硬盤空間的最要要求為企業(yè)級為6.4G,標(biāo)準(zhǔn)版6.1G;除此之外,還應(yīng)確保/tmp目錄的可用空間不少于1G。總的來說,建議安裝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ù)庫前,要求規(guī)劃好主機(jī)名和IP。服務(wù)器的主機(jī)名、IP地址應(yīng)提前確認(rèn)無誤,一旦Oracle數(shù)據(jù)庫安裝完成,建議不要輕易的修改主機(jī)名,否則會導(dǎo)致數(shù)據(jù)庫啟動失敗。方法如下:
[root@localhost ~]# sed -i '1c oracle' /etc/hostname
//設(shè)置主機(jī)名為oracle
[root@localhost ~]# echo -e "192.168.1.1 oracle" >> /etc/hosts
//添加主機(jī)名與IP地址的對應(yīng)關(guā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)境,但安裝界面對中文的支持并不完善,因此若希望使用中文的Oracle安裝界面,建議提前安裝好Java軟件包。
為了確保數(shù)據(jù)庫運(yùn)行穩(wěn)定,Oracle 12c針對Linux內(nèi)核參數(shù),進(jìn)程會話限制提出了一些要求,其中一部分設(shè)置可以在安裝過程中自動檢測并進(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ù)值不可低于安裝要求。如下:
[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ā)未完成的請求,應(yīng)該設(shè)置避免I/O子系統(tǒng)故障;
- fs.file-max:該參數(shù)決定了系統(tǒng)中所允許的最大可以打開的文件數(shù)量;
- kernel.shmall:該參數(shù)控制可以使用的共享內(nèi)存的總頁數(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è)信號量集合中能夠包含的信號量最大數(shù)目。
32000是參數(shù)semmns的值,表示系統(tǒng)內(nèi)可允許的信號量最大數(shù)目。
100是參數(shù)semopm的值,表示單個(gè)semopm()調(diào)用在一個(gè)信號量集合上可以執(zhí)行的操作數(shù)量。
128是參數(shù)semmni的值,表示系統(tǒng)信號量集合總數(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ū)大小的最大值;
Oracle 12c需要固定的運(yùn)行用戶oracle、安裝組oinstall、管理組dba,這些賬號應(yīng)提前創(chuàng)建好。用于存放Oracle程序及數(shù)據(jù)庫文件的基本目錄也應(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ù)庫實(shí)例名稱
NLS_LANG="SIMPLIFIED CHINESE_CHINA".UTF8 #是針對Oracle語言、地區(qū)、字符集的設(shè)置
PATH=$PATH:$ORACLE_HOME/bin
LANG=zh_CN.UTF-8 #LANG是針對Linux系統(tǒng)的語言、地區(qū)、字符集的設(shè)置。
DISPLAY=:0.0 #在哪個(gè)終端可以使用圖形
export PATH LANG NLS_LANG ORACLE_BASE ORACLE_HOME ORACLE_SID DISPLAY #將變量導(dǎo)出為全局變量
進(jìn)程會話限制可以采用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用戶資源限制,不配置也不會影響oracle數(shù)據(jù)庫的成功安裝,但是考慮到若有糟糕的sql語句對服務(wù)器資源的無限占用,導(dǎo)致長時(shí)間對用戶請求無響應(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)備工作完成后重新啟動系統(tǒng),重啟之后,再次檢查之前的配置是否生效。
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)入根目錄對下載的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í)行完成后會彈出圖形化界面,進(jìn)行以下操作:
執(zhí)行過程中,會有這樣的提示信息:
[root@oracle ~]# /u01/app/oraInventory/orainstRoot.sh
[root@oracle ~]# /u01/app/oracle/product/12.2.0/dbhome_1/root.sh
//執(zhí)行第二個(gè)腳本,遇到提示,一路回車即可!
Web頁面訪問如下:
接下來使用命令行進(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ù)庫庫時(shí),就可以使用方向鍵了。但是這樣每次登錄數(shù)據(jù)庫時(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ù)庫
如果在安裝oracle產(chǎn)品時(shí)不創(chuàng)建數(shù)據(jù)庫,那么要使用oracle系統(tǒng)就必須先創(chuàng)建數(shù)據(jù)庫。如果在安裝oracle時(shí)選擇建立數(shù)據(jù)庫,也可以再創(chuàng)建第二個(gè)數(shù)據(jù)庫(不過為了使oracle數(shù)據(jù)庫充分利用系統(tǒng)資源,建議一個(gè)服務(wù)器上只創(chuàng)建一個(gè)數(shù)據(jù)庫)。
創(chuàng)建數(shù)據(jù)庫的方法有兩種:通過圖形化界面,或者采用“CREATE DATABASE”命令,這里說一下圖形化界面創(chuàng)建數(shù)據(jù)庫的方法:
[oracle@oracle ~]$ dbca //使用oracle用戶創(chuàng)建數(shù)據(jù)庫
//執(zhí)行這條命令就會彈出圖形化界面創(chuàng)建數(shù)據(jù)庫
如果沒有彈出窗口,可以參考前面的步驟,以root用戶運(yùn)行“xhost +”命令,再以oracle身份運(yùn)行“export DISPLAY=:0.0”命令。
彈出的圖形化界面如下:
數(shù)據(jù)庫已經(jīng)創(chuàng)建完成!
oracle數(shù)據(jù)庫的啟動與關(guān)閉是日常工作之一。對于大多數(shù)oracle DBA來說,啟動和關(guān)閉oracle數(shù)據(jù)庫最常用的方式是在命令行方式下執(zhí)行。
要啟動和關(guān)閉數(shù)據(jù)庫,必須具有Oracle管理員權(quán)限的用戶登錄,通常以具有SYSDBA權(quán)限的用戶登錄。
啟動一個(gè)數(shù)據(jù)庫需要三個(gè)步驟:①啟動oracle實(shí)例(非裝載階段);②由實(shí)例裝載數(shù)據(jù)庫(裝載階段);③打開數(shù)據(jù)庫(打開階段)。
在startup命令中,可以使用不同的選項(xiàng)來控制數(shù)據(jù)庫的不同啟動步驟。
1)startup nomount(該命令不常用)
nomount選項(xiàng)僅僅啟動一個(gè)oracle實(shí)例,讀取init.ora初始化參數(shù)文件、啟動后臺進(jìn)程、初始化SGA。當(dāng)實(shí)例啟動后,系統(tǒng)將顯示一個(gè)SGA內(nèi)存結(jié)構(gòu)和大小的列表,如下:
[oracle@oracle ~]$ sqlplus / as sysdba //以oracle用戶登錄數(shù)據(jù)庫
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í)候會用到該命令)
startup mount 命令啟動實(shí)例并且裝載數(shù)據(jù)庫,但是沒有打開數(shù)據(jù)庫。oracle系統(tǒng)讀取控制文件中關(guān)于數(shù)據(jù)文件和重做日志文件的內(nèi)容,但并不打開該文件。這種打開方式常在數(shù)據(jù)庫維護(hù)操作中使用,如對數(shù)據(jù)文件的更名、改變重做日志及打開歸檔模式等。在這種打開方式下,除了可以看到SGA系統(tǒng)列表以外,系統(tǒng)還會給出“數(shù)據(jù)庫裝載完畢”的提示。
SQL> alter database mount;
//由于上面已經(jīng)執(zhí)行了startup nomount命令,所以再更改它的狀態(tài),就需要使用該命令
3)startup(正常時(shí)使用的命令)
startup命令完成啟動實(shí)例,裝載數(shù)據(jù)庫和打開數(shù)據(jù)庫三個(gè)步驟。此時(shí),數(shù)據(jù)庫使數(shù)據(jù)文件和重做日志文件在線,通常還會請求一個(gè)或者多個(gè)回滾段;系統(tǒng)除了可以看到前面startup mount 方式下的所有提示外,還會給出一個(gè)“數(shù)據(jù)庫已經(jīng)打開”的提示;數(shù)據(jù)庫系統(tǒng)處于正常的工作狀態(tài),可以接收用戶的請求。
如果采用startup nomount或者startup mount的數(shù)據(jù)庫打開方式,必須采用alter database命令來執(zhí)行裝載或打開數(shù)據(jù)庫的操作。
前面兩條命令都執(zhí)行過了(startup nomount和alter database mount),所以這里再執(zhí)行下面命令,數(shù)據(jù)庫就可以說是正確啟動完成了。如下:
SQL> alter database open;
正常來說,可以直接使用下面一條命令來正常啟動數(shù)據(jù)庫,如下:
SQL> startup //在數(shù)據(jù)庫關(guān)閉狀態(tài)下執(zhí)行該命令,數(shù)據(jù)庫會依次啟動、裝載、打開。
ORACLE 例程已經(jī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ù)庫裝載完畢。
數(shù)據(jù)庫已經(jīng)打開。
對于數(shù)據(jù)庫的關(guān)閉,有四種不同的關(guān)閉選項(xiàng)。
1)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ù)庫,在下一次啟動時(shí)不需要進(jìn)行任何的實(shí)例恢復(fù)。但需要注意的是,采用這種方式時(shí),也許關(guān)閉一個(gè)數(shù)據(jù)庫需要幾天或更長的時(shí)間。
2)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)不會等待連接到數(shù)據(jù)庫的所有用戶退出系統(tǒng),而會強(qiáng)行回滾當(dāng)前所有的活動事務(wù),然后斷開所有的連接用戶。
3)shutdown transactional
shutdown transactional 命令常用來計(jì)劃關(guān)閉數(shù)據(jù)庫,它會等待當(dāng)前連接到系統(tǒng)且正在活動的事務(wù)執(zhí)行完畢,運(yùn)行該命令后,任何新的連接和事務(wù)都是不允許的。它所有活動的事務(wù)執(zhí)行完成后,數(shù)據(jù)庫將以和shutdown immediate同樣的方式關(guān)閉數(shù)據(jù)庫。
4)shutdown abort
shutdown abort是關(guān)閉數(shù)據(jù)庫方式的最后選擇,是在沒有任何辦法關(guān)閉數(shù)據(jù)庫的情況下不得不采用的方式,一般不要采用。在下列情況出現(xiàn)時(shí)可以考慮采用這種方式關(guān)閉數(shù)據(jù)庫。
在啟動數(shù)據(jù)庫實(shí)例時(shí)遇到問題。
發(fā)出該命令后,所有正在運(yùn)行的SQL語句將立即中止,所有未提交的事務(wù)將不回滾,oracle也不等待目前連接到數(shù)據(jù)庫的用戶退出系統(tǒng);下一次啟動數(shù)據(jù)庫時(shí)需要實(shí)例恢復(fù),因此,下一次啟動可能比平時(shí)需要更多的時(shí)間。
在關(guān)閉數(shù)據(jù)庫時(shí)最好使用shutdown immediate方式,因?yàn)檫@種方式安全且相對較快。不是萬不得已不要使用shutdown abort 方式,因?yàn)檫@種方式會造成數(shù)據(jù)丟失,并且恢復(fù)數(shù)據(jù)庫也需要較長時(shí)間。
當(dāng)oracle數(shù)據(jù)庫實(shí)例啟動完成后,為了使客戶端用戶能連接到oracle實(shí)例,DBA還需要在oracle所在的服務(wù)器上使用lsnrctl命令啟動監(jiān)聽進(jìn)程。如果數(shù)據(jù)庫實(shí)例關(guān)閉,一般也要關(guān)閉監(jiān)聽進(jìn)程。
啟動監(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, 請鍵入"help"以獲得信息。
LSNRCTL> start //啟動監(jiān)聽
啟動/u01/app/oracle/product/12.2.0/dbhome_1//bin/tnslsnr: 請稍候...
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
啟動日期 25-9月 -2019 21:59:12
正常運(yùn)行時(shí)間 0 天 0 小時(shí) 0 分 0 秒
跟蹤級別 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í)行成功
也可以直接使用以下命令“來啟動監(jiān)聽:
[oracle@oracle ~]$ lsnrctl start //啟動監(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í)行成功
注意先啟動監(jiān)聽再啟動數(shù)據(jù)庫!
[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' //啟動數(shù)據(jù)庫
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ù)庫的監(jiān)聽端口
tcp6 0 0 :::5500 :::* LISTEN 2144/tnslsnr
[root@oracle ~]# netstat -anpt | grep 1521 //oracle數(shù)據(jù)庫監(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 -
———————— 本文至此結(jié)束,感謝閱讀 ————————
新聞標(biāo)題:部署Oracle12c企業(yè)版數(shù)據(jù)庫
網(wǎng)站鏈接:http://aaarwkj.com/article38/goocsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、網(wǎng)站維護(hù)、虛擬主機(jī)、響應(yīng)式網(wǎng)站、微信公眾號、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)