熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

OracleDataGuard數據備份方案詳解

2013-11-13 15:55:55  來源: Oracle 

  Oracle DataGuard是一種數據庫級別的HA方案最主要功能是冗災數據保護故障恢復等

  在生產數據庫的事務一致性使用生產庫的物理全備份(或物理COPY)創建備庫備庫會通過生產庫傳輸過來的歸檔日志(或重做條目)自動維護備用數據庫將重做數據應用到備用庫本文介紹使用RMAN備份創建備庫(dataguard)

  一:Oracle DataGuard環境概述

  軟件環境

  操作系統Red Linux Enterprise as

  數據庫版本Oracle g release

  primary databae

  IP:

  ORACLE_SID=db

  db_unique_name=db

  standby database

  IP:

  ORACLE_SID=standby

  db_unique_name=standby

  主數據庫(db)做准備

  設置主數據庫為Force logging

   SQL> alter database force logging;

  創建密碼文件

   cd $ORACLE_HOME/dbs/
orapwdfile=orapwdb password= force=y

  修改主庫的初始化參數

   alter system set log_archive_config=dg_config=(dbstandby) scope=both;
alter system set log_archive_dest_=location=/u/db/arch scope=both;
alter system set db_unique_name=db scope=both;

  生成數據庫備份

   RMAN> connect target sys/
RMAN> backup database format=/oracle/rmanback/%d_%sdbf plus archivelog;
[oracle@oracle rmanback]$ ls
DB_dbfDB_dbf

  生成備庫的control file

   SQL>alter database create standby controlfile as /oracle/rmanback/ctontrl

  配置listenerora 和tnsnamesora文件

  啟動lintenerora

   [oracle@oracle dbs]$ lsnrctl status
LSNRCTL for Linux: Version   Production on JUN ::
Service db has  instance(s)
Instance db status READY has  handler(s) for this service
Service db_XPT has  instance(s)
Instance db status READY has  handler(s) for this service
The command completed successfully

  配置rnsnamesora

  

  vi $ORACLE_HOME/network/admin/tnsnamesora
db =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = db)
standby =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = )(PORT = ))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = standby)
    )
  )

  創建standby database

  設置環境變量並安裝oracle軟件

   #環境變量設成與主庫一樣
#只安裝軟件不安裝庫
/runInstaller –silent –responseFile /tmp/installoraclersp

  建立相關的目錄

   cd $ORACLE_HOME/dbs/
orapwdfile=orapwSID password= force=y
#注要密碼要與主庫的一樣 否則會歸檔失敗

  建立密碼文件

   cd $ORACLE_HOME/dbs/
orapwd  file=orapwSID password= force=y
#注要密碼要與主庫的一樣 否則會歸檔失敗

  建立參數文件(pfile)

  

  db_name = standby
shared_pool_size = M
undo_management = AUTO
undo_tablespace = undotbs
sga_max_size = M
sga_target = M
db_k_cache_size = M

  standby_file_management=AUTO
fal_server=db
fal_client=standby
log_archive_dest_=location=/u/app/oracle/product//dbs/arch
log_archive_dest_=SERVICE=db REOPEN=
log_archive_dest_state_=ENABLE
log_archive_dest_state_=ENABLE

  CP主數據庫RMAN備份及控制文件到備庫

  注意:備份存放位置要與primary database RMAN備份文件的位置相同 控制文件存放位置要與生成standby database controlfile的位置相同

   scp /oracle/rmanback/*dbf root@:/oracle/rmanback/
scp /oracle/rmanback/*ctl root@:/oracle/oracle/oradata/standby

  利用備用的控制文件把備用數據庫啟到mount

   SQL>connect / as sysdba
connnpcted to an idle instance.
SQL>startup nomount pfile=$ORACLE_HOME/dbs/initstandbyora
SQL>alter database mount standby database

   配置listenerora 和tnsnamesora文件

  與主庫相同啟動listenertnsnamesora也與主庫配置的一樣

  當主備庫的監聽都啟動後進行測試以例下面能順利進行

  

  tnsping db
tnsping standby
SQL> sqlplus sys/@db
SQL> sqlplus sys/@standby

  轉儲數據庫

   RMAN>connect target /
connected to target databaseTEST(DBID=)
RMAN> restore database

  恢復數據庫

   SQL>recover managed standby database disconnect from session
#如果有需要應用的日志並想手工應用可以運行如下命令
SQL>recover automatic standby database

  檢查standby database是否創建成功

  a在primary database 上切換日志

   SQL> alter system switch logfile

  b在primary database上運行下面的語句

   SQL> select max(sequence#) from v$archived_log;
MAX(SEQUENCE#)

  c 在standby database上運行下面的語句

   SQL> select sequence# applied from v$archived_log order by sequence#;
 SEQUENCE# APP

YES
YES
YES

  若在上步中的max sequence#在的的app狀態為YES說明standby database 成功創建

   以spfile啟動並設為只讀

   SQL> create spfile from pfile;
SQL> shutdown immedaite
SQL> startup mount
SQL> alter database recover managed standby database disconnect from session;
SQL> alter database open read only;

  以上就是Oracle DataGuard數據備份的操作流程


From:http://tw.wingwit.com/Article/program/Oracle/201311/17534.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.