數(shù)據(jù)庫(kù)讀寫(xiě)分離解決方案-DG實(shí)施方案_第1頁(yè)
數(shù)據(jù)庫(kù)讀寫(xiě)分離解決方案-DG實(shí)施方案_第2頁(yè)
數(shù)據(jù)庫(kù)讀寫(xiě)分離解決方案-DG實(shí)施方案_第3頁(yè)
數(shù)據(jù)庫(kù)讀寫(xiě)分離解決方案-DG實(shí)施方案_第4頁(yè)
數(shù)據(jù)庫(kù)讀寫(xiě)分離解決方案-DG實(shí)施方案_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)讀寫(xiě)分離解決方案 -oracle 11G ADG實(shí)施方案1. 項(xiàng)目背景介紹1.1 目的通過(guò)DG實(shí)現(xiàn)主庫(kù)與備庫(kù)同步,主庫(kù)作為業(yè)務(wù)應(yīng)用庫(kù),備庫(kù)作為查詢(xún)庫(kù),應(yīng)用根據(jù)不同需求配置對(duì)應(yīng)數(shù)據(jù)庫(kù);1.2 測(cè)試環(huán)境在2臺(tái)RedHat5.4上使用ORACLE 的DataGuard組件實(shí)現(xiàn)容災(zāi)。設(shè)備配置(VMWare虛擬機(jī)環(huán)境)清單如下:主機(jī)型號(hào)數(shù)據(jù)實(shí)例配置數(shù)據(jù)庫(kù)版本RedHat 5.4(32位)ORCLCPU:1MEM:2GOracle 11gR2 RedHat 5.4(32位)ORCLCPU:1MEM:2GOracle 11gR2 2. Oracle DataGuard

2、介紹備用數(shù)據(jù)庫(kù)(standby database)是ORACLE 推出的一種高可用性(HIGH AVAILABLE)數(shù)據(jù)庫(kù)方案,在主節(jié)點(diǎn)與備用節(jié)點(diǎn)間通過(guò)日志同步來(lái)保證數(shù)據(jù)的同步,備用節(jié)點(diǎn)作為主節(jié)點(diǎn)的備份,可以實(shí)現(xiàn)快速切換與災(zāi)難性恢復(fù)。 l STANDBY DATABASE的類(lèi)型:有兩種類(lèi)型的STANDBY:物理STANDBY和邏輯STANDBY兩種類(lèi)型的工作原理可通過(guò)如下圖來(lái)說(shuō)明:physical standby提供與主數(shù)據(jù)庫(kù)完全一樣的拷貝(塊到塊),數(shù)據(jù)庫(kù)SCHEMA,包括索引都是一樣的。它是可以直接應(yīng)用REDO實(shí)現(xiàn)同步的。logical standby則不是這樣,在logical stan

3、dby中,邏輯信息是相同的,但物理組織和數(shù)據(jù)結(jié)構(gòu)可以不同,它和主庫(kù)保持同步的方法是將接收的REDO轉(zhuǎn)換成SQL語(yǔ)句,然后在STANDBY上執(zhí)行SQL語(yǔ)句。邏輯STANDBY除災(zāi)難恢復(fù)外還有其它用途,比如用于用戶(hù)進(jìn)行查詢(xún)和報(bào)表,但其數(shù)據(jù)庫(kù)用戶(hù)相關(guān)對(duì)象均需要有主鍵。 本次實(shí)施將選擇物理STANDBY(physical standby)方式l 對(duì)主庫(kù)的保護(hù)模式可以有以下三種模式: Maximum protection (最高保護(hù))Maximum availability (最高可用性)Maximum performance (最高性能)三種保護(hù)模式區(qū)別如下:保護(hù)模式數(shù)據(jù)丟失保護(hù)重做傳輸最高保護(hù)零數(shù)據(jù)

4、丟失雙重故障保護(hù)LGWR SYNC 將重做同步傳輸至兩個(gè)站點(diǎn),網(wǎng)絡(luò)中斷會(huì)導(dǎo)致主Database宕機(jī)最高可用性零數(shù)據(jù)丟失單重故障保護(hù)LGWR SYNC 重做同步傳輸最高性能最少的數(shù)據(jù)丟失LGWR ASYNC 或 ARCH 重做異步傳輸 基于項(xiàng)目應(yīng)用的特征及需求,本項(xiàng)目比較適合采用Maximum availability (最高可用性)模式實(shí)施。3. Dataguard 實(shí)施前提條件和注意事項(xiàng):l 災(zāi)備環(huán)境中的所有節(jié)點(diǎn)必須安裝相同的操作系統(tǒng),盡可能令詳細(xì)補(bǔ)丁也保持相同。 l 災(zāi)備環(huán)境中的所有節(jié)點(diǎn)必須安裝完全相同版本的Oracle數(shù)據(jù)庫(kù)軟件,包括版本號(hào)和發(fā)布號(hào),比如必須都是Oracle 11.2.0

5、.1 l 主庫(kù)必須處于歸檔(ARCHIVELOG)模式。 l 災(zāi)備環(huán)境中所有節(jié)點(diǎn)的硬件和操作系統(tǒng)架構(gòu)必須相同 l 主庫(kù)可以是單實(shí)例,也可以是RAC。 l 主節(jié)點(diǎn)和備用節(jié)點(diǎn)之間的硬件配置可以不同,比如CPU數(shù)量,內(nèi)存數(shù)量,存儲(chǔ)的配置等等。 l 配置災(zāi)備環(huán)境的數(shù)據(jù)庫(kù)用戶(hù)必須具有SYSDBA權(quán)限。4. Oracle軟件安裝1. 要實(shí)施DataGurad的前,需要在主機(jī)RedHat-Primary和備機(jī)RedHat-Standby上進(jìn)行ORACLE軟件的基礎(chǔ)安裝。2. 備機(jī)基礎(chǔ)軟件的安裝有兩種方式供選擇:1) 源始安裝介質(zhì)安裝采用ORACLE數(shù)據(jù)庫(kù)安裝介質(zhì)進(jìn)行軟件安裝。2) “克隆”主站源數(shù)據(jù)庫(kù)分別對(duì)

6、主站源數(shù)據(jù)庫(kù)進(jìn)行tar壓縮并FTP/rcp至備機(jī)上,然后展開(kāi)壓縮文件。 通常出于便捷的原因,備機(jī)的Oracle初始建立可采用上述的第二種方式。測(cè)試環(huán)境中直接對(duì)虛擬機(jī)進(jìn)行了拷貝,因此相當(dāng)于采用了第二種方式?,F(xiàn)場(chǎng)環(huán)境下,如果主節(jié)點(diǎn)不是RAC環(huán)境,也可以采用第二種方式。4.1 環(huán)境配置RedHat5-Primary (primary , IP 31)以下簡(jiǎn)稱(chēng)主庫(kù)Single Instance Primary 說(shuō)明IP31Oracle單實(shí)例InstanceORCLData,Control File,Redo File$ORACLE_BASE/orad

7、ataRedHat5-Standby (standby, IP 32) ,以下簡(jiǎn)稱(chēng)從庫(kù)。Single Instance Standby 說(shuō)明IP32Oracle單實(shí)例InstanceORCLData,Control File,Redo File$ORACLE_BASE/oradata4.2 系統(tǒng)硬件環(huán)境檢查4.2.1 檢查內(nèi)存相關(guān)項(xiàng)檢查服務(wù)器的內(nèi)存,可以通過(guò)下列命令:rootlocalhost # grep MemTotal /proc/meminfo另外與內(nèi)存相關(guān)的swap 交換分區(qū)的設(shè)置也很重要,通常有下列的規(guī)則:實(shí)際內(nèi)存 建議swap

8、交換空間大小- -1G-2G 1.5 倍于內(nèi)存2G-16G 與內(nèi)存相同超過(guò)16G 設(shè)置為16G 即可查看當(dāng)前服務(wù)器swap 交換分區(qū)大小,可以通過(guò)下列命令:rootlocalhost # grep SwapTotal /proc/meminfo查看系統(tǒng)當(dāng)前共享內(nèi)存,可以通過(guò)df 命令,例如:rootlocalhost # df -h /dev/shm4.2.2 查看系統(tǒng)架構(gòu)本步用來(lái)查看處理器的架構(gòu)類(lèi)型,需要確認(rèn)ORACLE 安裝包與處理器架構(gòu)相符,不然安裝時(shí)必然報(bào)錯(cuò)。查看當(dāng)前系統(tǒng)的處理器架構(gòu)可以通過(guò)下列命令:rootlocalhost # uname mi6864.2.3 檢查磁盤(pán)空閑空間首先

9、/tmp 至少要有1g 的空閑空間,查看/tmp 的磁盤(pán)空間,也可以通過(guò)df 命令查看,例如:rootlocalhost # df -h /tmp在執(zhí)行安裝之前,建議執(zhí)行df -h 命令,查看當(dāng)前是否有充裕的空閑空間來(lái)安裝和創(chuàng)建數(shù)據(jù)庫(kù)。rootjssnode1 # df h4.3 安裝操作系統(tǒng)軟件包 l (32位 RedHat5.4)binutils-.6compat-libstdc+-33-3.2.3elfutils-libelf-0.125elfutils-libelf-devel-0.125elfutils-libelf-devel-static-0.125gcc-4.

10、1.2gcc-c+-4.1.2glibc-2.5-24glibc-common-2.5glibc-devel-2.5ksh-libaio-0.3.106libaio-devel-0.3.106libgcc-4.1.2libgomp-4.1.2libstdc+-4.1.2libstdc+-devel-4.1.2make-3.81sysstat-7.0.2查看軟件包是否已經(jīng)安裝:rootlocalhost # rpm -aq binutils compat-libstdc+-33rootlocalhost # rpm -aq | grep elfutils-libelfrootlocalhost

11、# rpm -aq | grep gccrootlocalhost # rpm -aq | grep glibcrootlocalhost # rpm -aq | grep kshrootlocalhost # rpm -aq | grep libaiorootlocalhost # rpm -aq | grep libgccrootlocalhost # rpm -aq | grep libgomprootlocalhost # rpm -aq | grep libstdc+rootlocalhost # rpm -aq | grep make-3rootlocalhost # rpm -a

12、q | grep sysstatrootlocalhost # rpm -aq | grep unixODBC通過(guò)以上命令來(lái)查看是否有未安裝的軟件包,可將未安裝的軟件包放到/rpm下,因有些包會(huì)相互依賴(lài),最簡(jiǎn)單的方式是將rpm包下的軟件包一起安裝:rootlocalhost #cd rpmrootlocalhost rpm#pwd/root/rpmrootlocalhost rpm#lscompat-libstdc+-33-3.2.3-61.i386.rpmelfutils-libelf-devel-0.137-3.el5.i386.rpmelfutils-libelf-devel-stati

13、c-0.137-3.el5.i386.rpmgcc-4.1.2-46.el5.i386.rpmgcc-c+-4.1.2-46.el5.i386.rpmglibc-devel-2.5-42.i386.rpmglibc-headers-2.5-42.i386.rpmkernel-headers-2.6.18-164.el5.i386.rpmlibaio-devel-0.3.106-3.2.i386.rpmlibgomp-4.4.0-6.el5.i386.rpmlibstdc+-devel-4.1.2-46.el5.i386.rpmsysstat-7.0.2-3.el5.i386.rpmunixOD

14、BC-2.2.11-7.1.i386.rpmunixODBC-devel-2.2.11-7.1.i386.rpmrootlocalhost rpm#rpm Uvh *l 64位需安裝的操作系統(tǒng)軟件包binutils-.6compat-libstdc+-33-3.2.3compat-libstdc+-33-3.2.3 (32 bit)elfutils-libelf-0.125elfutils-libelf-devel-0.125gcc-4.1.2gcc-c+-4.1.2glibc-2.5-24glibc-2.5-24 (32 bit)glibc-common-2.5glibc-

15、devel-2.5glibc-devel-2.5 (32 bit)glibc-headers-2.5ksh-libaio-0.3.106libaio-0.3.106 (32 bit)libaio-devel-0.3.106libaio-devel-0.3.106 (32 bit)libgcc-4.1.2libgcc-4.1.2 (32 bit)libstdc+-4.1.2libstdc+-4.1.2 (32 bit)libstdc+-devel 4.1.2make-3.81sysstat-7.0.2unixODBC-2.2.11unixODBC-2.2.11 (32 bit)unixODBC-

16、devel-2.2.11unixODBC-devel-2.2.11 (32 bit)4.4 修改內(nèi)核參數(shù)下列將要進(jìn)行配置的核心參數(shù)均擁有默認(rèn)值(或者說(shuō)最小值),需要對(duì)其進(jìn)行配置的原因,是為了獲得更好了性能,因此對(duì)于產(chǎn)品服務(wù)器來(lái)說(shuō),務(wù)必根據(jù)實(shí)際情況進(jìn)行配置,不適當(dāng)?shù)闹捣吹箍赡苓m得其反。使用vi 命令編輯/etc/sysctl.conf 文件,例如:rootlocalhost # vi /etc/sysctl.conf將下列內(nèi)容加入該文件:fs.aio-max-nr = fs.file-max = kernel.shmall = kernel.shmmax = kernel.shmmni = 40

17、96kernel.sem = 250 32000 100 128net.ipv4.ip_local_port_range = 9000 65500net.core.rmem_default = net.core.rmem_max = net.core.wmem_default = net.core.wmem_max = 注意,某些參數(shù)可能已經(jīng)存在于該文件,注意修改參數(shù)值即可。這里各參數(shù)所指定的值僅供參考,請(qǐng)根據(jù)實(shí)際情況進(jìn)行修改,一般來(lái)說(shuō)只需要對(duì)kernel.shmmax 這個(gè)參數(shù)的參數(shù)值進(jìn)行修改即可,該參數(shù)建議修改為物理內(nèi)存的一半(以字節(jié)為單位)。編輯完之后存盤(pán)退出,然后運(yùn)行下列命令重新加載并

18、驗(yàn)證參數(shù)是否正確:rootjssnode1 # sysctl -p4.5 修改系統(tǒng)時(shí)間修改主機(jī)與備機(jī)的系統(tǒng)時(shí)間一致4.6 創(chuàng)建用戶(hù)和組及安裝目錄并配置環(huán)境變量創(chuàng)建用戶(hù)和組:rootlocalhost # groupadd oinstallrootlocalhost #groupadd dbarootlocalhost #useradd -g oinstall -G dba oraclerootlocalhost #passwd oracle驗(yàn)證nobody用戶(hù):rootlocalhost #id nobody創(chuàng)建Oracle的安裝目錄:注: (因虛擬機(jī)環(huán)境安裝Linux時(shí)沒(méi)有手動(dòng)分區(qū),導(dǎo)致掛載

19、點(diǎn)” /”空間不足,所以將oracle安裝到了/home/db下,現(xiàn)場(chǎng)環(huán)境下Oracle應(yīng)安裝到/opt或單獨(dú)分區(qū))rootlocalhost # cd /homerootlocalhost home#mkdir db改變文件系統(tǒng)/home/db的所有者為oracle,以便將Oracle安裝到此目錄rootlocalhost home#chown oracle:oinstall db切換到oracle用戶(hù),修改.bash_profileoraclelocalhost $ vi .bash_profile# .bash_profile# Get the aliases and functions

20、if -f /.bashrc ; then . /.bashrcfi# User specific environment and startup programsORACLE_SID=orcl ORACLE_BASE=/home/db/oracle ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1 export ORACLE_SID ORACLE_BASE ORACLE_HOME export LD_ASSUME_KERNEL=2.6.18export NLS_LANG=AMERICAN_AMERICA.ZHS16GBKumask 022PATH=$P

21、ATH:/$ORACLE_HOME/bin:$HOME/bin export PATH4.7 安裝Oracle數(shù)據(jù)庫(kù)本節(jié)略5. 配置DataGuard過(guò)程5.1 備注“SQL”:表示在sqlplus環(huán)境下執(zhí)行,通常是以sysdba身份登錄來(lái)執(zhí)行命令“$”或” oraclelocalhost $”:表示在命令行中執(zhí)行的命令5.2 判斷DataGuard是否安裝SQLselect * from v$option where parameter = Oracle Data Guard;5.3 網(wǎng)絡(luò)配置31(orcl)-32(orcldg)5.4 監(jiān)

22、聽(tīng)配置l 主庫(kù)oraclelocalhost $ cd $ORACLE_HOME/network/adminoraclelocalhost admin$ vi listener.oraLISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 31)(PORT = 1521) ) )SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcl) (SID_NAME = orcl) (ORACLE_H

23、OME = /home/db/oracle/product/11.2.0/db_1) ) ) 注意:SID_LIST_LISTENER 配置的是靜態(tài)注冊(cè),如果沒(méi)有該參數(shù),而且Data Guard 啟動(dòng)順序又不正確,那么在主庫(kù)可能會(huì)報(bào) PINGARC1: Heartbeat failed to connect to standby orcl_st. Error is 12514. 錯(cuò)誤,導(dǎo)致歸檔無(wú)法完成。oraclelocalhost admin$ vi tnsnames.oraORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL

24、= TCP)(HOST = 31)(PORT = 1521) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )ORCLDG = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 32)(PORT = 1521) ) (CONNECT_DATA = (SERVICE_NAME = orcldg) ) )l 備庫(kù)oraclelocalhost admin$ vi listener.oraLISTENER = (DESCRIPTI

25、ON_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 32)(PORT = 1521) ) ) )SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcldg) (SID_NAME = orcl) (ORACLE_HOME = /home/db/oracle/product/11.2.0/db_1) ) ) oraclelocalhost admin$ vi tnsnames.oraORCL = (DESCRIPTION = (A

26、DDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 31)(PORT = 1521) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )ORCLDG = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 32)(PORT = 1521) ) (CONNECT_DATA = (SERVICE_NAME = orcldg) ) )5.5 主庫(kù)前期準(zhǔn)備設(shè)置強(qiáng)制寫(xiě)日志SQL select

27、FORCE_LOGGING from v$database;NOSQL alter database force logging;SQL select FORCE_LOGGING from v$database;YES5.6 創(chuàng)建口令文件并將文件傳輸?shù)絺鋷?kù)在主庫(kù)上創(chuàng)建密碼文件,并將文件傳到備庫(kù)的相關(guān)位置oraclelocalhost dbs$ pwd/home/db/oracle/product/11.2.0/db_1/dbsoraclelocalhost bin$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracleoracleloca

28、lhost bin$ cd $ORACLE_HOME/dbs/oraclelocalhost dbs$ ls缺省情況下,win下口令文件的格式是pwdsid.ora,unix下的格式是orapwSID(大小寫(xiě)敏感)傳送文件:oraclelocalhost dbs$scp -cp orapworcl oracle32:/home/db/oracle/product/11.2.0/db_1/dbsorapworcl 100% 1536 1.5KB/s 00:00oraclelocalhost dbs$5.7 創(chuàng)建備份庫(kù)需要的控制文件并傳輸?shù)絺鋷?kù)創(chuàng)建控制文件SQLshutd

29、own immediateSQLstartup mount; SQLalter database create standby controlfile as /tmp/stdby_control01.ctl; SQLalter database open;$scp -rp /tmp/stdby_control01.ctl oracle32:/home/db/oracle/oradata/ORCL/controlfile/$scp -rp /tmp/stdby_control01.ctl oracle32:/home/db/oracle/fla

30、sh_recovery_area/ORCL/controlfile/-手工復(fù)制幾份(未執(zhí)行)$ cd /tmp/$ cp sdtby_control01.ctl stdby_control02.ctl$ cp sdtby_control01.ctl stdby_control03.ctl-5.8 修改主庫(kù)初始化參數(shù) 創(chuàng)建主庫(kù)pfile sql create pfile from spfile;修改pfileoraclelocalhost dbs$vi initorcl.ora*.db_unique_name=orcl*.log_archive_config=dg_config=(orcl,or

31、cldg) *.log_archive_dest_1=location=/home/db/oracle/oradata/ORCL/archive valid_for=(all_logfiles,all_roles) db_unique_name=orcl *.log_archive_dest_2=service=orcldg lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=orcldg *.log_archive_dest_state_1=enable *.log_archive_dest_state_2=d

32、efer *.log_archive_format=%t_%s_%r.arc *.fal_server=orcldg*.fal_client=orcl*.standby_file_management=autopfile 拷貝到備庫(kù)上oraclelocalhost dbs$scp rp /home/db/oracle/product/11.2.0/db_1/dbs/initorcl.ora oracle32:/home/db/oracle/product/11.2.0/db_1/dbs/創(chuàng)建主庫(kù)spfileSQLShutdown immediateSQLstartup

33、 pfile=/home/db/oracle/product/11.2.0/db_1/dbs/initorcl.oraSQL create spfile from pfile=/home/db/oracle/product/11.2.0/db_1/dbs/initorcl.ora;SQL shutdown immediate;SQL startup5.9 修改數(shù)據(jù)庫(kù)運(yùn)行在歸檔模式下SQL SHUTDOWN IMMEDIATE; SQL STARTUP MOUNT; SQL ALTER DATABASE ARCHIVELOG; SQL ALTER DATABASE OPEN;5.10 備份生產(chǎn)數(shù)

34、據(jù)庫(kù)$scp -rp /home/db/oracle/oradata/ORCL oracle32:/home/db/oracle/oradata/$scp rp /home/db/oracle/admin/orcl oracle32:/home/db/oracle/admin5.11 修改備庫(kù)pfileoraclelocalhost dbs$vi initorcl.ora*.db_unique_name=orcldg*.log_archive_config=dg_config=(orcldg,orcl) *.log_archive_dest_

35、1=location=/home/db/oracle/oradata/ORCL/archive valid_for=(all_logfiles,all_roles) db_unique_name=orcldg *.log_archive_dest_2=service=orcl lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=orcl *.log_archive_dest_state_1=enable *.log_archive_dest_state_2=enable *.log_archive_format=

36、%t_%s_%r.arc *.fal_server=orcl*.fal_client=orcldg*.standby_file_management=auto*.control_files=/home/db/oracle/oradata/ORCL/controlfile/stdby_control01.ctl,/home/db/oracle/flash_recovery_area/ORCL/controlfile/stdby_control01.ctl5.12 在備庫(kù)上創(chuàng)建spfile sqlshutdown immediatesqlcreate spfile from pfile;5.13

37、啟動(dòng)物理備用數(shù)據(jù)庫(kù)SQLstartup nomountSQLalter database mount standby database;5.14 配置Standby Redo Log在兩邊都配置standby redo log在主庫(kù)查看日志組的數(shù)量和每個(gè)日志文件的大小SQL SELECT GROUP#, BYTES FROM V$LOG;在備庫(kù)庫(kù)查看日志組的數(shù)量和每個(gè)日志文件的大小SQL SELECT GROUP#, BYTES FROM V$STANDBY_LOG;在主備庫(kù)創(chuàng)建日志組和redo log文件SQL ALTER DATABASE ADD STANDBY LOGFILE group

38、 4(/home/db/oracle/product/11.2.0/db_1/dbs/slog4.rdo) SIZE 50M; SQL ALTER DATABASE ADD STANDBY LOGFILE group 5 (/home/db/oracle/product/11.2.0/db_1/dbs/slog5.rdo) SIZE 50M;SQLALTER DATABASE ADD STANDBY LOGFILE group 6 (/home/db/oracle/product/11.2.0/db_1/dbs/slog6.rdo) SIZE 50M;SQLALTER DATABASE ADD

39、 STANDBY LOGFILE group 7(/home/db/oracle/product/11.2.0/db_1/dbs/slog7.rdo) SIZE 50M;備注:刪除日志組redo log文件的方法SQLALTER DATABASE DROP STANDBY LOGFILE GROUP N;(N代表數(shù)字)5.15 Start Redo Apply在主數(shù)據(jù)庫(kù)上設(shè)置DataGuard的保護(hù)模式.把主數(shù)據(jù)庫(kù)啟動(dòng)到mount狀態(tài)設(shè)置好DataGuard的保護(hù)模式.SQLalter system set log_archive_dest_state_2=ENABLE scope=both;

40、SQLshutdown immediate;SQLstartup mount;SQLalter database set standby database to maximize availability;SQLalter database open;在備用數(shù)據(jù)庫(kù)上啟動(dòng)日志傳輸#實(shí)時(shí)應(yīng)用日志SQLalter database recover managed standby database using current logfile disconnect from session; 查看哪些歸檔日志被APPLY了SQLselect sequence#,applied from v$archiv

41、ed_log order by sequence#;在主庫(kù)強(qiáng)制日志切換到當(dāng)前的online redo log file.SQLalter system archive log current;在備庫(kù)查看新的被歸檔的redo dataSQL SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;在備庫(kù)查看接收到的被應(yīng)用的redoSQL select sequence#,applied from v$archived_log order by sequence#;查看數(shù)據(jù)庫(kù)的角色SQLselec

42、t database_role,protection_mode,protection_level from v$database;在主庫(kù)查看日志傳送情況SQL Select dest_name,status,error from v$archive_dest;DEST_NAME STATUS ERROR- - -LOG_ARCHIVE_DEST_1 VALIDLOG_ARCHIVE_DEST_2 VALID31 rows selected.兩個(gè)節(jié)點(diǎn)都正常。 驗(yàn)證同步情況在主庫(kù)切換日志:SQL alter system switch logfile;System altered.SQL sele

43、ct sequence# from v$archived_log;SEQUENCE#- 15 16SQL alter system switch logfile;System altered.SQL select sequence# from v$archived_log;SEQUENCE#- 17 18在備庫(kù)進(jìn)行驗(yàn)證:SQL select sequence#,applied from v$archived_log; SEQUENCE# APP- - 13 YES 4 NO 14 YES 15 YES 16 YES 18 NO 16 YES 17 YES 18 YES 19 YES同步成功。

44、至此Oracle 的Data Guard 環(huán)境已經(jīng)搭建完成。 5.16 DataGuard日常維護(hù)在日常維護(hù)中,請(qǐng)嚴(yán)格按照以下順序來(lái)操作:?jiǎn)?dòng)順序啟動(dòng)的時(shí)候,先啟動(dòng)備庫(kù),然后啟動(dòng)主庫(kù)。一、啟從、主庫(kù)的監(jiān)聽(tīng)Listener從庫(kù)orcldg:$lsnrctl start主庫(kù)orcl:$lsnrctl start二、啟動(dòng)備庫(kù)數(shù)據(jù)庫(kù),執(zhí)行如下:$sqlplus “/ as sysdba”SQL startup nomountSQL alter database mount standby database;#讓備庫(kù)處于standbySQL ALTER DATABASE RECOVER MANAGED

45、STANDBY DATABASE USING CURRENT LOGFILE disconnect;#開(kāi)始同步三、啟動(dòng)主庫(kù)數(shù)據(jù)庫(kù)(上述第二步執(zhí)行完畢后,方可執(zhí)行如下命令):SQLstartup關(guān)閉順序關(guān)閉的時(shí)候正好相反,先關(guān)閉主庫(kù),然后關(guān)閉從庫(kù)。l 關(guān)閉主庫(kù)CMDsu oracleCMDsqlplus “/ as sysdba”SQLshutdown immediate;l 關(guān)閉從庫(kù)telnet 0su oracleCMDsqlplus “/ as sysdba”SQLalter database recover managed standby database cancel

46、;#停止同步SQLshutdown immediate查看備庫(kù)的數(shù)據(jù)SQLalter database recover managed standby database cancel;SQL alter database open read only;Database altered.SQL select count(1) from user_tables;.SQL操作完成后,需執(zhí)行以下語(yǔ)句以令從庫(kù)繼續(xù)處于接收狀態(tài):SQL ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE disconnect;5.17

47、主備庫(kù)切換1. 查看主庫(kù)的狀態(tài):確認(rèn)a是否可以做switch overl 不能切換的情況SQLSELECT SWITCHOVER_STATUS FROM V$DATABASE; SWITCHOVER_STATUS - SESSIONS ACTIVE在這種情況下,說(shuō)明還有活動(dòng)session,需要先kill掉,只留下當(dāng)前sys進(jìn)程select sid,SERIAL# from v$session where sid10; SID SERIAL# - - 12 14 17 3 查出當(dāng)前連接session SQL select distinct ss.sid from v$mystat ss; 殺掉其

48、他session SQL alter system kill session 12,14; System alteredl 可以切換的情況SQL SELECT SWITCHOVER_STATUS FROM V$DATABASE;SWITCHOVER_STATUS-TO STANDBY2.將主庫(kù)切換至備用模式SQL alter database commit to switchover to physical standby with session shutdown;3.關(guān)閉、裝載主數(shù)據(jù)庫(kù)SQL shutdown abort;SQL startup mount;4.查看備庫(kù)準(zhǔn)備向主庫(kù)模式切換S

49、QL SELECT SWITCHOVER_STATUS FROM V$DATABASE;SWITCHOVER_STATUS-TO PRIMARY1 row selected注:如果是TO PRIMARY表示可以正常切換,不過(guò)還會(huì)遇到NOT ALLOWED和PENDING或者LATENT,實(shí)際操作下來(lái)如果備庫(kù)的switchover_status為not allowed或者to primary都可以正常切換5.切換備庫(kù)至主庫(kù)模式SQL alter database commit to switchover to primary with session shutdown;6.打開(kāi)新的主數(shù)據(jù)庫(kù)SQL

50、 ALTER DATABASE OPEN;7. 在新的備庫(kù)服務(wù)器上啟動(dòng) REDO apply。 SQL alter database recover managed standby database using current logfile disconnect from session;5.18 災(zāi)難恢復(fù)(failover)Step 1 Flush any unsent redo from the primary database to the target standbydatabaseSQL ALTER SYSTEM FLUSH REDO TO target_db_name;Step 2 Verify that the standby database has the most recently archived redo logfile for each primary database redo thread.SQL SELECT UNIQUE THREAD# AS THREAD, MAX(SEQUENCE#) - OVER (PARTITION BY thread#) AS LAST from V$ARCHIVE

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論