真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

數(shù)據(jù)庫啟停標(biāo)準(zhǔn)操作流程

1.流程說明

1.1.流程編寫目的

為配合應(yīng)用變更,主機(jī)維護(hù),異常宕機(jī)重啟等工作,需要進(jìn)行重啟數(shù)據(jù)庫,重啟ORACLE集群軟件,主機(jī)。為保障數(shù)據(jù)庫啟停操作的規(guī)范性,特定制該操作規(guī)范。

按需規(guī)劃網(wǎng)站可以根據(jù)自己的需求進(jìn)行定制,做網(wǎng)站、成都網(wǎng)站制作構(gòu)思過程中功能建設(shè)理應(yīng)排到主要部位公司做網(wǎng)站、成都網(wǎng)站制作的運(yùn)用實(shí)際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實(shí)際意義

該規(guī)范只針對數(shù)據(jù)庫以及使用ORACLE集群軟件的集群環(huán)境,主機(jī)集群、集群文件系統(tǒng)、主機(jī)重啟等規(guī)范由其他應(yīng)用維護(hù)廠家提供。

1.2.相關(guān)人員

1.2.1.數(shù)據(jù)庫與應(yīng)用負(fù)責(zé)人信息

數(shù)據(jù)庫名稱

數(shù)據(jù)庫負(fù)責(zé)人

聯(lián)系方式

業(yè)務(wù)負(fù)責(zé)人

聯(lián)系方式

ZWDB













































































1.2.2.流程相關(guān)人員信息

公司

聯(lián)系人

聯(lián)系方式

緊急聯(lián)系人

聯(lián)系方式

業(yè)務(wù)支撐室






























1.3.操作流程

1.4.操作提示符

$ 為操作系統(tǒng)命令行提示符,表明該操作命令為普通用戶操作系統(tǒng)命令。

# 為操作用戶根用戶提示符,表明該操作命令使用root用戶進(jìn)行。

SQL> 為SQL命令提示符,表明該操作命令為SQL命令。

2.停數(shù)據(jù)庫操作 (oracle)

以下操作,如無特殊說明,均使用oracle用戶進(jìn)行操作。在進(jìn)行停監(jiān)聽、停實(shí)例、kill用戶進(jìn)程和數(shù)據(jù)庫進(jìn)程之前,一定要得到用戶以及管理人員的確認(rèn),以防止誤操作造成的故障。

2.1.確認(rèn)當(dāng)前登錄主機(jī)環(huán)境

確認(rèn)當(dāng)前登錄主機(jī)與操作主機(jī)一致。

$hostname

2.2.確認(rèn)操作數(shù)據(jù)庫SID

$echo $ORACLE_SID

2.3.停數(shù)據(jù)庫相關(guān)應(yīng)用

該操作由應(yīng)用廠家完成,數(shù)據(jù)庫中檢查類型為USER的進(jìn)程是否有減少。

SQL>SELECT INST_ID, COUNT(1) FROM GV$SESSION WHERE TYPE = 'USER' GROUP BY INST_ID;

如果仍然有大量的用戶類型的進(jìn)程存在,檢查進(jìn)程名及主機(jī)信息,告知應(yīng)用廠家進(jìn)行處理。

SQL> SET LINESIZE 120;

SQL> COL MACHINE FOR A30;

SQL>SELECT INST_ID, PROGRAM, MACHINE, COUNT(1) FROM GV$SESSION WHERE TYPE = 'USER' GROUP BY INST_ID, PROGRAM, MACHINE ORDER BY 4;

2.4.停數(shù)據(jù)庫監(jiān)聽

2.4.1.非集群環(huán)境

非集群環(huán)境下,數(shù)據(jù)庫默認(rèn)的監(jiān)聽名稱為LISTENER,可以通過下面的命令查詢當(dāng)前運(yùn)行的數(shù)據(jù)庫監(jiān)聽的名稱:

$ps -ef | grep tns

/oracle/app/oracle/product/10.2.0/db/bin/tnslsnrLISTENER_RAC10G1 -inherit

藍(lán)色部分,就是數(shù)據(jù)庫監(jiān)聽的名稱,非標(biāo)準(zhǔn)監(jiān)聽名稱,可以通過下面命令進(jìn)行關(guān)閉:

$lsnrctl stopLISTENER_RAC10G1

通過

$ps -ef | grep tns

命令檢查監(jiān)聽是否正常關(guān)閉。

如果監(jiān)聽不能正常關(guān)閉,也可以使用 kill -9的方式殺掉監(jiān)聽進(jìn)程。

2.4.2.集群環(huán)境

集群環(huán)境下,可以通過常規(guī)的lsnrctl命令關(guān)閉監(jiān)聽,也可以通過srvctl命令或crs命令的方式關(guān)閉監(jiān)聽。但是建議使用srvctl命令進(jìn)行資源管理操作。

集群環(huán)境中的停監(jiān)聽操作,根據(jù)要求停庫要求進(jìn)行對應(yīng)主機(jī)的操作。

a.查詢集群中監(jiān)聽運(yùn)行狀態(tài)

$crs_stat -t | grep lsnr

ora....G1.lsnr application ? ?ONLINE ? ?ONLINE ? ?rac10g1 ? ?

ora....G2.lsnr application ? ?ONLINE ? ?ONLINE ? ?rac10g2

b.停止節(jié)點(diǎn)監(jiān)聽

根據(jù)需要,停止相應(yīng)數(shù)據(jù)庫主機(jī)的監(jiān)聽程序

$srvctl stop listener -n rac10g1

c.停止SCAN_LISTENER (11g)

ORACLE 11G 中引入了SCAN_LISTENER的概念,應(yīng)該如果需要停止11g集群的所有實(shí)例,需要停止SCAN_LISTENER。

$srvctl stopscan_listener

d.查詢集群中監(jiān)聽運(yùn)行狀態(tài)

確保操作節(jié)點(diǎn)的監(jiān)聽被停止。

$crs_stat -t | grep lsnr

ora....G1.lsnr application ? ?OFFLINE ? OFFLINE ? ? ? ? ? ? ?

ora....G2.lsnr application ? ?ONLINE ? ?ONLINE ? ?rac10g2

?其他停止監(jiān)聽的方式:

a.通過lsnrctl命令方式停監(jiān)聽,該操作需要在集群中所有節(jié)點(diǎn)進(jìn)行

$ ps -ef | grep tns

/oracle/app/oracle/product/10.2.0/db/bin/tnslsnrLISTENER_RAC10G1 -inherit

$ lsnrctl stop LISTENER_RAC10G1

b.通過crs_stop命令停監(jiān)聽

$ crs_stat | grep lsnr

NAME=ora.rac10g1.LISTENER_RAC10G1.lsnr

NAME=ora.rac10g2.LISTENER_RAC10G2.lsnr

$ crs_stop

Usage: ?crs_stop resource_name [...] [-f] [-q] ["attrib=value ..."]

? ? ? ?crs_stop -c cluster_member [...] [-q] ["attrib=value ..."]

? ? ? ?crs_stop -all [-q]

該命令使用的參數(shù)為集群資源,因此參數(shù)為NAME說對應(yīng)的整個值

$ crs_stopora.rac10g1.LISTENER_RAC10G1.lsnr

2.5.檢查應(yīng)用連接

檢查數(shù)據(jù)庫的非本地會話連接,該操作所有節(jié)點(diǎn)都需要進(jìn)行,需要注意進(jìn)程運(yùn)行的用戶:

$ps -ef | grep "LOCAL=NO"

如果存在大量的進(jìn)程,表明仍有大量應(yīng)用進(jìn)程沒有停止,通過下面的命令進(jìn)行檢查:

SQL> SET LINESIZE 120;

SQL> COL MACHINE FOR A30;

SQL>SELECT INST_ID, PROGRAM, MACHINE, COUNT(1) FROM GV$SESSION WHERE TYPE = 'USER' GROUP BY INST_ID, PROGRAM, MACHINE ORDER BY 4;

可以通過kill -9的方式,殺掉非本地連接(該操作需要應(yīng)用廠家確認(rèn)后才能進(jìn)行):

$hostname

$id

$ps -ef | grep "LOCAL=NO" | awk '{print $2}' | xargs kill -9

注意:在ORACLE11G的版本,由于監(jiān)聽程序運(yùn)行在grid用戶下,因此LOCAL=NO的進(jìn)程屬組可能是grid用戶。在需要之前需要進(jìn)行確認(rèn)。

2.6.進(jìn)行日志切換

為保證在數(shù)據(jù)庫關(guān)閉過程中,所有的臟數(shù)據(jù)都寫入磁盤,日志都完成歸檔操作。建議在執(zhí)行關(guān)閉數(shù)據(jù)庫操作前,進(jìn)行日志切換和檢查點(diǎn)操作。

將集群中所有節(jié)點(diǎn)的臟數(shù)據(jù)寫入到數(shù)據(jù)文件:

SQL>alter system checkpointglobal;

global參數(shù)針對集群數(shù)據(jù)庫,單實(shí)例數(shù)據(jù)庫無需該參數(shù)。

對集群中所有實(shí)例,進(jìn)行日志切換操作,日志切換操作建議執(zhí)行多次:

SQL>alter system archive log current;

在非歸檔模式下,該命令無法正常執(zhí)行,可以通過在各節(jié)點(diǎn)執(zhí)行:

SQL>alter system switch logfile;

命令進(jìn)行替代。

再次執(zhí)行檢查點(diǎn)操作:

SQL>alter system checkpointglobal;

確保停庫時,ACTIVE狀態(tài)的日志不大于1組:

SQL>SELECT INST_ID,GROUP#, STATUS, ARCHIVED FROM GV$LOG WHERE STATUS IN ('ACTIVE', 'CURRENT');

確保MTTR時間在可接受的范圍內(nèi)(數(shù)據(jù)庫異常關(guān)閉,啟動后恢復(fù)所需時間):

SQL> SET LINESIZE 120;

SQL>SELECT RECOVERY_ESTIMATED_IOS,ACTUAL_REDO_BLKS,TARGET_REDO_BLKS,LOG_FILE_SIZE_REDO_BLKS,TARGET_MTTR,ESTIMATED_MTTR FROM GV$INSTANCE_RECOVERY;

2.7.停數(shù)據(jù)庫

2.7.1.非集群環(huán)境

通過immediate的方式,進(jìn)行數(shù)據(jù)庫關(guān)閉操作

SQL>shutdown immediate;

2.7.2.集群環(huán)境

?停實(shí)例

在停止部分實(shí)例的情況下,需要使用停實(shí)例的方式來停止指定的數(shù)據(jù)庫實(shí)例。

$ hostname

$ id

$ ps -ef | grep ora_smon

$srvctl stop instance -d -i

?停數(shù)據(jù)庫

通過srvctl命令方式關(guān)閉數(shù)據(jù)庫:

$crs_stat | grep db$

NAME=ora.crmdb.db

$srvctl stop database -dcrmdb

通過crs_stat命令檢查數(shù)據(jù)庫是否正常關(guān)閉,inst及db資源就是對應(yīng)的實(shí)例和數(shù)據(jù)庫資源:

$ crs_stat -t

Name ? ? ? ? ? Type ? ? ? ? ? Target ? ?State ? ? Host ? ? ? ?

------------------------------------------------------------

ora....b1.inst application ? ?OFFLINE ? OFFLINE ? ? ? ? ? ? ?

ora....b2.inst application ? ?OFFLINE ? OFFLINE ? ? ? ? ? ? ?

ora.crmdb.db ? application ? ?OFFLINE ? OFFLINE ? ? ? ? ? ? ?

注意:ORACLE 11G版本中,crs資源中已經(jīng)不在有實(shí)例的信息。

2.7.3.執(zhí)行abort操作

注意,該操作可能會造成數(shù)據(jù)庫的損壞,非特×××況下不建議采用該操作。

如果上述步驟無法正常關(guān)閉數(shù)據(jù)庫,可采用中止PMON進(jìn)程或shutdown abort方式非正常中止數(shù)據(jù)庫運(yùn)行,數(shù)據(jù)庫實(shí)例的核心進(jìn)程全部關(guān)閉后,注意檢查操作系統(tǒng)的共享內(nèi)存段是否已釋放。在共享內(nèi)存段釋放前不要重新起動數(shù)據(jù)庫。

SQL> shutdown abort;

$ipcs -m | grep oracle

0x61a4a848 3047431 ? ?oracle ? ?640 ? ? ? ?132120576 ?14

如果返回結(jié)果中仍然有oracle的共享內(nèi)存信息,表明數(shù)據(jù)庫沒有完全停止,檢查是否仍然有遺留進(jìn)程,或者等待共享內(nèi)存資源的釋放。

在執(zhí)行abort操作后,一定要執(zhí)行一次正常的數(shù)據(jù)庫起停操作,防止異常操作帶來的數(shù)據(jù)損壞

SQL>startup;

SQL> shutdown immediate;

2.8.停數(shù)據(jù)庫集群 (root)

停數(shù)據(jù)庫集群需要使用root用戶。該操作需要在集群中所有節(jié)點(diǎn)進(jìn)行。

執(zhí)行該操作前,需要檢查數(shù)據(jù)庫是否正常停止:

$crs_stat -t

確保,資源中以inst/db結(jié)尾的資源狀態(tài)已經(jīng)為OFFLINE。如果狀態(tài)為ONLINE,請參照前面的停數(shù)據(jù)庫步驟進(jìn)行操作。

集群的停止操作,需要在CRS_HOME(10g)/GRID_HOME(11g)的bin目錄下進(jìn)程:

#cd /oracle/app/oracle/product/10.2.0/crs/bin

#./crsctl stop crs

Stopping resources. This could take several minutes.

Successfully stopped CRS resources.

Stopping CSSD.

Shutting down CSS daemon.

Shutdown request successfully issued.

檢查關(guān)閉結(jié)果:

#crsctl check crs

Failure 1 contacting CSS daemon

Cannot communicate with CRS

Cannot communicate with EVM

確保該命令沒有返回結(jié)果:

#ps -ef | grep oracle | grep d.bin

2.9.操作腳本示例

以CRMDB為例:

2.9.1.確認(rèn)數(shù)據(jù)庫及主機(jī)信息

$ hostname

SQL> show parameter instance;

2.9.2.檢查應(yīng)用進(jìn)程信息

SQL> SELECT INST_ID, PROGRAM, MACHINE, COUNT(1) FROM GV$SESSION WHERE TYPE = 'USER' GROUP BY INST_ID, PROGRAM, MACHINE ORDER BY 4;

2.9.3.停數(shù)據(jù)庫監(jiān)聽

$ crs_stat | grep lsnr

$ srvctl stop listener -n crmdb1 -l LISTENER_CRMDB1

$ srvctl stop listener -n crmdb2 -l LISTENER_CRMDB2

$ srvctl stop listener -n crmdb3 -l LISTENER_CRMDB3

2.9.4.殺非本地連接進(jìn)程

$ ps -ef | grep "LOCAL=NO" | awk '{print $2}' | xargs kill -9

2.9.5.切換數(shù)據(jù)庫日志

SQL> alter system checkpoint global;

SQL> alter system archive log current;

SQL> alter system archive log current;

SQL> alter system archive log current;

SQL> alter system archive log current;

SQL> alter system archive log current;

SQL> alter system archive log current;

SQL> alter system checkpoint global;

2.9.6.停數(shù)據(jù)庫

$ crs_stat | grep db$

$ srvctl stop database -d crmdb

2.9.7.停集群

# crsctl start crs

3.啟動數(shù)據(jù)庫操作

以下操作,如無特殊說明,均使用oracle用戶進(jìn)行操作。正常情況下在集群啟動會,會將所有相關(guān)資源自動啟動。但可能存在特殊情況,如資源啟動狀態(tài)設(shè)置為disable、手工停止集群未重啟主機(jī)的情況,需要手工進(jìn)行資源的啟動操作。

3.1.啟動數(shù)據(jù)庫集群

啟動數(shù)據(jù)庫集群需要使用root用戶。該操作需要在集群中所有節(jié)點(diǎn)進(jìn)行。

命令的執(zhí)行,需要在bin目錄下進(jìn)行:

# cd /oracle/app/oracle/product/10.2.0/crs/bin

[root@rac10g1 bin]#

[root@rac10g1 bin]#crsctl start crs

Attempting to start CRS stack

The CRS stack will be started shortly

該過程可能時間較久,可以通過監(jiān)控集群相關(guān)的進(jìn)行以及crs日志進(jìn)行跟蹤:

[root@rac10g1 bin]# ps -ef | grep d.bin

[root@rac10g1 bin]# cd ../log/rac10g1/crsd/

[root@rac10g1 crsd]# tail -f crsd.log

集群啟動成功后,可以通過crs_stat命令查看集群狀態(tài):

# crs_stat -t

Name ? ? ? ? ? Type ? ? ? ? ? Target ? ?State ? ? Host ? ? ? ?

------------------------------------------------------------

?

ora....0g1.gsd application ? ?ONLINE ? ?ONLINE ? ?rac10g1 ? ?

ora....0g1.ons application ? ?ONLINE ? ?ONLINE ? ?rac10g1 ? ?

ora....0g1.vip application ? ?ONLINE ? ?ONLINE ? ?rac10g1 ? ? ? ?

集群啟動成功后,要確保集群資源中的gsd/ons/vip進(jìn)程狀態(tài)為ONLINE,并且運(yùn)行在自己的節(jié)點(diǎn)上。

3.2.啟動數(shù)據(jù)庫監(jiān)聽

3.2.1.非集群環(huán)境

非集群環(huán)境下,數(shù)據(jù)庫默認(rèn)的監(jiān)聽名稱為LISTENER,可以通過listener.ora配置文件,查看監(jiān)聽的名稱:

$ cd $ORACLE_HOME/network/admin

[oracle@rac10g1 admin]$

$ cat listener.ora

LISTENER_RAC10G1 =

?(DESCRIPTION_LIST = ........

?)

通過lsnrctl start命令進(jìn)行監(jiān)聽的啟動:

$ lsnrctl start LISTENER_RAC10G1

通過lsnrctl status命令,檢查監(jiān)聽的運(yùn)行狀態(tài):

$ lsnrctl status LISTENER_RAC10G1

3.2.2.集群環(huán)境

集群環(huán)境下,可以通過srvctl命令進(jìn)行監(jiān)聽的啟動。

查詢集群中監(jiān)聽的名稱:

$ crs_stat | grep lsnr

NAME=ora.rac10g1.LISTENER_RAC10G1.lsnr

NAME=ora.rac10g2.LISTENER_RAC10G2.lsnr

執(zhí)行srvctl命令

$ srvctl start listener -h

Usage: srvctl start listener -n [-l ]

? ?-n ? ? ? ? ? Node name

? ?-l "" ? ? Comma separated listener names

? ?-h ? ? ? ? ? ? ? ? ?Print usage

$ srvctl stop listener -nrac10g1-lLISTENER_RAC10G1

3.3.啟動數(shù)據(jù)庫

3.3.1.非集群環(huán)境

通過open的方式,該方式是startup的默認(rèn)方式,進(jìn)行數(shù)據(jù)庫啟動操作:

SQL> startup;

3.3.2.集群環(huán)境

通過srvctl命令方式啟動數(shù)據(jù)庫:

$ srvctl start database -d crmdb

檢查各節(jié)點(diǎn)的alert日志,跟蹤數(shù)據(jù)庫關(guān)閉過程:

$ cd $ORACLE_BASE/admin/${DB_NAME}/bdump

$ tail -f alert_crmdb1.log

${DB_NAME}參數(shù)為數(shù)據(jù)庫名。

通過crs_stat命令檢查數(shù)據(jù)庫是否正常啟動,inst及db資源就是對應(yīng)的實(shí)例和數(shù)據(jù)庫資源:

$ crs_stat -t

Name ? ? ? ? ? Type ? ? ? ? ? Target ? ?State ? ? Host ? ? ? ?

------------------------------------------------------------

ora....b1.inst application ? ?ONLINE ? ?ONLINE ? ?rac10g1 ? ?

ora....b2.inst application ? ?ONLINE ? ?ONLINE ? ?rac10g2 ? ?

ora.crmdb.db ? application ? ?ONLINE ? ?ONLINE ? ?rac10g2

3.3.3.運(yùn)行狀態(tài)檢查

確保每個實(shí)例的運(yùn)行狀態(tài)都為OPEN狀態(tài):

SQL>ALTER SESSION SET NLS_DATE_FORMAT = 'YYYY-MM-DD HH24:MI:SS';

SQL>SELECT INST_ID, STARTUP_TIME, STATUS FROM GV$INSTANCE ORDER BY INST_ID;

3.4.啟動數(shù)據(jù)庫service

查看當(dāng)時數(shù)據(jù)庫配置的所有service

$srvctl config service -d crmdb

srvcrmdb1 PREF: crmdb1 AVAIL: crmdb2

srvcrmdb2 PREF: crmdb2 AVAIL: crmdb1

通過srvctl命令啟動service:

$srvctl start service -d crmdb -s srvcrmdb1

$ srvctl start service -d crmdb -s srvcrmdb2

查看service的運(yùn)行狀態(tài):

$srvctl status service -d crmdb

Service srvcrmdb1 is running on instance(s) crmdb1

Service srvcrmdb2 is running on instance(s) crmdb2

3.5.進(jìn)行數(shù)據(jù)庫連接測試

通過vip地址和scan(11g)地址,進(jìn)行數(shù)據(jù)庫遠(yuǎn)程登錄測試,確保所有實(shí)例都能夠登錄成功。

$sqlplus system/password@rac10g1-vip:1521/crmdb

$sqlplus system/password@rac10g2-vip:1521/crmdb

$sqlplus system/password@scan_ip:1521/crmdb

3.6.進(jìn)行應(yīng)用連接測試


網(wǎng)站欄目:數(shù)據(jù)庫啟停標(biāo)準(zhǔn)操作流程
鏈接分享:http://weahome.cn/article/poepgs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部