1. 程式人生 > >[oracle]Oracle 11g 邏輯DG搭建

[oracle]Oracle 11g 邏輯DG搭建

前提:

主庫執行:

1. 放在Oracle內部schema下的使用者表將不會被複制到備庫,並且DBA_LOGSTDBY_UNSUPPORTED這裡也查詢不到

--查詢Oracle內部的schema
SELECT OWNER FROM DBA_LOGSTDBY_SKIP WHERE STATEMENT_OPT = 'INTERNAL SCHEMA';

2. 

--查詢SQL Apply不支援的表
SELECT DISTINCT OWNER,TABLE_NAME FROM DBA_LOGSTDBY_UNSUPPORTED ORDER BY OWNER,TABLE_NAME;

3.  為了確保SQL Apply能有效應用update的redo資料到備庫,建議主庫的表都有主鍵或非空唯一索引

--查詢沒有唯一邏輯識別符號的表
SELECT OWNER, TABLE_NAME FROM DBA_LOGSTDBY_NOT_UNIQUE
   WHERE (OWNER, TABLE_NAME) NOT IN 
   (SELECT DISTINCT OWNER, TABLE_NAME FROM DBA_LOGSTDBY_UNSUPPORTED) 
   AND BAD_COLUMN = 'Y';
如果上面的語句非常慢,建議直接執行:
SELECT OWNER, TABLE_NAME FROM DBA_LOGSTDBY_NOT_UNIQUE
   WHERE  BAD_COLUMN = 'Y';

步驟:

一 、 首先建立好物理備庫

二、原物理備庫上停止日誌應用

SQL>  ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

三、主庫上設定支援邏輯備庫的操作

1.  更改LOG_ARCHIVE_DEST_1,只歸檔線上日誌,而不歸檔standby redo

SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/bak2/archivelog/
  VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES)
  DB_UNIQUE_NAME=r5'  scope=both;

2.  設定LOG_ARCHIVE_DEST_3,此引數僅當主庫轉換為邏輯備庫角色時使用

SQL> alter system set LOG_ARCHIVE_DEST_3='LOCATION=/bak2/arch2/
  VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE)
  DB_UNIQUE_NAME=r5'    scope=both;

SQL> alter system set LOG_ARCHIVE_DEST_STATE_3=ENABLE scope=both;

注: 不能共用/bak2/archivelog/這個歸檔日誌目錄,應新建一個目錄,否則會報錯:

ORA-02097: parameter cannot be modified because specified value is invalid
ORA-16033: parameter LOG_ARCHIVE_DEST_3 destination cannot be the same as
parameter LOG_ARCHIVE_DEST_1 destination

3.  在Redo資料中建立LogMiner字典

SQL> EXECUTE DBMS_LOGSTDBY.BUILD;

注: 此命令會等主庫所有當前的事務完成後才執行

四、 備庫上執行操作,以將物理備庫轉為邏輯備庫

SQL> ALTER DATABASE RECOVER TO LOGICAL STANDBY r5standby;

注: 如果執行此命令報ORA-19953: database should not be open, 那麼需要先shutdown,然後startup mount,

如果執行此命令卡住,則可執行ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL來取消

SQL> SHUTDOWN;
SQL> STARTUP MOUNT;

SQL> alter system set log_archive_config='dg_config=(r5,r5standby)';

SQL>ALTER SYSTEM SET  LOG_ARCHIVE_DEST_1=
  'LOCATION=+DATA/R5STANDBY/ARC1
   VALID_FOR=(ONLINE_LOGFILES,ALL_ROLES)
   DB_UNIQUE_NAME=r5standby' scope=both;
SQL>ALTER SYSTEM SET  LOG_ARCHIVE_DEST_2=
  'SERVICE=r5 ASYNC
   VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
   DB_UNIQUE_NAME=r5' scope=both;
SQL> alter diskgroup DATA add directory '+DATA/R5STANDBY/ARC2';   
SQL>ALTER SYSTEM SET  LOG_ARCHIVE_DEST_3=
  'LOCATION=+DATA/R5STANDBY/ARC2
   VALID_FOR=(STANDBY_LOGFILES,STANDBY_ROLE)
   DB_UNIQUE_NAME=r5standby' scope=both;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=both;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=both;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_3=ENABLE scope=both;

SQL> ALTER DATABASE OPEN RESETLOGS;


SQL>  ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;

五、驗證

備庫上查詢:

SQL> select protection_mode,database_role,protection_level,open_mode from v$database; 


PROTECTION_MODE      DATABASE_ROLE    PROTECTION_LEVEL  OPEN_MODE
-------------------- ---------------- -------------------- --------------------
MAXIMUM PERFORMANCE  LOGICAL STANDBY  MAXIMUM PERFORMANCE  READ WRITE

SQL> SELECT SESSION_ID, STATE FROM V$LOGSTDBY_STATE;
SESSION_ID    STATE
----------    -------------
1             INITIALIZING

SQL> select open_mode from v$database;


OPEN_MODE
--------------------
READ WRITE

注: 狀態為INITIALIZING時,備庫正在初始化,此時,你在主庫的DML操作等,是還不會應用到備庫來的,alter日誌如下:

Completed: ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE
LOGMINER: Parameters summary for session# = 1
LOGMINER: Number of processes = 3, Transaction Chunk Size = 201
LOGMINER: Memory Size = 30M, Checkpoint interval = 150M
LOGMINER: SpillScn 0, ResetLogScn 0
Starting background process SMCO
Tue Jan 10 10:21:13 2017
SMCO started with pid=21, OS id=2803
[[email protected] trace]$ tail -100 alert_r5standby.log
Indexes of table  SYSTEM.LOGMNR_ATTRIBUTE$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_CCOL$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_CDEF$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_COL$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_COLTYPE$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_DICTIONARY$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_ENC$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_ICOL$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_IND$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_INDCOMPART$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_INDPART$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_INDSUBPART$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_KOPM$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_LOB$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_LOBFRAG$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_LOGMNR_BUILDLOG have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_NTAB$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_OBJ$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_OPQTYPE$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_PARTOBJ$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_PROPS$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_REFCON$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_SEED$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_SUBCOLTYPE$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_TAB$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_TABCOMPART$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_TABPART$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_TABSUBPART$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_TS$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_TYPE$ have been rebuilt and are now usable
Indexes of table  SYSTEM.LOGMNR_USER$ have been rebuilt and are now usable
Tue Jan 10 10:22:59 2017
LOGMINER: End mining logfiles during dictionary load for session 1
Tue Jan 10 10:22:59 2017
LSP2 started with pid=56, OS id=2859
Tue Jan 10 10:23:00 2017
LOGMINER: Turning ON Log Auto Delete
LOGMINER: Begin mining logfile during commit scan for session 1 thread 1 sequence 1064, +DATA/r5standby/arc2/1_1064_865010252.dbf
LOGMINER: End   mining logfile during commit scan for session 1 thread 1 sequence 1064, +DATA/r5standby/arc2/1_1064_865010252.dbf
LOGMINER: Begin mining logfile during commit scan for session 1 thread 1 sequence 1065, +DATA/r5standby/arc2/1_1065_865010252.dbf
LOGMINER: End mining logfiles during commit scan for session 1
LOGMINER: Turning ON Log Auto Delete
LOGMINER: Begin mining logfile for session 1 thread 1 sequence 1064, +DATA/r5standby/arc2/1_1064_865010252.dbf
Tue Jan 10 10:23:02 2017
LOGSTDBY Analyzer process AS00 started with server id=0 pid=56 OS id=2862
Tue Jan 10 10:23:02 2017
LOGSTDBY Apply process AS05 started with server id=5 pid=61 OS id=2872
Tue Jan 10 10:23:02 2017
Tue Jan 10 10:23:02 2017
LOGSTDBY Apply process AS03 started with server id=3 pid=59 OS id=2868LOGSTDBY Apply process AS04 started with server id=4 pid=60 OS id=2870


Tue Jan 10 10:23:02 2017
LOGSTDBY Apply process AS02 started with server id=2 pid=58 OS id=2866
Tue Jan 10 10:23:02 2017
LOGSTDBY Apply process AS01 started with server id=1 pid=57 OS id=2864
LOGMINER: End   mining logfile for session 1 thread 1 sequence 1064, +DATA/r5standby/arc2/1_1064_865010252.dbf
LOGMINER: Begin mining logfile for session 1 thread 1 sequence 1065, +DATA/r5standby/arc2/1_1065_865010252.dbf
LOGMINER: End   mining logfile for session 1 thread 1 sequence 1065, +DATA/r5standby/arc2/1_1065_865010252.dbf
LOGMINER: Begin mining logfile for session 1 thread 1 sequence 1066, +DATA/r5standby/arc2/1_1066_865010252.dbf
LOGMINER: End   mining logfile for session 1 thread 1 sequence 1066, +DATA/r5standby/arc2/1_1066_865010252.dbf
LOGMINER: Begin mining logfile for session 1 thread 1 sequence 1067, +DATA/r5standby/arc2/1_1067_865010252.dbf
LOGMINER: End   mining logfile for session 1 thread 1 sequence 1067, +DATA/r5standby/arc2/1_1067_865010252.dbf
LOGMINER: Begin mining logfile for session 1 thread 1 sequence 1068, +DATA/r5standby/arc2/1_1068_865010252.dbf
LOGMINER: End   mining logfile for session 1 thread 1 sequence 1068, +DATA/r5standby/arc2/1_1068_865010252.dbf
LOGMINER: Begin mining logfile for session 1 thread 1 sequence 1069, +DATA/r5standby/arc2/1_1069_865010252.dbf
LOGMINER: End   mining logfile for session 1 thread 1 sequence 1069, +DATA/r5standby/arc2/1_1069_865010252.dbf
LOGMINER: Begin mining logfile for session 1 thread 1 sequence 1070, +DATA/r5standby/arc2/1_1070_865010252.dbf
LOGMINER: End   mining logfile for session 1 thread 1 sequence 1070, +DATA/r5standby/arc2/1_1070_865010252.dbf
LOGMINER: Begin mining logfile for session 1 thread 1 sequence 1071, +DATA/r5standby/arc2/1_1071_865010252.dbf
LOGMINER: End   mining logfile for session 1 thread 1 sequence 1071, +DATA/r5standby/arc2/1_1071_865010252.dbf
LOGMINER: Begin mining logfile for session 1 thread 1 sequence 1072, +DATA/r5standby/arc2/1_1072_865010252.dbf
LOGMINER: End   mining logfile for session 1 thread 1 sequence 1072, +DATA/r5standby/arc2/1_1072_865010252.dbf
LOGMINER: Begin mining logfile for session 1 thread 1 sequence 1073, +DATA/r5standby/arc2/1_1073_865010252.dbf
LOGMINER: End   mining logfile for session 1 thread 1 sequence 1073, +DATA/r5standby/arc2/1_1073_865010252.dbf
LOGMINER: Begin mining logfile for session 1 thread 1 sequence 1074, +DATA/r5standby/onlinelog/sredo09.log
Tue Jan 10 10:23:12 2017
RFS LogMiner: RFS id [2810] assigned as thread [1] PING handler

此時說明正常了, 然後我們可以測試同步,並且可以在備庫上執行建立表等操作了

相關推薦

[oracle]Oracle 11g 邏輯DG搭建

前提: 主庫執行: 1. 放在Oracle內部schema下的使用者表將不會被複制到備庫,並且DBA_LOGSTDBY_UNSUPPORTED這裡也查詢不到 --查詢Oracle內部的schema SELECT OWNER FROM DBA_LOGSTDBY_SKIP WH

Linux 下 Oracle 11g DG搭建

ide iat 修改 環境變量 狀態 add 文件目錄 log 行數據 環境:模擬主庫的創建 使用DBCA 啟動圖形界面 選項中的install option --->選中create and configure a database 模擬備庫

Oracle 11g R2 ADG 搭建

desc word server 拷貝 iat 閃回 ssi mkdir col --============Oracle ADG搭建==============--==========準備階段=========1.檢查primary為archivelog模式。select

Oracle 11g RAC+DG專案實戰-視訊分享

http://www.bego.cc/u/2718690/4446494 這是黃偉老師精心製作的Oracle最高階的技術實戰!在15集視訊中詳細闡述了Oracle RAC的安裝,RAC如何配置Active Data Guard,DG如何切換!絕對重量級的視訊。掌握這個技術,

ORACLE 11G 之DATAGUARD搭建物理standby

1 安裝環境 在Primary庫上安裝資料庫軟體,並建監聽和例項,在Standby庫上安裝資料庫軟體,並建監聽,但不建例項。 Primary庫 Standby庫 作業系統 CentOS release 6.4 64位 CentOS release 6

centos 6.5 部署 oracle 11G RAC+DG-------部署RAC部分(一)

VMware Workstation 搭建11g RAC 規劃 11g OCR與votedisk放在一個磁碟組,大小1G夠用,12C需要 6G以上 OCR根據不同的冗餘型別需要的磁碟數規則如下: external

在linux oracle 10g/11g x64bit環境中,goldengate隨os啟動而自己主動啟動的腳本

內容 rtm 自己 root optimize and cal 背景 ram 在linux。oracle 10g/11g x64bit環境中,goldengate隨os啟動而自己主動啟動的腳本 背景描寫敘述: goldengate安裝於/u01/ggs文件夾下

Oracle RAC(Linux)搭建

重新 註意 ip地址 passwd note manager system app eal 1、前言 此文檔詳細描述了Oracle 11gR2 數據庫在AIX上的安裝RAC的需求及安裝步驟。 參考文檔 《Oracle? Real Application Clusters

Oracle 12C RAC集群搭建

oracle 12c rac集群搭建Oracle 12C RAC集群搭建一、環境準備二、系統安裝三、系統設置四、Oracle安裝五、Grid安裝本文出自 “花之旭's Blog” 博客,請務必保留此出處http://huazhixu123.blog.51cto.com/1591874/1978642O

Oracle Database 11g 部署實錄

oracle[root@king01 ~]# yum -y install \binutils \elfutils-libelf \elfutils-libelf-devel \elfutils-libelf-devel-static \gcc \gcc-c++ \glibc \glibc-common \g

centos 7 安裝Oracle Database 11g Release 2 (11.2.0.4)

network 永久 oinstall ima play arc glibc lpad tails 參考文章: http://www.cnblogs.com/lightnear/archive/2012/10/07/2714247.html http://www.cnblo

oracle rac 11g修改開啟歸檔並修改歸檔日誌路徑

oracle rac 歸檔1、修改歸檔路徑參數sqlplus / as sysdbaSQL> alter system set log_archive_dest_1='location=+ASMARCH' scope=spfile sid='*';2.關閉數據庫,全部節點

oracle體系結構-邏輯存儲結構

系統表 .com 11g 系統數據 就是 裏的 一起 data 完成 1邏輯結構概述 oracle的邏輯存儲結構是一種層次結構,主要由表空間、段、區間和數據塊等概念組成; 邏輯結構是面向用戶的,當用戶使用Oracle設計數據庫時,使用的就是邏輯存儲結構; oracle數據庫

ORACLE client 11g r2 客戶端開發環境配置

客戶 所在 lis 安裝oracle tns 開發 否則 設置 instant 一、安裝ORACLE客戶端,這裏不做說明。需要註意的是,客戶端解壓位置應該在磁盤根目錄下。 如果放在帶中文字或者空格的文件名的路徑下出了問題,可以放到磁盤根目錄在安裝。應該就會沒有問題。 另外,

docker安裝wnameless/oracle-xe-11g並運行(手寫超詳細)

$path web項目 https 字母 ear 進入容器 centos 找到 運行 前景:沒事想玩下linux,想著以後可以部署下自己的web項目上去,然後我就想裝個oracle來著。。。之前都不懂linux來著,只知道公司的項目都是部署在上面,然後從裝系統到裝完or

性能監控工具的配置及使用五分彩平臺搭建 - Spotlight On Oracle(oracle)

tnsname oracl 對象 快速 instant otl 連接 路徑 oracle數據 Spotlight是一個強五分彩平臺搭建【征途源碼論壇zhengtuwl.com】聯系方式:QQ:2747044651有力的Oracle數據庫實時性能診斷工具,提供了一個直觀的、可

10.Oracle Golden Date(ogg)的搭建和管理

bash starting 分享 10g ready bullet car color 操作 一. GoldenGate 概述   GoldenGate現在是業內成熟的數據容災與復制產品;GoldenGate是一種基於日誌的結構化數據復制方式,它通過解析源數據庫在線日誌或

oracle rac 11g 修改非歸檔模式

1、登入資料庫:執行alter system set cluster_database = false scope=spfile; 2、關閉node1和node2資料庫:shutdown immediate; 3、啟動node1至mount狀態:startup mount; 4、執行關閉歸檔:alter

ORACLE RAC 11G 添加以及刪除UNDO表空間

clu table alt 空間使用 11g 10g 分享 set nbsp 在生產環境上,由於閃存盤的容量有限,現在需要將閃存盤裏面的UNDO表空間,替換到非閃存的磁盤裏面。 磁盤的使用情況如下: 表空間使用情況如下: RAC兩個節點占用將近167G的空間。 操作步驟

oracle RAC 11g sqlload 生產表匯入資料(ORA-12899)

背景:由於即將來臨的雙十一,業務部門(我司是做京東,天貓的簡訊服務),簡訊入庫慢,需要DBA把資料庫sqlload進資料庫。 表結構如下: MRS VARCHAR2(100), STATUS VARCHAR2(8), STATUSTJ VARCHAR2(8), MMDD VARCHAR2(6), SN