LINUX ORACLE OGG12C整合模式安裝(二)
生產庫安裝 DDL 相關元件
若生產庫資料庫版本在11204 後則不需要安裝DDL 相關元件
查詢資料庫的COMPATIBLE 引數,若為11204 或高版本則支援透過資料庫日誌挖掘伺服器捕獲DDL 。此方法稱為DDL 捕獲(也成為無觸發器DDL 捕獲)。
若生產庫資料庫版本在11204 前,則需要手工安裝DDL 元件
確定DDL SCHEMA
需要配置在GLOBALS 中:GGSCHEMA odc
授予odc 讀寫作業系統上的文字檔案許可權
GRANT EXECUTE ON UTL_FILE TO odc;
退出所有ORACLE 會話,不允許新會話產生
sqlplus "/as sysdba" ---- 必須sysdba 連入
在這之前要先進入到odc 目錄下再開啟sql
要使基於觸發器的 DDL 複製能夠將 Oracle 不可見索引識別為唯一識別符號,請在引數中將以下引數設定為 TRUE 。 params.sql 指令碼 :
define allow_invisible_index_keys = 'TRUE'
@marker_setup
-- 該指令碼安裝marker 系統,這部分為啟用DLL 支援所必備,執行該指令碼時會提示輸入GoldenGate 管理帳戶schema 名。
@ddl_setup
-- 執行該指令碼要確認關閉掉所有ORACLE 會話,未被關閉的會話會以列表形式顯示,執行過程中會要求希望物件屬主,並選擇安裝模式。如果是初次安裝就選擇“INITIALSETUP ”,該模式假設當前沒有任何GoldenGate DDL 物件存在,如果存在則會刪除並重建。如果是重新安裝,則應該選擇“NORMAL ”.
提示輸入DDL SCHEMA ;
若提示選擇安裝型別:INITIALSETUP (不一定)
@role_setup
-- 該操作會重建DDL 同步所需的許可權,授予GoldenGate 中的DDL 物件以DML 許可權。
提示你執行一條GRANT 語句,執行即可!
GRANT GGS_GGSUSER_ROLE TO odc;
@ddl_enable.sql
-- 啟用DDL 觸發器,以捕獲DDL 操作。
@ddl_pin.sql odc
要提高DDL 觸發器的效能,可以透過ddl_pin 指令碼,該指令碼會將觸發器使用的包載入到記憶體,以此提高效率。該指令碼執行時需要引用dbms_shared_pool 系統包,因此在使用ddl_pin 指令碼前需要確保dbms_shared_pool 可用。執行ddl_pin 指令碼需要指定GoldenGate 管理員schema 名稱.
檢視ddl 的狀態
@ddl_status.sql
注意!!!
後續剷除ogg 時,要把觸發器給關掉
@ddl_disable
特別是GGS_DDL_TRIGGER_BEFORE 這個觸發器
alter trigger GGS_DDL_TRIGGER_BEFORE disable;
建立抽取程式
抽取程式要配置的引數:
引數 |
閥值 |
定義 |
extract |
sm_ext |
指定程式名和型別 |
setenv |
(NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK") |
配置系統環境變數 |
userid/ password |
odc |
指定OGG 連線資料庫的使用者名稱和密碼 |
USERIDALIAS |
tiger1 |
使用12c 新特性的別名,提高安全性 |
MININGUSERALIAS |
|
如果使用下游採礦資料庫上的登入採礦伺服器,則指定其連線資訊。 |
INTEGRATEDPARAMS |
|
可選,將引數傳遞給包含資料庫日誌挖掘伺服器的Oracle 資料庫。僅用於更改日誌挖掘伺服器引數的預設設定. |
LOGALLSUPCOLS |
|
將所有補充記錄的列寫入跟蹤,包括衝突檢測和解決所需的列,以及支援整合Replicat 所需的排程列 |
UPDATERECORDFORMAT |
[FULL | COMPACT] |
可以控制抽取程式相容更新操作的前映象和後映象資訊並寫入到一個trail 檔案中 |
ENCRYPTTRAIL |
AES128 | AES192 | AES256 |
加密本地蹤跡。 |
exttrail |
./dirdat/cr |
指定寫入到本地的哪個佇列 |
tranlogoptions |
|
指定在解析資料庫日誌時所需要的特殊引數 |
altarchivelogdest |
/oradata/oradata/smkdb/archive |
指定歸檔路徑 |
FETCHOPTIONS |
|
指定ogg 獲取資料的方式 |
FETCHPKUPDATECOLS |
|
複製程式出現丟失update 記錄(missing update )並且更新的是主鍵,update 將轉換成insert 。( 當使用了HANDLECOLLISIONS 時,請使用該引數。) |
ddl |
include objname UCR_CRM1.* exclude objtype 'TRIGGER' |
使用DDL 引數,指定DDL 的支援和過濾DDL 操作。 |
table |
UCR_CRM1.* |
定義需要複製的表,後面需以; 結尾 |
具體引數設定如下:
DBLOGIN USERIDALIAS tiger1
REGISTER EXTRACT sm_ext DATABASE [CONTAINER (container[, ...])] [SCN system_change_number]
group 是Extract 組的名稱。
CONTAINER (CONTAINER[ ,…]) 指定多租戶容器資料庫中的一個可插資料庫(PDB) ,或者一個用逗號分隔的PDB 列表。在執行REGISTER 命令之前,指定的pdb 必須已經存在。Extract 將只從該命令中列出的pdb 中捕獲。若沒有則不寫該引數。
ADD EXTRACT sm_ext, INTEGRATED TRANLOG, BEGIN NOW
ADD EXTTRAIL /odc/dirdat/sm, EXTRACT sm_ext
注:
INTEGRATED :表示整合模式
tranlog :表示資料抓取的來源是資料庫的redo 資料。
begin now :表示我們在啟動這個抓取程式的就去抓取資料。
./dirdat :表示trail 檔案的目錄
sm :trail 檔案的字首
extract sm_ext :值指定給那個程式用的(sm_ext )。
檢視資料庫字符集對應設定環境變數
SQL> SELECT * FROM nls_database_parameters WHERE PARAMETER = 'NLS_CHARACTERSET';
ggsci>edit param sm_ext
引數:
extract sm_ext
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
--userid odc password odc
USERIDALIAS tiger1
--TRANLOGOPTIONS MININGUSERALIAS tiger2
TRANLOGOPTIONS INTEGRATEDPARAMS (MAX_SGA_SIZE 164, &
DOWNSTREAM_REAL_TIME_MINE y)
LOGALLSUPCOLS
UPDATERECORDFORMAT COMPACT
--ENCRYPTTRAIL AES192
exttrail ./dirdat/sm
tranlogoptions altarchivelogdest /oracle/odc/data
--RAC TranlogOptions DBLOGREADER
FETCHOPTIONS FETCHPKUPDATECOLS
ddl include objname test1.* exclude objtype 'TRIGGER'
DDLOPTIONS ADDTRANDATA RETRYOP RETRYDELAY 10 MAXRETRIES 10
table test1.*;
--PDB 環境
DDL INCLUDE MAPPED SOURCECATALOG pdb1 INCLUDE MAPPED SOURCECATALOG pdb2
SOURCECATALOG pdb1
TABLE schema*.tab*;
或者可以直接table pdb1.schema.table
建立傳輸程式
傳輸程式要配置的引數:
引數 |
閥值 |
定義 |
extract |
dmpucr |
指定程式名和型別 |
userid/ password |
odc |
指定OGG 連線資料庫的使用者名稱和密碼 |
USERIDALIAS |
tiger1 |
使用12c 新特性的別名,提高安全性 |
ENCRYPTTRAIL |
AES128 | AES192 | AES256 |
加密本地蹤跡。 |
rmthost |
132.151.15.10 |
指定目標端主機IP |
mgrport |
7809 |
指定管理程式埠號 |
rmttrail |
./dirdat/cr |
指定目標端儲存佇列檔案的目錄 |
passthru |
|
採用pass-through 模式處理表 |
table |
UCR_CRM1.* |
定義需要複製的表,後面需以; 結尾 |
具體引數如下:
ggsci>add extract sm_dmp EXTTRAILSOURCE ./dirdat/sm
ggsci>ADD RMTTRAIL ./dirdat/sm, EXTRACT sm_dmp
注:
EXTTRAILSOURCE :指定提取檔案作為資料來源
ADD RMTTRAIL :在目標資料庫上建立一個trail
ggsci>edit param sm_dmp
引數:
extract sm_dmp
--userid odc,password odc
USERIDALIAS tiger1
rmthost 192.168.31.139, mgrport 7809
--ENCRYPT AES192, KEYNAME securekey2
rmttrail ./dirdat/sm
passthru
table test1.*;
--CDB 環境
SOURCECATALOG pdb1
TABLE test1.*;
備份建立使用者
SQL> create tablespace odc_tps datafile '/oradata/orcl/odc01.dbf' size 100M autoextend on;
SQL> create user odc identified by odc default tablespace odc_tps;
GRANT CONNECT TO odc;
GRANT ALTER ANY TABLE TO odc;
GRANT ALTER SESSION TO odc;
GRANT CREATE SESSION TO odc;
GRANT FLASHBACK ANY TABLE TO odc;
GRANT SELECT ANY DICTIONARY TO odc;
GRANT SELECT ANY TABLE TO odc;
GRANT RESOURCE TO odc;
GRANT DBA TO odc;
初始化同步
生產端查詢相關資訊
-- 生產端查詢表格所在表空間
select distinct tablespace_name from dba_tables where owner in ('UCR_CRM1',’UCR_CRM2’,’UCR_CEN1’);
select distinct tablespace_name from dba_tab_partitions where table_owner in ('UCR_CRM1',’UCR_CRM2’,’UCR_CEN1’);
-- 備份端查詢是否存在以上表空間,若沒有則建立,如果不想建立,在後面的impdp 中需要配置remap_tablespace 引數。
-- 生產端索引所在表空間
select distinct tablespace_name from dba_indexes where owner in ('UCR_CRM1',’UCR_CRM2’,’UCR_CEN1’);
select distinct tablespace_name from dba_ind_partitions where index_owner in ('UCR_CRM1',’UCR_CRM2’,’UCR_CEN1’);
-- 生產端使用者預設臨時表空間:
select distinct temporary_tablespace from dba_users
檢查undo 保留時間及表空間大小
SQL> select file_name,tablespace_name,bytes/1024/1024/1024,AUTOEXTENSIBLE,maxbytes/1024/1024/1024 from dba_data_files where tablespace_name='UNDOTBS1';
SQL> show parameter undo
SQL> select tablespace_name,sum(bytes/1024/1024/1024) from dba_data_files group by tablespace_name;
SQL> select tablespace_name,sum(bytes/1024/1024) from dba_free_space group by tablespace_name;
SQL> alter system set undo_retention=172800;
SQL> ALTER tablespace UNDOTBS1 RETENTION GUARANTEE;
生產端查詢SCN
SQL> select to_char(current_scn) from v$database;
14569604987950
生產端匯出
$ expdp odc/odc schemas=UCR_CRM1,UCR_CRM2,UCR_CEN1 directory=expdp flashback_scn=14569604987950 dumpfile=UCRexp.dmp logfile=UCRexp.log
目標端匯入
$ impdp odc/odc schemas= UCR_CRM1,UCR_CRM2,UCR_CEN1 directory=expdp dumpfile=UCRexp.dmp logfile=UCRimp.log
-- 匯入前檢查目標端表空間的大小
select segment_type,count(*),sum(bytes/1024/1024) from dba_segments where owner in (‘UCR_CRM1’,’UCR_CRM2’,’UCR_CEN1’) group by segment_type;
備份庫相關操作
備份庫禁用觸發器
select 'alter trigger '||owner||'.'||trigger_name||' disable;' from dba_triggers where owner in (‘UCR_CRM1’,’UCR_CRM2’,’UCR_CEN1’) and status='ENABLED';
移除JOB :
select job,log_user,schema_user,next_date,broken from dba_jobs;
exec dbms_job.remove(<that job id>);
exec dbms_ijob.remove(21);
exec dbms_job.broken(186,true)
select * from dba_scheduler_jobs where owner in (‘UCR_CRM1’,’UCR_CRM2’,’UCR_CEN1’);
禁用:
DBMS_SCHEDULER.DISABLE('job1, job2, job3, sys.jobclass1, sys.jobclass2');
或刪除:
DBMS_SCHEDULER.DROP_JOB (job_name => 'my_job1');
建立應用程式
應用程式要配置的引數:
引數 |
閥值 |
定義 |
replicat |
repucr |
指定程式名和型別 |
setenv |
(NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK") |
配置系統環境變數 |
userid/ password |
odc |
指定OGG 連線資料庫的使用者名稱和密碼 |
USERIDALIAS |
tiger1 |
使用12c 新特性的別名,提高安全性 |
INTEGRATEDPARAMS |
|
該引數適用於一體化模式的Replicat 。它為入站伺服器指定可選引數。 |
ASSUMETARGETDEFS |
|
源端和目標端資料庫型別一致,無需生成資料定義檔案 |
ALLOWNOOPUPDATES |
|
允許執行無實際變化的updata |
DBOPTIONS |
DEFERREFCONST |
約束延遲設定。在複製程式的事物被提交之前,延遲級聯刪除、級聯更新時的校驗和實施。 |
HANDLETPKUPDATE |
|
定義即使目標資料庫環境中存在資料完整性問題,replicat 程式仍然能夠繼續處理 trail 中的資料。 |
ddlerror |
955 ignore |
定義來處理被找到的物件錯誤 |
DISCARDFILE |
/odc/dirrpt/cr.dsc |
定義discardfile 檔案位置,如果處理中油記錄出錯會寫入到此檔案中 |
APPEND |
|
discardfile 檔案中如果已經包含記錄的話,在後面繼續追加,不刪除之前的記錄。 |
megabytes |
20 |
定義discardfile 檔案大小 |
DISCARDROLLOVER |
on Sunday |
定義檔案過期設定,為了防止discard file 被寫滿 |
map target |
|
用於指定源端和目標端表的對映關係 |
具體引數如下:
ggsci>dblogin userid odc password odc
ggsci>add replicat sm_rep, INTEGRATED, exttrail ./dirdat/sm
ggsci>edit param sm_rep
引數:
replicat sm_rep
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
DBOPTIONS INTEGRATEDPARAMS(parallelism 6)
--userid odc, password odc
USERIDALIAS tiger2
--handlecollisions
ASSUMETARGETDEFS
-- 如果源表和目標表沒有相同的結構,那麼使用SOURCEDEFS 引數而不是ASSUMETARGETDEFS 。
ALLOWNOOPUPDATES
DBOPTIONS DEFERREFCONST
HANDLETPKUPDATE
--batchsql
ddlerror 955 ignore
ddlerror 1917 ignore
ddlerror 24344 ignore
ddlerror 1031 ignore
ddl include mapped
DISCARDFILE /oracle/odc/dirrpt/sm.dsc, APPEND megabytes 20
DISCARDROLLOVER on sunday
--DISCARDROLLOVER
map xjm.* target test1.*;
USERIDALIAS tiger2
ASSUMETARGETDEFS
MAP hr.*, TARGET hr2.*;
--PDB 環境
SOURCECATALOG pdb1
MAP schema*.tab*, TARGET *1.*;
或者
MAP pdb1.schema*.tab*, TARGET *1.*;
啟動
ggsci>start sm_rep aftercsn 14569604987950
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29956245/viewspace-2932704/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- LINUX ORACLE OGG12C整合模式安裝(一)LinuxOracle模式
- LINUX ORACLE OGG12C安裝(二)LinuxOracle
- LINUX ORACLE OGG12C安裝(一)LinuxOracle
- linux4.0下安裝oracle RAC(二)LinuxOracle
- Linux安裝oracleLinuxOracle
- linux 安裝ORACLELinuxOracle
- Oracle GoldenGate安裝(二)OracleGo
- 在Linux機器上安裝執行Oracle(二)(轉)LinuxOracle
- Oracle——Linux的安裝OracleLinux
- Oracle Linux安裝rlwrapOracleLinux
- linux上安裝oracleLinuxOracle
- 安裝Oracle11.2.0.2 RAC for Linux X86-64(二)OracleLinux
- Linux cx-Oracle安裝LinuxOracle
- linux下解除安裝oracleLinuxOracle
- Oracle /RAC linux 安裝大全OracleLinux
- linux 下oracle的安裝LinuxOracle
- Mysql for Linux安裝配置之——二進位制安裝MySqlLinux
- vmware + 裸裝置 + crs + oracle10g RAC搭建步驟(二):安裝linuxOracleLinux
- 使用silent模式安裝Oracle 11g模式Oracle
- Linux系統(二)軟體的安裝與解除安裝Linux
- Oracle Linux中安裝Oracle 11gOracleLinux
- Oracle Linux 5.5 安裝Oracle 10gLinuxOracle 10g
- MySQL linux二進位制安裝MySqlLinux
- linux 下 sysben for oracle 的安裝LinuxOracle
- 在linux下安裝oracle bbedLinuxOracle
- Oracle在Linux上的安裝OracleLinux
- Oracle 11g for linux 安裝OracleLinux
- Oracle for Windows安裝和配置之二OracleWindows
- 1 Oracle Database 11.2.0.3.0 RAC On Oralce Linux 6.5使用-Oracle安裝先決條件(二)OracleDatabaseLinux
- Linux 筆記分享二:Linux 系統安裝Linux筆記
- Oracle安裝部署之linux(redhat/centos)快速安裝oracle 11g racOracleLinuxRedhatCentOS
- 11. Oracle for Linux安裝和配置—11.3. Oracle安裝和配置—11.3.1. Oracle軟體安裝OracleLinux
- 【安裝】Linux環境ORACLE 9i安裝(文字版安裝文件)LinuxOracle
- Solaris10下Silent模式安裝Oracle1106RAC環境(二)模式Oracle
- 安裝在linux 4.8(32位)安裝oracle 9iLinuxOracle
- 第8天ORACLE安裝及NGINX整合PHP環境OracleNginxPHP
- Oracle Linux 6.5 安裝Oracle 10gR2LinuxOracle 10g
- Oracle Linux 7上安裝Oracle 12cOracleLinux