使用RAC和Data Guard构建MAA架构
在前面的單實例數據庫遷移至rac環境配置過程中,介紹了使用standby技術構建單實例主庫對應rac物理備庫的data guard模型,本節中將介紹rac主庫對應單實例物理備庫的data guard模型構建;在MAA架構中,ASM提供了存儲方面的網格,RAC提供了數據庫層面上的網格計算,data guard則著重強調在數據的備份和容災方面,更多MAA方面的知識,參考下面的鏈接!
http://www.oracle.com/technetwork/database/features/availability/maa-090890.html
一:主備庫的環境介紹
主庫:
數據庫版本:10.2.0.5
OS版本:centos4.8 64位
數據庫名:rac(兩個實例)
實例名:rac1,rac2
IP地址:192.168.1.41/24,192.168.1.42/24
db_unique_name: rac
服務名:rac.yang.com
監聽器端口:1521
存儲類型:OMF+ASM磁盤組,+DATA,+FRA
備庫:
數據庫版本:10.2.0.5
OS版本:rhel5.4 64位
數據庫名:rac (單實例)
實例名:orcl
IP地址:192.168.1.49/24
db_unique_name: orcl
服務名:orcl.yang.com
監聽器端口:1521
存儲類型:文件系統+OMF
在開始前確保主庫rac環境正常,備庫只需要安裝數據庫軟件即可,不需要建庫
| [oracle@rac1 ~]$ crs_stat -t -v Name?????????? Type?????????? R/RA?? F/FT?? Target??? State???? Host???????? ---------------------------------------------------------------------- ora.rac.db???? application??? 0/0??? 0/1??? ONLINE??? ONLINE??? rac1???????? ora....c1.inst application??? 0/5??? 0/0??? ONLINE??? ONLINE??? rac1???????? ora....c2.inst application??? 0/5??? 0/0??? ONLINE??? ONLINE??? rac2???????? ora....SM1.asm application??? 0/5??? 0/0??? ONLINE??? ONLINE??? rac1???????? ora....C1.lsnr application??? 0/5??? 0/0??? ONLINE??? ONLINE??? rac1???????? ora.rac1.gsd?? application??? 0/5??? 0/0??? ONLINE??? ONLINE??? rac1???????? ora.rac1.ons?? application??? 0/3??? 0/0??? ONLINE??? ONLINE??? rac1???????? ora.rac1.vip?? application??? 0/0??? 0/0??? ONLINE??? ONLINE??? rac1???????? ora....SM2.asm application??? 0/5??? 0/0??? ONLINE??? ONLINE??? rac2???????? ora....C2.lsnr application??? 0/5??? 0/0??? ONLINE??? ONLINE??? rac2???????? ora.rac2.gsd?? application??? 0/5??? 0/0??? ONLINE??? ONLINE??? rac2???????? ora.rac2.ons?? application??? 0/3??? 0/0??? ONLINE??? ONLINE??? rac2???????? ora.rac2.vip?? application??? 0/0??? 0/0??? ONLINE??? ONLINE??? rac2? |
| [oracle@rac1 ~]$ cat $ORACLE_HOME/network/admin/listener.ora? SID_LIST_LISTENER_RAC1 = [oracle@rac1 ~]$ sqlplus?sys/123456@192.168.1.41:1521/rac_DGMGRL.yang.com?as sysdba Connected to: [oracle@rac1 ~]$ cat $ORACLE_HOME/admin/tnsnames.ora? LISTENER_RAC1 = LISTENER_RAC2 = RAC = RAC1 = RAC2 = ORCL = |
| [oracle@server49 ~]$ cat /u01/app/oracle/product/10.2.0/db1/network/admin/listener.ora? SID_LIST_LISTENER_ORCL = [oracle@server49 ~]$ cat /u01/app/oracle/product/10.2.0/db1/network/admin/tnsnames.ora? RAC = RAC1 = RAC2 = ORCL = |
| [oracle@rac1 ~]$ sqlplus /nolog SQL> alter database force logging; SQL> alter system set log_file_name_convert='+FLASH/rac','/u01/app/oracle/flash_recover_area/orcl','+DATA/rac','/u01/app/oracle/oradata/orcl' scope=spfile; SQL> alter system set db_file_name_convert='+DATA/rac','/u01/app/oracle/oradata/orcl' scope=spfile; SQL> alter system set dg_broker_config_file1='+DATA/rac/dgbroker/dg_config_file1.dat'; SQL> alter system set dg_broker_config_file2='+FRA/rac/dgbroker/dg_config_file2.dat'; SQL> alter system set fal_client='rac1' sid='rac1'; SQL> alter system set fal_client='rac2' sid='rac2'; SQL> alter system set fal_server='orcl'; SQL> alter system set local_listener='LISTENER_RAC1' sid='rac1'; SQL> alter system set local_listener='LISTENER_RAC2' sid='rac2'; SQL> alter system set log_archive_config='DG_CONFIG=(rac,orcl)'; SQL> alter system set log_archive_dest_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=rac'; SQL> alter system set log_archive_dest_state_2='defer'; SQL> alter system set log_archive_dest_2='SERVICE=orcl LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl'; SQL> alter system set log_archive_dest_3='LOCATION=+FRA/rac/standbylog/ VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE) DB_UNIQUE_NAME=rac'; SQL> alter system set log_archive_dest_state_1=enable; SQL> alter system set log_archive_dest_state_3=enable; SQL> alter system set log_archive_max_processes=5; SQL> alter system set remote_listener='LISTENERS_RAC'; SQL> alter system set remote_login_passwordfile='EXCLUSIVE' scope=spfile; SQL> alter system set standby_archive_dest='+FRA/rac/standbylog'; SQL> alter system set standby_file_management='auto'; |
| SQL> create pfile='/home/oracle/backup/initrac.ora' from spfile; SQL> select thread#,group# from v$log; ?? THREAD#???? GROUP# SQL> alter database add standby logfile thread 1 group 11 size 50M,group 12 size 50M,group 13 size 50M; SQL> alter database add standby logfile thread 2 group 14 size 50M,group 15 size 50M,group 16 size 50M; SQL> select thread#,group# from v$standby_log; ?? THREAD#???? GROUP# |
| [oracle@rac1 ~]$ rman target / RMAN> run { RMAN> backup current controlfile for standby format '/home/oracle/backup/control01.ctl'; |
| [oracle@server49 orcl]$ env |grep ORA [oracle@server49 orcl]$ pwd [oracle@server49 ~]$ orapwd file=$ORACLE_HOME/dbs/orapworcl password=123456 [oracle@server49 ~]$ sqlplus /nolog SQL> conn /as sysdba Total System Global Area? 213909504 bytes SQL> create spfile from pfile='/home/oracle/backup/initrac.ora'; [oracle@server49 ~]$ rman target?sys/123456@rac?auxiliary / connected to target database: RAC (DBID=2360349352) RMAN> duplicate target database for standby; RMAN> report schema; using target database control file instead of recovery catalog List of Permanent Datafiles |
| SQL> show parameter name; NAME???????????????????????????????? TYPE??????? VALUE NAME???????????????????????????????? TYPE??????? VALUE SQL> archive log list; RMAN> restore archivelog all; [oracle@server49 ~]$ ls /u01/app/oracle/flash_recovery_area/ORCL/archivelog/2012_01_12/
??? GROUP# MEMBER SQL> alter system set standby_file_management=manual; SQL> alter database rename file '+FRA/rac/onlinelog/group_2.306.772367347' to '/u01/app/oracle/oradata/ORCL/onlinelog/group_2.306.772367347'; SQL> select member from v$logfile; MEMBER SQL> alter system set standby_file_management=auto; |
| SQL> select name,database_role from v$database; NAME????? DATABASE_ROLE SQL> alter database recover managed standby database using current logfile disconnect from session; [oracle@server49 ~]$ tail -f /u01/app/oracle/admin/orcl/bdump/alert_orcl.log? SQL> select first_time,next_time,sequence#,applied,thread# from v$archived_log order by 5,3; FIRST_TIME????????? NEXT_TIME??????????? SEQUENCE# APP??? THREAD# FIRST_TIME????????? NEXT_TIME??????????? SEQUENCE# APP??? THREAD# FIRST_TIME????????? NEXT_TIME??????????? SEQUENCE# APP??? THREAD# |
| [oracle@rac1 ~]$ sqlplus?sys/123456@rac?as sysdba Connected to: SQL> create tablespace maa datafile size 100M; SQL> create table hr.maa_test tablespace maa as select * from dba_source; SQL> alter system archive log current; SQL> alter system set log_archive_dest_state_2=enable; SQL> alter system archive log current; SQL> select first_time,next_time,sequence#,applied,thread# from v$archived_log? where sequence# >10 order by 5,3; FIRST_TIME????????? NEXT_TIME??????????? SEQUENCE# APP??? THREAD# 節點1: 節點2: SQL> alter database recover managed standby database cancel; SQL> alter database open read only; SQL> select tablespace_name from dba_tablespaces; TABLESPACE_NAME SQL> select count(*) from hr.maa_test; ? COUNT(*) SQL> alter database recover managed standby database using current logfile disconnect from session; SQL> select * from v$archive_gap; SQL> select process, client_process, sequence#, status from v$managed_standby; PROCESS?? CLIENT_P? SEQUENCE# STATUS PROCESS?? CLIENT_P? SEQUENCE# STATUS SQL> select thread#, max (sequence#) from v$log_history group by thread#; ?? THREAD# MAX(SEQUENCE#) 備庫上相關的文件如下: [oracle@server49 ~]$ ls /u01/app/oracle/oradata/ORCL/controlfile/ |
參考文檔:http://www.oracledba.org/10g/dr/10gR2_dataguard_RAC_to_RAC.html,感謝作者分享!
本文轉自斬月博客51CTO博客,原文鏈接http://blog.51cto.com/ylw6006/762927如需轉載請自行聯系原作者
ylw6006
總結
以上是生活随笔為你收集整理的使用RAC和Data Guard构建MAA架构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2017年------阿里大神带你详解D
- 下一篇: java url编码解码