ORACLE DG 11G 搭建
ORACLE 11g DG 搭建
前言
1、裝DG 可以跨平臺跨位數(32/64)但是不能跨版本
2、11G DG 可以已read only 狀態開啟分擔備份,查詢報表等業務。
3、11G DG 可以透過RMAN DUPLICATE 方式建立(本次採用的建立方式)
4、資料庫的db_name必須相同,db_unique_name必須不同
5、監聽必須是靜態監聽
6、主機/etc/hosts 需配置好如
192.168.88.22 dg2.localdomain dg2
192.168.88.21 dg1.localdomain dg1
規劃
主機名稱 |
DG1 |
DG2 |
作業系統 |
Redhat 5 |
Redhat 5 |
ORACLE 資料版本 |
11G R2 |
11G R2 |
資料檔案位置 |
/u01/oradata/dg1 |
/u01/oradata/dg2 |
例項名稱 |
dg1(db_unique_name) |
dg2(db_unique_name) |
Tnsnames名稱 |
DG1,DG2(TNSNAME裡面內容一摸一樣即可)) |
DG2,DG1(TNSNAME裡面內容一摸一樣即可) |
搭建方式 |
RMAN DUPLICATE |
實施過程
前提:主庫已經建立好(現有業務系統)
一、主庫:
1、 修改監聽為靜態註冊如下(修改完後需要重新啟動)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.233.200)(PORT = 1521))--IP
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = dg1)----你的例項名
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)---你的ORACLE_HOME
(SID_NAME = dg1)----例項名
)
)
2、 修改tnsnames.ora
DG1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dg1)
)
)
DG2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dg2)
)
)
3、 確認主庫為歸檔模式(不是需自行修改參考)
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination /data/arch
Oldest online log sequence 87
Next log sequence to archive 89
Current log sequence 89
http://www.blogjava.net/freeman1984/archive/2011/05/17/350375.html參考修改方式
4、 將主庫設定為force logging
Sql>alter database force logging;
5、 新增standby redo log
alter database add standby logfile group 4 '/u01/oradata/dg1/standby_redo04.log' size 50M;
alter database add standby logfile group 5 '/u01/oradata/dg1/standby_redo05.log' size 50M;
alter database add standby logfile group 6 '/u01/oradata/dg1/standby_redo06.log' size 50M;
alter database add standby logfile group 7 '/u01/oradata/dg1/standby_redo07.log' size 50M;
路徑自行修改為自己的存放路徑
6、 設定DB 引數為生成備庫的pfile 做準備
alter system set db_unique_name='dg1' scope=spfile; --
alter system set log_archive_config='DG_CONFIG=(DG1,DG2)'; ----對應TNS裡面的
alter system set log_archive_dest_1='LOCATION=/data/arch valid_for=(all_logfiles,all_roles) db_unique_name=dg1' scope=spfile; ---/data/arch 主庫的歸檔路徑一設定
alter system set log_archive_dest_2='SERVICE=dg2 lgwr async valid_for=(online_logfile,primary_role) db_unique_name=dg2'; --主庫的歸檔路徑通向主機二
alter system set fal_client='dg1'; --客戶端
alter system set fal_server='dg2'; --服務端 備庫是調換過來的
alter system set standby_file_management=auto;
alter system set db_name=dg scope=spfile ; --設定db_name 主庫和備庫必須相同,這裡修改完主庫後等會建立的pfile 裡面會體現出來 在備庫引數的時候就不需要修改這個引數了· 主庫修改完畢
7、重啟資料庫
sql>Shutdown immediate
sql>startup
8、建立備庫所使用的引數檔案
sql>create pfile=’/u01/init.ora’ 將這個檔案複製到備庫
以上操作都是主庫操作!
二、備庫
前提:備庫已經安裝好資料庫軟體(安裝好軟體,監聽配置了,沒有建立例項)
1、修改監聽為靜態註冊(修改完後需要重新啟動)(引數配置和主庫差不多)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST =
192.168.233.200)(PORT = 1521))--IP
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = dg2)----你的例項名
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1)---你的ORACLE_HOME
(SID_NAME = dg2)----例項名
)
)
2、修改tnsnames.ora
DG1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg1)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dg1)
)
)
DG2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dg2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = dg2)
)
)
使用TNSPING 看是否配置成功
tnsping DG1
tnsping DG2
5、修改pfile引數(以下為修改完的完整的)
*.audit_file_dest='/u01/admin/dg2/adump'----(警告日誌目錄)備庫上需要建立相應目錄
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/oradata/dg2/control01.ctl','/u01/flash_recovery_area/dg2/control02.ctl'---(備庫的控制檔案存放位置)備庫上需要相應建立目錄
*.db_block_size=8192
*.db_domain=''
*.db_name='dg'----不用修改主庫和備庫需相同
*.db_recovery_file_dest='/u01/flash_recovery_area'--備庫的恢復目錄
*.db_recovery_file_dest_size=3565158400
*.db_unique_name='dg2'----備庫唯一標識
*.diagnostic_dest='/u01'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=dg1XDB)'
*.fal_client='dg2'客戶端
*.fal_server='dg1'服務端 對主庫是反過來的
*.log_archive_config='DG_CONFIG=(DG1,DG2)'
*.log_archive_dest_1='LOCATION=/data/arch valid_for=(all_logfiles,all_roles) db_unique_name=dg2'----備庫的歸檔路徑一
*.log_archive_dest_2='SERVICE=dg1 lgwr async valid_for=(online_logfile,primary_role) db_unique_name=dg1'----備庫的歸檔路徑二指向主庫
*.log_archive_dest_state_1='ENABLE'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='%t_%s_%r.dbf'
*.log_file_name_convert='/u01/oradata/dg1','/u01/oradata/dg2'----資料檔案存放位置不同需做轉換這裡是redo log 不是archive log
*.db_file_name_convert='/u01/oradata/dg1','/u01/oradata/dg2'----主機存放資料檔案的位置和備庫的不同做轉換
*.open_cursors=300
*.pga_aggregate_target=310378496
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=931135488
*.standby_file_management='AUTO'
*.undo_tablespace='UNDOTBS1'
6、建立口令檔案
orapwd file='/u01/oracle/dbs/orapwdg2’ password=oracle 需要和主庫的sys密碼相同
7. 使用修改好的pfile啟動到nomount狀態
Sqlplus / as sysdba
Sql>create spfile from pfile=’/u01/initdg2.ora’;
Sql>startup nomount
備庫修改完畢!
三:RMAN DUPLICATE 複製庫
在主庫:
1、進入rman
$ rman target sys/oracle@DG1 auxiliary 2
恢復管理器: Release 11.2.0.3.0 -
Production on 星期日 8月
4 00:53:40 2013
Copyright (c) 1982, 2011, and/or its affiliates. All rights reserved.
已連線到目標資料庫: ORCL (DBID=1350215700)
已連線到輔助資料庫: ORCL (nomount)
2、開始複製庫:
RMAN> duplicate target database for standby nofilenamecheck
from active database;
等待完成
Rman>exit;
3. 檢視備庫狀態
說明:duplicate資料庫之後,備庫只是處於mount狀態,檢視備庫狀態。
[oracle@slave orcl]$ sqlplus /nolog
SQL*Plus: Release 11.2.0.3.0 Production on 星期日 8月 4 01:09:07
2013
Copyright (c) 1982, 2011, Oracle. All rights reserved.
SQL> conn / as sysdba;
已連線。
# 檢視備庫狀態
SQL> select open_mode,database_role,db_unique_name from v$database;
OPEN_MODE DATABASE_ROLE
DB_UNIQUE_NAME
-------------------- ---------------- ------------------------------
MOUNTED PHYSICAL STANDBY DG
4. 將備庫置與應用日誌模式狀態
SQL> alter database recover managed standby database using current logfile
disconnect from session;
Database altered.
SQL> select open_mode,database_role,db_unique_name from v$database;
OPEN_MODE DATABASE_ROLE
DB_UNIQUE_NAME
-------------------- ---------------- ------------------------------
MOUNTED PHYSICAL STANDBY DG
5. 驗證物理備庫日誌應用
1)主庫上操作
SQL> conn / as sysdba;
Sql>create tablespace hzwsjdata01 datafile ‘/u01/oradata/dg1/test.dbf’ size100M;
SQL> create user hzwsj identified by hzwsj
default tablespace hzwsjdata01;
使用者已建立。
SQL> grant resource,connect to hzwsj ;
授權成功。
SQL> conn hzwsj/ hzwsj
已連線。
SQL> create table test ( id number);
SQL> insert into test values ( 0 );
SQL> commit;
2)備庫上驗證
sqlplus hzwsj/hzwsj
Sql>select * from test;
四、備註:
select open_mode,database_role,db_unique_name from v$database;
alter database recover managed standby database using current logfile disconnect from session;
select sequence#,first_time,next_time,applied from
v$archived_log order by sequence#;
以下為參考資料
說明: IN-MEMORY是11G的新特性。
五、將備庫置於Active DataGuard模式,體驗實時查詢
在Oracle 11g之前,物理備庫(physical Standby)在應用redo的時候,資料庫需要處於mount狀態。從11g開始,應用redo的時
候,物理備庫可以處於read-only模式,這就稱為Active Data Guard 。透過Active Data Guard,可以在物理備庫進行查詢或者
匯出資料,從而減少對主庫的訪問和壓力。
1. 備庫上操作
1) 檢視備庫當前狀態 mount
SQL> select open_mode,database_role,db_unique_name from v$database;
OPEN_MODE DATABASE_ROLE
DB_UNIQUE_NAME
-------------------- ---------------- ------------------------------
MOUNTED PHYSICAL STANDBY DG
2) 取消備庫的自動恢復
SQL> alter database recover managed
standby database cancel;
資料庫已更改。
3) OPEN備庫為只讀模式(Dataguard只能啟動到readonly模式)
SQL> alter database open;
資料庫已更改。
SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ ONLY
4)開啟實時應用狀態模式
SQL> alter database recover managed
standby database using current logfile disconnect;
資料庫已更改。
SQL> select
open_mode,database_role,db_unique_name from v$database;
OPEN_MODE DATABASE_ROLE
DB_UNIQUE_NAME
-------------------- ---------------- ------------------------------
READ ONLY WITH APPLY PHYSICAL STANDBY DG
2. 主庫上操作執行DDL,DML操作
# su - oracle
$ sqlplus /nolog
SQL> conn / as sysdba;
SQL> create tablespace abc datafile '/u01/app/oracle/oradata/orcl/abc.dbf'
size 10m autoextend on next 10m;
表空間已建立。
SQL> conn abc/abc
已連線。
SQL> insert into abc values (1 , 'bbb');
已建立 1 行。
SQL> commit;
提交完成。
SQL>
3. 備庫上檢視
SQL> select name from v$tablespace;
NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
USERS
TEMP
ABC
已選擇6行。
SQL> conn abc/abc;
已連線。
SQL> select * from abc;
ID NAME
---------- ----------
0 aaa
1 bbb
主備的修改很快在備庫上應用。
五 維護:
Oracle 11G DataGuard重啟詳細過程
場景,重啟資料庫,不重啟linux系統,所以不用考慮監聽程式,
1 資料庫關閉
1.1 關閉主庫
SHUTDOWN IMMEDIATE;
1.2 關閉備庫
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
SHUTDOWN IMMEDIATE;
2 資料庫啟動,
開啟的時候先開備庫啟動備庫監聽,再開主庫
2.1 啟動備庫
#STARTUP MOUNT;
# ALTER DATABASE OPEN;
# 這裡不用設定歸檔,歸檔設定一次是永久生效的,直接startup啟動就行
2.2 啟動主庫
STARTUP ;
SQL> STARTUP ;
2.3 啟動備庫應用
alter database recover managed standby database using current logfile disconnect;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26764973/viewspace-1472490/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 11g單主搭建物理DGOracle
- 11G RAC+DG搭建
- Oracle 11g dg broker自動failoverOracleAI
- Oracle RAC+DG搭建Oracle
- Oracle 11g DG新特性--Automatic block repairOracleBloCAI
- oracle 11g dg broker開啟和配置Oracle
- Oracle 11g dg switchover切換操作流程Oracle
- 11g dg 備庫搭建多種方式
- 【DG】Oracle 19c使用dbca來搭建物理DGOracle
- 【DG】DataGuard健康檢查 for 11g
- 【DG】Oracle 19c使用dbca來搭建物理DG--主rac備racOracle
- oracle 11g dg broker 開啟fast-start failover自動故障切換OracleASTAI
- Oracle 11g RAC DG備庫gv$dataguard_stats apply lag值較大OracleAPP
- oracle 19c dg搭建duplicate過程中報錯Oracle
- Oracle:DG 的 switchoverOracle
- oracle dg報錯Oracle
- DG搭建配置方案
- ORACLE RAC TO RAC DG搭建過程中可能遇到的問題Oracle
- Oracle DG 日常點檢Oracle
- Oracle DG管理Broker配置Oracle
- 物理DG、邏輯DG和快照DG的搭建(視訊講解)
- redhat7 搭建oracle 11g RAC 問題與處理RedhatOracle
- 【DG】Oracle之級聯DG--(cascade dg) --(一主一備一級聯)Oracle
- ORACLE DG之備庫角色Oracle
- Oracle DG運維常用SQLOracle運維SQL
- oracle dg切換操作示例Oracle
- ORACLE 11.2.0.4 DG(Broker) for linux 部署OracleLinux
- Oracle DG Standby Database型別OracleDatabase型別
- Oracle DG建立Physical Standby DatabaseOracleDatabase
- Oracle DG建立Logical Standby DatabaseOracleDatabase
- 【DG】Data Guard搭建(physical standby)
- Oracle之11g DataGuardOracle
- ORACLE OCM備考OEM搭建DG報錯:NMO not setuid-root(Unix-only)OracleUI
- 【ASK_ORACLE】Oracle Data Guard(一)DG架構Oracle架構
- oracle ADG與DG的區別Oracle
- Oracle dg歸檔同步失敗Oracle
- Oracle DG管理Redo Transport服務Oracle
- Oracle DG異構主備支援Oracle
- ORACLE19C RAC+DGOracle