LINUX ORACLE OGG12C安裝(二)
生產庫安裝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 新特性的別名,提高安全性 |
LOGALLSUPCOLS |
|
將所有補充記錄的列寫入跟蹤,包括衝突檢測和解決所需的列,以及支援整合Replicat 所需的排程列 |
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.* |
定義需要複製的表,後面需以; 結尾 |
具體引數設定如下:
ggsci>add extract sm_ext tranlog begin now
//RAC ADD EXT sm_ext, TRANLOG, THREADS 2, BEGIN now
注:
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
--LOGALLSUPCOLS
--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 SCHEMA1.* ;
table SCHEMA2.* ;
table SCHEMA3.* ;
DBLOGREADER 引數支援的資料版本
Use the TRANLOGOPTIONS parameter with the DBLOGREADER option in the Extract parameter file if the RDBMS is Oracle 11.1.0.7 or Oracle 11.2.0.2 or later 11g R2 versions.
注意: 當重做日誌和歸檔日誌在普通磁碟或原始裝置上時,也可以使用DBLOGREADER 。
如果不是以上列出的資料庫版本之一,做法:
1 、建立一個可以直接訪問asm 例項的使用者
2 、將這個使用者增加到ogg 憑據儲存中
3 、使用引數ASMUSERALIAS 指定asm 登入別名
建立傳輸程式
傳輸程式要配置的引數:
引數 |
閥值 |
定義 |
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 SCHEMA1.* ;
table SCHEMA2.* ;
table SCHEMA3.* ;
--CDB 環境
SOURCECATALOG pdb1
TABLE sales.*;
備份建立使用者
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;
備份建立檢查點
cd /odc
$ sqlplus odc/odc
SQL> @chkpt_ora_create.sql
DROP TABLE ggs_checkpoint
*
ERROR at line 1:
ORA-00942: table or view does not exist
Table created.
另一種方法:
DBLOGIN USERIDALIAS alias
ADD CHECKPOINTTABLE [container.]schema.table
--[container.]schema.table 可不寫,則為預設表名,若更改則在GLOBALS 中相應更改
初始化同步
生產端查詢相關資訊
-- 生產端查詢表格所在表空間
select distinct tablespace_name from dba_tables where owner in ('SCHEMA1',’ SCHEMA2’,’ SCHEMA3’);
select distinct tablespace_name from dba_tab_partitions where table_owner in ('SCHEMA1',’ SCHEMA2’,’ SCHEMA3’);
-- 備份端查詢是否存在以上表空間,若沒有則建立,如果不想建立,在後面的impdp 中需要配置remap_tablespace 引數。
-- 生產端索引所在表空間
select distinct tablespace_name from dba_indexes where owner in ('SCHEMA1',’ SCHEMA2’,’ SCHEMA3’);
select distinct tablespace_name from dba_ind_partitions where index_owner in ('SCHEMA1',’ SCHEMA2’,’ SCHEMA3’);
-- 生產端使用者預設臨時表空間:
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;
生產端查詢SCN
SQL> select to_char(current_scn) from v$database;
14569604987950
生產端匯出
$ expdp odc/odc schemas=SCHEMA1,SCHEMA2, SCHEMA3 directory=expdp flashback_scn=14569604987950 dumpfile=exp.dmp logfile=exp.log
目標端匯入
$ impdp odc/odc schemas= SCHEMA1,SCHEMA2, SCHEMA3 directory=expdp dumpfile=exp.dmp logfile=imp.log
-- 匯入前檢查目標端表空間的大小
select segment_type,count(*),sum(bytes/1024/1024) from dba_segments where owner in ('SCHEMA1',’ SCHEMA2’,’ SCHEMA3’) group by segment_type;
備份庫相關操作
備份庫禁用觸發器
select 'alter trigger '||owner||'.'||trigger_name||' disable;' from dba_triggers where owner in ('SCHEMA1',’ SCHEMA2’,’ SCHEMA3’) 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 ('SCHEMA1',’ SCHEMA2’,’ SCHEMA3’);
禁用:
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 新特性的別名,提高安全性 |
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 exttrail ./dirdat/sm
ggsci>edit param sm_rep
引數:
replicat sm_rep
setenv (NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK")
--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 SCHEMA1.* target SCHEMA1.*;
map SCHEMA2.* target SCHEMA2.*;
map SCHEMA3.* target SCHEMA3.*;
啟動
ggsci>start sm_rep aftercsn 14569604987950
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29956245/viewspace-2932702/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 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
- 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
- 安裝在linux 4.8(32位)安裝oracle 9iLinuxOracle
- Oracle Linux 6.5 安裝Oracle 10gR2LinuxOracle 10g
- Oracle Linux 7上安裝Oracle 12cOracleLinux
- 11. Oracle for Linux安裝和配置——11.2. Linux安裝和配置——11.2.2.Linux安裝(2)OracleLinux
- 11. Oracle for Linux安裝和配置——11.2. Linux安裝和配置——11.2.2.Linux安裝(1)OracleLinux
- 二、Linux系統安裝和基本使用Linux