SharePlex 環境部署

Ryan_Bai發表於2019-11-29

目標在 Linux 系統下安裝 Oracle;利用 SharePlex 實現資料同步;可複製 DML 和 DDL 操作

一、環境描述

源端 目標端
作業系統 linux 7.6 linux 7.6
IP 192.168.66.111 192.168.66.112
資料庫版本 19.3.0.0.0 19.3.0.0.0

二、資料庫準備

  1. 建立shareplex專用表空間

    create tablespace splex_tbs datafile '/oradata/datafile/splex_tbs01.dbf' size 1G;
  2. 資料庫開歸檔

  3. 開啟補充日誌

    alter database add supplemental log data (primary key, unique index) columns;

二、SharePlex 安裝(源 & 目標)

  1. 解壓安裝
    使用oracle使用者解壓,安裝。

    node1-orcl[oracle]/home/oracle>./SharePlex-9.2.1-b39-ONEOFF-rhel-amd64-m64.tpm
    Unpacking ..................................................................
      ..........................................................................
      ..........................................................................
      ..........................................................................
      ..........................................................................
      ..........................................................................
      ..........................................................................
      ..........................................................................
      ..........................................................................
      ..........................................................................
      ..........................................................................
      ..........................................................................
      ..........................................................................
      ................................
    SharePlex installation program:
        SharePlex Version: 9.2.1
        Build platform: rhel-amd64
        Target platform: lin-amd64
    Please enter the product directory location? /home/oracle/splex/soft
    Please enter the variable data directory location? /home/oracle/splex/data
    Please specify the SharePlex Admin group (select a number):
    1. [oinstall]
    2. dgdba
    3. kmdba
    4. backupdba
    5. dba
    6. oper
    ?  5
    Please enter the TCP/IP port number for SharePlex communications? [2100] 
    Preparing to install SharePlex v.9.2.1:
        User:                     oracle
        Admin Group:              dba
        Product Directory:        /home/oracle/splex/soft
        Variable Data Directory:  /home/oracle/splex/data
    Proceed with installation? [yes] 
    Installing ................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      ...............................
    Setting file ownerships ...................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      ............................................
    Setting file permissions ..................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .........................................................................
      .............................................
    Do you have a valid SharePlex v. 9.2.1 license? [yes] 
    Please enter the License key? 序列號
    Please enter the customer name associated with this license key? CHINA MINISTRY OF RAILWAY
    SharePlex v. 9.2.1 license validation successful:
        Customer Name:      CHINA MINISTRY OF RAILWAY
        License Key:        序列號
        Product Name:       SharePlex for Oracle - RAC
        License Key Type:   "Perpetual Key"
    NOTE: You can upgrade this license key or add license keys for additional machines
          by executing utility /home/oracle/splex/soft/install/splex_add_key.
    Installation log saved to: /home/oracle/.shareplex/INSTALL-SharePlex-9.2.1-1911290513.log
    SharePlex v.9.2.1 installation successful.
  2. ora_setup配置
    配置shareplex,配置時如果需要自定義複製的源與目標端的ORACLE_SID,則需要配置tnsnames.ora別名,且/etc/oratab中必須有對應於自定義的tnsnames別名的ORACLE_SID。

    node1-orcl[oracle]/home/oracle/splex/soft/bin>./ora_setup
    Welcome to the Oracle SharePlex setup process for port 2100.
    This process creates tables and user accounts needed to run
    Oracle SharePlex replication.
    Will the SharePlex install be using a BEQUEATH connection? (Entering 'n' implies a SQL*net connection)  [y] : 
    Please note the following:
    ** In response to prompts, a carriage return will choose the default
       given in brackets.  If there is no default, a reply must be entered.
    ** To exit the program while the program is waiting for input, use the
       CTRL-C key sequence.
       This sequences can be entered by holding down the CONTROL key and
       pressing the C key.
    Enter the Oracle SID for which SharePlex should be installed [orcl] : 
    In order to create the SharePlex tables and user account, we must
    connect to the database as a DBA user
    Enter a DBA user for orcl  : system
    Enter password for the DBA account, which will not echo : 
    connecting--This may take a few seconds.
    validating user name and password. . . This may take a few seconds.
    SharePlex objects will need to be created under a special
    account.  You can pick an existing user or create a new one.
    Would you like to create a new SharePlex user ? [y] : 
    Enter username for new user [splex/splex] : 
    Warning:  This user is now being granted unlimited tablespace.
    This privilege will remain in effect until it is explicitly changed.
    Granting select on sys.user$ to splex
    SPLEX_ROLE_BOTH  already exists; continuing setup . . .
    Do you want to enable replication of tables with TDE? [n] : 
    To enable replication of tables with TDE in the future, please rerun ora_setup.
    Setup will now install SharePlex objects.
    These are the existing tablespaces.
    SYSTEM SYSAUX UNDOTBS1 TEMP USERS SPLEX_TBS 
    Enter the default tablespace for use by SharePlex [USERS] : SPLEX_TBS
    Enter the temporary tablespace for use by SharePlex [TEMP] : 
    Enter the index tablespace for use by SharePlex [ ] : SPLEX_TBS
    Creating SharePlex objects [Installation type: Fresh]. . .
    Creating SharePlex Oracle-timezone-region map . . . Done.
    Creating Conflict Resolution Package . . . Done.
    Creating SharePlex Dataequator package . . . 
    Loading Compare Package from "/home/oracle/splex/soft/util/sp_deq_pkg.plb"...Done.
    Note: The SharePlex object that supports replication of SDO_GEOMETRY cannot be installed
          because the Oracle Spatial and Graph feature is not installed.
    Do you want to continue with the setup without support for SDO_GEOMETRY? [n] : y
    Will the current setup for sid: [orcl] be used as source (including cases as source for failover or master-master setups)?  [y] : 
    Setup of SharePlex objects successful . . .
    Changing SharePlex connection database . . .
    Setup of orcl completed successfully
    -- The datasource identifier in the SharePlex configuration is 'o.orcl' --
  3. sp_cop -u 2300 & 啟動
    可以使用該引數指定 shareplex 啟動到指定的 IP 上,可以使用 netstat -an | grep <port_number>
    啟動 -u可以啟動shareplex例項到指定埠,可以複製多個庫。

    node1-orcl[oracle]/home/oracle/splex/soft/bin>./sp_cop &
    [1] 2672
    node1-orcl[oracle]/home/oracle/splex/soft/bin>
    *******************************************************
    * SharePlex for Oracle Startup 
    * Copyright 2018 Quest Software Inc.
    * ALL RIGHTS RESERVED.
    * Protected by U.S. Patents: 7,461,103 and 7,065,538
    * Version: 9.2.1.39-m64-ONEOFF-SPO17172-SPO17624C-SPO17384-SPO17377-oracle
    * VarDir : /home/oracle/splex/data
    * Port   : 2100
    *
    * IMPORTANT SECURITY NOTICE:
    *
    * YOU HAVE NOT YET SELECTED THE NETWORK SECURITY MODEL.
    * PLEASE RUN:
    *
    *     sp_security --setup
    *
    * TO SELECT YOUR NETWORK SECURITY MODEL.
    *******************************************************
  4. 狀態驗證

    node1-orcl[oracle]/home/oracle/splex/soft/bin>./sp_ctrl
    *******************************************************
    * SharePlex Command Utility
    * Copyright 2018 Quest Software Inc.
    * ALL RIGHTS RESERVED.
    * Protected by U.S. Patents: 7,461,103 and 7,065,538
    *******************************************************
    sp_ctrl (node1:2100)> status
    Brief Status for node1
    Process          State                             PID     Running   Since     
    ---------------  ------------------------------  --------  --------------------
    Cop              Running                             2672  29-Nov-19 05:18:20  
    Cmd & Ctrl       Running                             2696  29-Nov-19 05:18:34  
    There are no active configuration files

三、同步配置

  1. 建立配置檔案(源資料庫)

    1. sp_ctrl控制檯
      SharePlex日常操作都在sp_ctrl控制檯中進行,啟動命令為:/<prodir>/bin/sp_ctrl,一般啟動之後首先進入控制檯執行sp_ctrl > stop post,停止。

      sp_ctrl (node2:2100)> stop post
    2. config 配置檔案
      Config配置檔案為複製鏈路需要複製物件以及鏈路對映檔案。

      1. 列出config檔案

        sp_ctrl (node1:2100)> list config   # 列出config檔案
        File   Name                                         State       Datasource     
        --------------------------------------------------  ----------  ---------------
        ORA_config                                          Inactive    o.SOURCE_SID   
        Last Modified At: 26-Nov-19 09:13    Size: 151
      2. 複製修改配置檔案

        sp_ctrl (node1:2100)> copy config ORA_config to test_config # 複製config檔案
        sp_ctrl (node1:2100)> edit config test_config # 修改config檔案
        datasource:o.orcl
        #source tables      target tables           routing map
        #splex.demo_src      splex.demo_dest            target_system:程式名@o.target_sid
        expand hr.%                hr.%                    192.168.66.112:splex_hr@o.orcl
  • splex.demo_src --源庫的使用者名稱.表名,可以使用%萬用字元,全匹配半匹配等。priv%not(table_name)排除表。

  • splex.demo_dest --目標庫的使用者名稱.表名

  • target_system@o.target_sid --目標庫的IP或hosts檔案中對映名@為目標端的sid或別名。

  • hr.test hr.test 192.168.204.151:scott_tab@o.honor1 --IP或主機名後加冒號,可以為該表複製單獨起一個佇列。

  • mary.cust2!key(c1,c2) mary.cust2 proda@o.sid --自定義pk

  • config 生效

    sp_ctrl (node1:2100)> activate config test_config
  • 驗證Capture、Read和Export程式是否被建立

    sp_ctrl (node1:2100)> show 
    Process    Source                               Target                 State                   PID
    ---------- ------------------------------------ ---------------------- -------------------- ------
    Capture    o.orcl                                                      Running               60407
    Read       o.orcl                                                      Running               60423
    Export     node1                                node2                  Running               60438
    sp_ctrl (node1:2100)> show capture detail
    Host: node1     System time: 28-Nov-19 10:17:58
                               Operations
    Source     Status            Captured Since
    ---------- --------------- ---------- ------------------
    o.orcl     Running                  0 28-Nov-19 09:34:52
       Oracle current redo log          : 25
       Capture current redo log         : 25
       Capture log offset               : 10206852
       Last change processed:           
            Operation on SHAREPLEX internal table at 11/28/19 10:17:55
       Capture state                    : Processing
       Activation id                    : 2
       Error count                      : 0
       Operations captured              : 0
       Transactions captured            : 0
       Concurrent sessions              : 0
       HWM concurrent sessions          : 2
       Checkpoints performed            : 23
       Total operations processed       : 3948
       Total transactions completed     : 3948
       Total Kbytes read                : 0
       Redo records in progress         : 0
       Redo records processed           : 18556
       Redo records ignored             : 14608
       Redo records - last HRID         : N/A
    sp_ctrl (node1:2100)> show export
    Host   : node1
    Queue  : node1
                               Kbytes
    Target     Status          Exported     Since              Total       Backlog
    ---------- --------------- ------------ ------------------ ---------- ----------
    node2      Running                   12 28-Nov-19 09:34:56          0          0
    sp_ctrl (node1:2100)>
  • 同步資料

  • 開啟同步(目標端)

    1. 設定恢復的起點(源端需要有資料流入)

      sp_ctrl (node2:2100)> reconcile queue splex_hr for o.orcl-o.orcl scn 1573836
    2. 開啟同步

      sp_ctrl (node2:2100)> start post

    來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31490526/viewspace-2666242/,如需轉載,請註明出處,否則將追究法律責任。

    相關文章