久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Standby Database的工作原理

 looline 2006-11-18

版本:V20060328.01.01  http://wanow.blog.hexun.com/4672755_d.html

Standby Database的工作原理

1. Oracle High Availability, Disaster Recovery Data Duplicate 相關(guān)功能的產(chǎn)品概述

Oracle High Availability 功能,,Oracle 是從下面幾個(gè)方面來詮釋的:

(1) System faults and crashes

(2) Application and middleware failures

(3) Network failures

(4) Media failures

(5) Human Error

(6) Disasters and extended outages

(7) Planned downtime, maintenance and management tasks

上述第六項(xiàng)就包含了disaster recovery 在內(nèi),。因此 disaster recovery 應(yīng)該算做 high availability 的一個(gè)方面了。

總的來說,,除了以Oracle database 本身參數(shù)進(jìn)行性能調(diào)解外,,Oracle 提供支持high availability 相關(guān)產(chǎn)品主要有下面幾種:

(1) Oracle Fail Safe on NT

(2) Oracle Parallel Server

(3) Oracle Parallel Fail Safe

(4) Oracle Advanced Quening

(5) Oralce Advanced Replication

(6) Oracle Standby Database

Duplication data 方面主要有用于distributed data 功能的Advanced Replication 和我們討論過 standby database

從參與討論的帖子來看,相關(guān)的問題是集中在OPS,,standby database Advanced Replication 的選擇,,因此我就先將這三種產(chǎn)品做一下比較。

OPS (Oracle Parallel Sever)

OPS 最原始的設(shè)計(jì)初衷就是system/application high availability,。與其他產(chǎn)品相比較:

OPS 是多個(gè)單CUP機(jī)或SMP(Symmetric Multi-Processing system) cluster (MPP Massively Parallel Processing) ,。cluster 里面不同的 node 使用一個(gè)(一般是一個(gè))或多個(gè)oracle instances 與一個(gè)database 連接

主要的技術(shù)特點(diǎn):

(1) database 所有的data files 是建立在 raw devices 上面的,因此在技術(shù)方面對(duì)OS 的設(shè)置有很高的依賴性,,很多方面取決于OS的對(duì)設(shè)置是否支持,。

(2) database 方面,每個(gè)node都有自己?jiǎn)为?dú)的 on-line redo log file groups,,因此在做backup recovery 的時(shí)候,,需要特殊的處理。

(3) OPS data files 方面并沒有redundance,,因此 media failure 方面,,要依靠RAID (redundant array of inexpensive disk) subsystem.

Oracle 8i 開始在OPS的基礎(chǔ)上,逐步在不同的OS平臺(tái)上,,增加了Fail Safe/Failover 的功能,,這里不盡詳細(xì)描述,。

Advanced Replication

Replication 的設(shè)計(jì)初是分散異地的application access database locally。這種技術(shù)可以將一個(gè)database 中的Tables,,Indexes,,ViewsPackages and Package Bodies,,Procedures and Functions,,TriggersSequences,,Synonyms復(fù)制到另一database中,。如果是全部database 的復(fù)制,也可用于high availability,。

一個(gè)范例,,yahoo在美國(guó)的東岸和西岸,各有一個(gè)鏡像database,,是采用的 replication 的技術(shù),。東西兩岸的用戶是連到最近的database,從而提高訪問的速度,。如果一個(gè)database出了問題,,用戶自動(dòng)轉(zhuǎn)入與另一個(gè)相連,實(shí)現(xiàn)網(wǎng)站的high availability,。這種high availability 對(duì)用戶來說,,是透明的。

其他的范例,,在公司中的應(yīng)用,,例如,HR database中雇員資料,,在accounting database 中需要除去薪資等的其他資料,,可以在HR中建立一個(gè)view,以replication 技術(shù)復(fù)制到 accounting database 中,。

因?yàn)榇蠖?/span> replicas 都是在異地,,從而在異地建立了redundance dataReplication 是對(duì)于database 來說的 high availability,。

2. standby database 的工作原理

從設(shè)計(jì)原理上來講,standby database 是為 primary database 建立的備份,,因此具有 redundance data,,也是相對(duì)于 database 來說的 high availability

standby database primary database 做的備份,,是通過 primary database 不斷產(chǎn)生出的archived log files 來實(shí)現(xiàn)的,。primary database 處于 archive mode 的狀態(tài),,持續(xù)送出 archived log files standby database,而 standby database 則處于 recovery mode,,持續(xù)apply primary database archived log files.

為了完成上述過程,,必須具備以下的條件:

(1) 如果primary database standby database 是運(yùn)行在不同的服務(wù)器上面,那么這兩臺(tái)服務(wù)器必須有相同version release 的操作系統(tǒng),;必須有相同 version, release patch oracle RDBMS 系統(tǒng),。

(2) Oracle 是允許 primary standby database 在同一個(gè)服務(wù)器上面運(yùn)行的。如果是這種情形,,建議這兩個(gè)databases 要分布在不同的physical disk drives 上面,。并且不是所有的操作系統(tǒng)都支持mount 兩個(gè)instances 連接兩個(gè)同名的databases

(3) Primary database 必需處于archive log mode,。

(4) Oracle version 7.3才開始支持 standby database,。7.3.x 8.0.x 需要手工copy 所有的archived log files primary server standby server,并且,,需要手工 recovery archived log files (當(dāng)然這些可以通過 OS shell scripts, sql scripts 等等方法來實(shí)現(xiàn)) ,;并且standby database 只能夠處于close/nomount/mount 的狀態(tài)。

(5) Oracle version 8i (8.1.5以后) 開始支持 primary database 可以將 arhived log files 自動(dòng)送到最多一個(gè)remote site (一般即standby database server) ,,本地則可多達(dá)七個(gè)地點(diǎn),。并且,standby database mount 的狀態(tài)下,,增加了 managed recovery mode,,在這種狀態(tài)下,standby database 可以自動(dòng)立即apply primary node 送過來的 archived log files,。

(6) Oracle version 8i (8.1.5以后) 開始支持standby databasemount recovery modedatabase read only mode的轉(zhuǎn)換,。這樣方便了系統(tǒng)可以利用standby database產(chǎn)生reports,而不影響用戶正常使用 primary database,。

(7) 一旦 standby databaseactivated,,即成為primary database,無法再回歸 standby database mode,。因此primary database出了問題,,standby databaseactived成為primary database之后,如果需要在原來的 primary/standby node上面重建 primary/standby database,,兩個(gè)database都需要重建,。

(8) 關(guān)于啟動(dòng)standby database時(shí)與 primary database之間的數(shù)據(jù)丟失問題。如果primary database在出問題之前如果無法完成 log file switch的話,,兩個(gè)database之間會(huì)相差 current on-line redo log file中的數(shù)據(jù),。oracle9i中的 data guard彌補(bǔ)了這一缺陷。oracle8i只有solaris平臺(tái)支持 data guard,。

注意:第(5) (6) 兩項(xiàng)只有oralce 8i EE(Enterprise Edition)版本支持,。SE (Standard Edition) 不支持這兩項(xiàng)功能,。

不同于OPSAdvanced Replication,使用standby database的時(shí)候,,無論在actived standby database時(shí),,或在primary node上面重建 primary database的時(shí)候,系統(tǒng)都需要down time,。所需時(shí)間長(zhǎng)短,,與系統(tǒng)狀態(tài)有關(guān)。如果可以在primary mode建立standby database (如果兩個(gè)server的硬件設(shè)置一樣,,一般standby node要差一些,,節(jié)約費(fèi)用) ,可以減少downtime,。

在下面的幾部份,,可以討論到部份細(xì)節(jié)。

實(shí)現(xiàn)環(huán)境

 

主服務(wù)器

備份服務(wù)器

操作系統(tǒng)

Windows 2003 Enterprise

Windows 2003 Enterprise

Oracle版本

Oracle 9.2.0.1

Oracle 9.2.0.1

Oracle SID

pstest

pstest

ORACLE_HOME

c:\oracle\oradata\pstest

c:\oracle\oradata\pstest

機(jī)器名

Primary

Standby

IP地址

192.168.5.20

192.168.5.21

實(shí)現(xiàn)步驟

1.         Primary Server上安裝Oracle并創(chuàng)建SIDpstestOracle數(shù)據(jù)庫(kù),;

2.         Standby Server上安裝Oracle并創(chuàng)建SIDpstestOracle數(shù)據(jù)庫(kù),;

這一步可以用命令只創(chuàng)建一個(gè)名字為pstestOracle服務(wù)名即可,

WINNT> oradim -NEW -SID pstest -STARTMODE manual

如果創(chuàng)建庫(kù)的話,,數(shù)據(jù)庫(kù)文件需要被Primary Server上的數(shù)據(jù)庫(kù)文件覆蓋掉,;

3.         Primary Server上的所有數(shù)據(jù)文件、redo文件和password文件都copyStandby Server機(jī)器的相應(yīng)位置,;

 

C:\oracle\oradata\pstest    目錄下文件

 

CWMLITE01.DBF

DRSYS01.DBF

EXAMPLE01.DBF

INDX01.DBF

ODM01.DBF

SYSTEM01.DBF

TEMP01.DBF

TOOLS01.DBF

UNDOTBS01.DBF

USERS01.DBF

XDB01.DBF

REDO01.LOG

REDO02.LOG

REDO03.LOG

 

D:\oracle\ora92\database    目錄下文件

 

PWDpstest.ora

4.         修改Primary Server Oraclce初始化參數(shù),;

文件位置c:\oracle\admin\pstest\pfile\

文件名字不確定,類似這樣init.ora.114200520819,,我們把名字改為init.ora,,這樣好記一點(diǎn);

FAL_SERVER=standby                 注:Primary Server連接Standby Server的數(shù)據(jù)庫(kù)連接名

FAL_CLIENT=primary                 注:Standby Server連接Primary Server的數(shù)據(jù)庫(kù)連接名

LOG_ARCHIVE_DEST_1= ‘LOCATION= c:\ arch mandatory reopen=15’

LOG_ARCHIVE_DEST_STATE_1=ENABLE

LOG_ARCHIVE_DEST_2= ‘SERVICE=standby‘              注:到Standby Database的數(shù)據(jù)庫(kù)連接名

LOG_ARCHIVE_DEST_STATE_2=ENABLE

LOG_ARCHIVE_FORMAT=‘ARC%t_%s.arc‘

LOG_ARCHIVE_MIN_SUCCEED_DEST=2 

log_archive_start=true

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

STANDBY_FILE_MANAGEMENT=AUTO

 

具體參數(shù)的說明請(qǐng)參考oracle在線文檔,。

 

5.         設(shè)置primary databasearchivelog模式

SQL>shutdown immediate;

SQL>startup mount pfile=’ c:\oracle\admin\pstest\pfile\init.ora’;

SQL>alter database archivelog;

SQL>alter database open:

6.         Primary Database上創(chuàng)建Standby Database的控制文件

SQL>shutdown immediate;

SQL>startup mount;

SQL>alter database create standby controlfile as ‘c:\oracle\oradata\pstest\control01.ctl’

SQL>alter database open;

然后將該controlfile復(fù)制到Standby Server的對(duì)應(yīng)位置,,原來的控制文件已經(jīng)不需要了;

7.         修改Standby Database的初始化參數(shù)

拷貝Primary Database上的初始化參數(shù)文件到Standby Database上對(duì)應(yīng)位置,,然后修改為以下內(nèi)容:

CONTROL_FILES=‘ c:\oracle\oradata\pstest\control01.ctl’

FAL_SERVER=primary                 注:Standby Server連接Primary Server的數(shù)據(jù)庫(kù)連接名

FAL_CLIENT=standby                 注:Primary Server連接Standby Server的數(shù)據(jù)庫(kù)連接名

LOG_ARCHIVE_DEST_1= ‘LOCATION= c:\ arch mandatory reopen=15’

LOG_ARCHIVE_DEST_STATE_1=ENABLE

LOG_ARCHIVE_DEST_2= ‘SERVICE=primary‘

LOG_ARCHIVE_DEST_STATE_2=ENABLE

LOG_ARCHIVE_FORMAT=‘ARC%t_%s.arc‘

LOG_ARCHIVE_MIN_SUCCEED_DEST=2 

log_archive_start=true

REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE

STANDBY_ARCHIVE_DEST=’ c: \arch’

STANDBY_FILE_MANAGEMENT=AUTO

 

具體參數(shù)的說明請(qǐng)參考oracle在線文檔,。

8.         設(shè)置Primary DatabaseStandby Databasetnsnames.ora

文件位于:c:\oracle\ora92\network\admin

Primary database

standby =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.21)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = pstest)

    )

  )

 

primary =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.20)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = pstest)

    )

  )

Standby Database

standby =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.21)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = pstest)

    )

  )

 

primary =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.20)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = pstest)

    )

  )

9.         啟動(dòng)standby database

SQL>startup nomount pfile=’ c:\oracle\admin\pstest\pfile\init.ora’

SQL>alter database mount standby database;

10.     啟動(dòng)primary database

SQL>startup pfile=’ c:\oracle\admin\pstest\pfile\init.ora’

11.     啟動(dòng)standby databaserecover manage模式

SQL>alter database recover managed standby database disconnect from session;

測(cè)試一下

Primary Database:

SQL> create user test identified by 密碼;

SQL> grant connect ,resource to test ;

SQL> conn test/密碼@primary;

SQL> create table test(name varchar2(20));

SQL> insert into test values(‘hi,data guard‘);

SQL> commit;

SQL> conn / as sysdba

SQL> alter system switch logfile;

察看從庫(kù)日志

C:\oracle\admin\poramls\bdump\pormals_alert.ora

看當(dāng)前歸檔日志是否已經(jīng)正常完成恢復(fù)

 

已只讀方式打開從庫(kù)察看是否insert into test values(‘hi,data guard‘);已經(jīng)生效。

Standby Database

SQL> conn / as sysdba;

SQL> alter database recover managed standby database cancel;

SQL> alter database open read only;

SQL> conn test/密碼

SQL> select * from test;

察看是否insert into test values(‘hi,data guard‘);已經(jīng)生效,。

如果生效說明已經(jīng)完全正常工作,,data guard到此完全配置完畢。

再次置從庫(kù)在恢復(fù)模式

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE disconnect from session;

維護(hù)standby數(shù)據(jù)庫(kù)

當(dāng)primary 數(shù)據(jù)庫(kù)失敗時(shí),,將standby 數(shù)據(jù)庫(kù)激活:取消(cancel)恢復(fù)執(zhí)行以下操作:
sql> connect internal/password;

sql> startup nomount pfile=’c:\oracle\admin\pstest\pfile\init.ora’;

sql> alter database mount standby database;

sql> alter database activate standby database,;

shutdown standby 數(shù)據(jù)庫(kù);

sql> shutdown immediate

重起Standby Database

sql > startup

問題:

1.         關(guān)于tnsnames.ora文件

Primary DatabaseStandby Database上的tnsnames.ora文件內(nèi)容可以是相同的,,其目的是為了建立兩個(gè)Oracle連接名,一個(gè)連自己,,一個(gè)連對(duì)方,;這兩個(gè)連接名對(duì)應(yīng)各自服務(wù)器上的初始化參數(shù)文件中的一下內(nèi)容中的primarystandby

FAL_SERVER=primary                 注:Standby Server連接Primary Server的數(shù)據(jù)庫(kù)連接名

FAL_CLIENT=standby                 注:Primary Server連接Standby Server的數(shù)據(jù)庫(kù)連接名

2.         關(guān)于初始化文件中的LOG_ARCHIVE_MIN_SUCCEED_DEST參數(shù)

在上面的配置文件中,此參數(shù)的值為2,,如果設(shè)置為1的話,,將不能正常同步歸檔日志;

3.         關(guān)于初始化文件中的LOG_ARCHIVE_DEST_2參數(shù)

LOG_ARCHIVE_DEST_2= ‘SERVICE=standby‘              注:到Standby Database的數(shù)據(jù)庫(kù)連接名

Primary ServerStandby Server上的初始化文件中的這個(gè)參數(shù)分別只的是指向?qū)Ψ降臄?shù)據(jù)庫(kù)連接名,。

4.         關(guān)于啟動(dòng)關(guān)閉順序

啟動(dòng)的時(shí)候,,先從庫(kù)的listener,然后啟動(dòng)從庫(kù),,然后啟動(dòng)主庫(kù)的listener 接著是主庫(kù) 關(guān)閉的時(shí)候正好相反,,先關(guān)閉主庫(kù),然后是從庫(kù),。

5.         一些常用的view

V$ARCHIVE_DEST_STATUS 這里面會(huì)紀(jì)錄到standby 的狀態(tài)和恢復(fù)到那個(gè)日志

V$ARCHIVE_GAP 這里面會(huì)紀(jì)錄當(dāng)前從庫(kù)mrp進(jìn)程恢復(fù)需要的膽識(shí)還沒有傳到從庫(kù)得日志

V$ARCHIVED_LOG 這里面會(huì)紀(jì)錄所有已經(jīng)歸檔到從庫(kù)的日志,,并且記錄該日志是否已經(jīng)恢復(fù)

V$DATABASE 會(huì)紀(jì)錄系統(tǒng)的保護(hù)狀態(tài)和是否處于force logging狀態(tài)

V$MANAGED_STANDBY (Physical Standby Databases Only) 會(huì)紀(jì)錄當(dāng)前從庫(kù)的一些進(jìn)程情況和進(jìn)程的process id,如rfs,mrp

V$STANDBY_LOG (Physical Standby Databases Only) 會(huì)紀(jì)錄當(dāng)前從庫(kù)的standby redo log的一些情況,。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn),。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙,。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多