日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库迁移expdp impdp 与 OGg 搭建

發布時間:2023/12/14 数据库 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库迁移expdp impdp 与 OGg 搭建 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.long 字段的無法使用OGG 同步

?

2.clob字段的導入導出Bug , 生產使用network-link 導入導出太慢了,本地導入導出速度會快3到4倍 。但是測試環境的情況卻相反

測試環境和生產環境測試結果如下: 最后還是以生產環境的數據為主。

原因有2點,第一 : 測試環境的網絡沒有擁塞,所以感覺測試環境network-link I/O 速度可以接受。第二測試環境的I/O 太慢了,跟生產環境不是一個等量級,所以感覺生產環境 本地I/O 會快很多。

?

數據局遷移遇到的Bug

?

1.DRAFT_LOG 這個表有6G ,有clob 字段

?2._LOG 這張表因為有clob 字段,這張表是核心表,導出時間和導入時間會有比較長。大概有19G ,

因為有clob 字段,導出時間會比較長。根據我們測試,

?

?

expdp /impdp 索引分離遷移??http://blog.51cto.com/itbull/1078724

數據泵 expdp導出

nohup expdp ?system/******** dumpfile=lysb_20121113_%U.dmp directory=dmp_dir schemas=scott logfile=expdp_20121113.log job_name=lysbexpdp &

index導入時會占用大量時間,導入時先導入處index外的其他對象包括數據

nohup impdp system/******** dumpfile=lysb_20121113_%U.dmp directory=dmp_dir schemas=scott logfile=impdp_20121113.log job_name=lysbexpdp?TABLE_EXISTS_ACTION=REPLACE?EXCLUDE=INDEX?&

index可以再重建或者單獨導入

nohup impdp system/******** dumpfile=lysb_20121113_%U.dmp directory=dmp_dir schemas=scott logfile=impdp_201211132.log job_name=lysbexpdp?include=INDEX?&

?

?

?

測試1:(測試環境),不使用network_link 方式,

?

EXPDP 這2張表時間會達到3個小時。

IMPDP 這2張表時間也會超過3個小時。

?

?

測試2:? (測試環境) ,使用network_link 方式,

?

時間會縮短一倍,達到3個半小時。

?

?

測試3:(生產環境),使用network_link 方式,

?

從上午11點25發起,持續到16點,已經跑了4個半小時,還在導入。

?

測試4:? (生產環境) ,使用本地導入導出方式,不使用network_link 方式,除去BAK_RGCT_DRAFT_LOG這個6G表。

?

EXPDP 所有生產用戶時間會達到1個小時10分鐘。

IMPDP 所有生產用戶時間會達到1個小時10分鐘。

?

可以在2個半小時左右完成,

?

?

1.

檢查項 "1.創建空庫不需要初始化
2.檢查生產的FRA空間檢查
生產的在維護期間會創建一個回滾點并保留7天,所以要檢查災備FRA的卷空間是否能保留7天的日志量。不足需申請擴空間。"
新建目標空庫 "1,只包含system,sysaux,undotbs1,temp,users 表空間,不需要初始化。
set line 200 pagesize 200
select tablespace_name from dba_tablespaces a
where (a.tablespace_name not in ('TEMP','SYSAUX','SYSTEM','USERS')
and a.contents not in ('TEMPORARY','UNDO')) ;
2,字符集、block size與源庫保持一致
select * from v$nls_parameters where parameter='NLS_CHARACTERSET';
show parameter block_size;
3,安裝組件和源生產一致。
select comp_name,version,status from dba_registry order by 1;
4.源庫和目標庫具有相同的timeone;
SELECT VERSION FROM V$TIMEZONE_FILE;

8.db_cache_size
設置為和源庫相同
show parameter db_cache_size
9.注:9.1.目標庫cpu_count 不要在spfile里進行設置,不需要和源庫保持一致
9.2.目標庫的parallel_max_servers設置要和源庫一致。
10.job_queue_processes,aq_tm_processes 設置為0。
11.修改新建的目標庫為非歸檔模式
12,11g數據庫參數按標準新建庫手冊。
13. 關閉Flashback。
select flashback_on from v$database; --結果為NO
15.awr配置為間隔15分鐘,保留90天
exec dbms_workload_repository.modify_snapshot_settings(interval=>15, retention=>90*24*60);
col SNAP_INTERVAL format a20
col RETENTION format a20
select * from dba_hist_wr_control;"
檢查遷移對象是否是閉包的 "1:檢查遷移用戶引用非遷移用戶的對象,如果引用的是系統表酌情處理;如果引用的是非系統表則要整改。
select * from dba_dependencies dd where dd.owner in
('BBSP','BBSPODS','BCDPETL','DBMONOPR','DBMGR','OVSEE') --替換為實際用戶
and dd.referenced_owner not in
('BBSP','BBSPODS','BCDPETL','DBMONOPR','DBMGR','OVSEE')
2:檢查非遷移用戶引用遷移用戶的對象,如果存在則與開發討論處理方法。
select * from dba_dependencies dd where dd.type<>'SYNONYM' and dd.owner not in
('BBSP','BBSPODS','BCDPETL','DBMONOPR','DBMGR','OVSEE') ----替換為實際用戶
and dd.referenced_owner in
('BBSP','BBSPODS','BCDPETL','DBMONOPR','DBMGR','OVSEE') ----替換為實際用戶

/"
檢查遷移schema的trigger是否是閉包的 "1:檢查觸發器的owner<>table_owner且owner不在遷移用戶列表而table_owner在遷移用戶列表的情況,這種觸發器需要手工遷移
select * from dba_triggers where owner<>table_owner and owner not in ('BBSP','BBSPODS','BCDPETL','DBMONOPR','DBMGR','OVSEE') and table_owner in ('BBSP','BBSPODS','BCDPETL','DBMONOPR','DBMGR','OVSEE') ;


2:檢查觸發器的owner<>table_owner且owner在遷移用戶列表而table_owner不在遷移用戶列表的情況,這種觸發器視情況決定是否遷移
select * from dba_triggers where owner<>table_owner and owner not in ('BBSP','BBSPODS','BCDPETL','DBMONOPR','DBMGR','OVSEE') and table_owner in ('BBSP','BBSPODS','BCDPETL','DBMONOPR','DBMGR','OVSEE') ;


3:檢查觸發器的triggering_eventowner'LOGON '且owner在遷移用戶列表或table_owner在遷移用戶列表的情況,這種觸發器expdp不能導出需要手工遷移
select * from dba_triggers where triggering_event='LOGON 'and (owner in ('BBSP','BBSPODS','BCDPETL','DBMONOPR','DBMGR','OVSEE') or table_owner in ('BBSP','BBSPODS','BCDPETL','DBMONOPR','DBMGR','OVSEE'));

"
根據10g生產庫中待遷移job清單信息,生成job遷移腳本并在測試環境驗證通過。特別注意:腳本所有待遷移job其next_date都必須設為無限大。 t_update_status();
檢查10g生產庫中是否有業務scheduler存在,這些scheduler也要進行遷移,如果存在有,本步要把遷移scheduler的腳本準備好 0

"
創建11g目標庫到10g生產庫的dblink" "create public database link dblink_migup connect to dbmgr identified by &pw
using ' 生產庫連接串 ';
3:驗證dblink是否通
select * from dual@dblink_migup; --有結果返回表示通的否則不通需處理
"
"
1. 創建要遷移的用戶清單配置表(sys..t_user_cfg)

" "create table sys.t_user_cfg as SELECT username, default_tablespace
FROM dba_users@dblink_migup
WHERE username not in
('SYS', 'SYSTEM', 'PUBLIC', 'OUTLN', 'WMSYS', 'ORDSYS', 'MDSYS',
'CTXSYS', 'XDB', 'WKSYS', 'ANONYMOUS', 'ORDPLUGINS', 'EXFSYS',
'LBACSYS', 'DIP', 'LBACSYS', 'ORACLE_OCM', 'TSMSYS', 'ADAMS',
'TRACESVR', 'DBSNMP', 'PERFSTAT', 'DBSTATS', 'EXPFULL',
'MDDATA', 'MGMT_VIEW', 'OLAPSYS', 'SI_INFORMTN_SCHEMA', 'OWBSYS',
'SYSMAN', 'ORDDATA', 'OWBSYS_AUDIT', 'APEX_030200', 'APPQOSSYS',
'MDSYS', 'FLOWS_FILES', 'SPATIAL_WFS_ADMIN_USR',
'SPATIAL_CSW_ADMIN_USR', 'APEX_PUBLIC_USER', 'XS$NULL','DMSYS')
minus
select username, default_tablespace from dba_users;"
目標端新增表空間 "1.查看源庫表空間名稱及大小,在目標庫新建相同大小表空間
set line 200 pagesize 200
select tablespace_name from dba_tablespaces a
where a.tablespace_name not in ('TEMP','SYSAUX','SYSTEM','USERS') ;

--注意臨時表空間是否有特殊的,CREATE TEMPORARY TABLESPACE RLMSTMP TEMPFILE '+DATA_HDG' SIZE 100M AUTOEXTEND ON;

2.打開所有表空間的自動擴展
select 'alter database datafile '''||file_name||''' autoextend on next 100M;' from dba_data_files ;
select 'alter database tempfile '''||file_name||''' autoextend on next 100M;' from dba_temp_files ;
執行上面生成的腳本
復核:
select df.tablespace_name,df.autoextensible from dba_temp_files df where df.autoextensible='NO';
select df.tablespace_name,df.autoextensible from dba_data_files df where df.autoextensible='NO';"
目標端創建role "SET termout OFF feedback OFF verify OFF echo OFF heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/01_create_role.sql
select 'create role ' || role || ';'
from (select role
from dba_roles@dblink_migup
minus
select role from dba_roles);
spool off;
在目標庫執行01_create_role.sql"
創建密碼函數 "執行附件腳本創建密碼函數sys.VERIFY_FUNCTION_11G
PS:這個密碼函數如果老庫的名稱不一樣,需要把老庫的函數遷移過來。"
創建profile "SET termout OFF feedback OFF verify OFF echo OFF heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/02_deal_profile.sql
select (case
when rn = 1 then
('create profile ' || profile ||' limit ' || resource_name ||' ' || limit || (case
when rn = max_rn then
';'
end)) else(resource_name || ' ' || limit || (case
when rn = max_rn then
';'
end)) end)
from (select profile,
resource_name,
limit,
row_number() over(partition by profile order by profile, resource_name) rn,
count(*) over(partition by profile) max_rn
from dba_profiles@dblink_migup
where profile in
(select distinct profile
from dba_profiles@dblink_migup
minus
select distinct profile from dba_profiles)
order by profile, resource_name)
order by profile, resource_name;
spool off;

執行02_deal_profile.sql

alter profile default limit PASSWORD_VERIFY_FUNCTION VERIFY_FUNCTION_11G;
alter profile default limit FAILED_LOGIN_ATTEMPTS 10;
復核:
select * from dba_profiles minus select * from dba_profiles@dblink_migup;
select * from dba_profiles@dblink_migup minus select * from dba_profiles;"
創建公共同義詞 "SET termout OFF feedback OFF verify OFF echo OFF heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/03_create_public_synonym.sql
SELECT
'create or replace public synonym '||synonym_name||' for '||table_owner||'.'||table_name||';'
FROM dba_synonyms@dblink_migup
WHERE owner = 'PUBLIC'
AND table_owner IN ( select username from sys.t_user_cfg t) ;
spool off;
在目標庫執行03_create_public_synonym.sql"
移植cron "
將原hp平臺上的crontab移植到新linux主機上。
"

?

?2.

21:00 導出BBSP.RGCT_DRAFT_LOG "export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
cd /db/db1/oradata/dba/exp_table
vi expdp_rgct_log.par
userid='/ as sysdba'
directory=schema_exp
dumpfile=expdp_rgct_log_%U.dmp
logfile=expdp_rgct_draft_log.log
parallel=4
filesize=10240M
tables=(BBSP.RGCT_DRAFT_LOG)
content=all "
22:00 scp傳輸到linux scp *.dmp cradmin@10.198.217.193:/db/db1/app/opdb1/db1_impdp
22:00 新庫創建用戶 "create user bbsp identified by values 'DF01EB216CE6E6BE' default tablespace bbsp profile default;
grant unlimited tablespace to bbsp;
alter user bbsp quota unlimited on users;
alter user bbsp quota unlimited on bbsp;
"
22:10 導入BBSP.RGCT_DRAFT_LOG "chown -R opdb1:dba /db/db1/app/opdb1/db1_impdp/*.dmp

export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
cd /db/db1/app/opdb1/db1_impdp
vi impdp_rgct_log.par
userid='/ as sysdba'
directory=schema_imp
dumpfile=expdp_rgct_log_%U.dmp
logfile=impdp_rgct_draft_log.log
parallel=4
tables=(BBSP.RGCT_DRAFT_LOG)
content=all

nohup impdp parfile=impdp_rgct_log.par &

檢查導出導入日志是否有報錯"
T-0 "DBA檢查DB中的long oper、
rbs占用,
并請運營確認和做相應處理" "sqlplus '/ as sysdba'
alter system switch logfile ;
alter system switch logfile ;
alter system switch logfile ;
alter system archive log current;

1)檢查long operation
select sid, target,opname, sofar,totalwork,time_remaining
from gv$session_longops where time_remaining>0;
2)檢查占用回滾段較多的事務:
select xidusn,s.last_call_et, s.username, used_ublk,USED_UREC,space,
RECURSIVE, NOUNDO, START_UBAFIL,start_ubablk, start_uext
from gv$transaction t, gv$session s
where t.ses_addr=s.saddr;
"
1:00 維護時間開始處理,通知應用停止應用 應用將庫的所有相關應用系統和job、ETL任務等停止下來。
T-0 檢查卷,凍結源庫雙機軟件 "凍結源庫的雙機,
凍結目標庫的雙機"
T-0 全備,磁帶永久保留
T-0 DBA停止報警,屏蔽cron "cd $HOME
touch cron_null
crontab cron_null
crontab -l 返回值應該為空"
T-0 修改端口 "lsnrctl stop db1
修改監聽端口為1537
cd $ORACLE_HOME/network/admin
vi listener.ora
lsnrctl start db1"
T-0 重建到舊庫的db links。 "1:在目標庫重建遷移用的臨時dblink ---直接使用連接串
drop public database link dblink_migup;
create public database link dblink_migup connect to dbmgr identified by db1234DBA
using ' (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =10.198.69.10)(PORT = 1537)) (CONNECT_DATA =(sid = db1)))';
2:驗證dblink是否通
select * from dual@dblink_migup; --有結果返回表示通的否則不通需處理"
T-0 修改job_queue_processes,aq_tm_processes為0,關閉audit "保留記錄job_queue_processes及aq_tm_processes修改前的值。
show parameter job_queue_processes --- 1000
show parameter aq_tm_processes ---1
alter system set job_queue_processes=0 scope=both;
alter system set aq_tm_processes=0 scope=both;
alter system set audit_trail=none scope=spfile;"
T-0 "DBA檢查DB中的long oper、
rbs占用,
并請運營確認和做相應處理" "sqlplus '/ as sysdba'
alter system switch logfile ;
alter system switch logfile ;
alter system switch logfile ;
alter system archive log current;

1)檢查long operation
select sid, target,opname, sofar,totalwork,time_remaining
from gv$session_longops where time_remaining>0;
2)檢查占用回滾段較多的事務:
select xidusn,s.last_call_et, s.username, used_ublk,USED_UREC,space,
RECURSIVE, NOUNDO, START_UBAFIL,start_ubablk, start_uext
from gv$transaction t, gv$session s
where t.ses_addr=s.saddr;
"
T-0 修改stream_pool_size alter system set streams_pool_size=128M scope=both;
T-0 1.設置JOB的next_date為無限大 "備份原庫的Job:create table dbmgr.dbajobs_old_bak as select * from dba_jobs;
復核:SELECT COUNT(*) FROM dbmgr.dbajobs_old_bak;
設置JOB的next_date為無限大:"
T-0 原庫創建用戶清單表sys.t_user_list "create table sys.t_user_cfg as SELECT username, default_tablespace
FROM dba_users
WHERE username not in
('SYS', 'SYSTEM', 'PUBLIC', 'OUTLN', 'WMSYS', 'ORDSYS', 'MDSYS',
'CTXSYS', 'XDB', 'WKSYS', 'ANONYMOUS', 'ORDPLUGINS', 'EXFSYS',
'LBACSYS', 'DIP', 'LBACSYS', 'ORACLE_OCM', 'TSMSYS', 'ADAMS',
'TRACESVR', 'DBSNMP', 'PERFSTAT', 'DBSTATS', 'EXPFULL',
'MDDATA', 'MGMT_VIEW', 'OLAPSYS', 'SI_INFORMTN_SCHEMA', 'OWBSYS',
'SYSMAN', 'ORDDATA', 'OWBSYS_AUDIT', 'APEX_030200', 'APPQOSSYS',
'MDSYS', 'FLOWS_FILES', 'SPATIAL_WFS_ADMIN_USR',
'SPATIAL_CSW_ADMIN_USR', 'APEX_PUBLIC_USER', 'XS$NULL','DMSYS');
grant select on sys.t_user_cfg to public;"
T-0 部署數據比對的procedure "grant select on dba_tab_columns to dbmgr;
create table dbmgr.TAB_HASH
(
OWNER VARCHAR2(30),
TABLE_NAME VARCHAR2(50),
SQL_VALUE VARCHAR2(4000),
HASH_VALUE NUMBER(20)
) ;

CREATE OR REPLACE PROCEDURE DBMGR.GET_TAB_HASH8(V_OWNER VARCHAR2,
V_TABLE_NAME VARCHAR2) AS
v_sql_temp varchar2(4000);
v_hash number(20);
BEGIN
FOR r in (SELECT COLUMN_NAME
FROM DBA_TAB_COLUMNS
WHERE OWNER = V_OWNER
AND TABLE_NAME = V_TABLE_NAME
AND DATA_TYPE NOT IN ('CLOB', 'BLOB')
and OWNER IN (SELECT USERNAME FROM sys.t_user_cfg)
order by 1 asc) loop
v_sql_temp := v_sql_temp || '||' || R.COLUMN_NAME;
end loop;
v_sql_temp := 'select/*+ parallel(t 8) full(t)*/ sum(dbms_utility.get_hash_value(' ||
substr(v_sql_temp, 3) || ', 0, 999999999)) from ' ||
V_OWNER || '.' || V_TABLE_NAME || ' t';

execute immediate v_sql_temp
into v_hash;

insert into tab_hash
(owner, table_name, sql_value, hash_value)
values
(V_OWNER, V_TABLE_NAME, v_sql_temp || ';', v_hash);
commit;
EXCEPTION
WHEN OTHERS THEN
NULL;
END;
/"
T-0 為GG回滾庫做的disable/enable trigger以及constraint腳本。 "set linesize 300

SPOOL $HOME/disable_constraint_r.sql
SELECT 'spool ./disable_constraint_r.log' FROM dual;
SELECT 'alter table '||owner||'.'||table_name||' disable constraint '||constraint_name||';'
FROM dba_constraints
WHERE owner IN (select username from sys.t_user_cfg)
AND constraint_type = 'R'
ORDER BY constraint_type desc, owner, table_name, constraint_name;
SELECT 'spool off' FROM dual;
SPOOL OFF

SPOOL ./disable_trigger.sql
SELECT 'spool ./disable_trigger.log' FROM dual;
SELECT
'alter trigger '||owner||'.'||trigger_name||' disable;'
FROM dba_triggers
WHERE owner IN (select username from sys.t_user_cfg)
AND status <> 'DISABLED'
ORDER BY owner, table_name, trigger_name;
SELECT 'spool off' FROM dual;
SPOOL OFF
SPOOL ./enable_trigger.sql
SELECT 'spool ./enable_trigger.log' FROM dual;
SELECT
'alter trigger '||owner||'.'||trigger_name||' enable;'
FROM dba_triggers
WHERE owner IN (select username from sys.t_user_cfg)
AND status = 'ENABLED'
ORDER BY owner, table_name, trigger_name;
SELECT 'spool off' FROM dual;
SPOOL OFF

SPOOL ./enable_constraint_r_novalidate.sql
SELECT 'spool ./enable_constraint_r_novalidate.log' FROM dual;
SELECT
'alter table '||owner||'.'||table_name||' modify constraint '||constraint_name||' enable novalidate;'
FROM dba_constraints
WHERE owner IN (select distinct username from sys.t_user_cfg)
AND constraint_type = 'R'
AND STATUS = 'ENABLED'
ORDER BY constraint_type desc, owner, table_name, constraint_name;
SELECT 'spool off' FROM dual;
SPOOL OFF

SPOOL ./enable_constraint_src_r.sql
SELECT 'spool ./enable_constraint_src_r.log' FROM dual;
SELECT
'alter table '||owner||'.'||table_name||' modify constraint '||constraint_name||' enable novalidate;'
FROM dba_constraints
WHERE owner IN (select distinct username from sys.t_user_cfg)
AND constraint_type = 'R'
AND status = 'ENABLED'
ORDER BY constraint_type desc, owner, table_name, constraint_name;
SELECT 'spool off' FROM dual;
SPOOL OFF"
T-0 重啟生產庫 "
shutdown immediate;
startup
"
T-0 停止同城災備db 沒有災備庫
T-0 清空回收站 Purge dba_recyclebin;
T-0 expdp導出 "export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
connect / as sysdba
create or replace directory schema_exp as '/db/db1/oradata/expdp_db1';
cd /db/db1/oradata/expdp_db1

userid='/ as sysdba'
directory=schema_exp
dumpfile=expdp_schemas_%U.dmp
logfile=expdp_schemas.log
parallel=6
filesize=10240M
schemas=BBSP,BBSPODS,BCDPETL,DBMONOPR
content=all
EXCLUDE=TABLE:""in ('BAK_RGCT_DRAFT_LOG','RGCT_DRAFT_LOG')""

nohup expdp parfile=expdp.par &"
檢查error more expdp_schemas.log |grep -i error
T-0 impdp導入 "scp *.dmp cradmin@10.198.217.193:/db/db1/app/opdb1/db1_impdp
chown -R opdb1:dba /db/db1/app/opdb1/db1_impdp/*.dmp
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

userid='/ as sysdba'
directory=schema_imp
dumpfile=expdp_schemas_%U.dmp
logfile=impdp_schemas.log
parallel=6
schemas=BBSP,BBSPODS,BCDPETL,DBMONOPR
content=all

nohup impdp parfile=impdp.par &"
T-0 檢查error more impdp_schemas.log |grep -i error
T-0 grant GRANT SELECT ON "BBSP"."RGCT_DRAFT_LOG" TO "BCDPETL"
T-0 查出時點ID記錄數最大的做保存 select max(l.id) from bbsp.rgct_draft_log l
T-0 用記錄的最大id查出新增數據 select count(*) from bbsp.rgct_draft_log l where l.id>xxxxx; --替換為上一步查出的值
T-0 補錄新增數據到bbsp.rgct_draft_log "insert into bbsp.rgct_draft_log select * from bbsp.rgct_draft_log@dblink_migup where id>xxxxxxxx ;
commit;"
T-0 "數據核對
并且點開lob字段查詢是否有值" "select count(*) from bbsp.rgct_draft_log ;
select * from bbsp.rgct_draft_log ;"
T-0 清除impdp導到目標庫sys用戶下的job并復核 "select * from dba_jobs;
清除impdp導到sys用戶下的job
DECLARE X NUMBER;
BEGIN
for cur in ( select * from dba_jobs j where j.log_user = 'SYS') loop
SYS.DBMS_iJOB.remove(job => cur.job );
COMMIT;
end loop ;
commit;
END;
/"
T-1 創建公共同義詞 "SET termout OFF feedback OFF verify OFF echo OFF heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/03_create_public_synonym.sql
SELECT
'create or replace public synonym '||synonym_name||' for '||table_owner||'.'||table_name||';'
FROM dba_synonyms@dblink_migup
WHERE owner = 'PUBLIC'
AND table_owner IN ( select username from sys.t_user_cfg t) ;
spool off;
在目標庫執行03_create_public_synonym.sql"
T-0 生成用戶審計信息 "SET termout OFF feedback OFF verify OFF echo OFF heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/04_audit_users.sql
SELECT
'audit connect by '||user_name||';'
FROM dba_stmt_audit_opts@dblink_migup
WHERE audit_option = 'CREATE SESSION'
and user_name in ( select username from sys.t_user_cfg )
and user_name is not null;
SELECT
'audit '||audit_option||' by '||user_name||' by session whenever successful;'
FROM dba_stmt_audit_opts@dblink_migup
WHERE audit_option <> 'CREATE SESSION'
and user_name in ( select username from sys.t_user_cfg )
and user_name is not null;
SPOOL OFF;"
T-0 添加用戶審計信息 執行04_audit_user.sql
T-0 給用戶和角色授權 "1.執行附件腳本04_grant.sql
2.可以看到生成的腳本$HOME/grant_role_priv.sql,$HOME/grant_sys_priv.sql,$HOME/grant_sys_tab_priv.sql
3.檢查沒問題后執行上面生成的3個腳本"
T-0 目標庫編譯失效對象 sqlplus> @?/rdbms/admin/utlrp.sql;
T-0 對比源庫和目標庫確保無新增失效對象 "select owner ,object_name, status from dba_objects where status = 'INVALID'
minus
select owner ,object_name, status from dba_objects@dblink_migup where status = 'INVALID';"
T-0 檢查表和索引的統計信息是否被鎖住 "select owner,table_name,partition_name,t.stattype_locked from dba_tab_statistics t where t.stattype_locked is not null and t.owner in (select username from sys.t_user_cfg);
select owner,index_name,table_owner,table_name,partition_name,stattype_locked from dba_ind_statistics t where t.stattype_locked is not null and t.owner in (select username from sys.t_user_cfg);
如果有結果,說明有表或索引統計信息被鎖定

執行下列拼出來的語句
select case when partition_name is null then 'exec dbms_stats.unlock_table_stats(ownname =>''' ||owner || ''',tabname =>''' || table_name || ''');'
else 'exec dbms_stats.unlock_table_stats(ownname =>''' ||owner || ''',tabname =>''' || table_name ||''',partname =>'''|| partition_name||''');' end
from dba_tab_statistics t
where t.stattype_locked is not null
and t.owner in (select username from sys.t_user_cfg);

select case when partition_name is null then 'exec dbms_stats.unlock_table_stats(ownname =>''' ||table_owner || ''',tabname =>''' || table_name || ''');'
else 'exec dbms_stats.unlock_table_stats(ownname =>''' ||table_owner || ''',tabname =>''' || table_name ||''',partname =>'''|| partition_name||''');' end
from dba_ind_statistics t where t.stattype_locked is not null and t.owner in (select username from sys.t_user_cfg);"
T-0 "復核以下項在源和目標環境中是否相等
" " 檢查遷移用戶系統權限
檢查遷移用戶角色權限
檢查遷移用戶對象權限
檢查遷移用戶審計
檢查遷移用戶對象同義詞
檢查遷移用戶db_link
檢查遷移用戶context
檢查遷移用戶的對象總數
遷移用戶的constraint
檢查遷移用戶的index(含索引字段)
檢查遷移用戶的表結構
遷移用戶的trigger
檢查遷移用戶的表記錄數
檢查遷移用戶的seq數及last_number"
T-0 核心表數據比對 "select count(*)登記中心數 from BBSP.rgct_bill_info
union
select count(*)登記中心歷史數 from BBSP.rgct_bill_hist

T-0 打開歸檔 "shutdown immediate;
startup nomount;
alter database mount;
alter database archivelog;
alter database open;"
T-0 關閉undo和temp表空間的自動擴展 "select 'alter database datafile '''||file_name||''' autoextend off;' from dba_data_files where tablespace_name like 'UNDO%';
select 'alter database tempfile '''||file_name||''' autoextend off;' from dba_temp_files ;
執行產出腳本"
T-0 復核job參數 "檢查Job參數設置,設置為0
SQL> show parameter job_queue_processes --0
SQL> show parameter aq_tm_processes --0"
force logging開啟 alter database force logging;
T-0 gg混滾鏈路處理 "alter table BBSP.CODE logging;
alter table BBSP.PRODUCT logging;
"
T-0 gg鏈路處理 按gg回滾手冊進行部署
T-0 配置監聽 "【新庫恢復監聽】
lsnrctl stop db1
并修改監聽端口為1528

cd $ORACLE_HOME/network/admin
vi listener.ora

lsnrctl start db1 --監聽端口是1528"
T-0 DNS切換,清理緩存 找應用值班同事執行
T-0 驗證連通性 sqlplus客戶端驗證
T-0 啟動中間件和相關應用
T-0 通知開發、應用驗證應用
T-0 打開Job參數 "SQL> alter system set job_queue_processes = 1000 scope = both;
SQL> alter system set aq_tm_processes=1 scope = both;;
復核:
SQL> show parameter job_queue_processes
SQL> show parameter aq_tm_processes
"
T-0 恢復cron文件 無
T-0 注冊catalog "Rman注冊:
步驟如下(主庫):
shell>rman target / catalog rman11g/rman11g@cat11g
RMAN> register database;
RMAN> report schema;
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 90 DAYS;
RMAN> CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO 'SBT_TAPE';
RMAN>show all;"

?

?

2.1 set_job_nextdate.sql

SET termout on feedback on verify OFF echo on heading OFF trims ON escape ON pages 0 linesize 999 long 3000
set SERVEROUTPUT on size 200000
alter session set nls_date_format='yyyy/mm/dd hh24:mi:ss' ;


begin
for cur in ( select * from dba_jobs j where j.BROKEN = 'N' ) loop
sys.dbms_ijob.next_date(job => cur.job,next_date=>to_date('2999/9/9','yyyy/mm/dd')) ;
end loop ;
commit ;
end;
/

select count(1) from dba_jobs j where j.next_date < to_date('2999-09-09','yyyy-mm-dd') and j.broken = 'N';

?

2.2 04_grant.sql

SET termout OFF feedback OFF verify OFF echo OFF heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/grant_role_priv.sql
SELECT 'spool $HOME/grant_role_priv.log' FROM dual;
SELECT 'grant ' || granted_role || ' to ' || grantee || CASE admin_option
WHEN 'YES' THEN
' with admin option;'
ELSE
';'
END
FROM dba_role_privs@dblink_migup
WHERE grantee IN
( select username from sys.t_user_cfg
union
select distinct granted_role from dba_role_privs@dblink_migup WHERE grantee IN (select username from sys.t_user_cfg)
and granted_role like 'R\_%' escape '\'
) ;
SELECT 'spool off;' FROM dual;
SPOOL OFF;
commit;
SET termout on echo on


--SET termout OFF feedback on verify OFF echo on heading OFF trims ON escape ON pages 0 linesize 999 long 3000

--@$HOME/grant_role_priv.sql
--commit;

?

SET termout OFF feedback OFF verify OFF echo OFF heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/grant_sys_priv.sql
SELECT 'spool $HOME/grant_sys_priv.log' FROM dual;
SELECT
'grant '||privilege||' to '||grantee
||CASE admin_option WHEN 'YES' THEN ' with admin option;' ELSE ';' END
FROM dba_sys_privs@dblink_migup
WHERE grantee IN
( select username from sys.t_user_cfg
union
select distinct granted_role from dba_role_privs@dblink_migup WHERE grantee IN (select username from sys.t_user_cfg)
and granted_role like 'R\_%' escape '\'
) ;
SELECT
'grant '||privilege||' to '||grantee
||CASE admin_option WHEN 'YES' THEN ' with admin option;' ELSE ';' END
FROM dba_sys_privs@dblink_migup
WHERE grantee IN (SELECT role FROM dba_roles WHERE password_required <> 'NO' AND ROLE LIKE 'R\_%' ESCAPE '\');
SELECT 'spool off;' FROM dual;
SPOOL OFF;
commit;
SET termout on echo on

?

--SET termout OFF feedback on verify OFF echo on heading OFF trims ON escape ON pages 0 linesize 999 long 3000

--@$HOME/grant_sys_priv.sql
--commit;


SET termout OFF feedback OFF verify OFF echo OFF heading OFF trims ON escape ON pages 0 linesize 999 long 3000
spool $HOME/grant_sys_tab_priv.sql
SELECT 'spool $HOME/grant_sys_tab_priv.log' FROM dual;

SELECT
'grant '||privilege||' on '
||CASE WHEN substr(table_name,1,2)='V$' THEN 'V_$'||substr(table_name,3,length(table_name-2)) ELSE table_name END
||' to '||grantee||CASE grantable WHEN 'YES' THEN ' with grant option;' ELSE ';' END
FROM dba_tab_privs@dblink_migup
WHERE grantee IN
( select username from sys.t_user_cfg
union
select distinct granted_role from dba_role_privs@dblink_migup WHERE grantee IN (select username from sys.t_user_cfg)
and granted_role like 'R\_%' escape '\'
)
AND owner = 'SYS'
and table_name NOT in('EXPDIR','V_$TEMP_HISTOGRAM','V_$STANDBY_APPLY_SNAPSHOT','GV_$TEMP_HISTOGRAM','GV_$STANDBY_APPLY_SNAPSHOT' ,'DBA_ADVISOR_DIRECTIVES','DBA_CACHEABLE_TABLES' , 'DBA_CACHEABLE_OBJECTS_BASE' , 'DBA_CACHEABLE_OBJECTS' ,'DBA_USERS2') -----opms Special
AND privilege NOT IN ('READ','WRITE');
SELECT
'grant '||privilege||' on directory '||table_name||' to '||grantee
||CASE grantable WHEN 'YES' THEN ' with grant option;' ELSE ';' END
FROM dba_tab_privs@dblink_migup
WHERE grantee IN
( select username from sys.t_user_cfg
union
select distinct granted_role from dba_role_privs@dblink_migup WHERE grantee IN (select username from sys.t_user_cfg)
and granted_role like 'R\_%' escape '\'
)
AND owner = 'SYS'
AND privilege IN ('READ', 'WRITE')
AND table_name not in ( 'EXPDIR' );
SELECT 'spool off;' FROM dual;
SPOOL OFF;
commit;
SET termout on echo on

--SET termout OFF feedback on verify OFF echo on heading OFF trims ON escape ON pages 0 linesize 999 long 3000

--@$HOME/grant_sys_tab_priv.sql
--commit;

?

?

2.3 check.sql

----check object -----------------
--CHECK OBJECT


1.準備工作 (11G RAC)
step 0:
alter user dbmgr identified by dbmgr1234;

alter system set local_listener = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.197.1.203)(PORT=1528)))' sid='db1' scope = memory;

step 1:

drop public database link dblink_migup;

create public database link dblink_migup connect to dbmgr identified by dbmgr1234 using ' (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =10.197.1.103)(PORT = 1528)) (CONNECT_DATA =(sid = db1)))';


step 2:

drop table sys.t_user_cfg;


create table sys.t_user_cfg as SELECT username, default_tablespace
FROM dba_users
WHERE username not in
('SYS', 'SYSTEM', 'PUBLIC', 'OUTLN', 'WMSYS', 'ORDSYS', 'MDSYS',
'CTXSYS', 'XDB', 'WKSYS', 'ANONYMOUS', 'ORDPLUGINS', 'EXFSYS',
'LBACSYS', 'DIP', 'LBACSYS', 'ORACLE_OCM', 'TSMSYS', 'ADAMS',
'TRACESVR', 'DBSNMP', 'PERFSTAT', 'DBSTATS', 'EXPFULL',
'MDDATA', 'MGMT_VIEW', 'OLAPSYS', 'SI_INFORMTN_SCHEMA', 'OWBSYS',
'SYSMAN', 'ORDDATA', 'OWBSYS_AUDIT', 'APEX_030200', 'APPQOSSYS',
'MDSYS', 'FLOWS_FILES', 'SPATIAL_WFS_ADMIN_USR','SQLTXPLAIN','DBMONOPR','SCOTT',
'SPATIAL_CSW_ADMIN_USR', 'APEX_PUBLIC_USER', 'XS$NULL','DMSYS','SQLTXADMIN','ZABBIX','DBMGR','OGG','OVSEE','FOGLIGHT','PAO');


set pagesize 0
select * from sys.t_user_cfg ;

?

2:驗證dblink是否通

select * from dual@dblink_migup;

--有結果返回表示通的否則不通需處理" 未完成


3.開始使用連接PL/SQL developer 端連接數據庫 RAC 11G
用戶名:dbmgr/dbmgr1234
字符串:
10.197.1.205:1528/db


4.PL/SQL devoper 開一個SQL 窗口,執行以下語句,(重點關注 jobs dbmgr.save_ash('db') 在11g是否存在;)

?

--CHECK jobs
select log_user,schema_user,what,broken
from dba_jobs@dblink_migup
where schema_user in (select username from sys.t_user_cfg)
and last_date is not null
minus
select log_user,schema_user,what,broken
from dba_jobs
where schema_user in (select username from sys.t_user_cfg)
and last_date is not null;

--CHECK scheduler_jobs
select job_name from dba_scheduler_jobs@dblink_migup where owner !='SYS'
minus
select job_name from dba_scheduler_jobs where owner !='SYS';


--CHECK OBJECT
select owner,object_name,object_type,status
from dba_objects@dblink_migup
where owner in (select username from sys.t_user_cfg)
and status <> 'INVALID'
minus
select owner,object_name,object_type,status
from dba_objects
where owner in (select username from sys.t_user_cfg)
and status <> 'INVALID';


----check system priv-------------
select grantee,privilege from dba_sys_privs@dblink_migup
where grantee in ( select username from sys.t_user_cfg)
minus
select grantee,privilege from dba_sys_privs
where grantee in ( select username from sys.t_user_cfg) ;

----check role priv-------------
select grantee,granted_role,admin_option from dba_role_privs@dblink_migup
where grantee in ( select username from sys.t_user_cfg)
minus
select grantee,granted_role,admin_option from dba_role_privs
where grantee in ( select username from sys.t_user_cfg) ;

---check role----
select role from dba_roles@dblink_migup
minus
select role from dba_roles;

--CHECK SYS PRIVS
select grantee,privilege,admin_option
from dba_sys_privs@dblink_migup
where grantee in (select username from sys.t_user_cfg)
minus
select grantee,privilege,admin_option
from dba_sys_privs
where grantee in (select username from sys.t_user_cfg) ;

--CHECK ROLE PRIVS
select grantee,granted_role,admin_option
from dba_role_privs@dblink_migup
where grantee in (select username from sys.t_user_cfg)
minus
select grantee,granted_role,admin_option
from dba_role_privs
where grantee in (select username from sys.t_user_cfg) ;

----check user object priv-------------
select grantee,owner,table_name,grantor,privilege,grantable from dba_tab_privs@dblink_migup
where grantee in ( select username from sys.t_user_cfg)
minus
select grantee,owner,table_name,grantor,privilege,grantable from dba_tab_privs
where grantee in ( select username from sys.t_user_cfg) ;

-----check quota---------------
select username,max_bytes
from dba_ts_quotas@dblink_migup
where username in (select username from sys.t_user_cfg)
minus
select username,max_bytes
from dba_ts_quotas
where username in (select username from sys.t_user_cfg) ;
--check audit-------------
select user_name,audit_option,success,failure
from dba_stmt_audit_opts@dblink_migup
where user_name in ( select username from sys.t_user_cfg)
minus
select user_name,audit_option,success,failure
from dba_stmt_audit_opts
where user_name in ( select username from sys.t_user_cfg) ;

--check synonym no rows selected
select owner,synonym_name,table_owner,table_name
from dba_synonyms@dblink_migup
where table_owner in ( select username from sys.t_user_cfg)
minus
select owner,synonym_name,table_owner,table_name
from dba_synonyms
where table_owner in ( select username from sys.t_user_cfg) ;

--check db links no rows selected
select owner,db_link,username,host from dba_db_links@dblink_migup
where owner in ( select username from sys.t_user_cfg)
minus
select owner,db_link,username,host from dba_db_links
where owner in ( select username from sys.t_user_cfg) ;

--check db context no rows selected
select namespace,schema,package,type
from dba_context@dblink_migup
where schema in ( select username from sys.t_user_cfg)
minus
select namespace,schema,package,type
from dba_context
where schema in ( select username from sys.t_user_cfg) ;

--CHECK OBJECT COUNT
--select owner,object_type,status,count(*)
-- from dba_objects@dblink_migup
-- where owner in (select username from sys.t_user_cfg)

-- And (owner,object_name) Not In (Select owner,segment_name From dba_lobs@dblink_migup
-- Union All Select owner,index_name From dba_lobs@dblink_migup)
-- group by owner,object_type,status
--minus
--select owner,object_type,status,count(*)
-- from dba_objects
-- where owner in (select username from sys.t_user_cfg)
--- group by owner,object_type,status;


--check objects
--老庫比新庫,結果應為空
select owner,object_name,object_type
from dba_objects@dblink_migup
where owner in (select username from sys.t_user_cfg)
minus
select owner,object_name,object_type
from dba_objects
where owner in (select username from sys.t_user_cfg) ;

--新庫比老庫,結果顯示出來的對象需要鄧玉坤確認是否是新建對象
select * from (
select owner,object_name,object_type
from dba_objects
where owner in (select username from sys.t_user_cfg)
minus
select owner,object_name,object_type
from dba_objects@dblink_migup
where owner in (select username from sys.t_user_cfg) ) t where t.object_name not like 'SYS_IL000%' and t.object_name not like 'AQ$_%';


--check table no rows selected
select owner,table_name,partitioned,iot_type,temporary
from dba_tables@dblink_migup
where owner in ( select username from sys.t_user_cfg)
minus
select owner,table_name,partitioned,iot_type,temporary
from dba_tables
where owner in ( select username from sys.t_user_cfg) ;

--check constraint no rows selected
select owner, constraint_name, constraint_type, table_name, r_owner, status
from dba_constraints@dblink_migup
where owner in (select username from sys.t_user_cfg)

and constraint_name not like 'SYS%' and constraint_name not like 'BIN$%'
minus
select owner, constraint_name, constraint_type, table_name, r_owner, status
from dba_constraints
where owner in (select username from sys.t_user_cfg)

and constraint_name not like 'SYS%' and constraint_name not like 'BIN$%';

------check index---------------------
select index_owner,index_name,table_owner,table_name,column_name,column_position
from dba_ind_columns@dblink_migup
where table_owner in (select username from sys.t_user_cfg)

minus
select index_owner,index_name,table_owner,table_name,column_name,column_position
from dba_ind_columns
where table_owner in (select username from sys.t_user_cfg)
;

--check tab columns no rows selected
select owner,table_name,column_name,data_type,data_length,nullable,column_id from dba_tab_columns@dblink_migup
where owner in (select username from sys.t_user_cfg) and table_name not like 'AQ$%'
and table_name not like 'BIN$%'
minus
select owner,table_name,column_name,data_type,data_length,nullable,column_id from dba_tab_columns
where owner in (select username from sys.t_user_cfg) and table_name not like 'AQ$%'
;

--check comments no rows selected
select owner,table_name,column_name,comments from dba_col_comments@dblink_migup
where owner in (select username from sys.t_user_cfg)
and table_name not like 'BIN$%'
minus
select owner,table_name,column_name,comments from dba_col_comments
where owner in (select username from sys.t_user_cfg)
;

------check profile
select * from dba_profiles@dblink_migup
minus
select * from dba_profiles ;

------check mview
select owner,mview_name,container_name,query_len,rewrite_enabled,refresh_mode,refresh_method from dba_mviews@dblink_migup
where owner in (select username from sys.t_user_cfg)

minus
select owner,mview_name,container_name,query_len,rewrite_enabled,refresh_mode,refresh_method from dba_mviews
where owner in (select username from sys.t_user_cfg)
;

-----check user
select a.username,a.password apwd,b.password bpwd,a.profile apf,b.profile bpf,
a.account_status acs,b.account_status bcs
From
(
select du.username,su.password,du.profile,du.account_status
from dba_users@dblink_migup du,sys.user$ su
where username in (select username from sys.t_user_cfg) and du.username = su.name
) a
,
(
select du.username,su.password,du.profile,du.account_status
from dba_users du,sys.user$ su
where du.username in (select username from sys.t_user_cfg)
and du.username = su.name
) b
Where a.username = b.username And (a.password <> b.password Or a.profile <> b.profile Or a.account_status <> b.account_status);


--------check trigger--
select owner,trigger_name,trigger_type,table_owner,table_name,column_name,status
from dba_triggers@dblink_migup
where owner in (select username from sys.t_user_cfg)

minus
select owner,trigger_name,trigger_type,table_owner,table_name,column_name,status from dba_triggers
where owner in (select username from sys.t_user_cfg)
;

--check table owner trigger no rows selected

select owner,trigger_name,trigger_type,table_owner,table_name,column_name
from dba_triggers@dblink_migup where owner in (select username from sys.t_user_cfg)
minus
select owner,trigger_name,trigger_type,table_owner,table_name,column_name
from dba_triggers where owner in (select username from sys.t_user_cfg);


----------check sequence 結果為空
select ds.sequence_owner,
ds.sequence_name,
ds.min_value,
ds.max_value,
ds.increment_by,
ds.cycle_flag,
ds.order_flag,
ds.cache_size
from dba_sequences@dblink_migup ds
where sequence_owner in (select username from sys.t_user_cfg)
minus
select ds.sequence_owner,
ds.sequence_name,
ds.min_value,
ds.max_value,
ds.increment_by,
ds.cycle_flag,
ds.order_flag,
ds.cache_size
from dba_sequences ds
where sequence_owner in (select username from sys.t_user_cfg);

--比對sequence值,結果應為空,新庫SEQUNCE值比老庫大
select *
from (select sequence_owner,
sequence_name,
lastnum_10,
lastnum_11,
lastnum_11 - lastnum_10 delta_num
from (select ds.sequence_owner sequence_owner,
ds.sequence_name sequence_name,
ds.last_number lastnum_10,
dt.last_number lastnum_11
from dba_sequences dt, dba_sequences@dblink_migup ds
where dt.sequence_owner in
(select username from sys.t_user_cfg)
and dt.sequence_owner = ds.sequence_owner
and dt.sequence_name = ds.sequence_name))
where delta_num < 0;

5.刪除db_link
drdrop public database link dblink_migup;op public database link dblink_migup;

?

?

###################################

3.OGG 安裝

?

上傳不同平臺的goldengate軟件 gg軟件兩個平臺都要安裝
"goldengate臨時裝到data卷上
1.cd /db/{ORACLE_SID}/data
mkdir goldendate
2.unzip goldengate軟件
" 請注意 goldengate 軟件區分os平臺和oracle版本 ,另外對于RAC,goldengate軟件安裝目錄需要設置為共享存儲
"cd
vi .profile
##追加以下內容
GGS_HOME=/db/{ORACLE_SID}/data/goldengate
export GGS_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib:$GGS_HOME:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
PATH=$GGS_HOME:$PATH
export PATH

hp-unix:step:
. ./profile_bcds

" "1、請注意平臺不同,profile文件配置也不同
2、對于RAC,每個節點上的profile都需要配置;"
"1.檢查:
select SUPPLEMENTAL_LOG_DATA_MIN from v$database;
2.如果是未有, 打開supplementary log:
set timing on
alter system checkpoint;
alter system checkpoint;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;" "1.linux 結果如下:
SUPPLEME
--------
YES

2.hp unix 結果如下:
SQL> select SUPPLEMENTAL_LOG_DATA_MIN from v$database;

SUPPLEME
--------
YES

"
"create user ggmgr identified by ggmgr123 default tablespace users temporary tablespace temp;
grant create session,alter session to ggmgr;
grant alter system to ggmgr;
grant resource to ggmgr;
grant connect to ggmgr;
grant select any dictionary to ggmgr;
grant flashback any table to ggmgr;
grant select any table to ggmgr;
grant select any table to ggmgr;
grant insert any table to ggmgr;
grant update any table to ggmgr;
grant delete any table to ggmgr;
grant select on dba_clusters to ggmgr;
grant execute on dbms_flashback to ggmgr;
grant create table to ggmgr;
grant create sequence to ggmgr;
grant alter any table to ggmgr;
grant dba to ggmgr;
grant lock any table to ggmgr;" 1.linux/hp-unix done
"cd $GGS_HOME
mkdir direnv"
./ggsci
"create subdirs
exit"
"cd $GGS_HOME
./ggsci
GGSCI> EDIT PARAMS ./GLOBALS
--輸入如下內容
CHECKPOINTTABLE ggmgr.gg_checkpoint_tab
syslog none" "1.linux/hp-unix done
當使用GG版本11.x時,需要在GG manager參數中配置syslog none,使gg日志不寫入操作系統的syslog。"
"GGSCI> DBLOGIN USERID ggmgr, PASSWORD ggmgr123
GGSCI> ADD CHECKPOINTTABLE ggmgr.gg_checkpoint_tab
GGSCI>exit" 1.linux/hp-unix done
"cd $GGS_HOME/direnv
1.vi db.oby
SETENV (ORACLE_SID = ""bcds"")

2.vi user.oby
userid ggmgr, password ggmgr123
" "1.linux/hp-unix done
ORACLE_SID = ""bcds"" 注意大小寫要和環境變量保持一致"
"cd $GGS_HOME/dirprm
vi mgr.prm
port 7809
dynamicportlist 7809-7819
autostart er *
autorestart er *, retries 24, waitminutes 3, resetminutes 1440
lagreportminutes 10
laginfoseconds 30
LAGCRITICALMINUTES 45
purgeoldextracts ./dirdat/*, usecheckpoints, minkeephours 168
" "
1.linux/hp-unix done
刪除PURGEDDLHISTORY MINKEEPDAYS 7, MAXKEEPDAYS 10 "
"cd $GGS_HOME
./ggsci
start mgr"
info mgr
GGSCI>dblogin userid ggmgr, password ggmgr12

?

?

2.遷移當天設置回滾環境

?創建2條鏈路,鏈路一(step 1)是非CLOB 表,? ?鏈路2 (step 2)是clob 表

準備參數文件 準備e進程、d進程、r進程的參數文件
為ggmgr用戶臨時授權 "grant insert any table to ggmgr;
grant delete any table to ggmgr;
grant update any table to ggmgr;
"
設置參數 alter system set ENABLE_GOLDENGATE_REPLICATION=true scope=both;
創建gg_send表 "CREATE TABLE ggmgr.GG_SEND(
TESTER VARCHAR2(30) NOT NULL,
SOURCE_DATABASE VARCHAR2(10) NOT NULL,
TARGET_DATABASE VARCHAR2(10) NOT NULL,
TEST_TIME DATE DEFAULT SYSDATE,
Constraint PK_GG_SEND primary KEY (TESTER, SOURCE_DATABASE, TARGET_DATABASE, TEST_TIME) );

COMMENT ON COLUMN ggmgr.GG_SEND.TESTER IS '測試人員UM賬號';
COMMENT ON COLUMN ggmgr.GG_SEND.SOURCE_DATABASE IS '源數據庫SID';
COMMENT ON COLUMN ggmgr.GG_SEND.TARGET_DATABASE IS '目標數據庫SID';
COMMENT ON COLUMN ggmgr.GG_SEND.TEST_TIME IS '測試時間';
COMMENT ON TABLE ggmgr.GG_SEND is 'GoldenGate接收端連通性測試表';

?

2. step 2 table 2:
CREATE TABLE ggmgr.GG_SEND_2(
TESTER VARCHAR2(30) NOT NULL,
SOURCE_DATABASE VARCHAR2(10) NOT NULL,
TARGET_DATABASE VARCHAR2(10) NOT NULL,
TEST_TIME DATE DEFAULT SYSDATE,
Constraint PK_GG_SEND_2 primary KEY (TESTER, SOURCE_DATABASE, TARGET_DATABASE, TEST_TIME) );

COMMENT ON COLUMN ggmgr.GG_SEND_2.TESTER IS '測試人員UM賬號';
COMMENT ON COLUMN ggmgr.GG_SEND_2.SOURCE_DATABASE IS '源數據庫SID';
COMMENT ON COLUMN ggmgr.GG_SEND_2.TARGET_DATABASE IS '目標數據庫SID';
COMMENT ON COLUMN ggmgr.GG_SEND_2.TEST_TIME IS '測試時間';
COMMENT ON TABLE ggmgr.GG_SEND_2 is 'GoldenGate接收端連通性測試表';


"
添加trandata "cd $GGS_HOME
./ggsci
dblogin userid ggmgr password ggmgr123
delete trandata BBSP.*
delete trandata BBSPODS.*
delete trandata BCDPETL.*

add trandata BBSP.*
add trandata BBSPODS.*
add trandata BCDPETL.*
"

--WARNING OGG-00869? All viable columns will be used to represent the key, but may not guarantee uniqueness.? KEYCOLS may be used to define the key.? 這個報錯可以忽略

?

?


對超過32列無主鍵的表添加trandata "
執行/tmp/dba/add_trandata_long32.sql
--報錯WARNING OGG-01387需要執行"

?

1.部署pkg(排除了clob表)
2.執行查詢
SET termout OFF feedback OFF verify OFF echo OFF heading OFF trims ON escape ON pages 0 linesize 999 long 3000

spool?/tmp/dba/add_trandata_long32.sql
select trim(sql_add_supp) from TABLE(
select cast(gg_supplemental_32.sql_supplemental_32('AFA')
as gg_supplemental_32_table_type )
from dual
);
select trim(sql_add_supp) from TABLE(
select cast(gg_supplemental_32.sql_supplemental_32('AUTEK')
as gg_supplemental_32_table_type )
from dual
);

?


檢查trandata是否添加成功 "執行下面sql,返回空為成功。( --如果不為 空 ,add trandata BBSPODS.*? ,會報錯error no data found retrieving導致漏掉一些表,所以需要手工add trandata BBSPODS.table_name)?
select 'add trandata '||owner||'.'|| table_name from dba_tables where owner in ('BBSP',' BBSPODS','BCDPETL') and table_name not in (select distinct table_name from dba_log_group_columns where owner in ('BBSP',' BBSPODS','BCDPETL'));

--排除掉一些臨時備份表或者CLOB表或者名稱為小寫表,剩余的表就需要手工add???trandata BBSPODS.table_name
--clob 表會自動創建唯一索引的

--add trandata BBSPODS.*? 會漏掉一些表,所以需要手工add trandata BBSPODS.table_name
--同時在GGSCI 重新運行返回的結果SQL,

?

"
上傳參數文件 "cd $GGS_HOME/dirprm

cd $GGS_HOME/dirprm
step 1:
將e_rollbk.prm,d_rollbk.prm上傳到此目錄下
step 2:
將e_rollbk_2.prm,d_rollbk_2.prm上傳到此目錄下
chown -R opDB:dba /crdb/DB/data/goldengate/dirprm

?

chown -R opbcds:dba /ogg/bcds/dirprm

"
創建GG進程 "cd $GGS_HOME? (注意? OGG 的進程名總數不能超過8個 )
./ggsci

cd $GGS_HOME
./ggsci
dblogin userid ggmgr password ggmgr123

step 1:
add extract e_rollbk, tranlog, begin now
add exttrail ./dirdat/e1, extract e_rollbk, megabytes 50

add extract d_rollbk, exttrailsource ./dirdat/e1, params dirprm/d_rollbk.prm
add rmttrail ./dirdat/dr, extract d_rollbk, megabytes 50

step 2:
add extract e_roll_2, tranlog, begin now
add exttrail ./dirdat/e2, extract e_roll_2, megabytes 50

add extract d_roll_2, exttrailsource ./dirdat/e2, params dirprm/d_roll_2.prm
add rmttrail ./dirdat/d2, extract d_roll_2, megabytes 50

?

"
修改回滾鏈路r進程參數文件 "cd $GGS_HOME/dirprm

cd $GGS_HOME/dirprm
step 1:
上傳r_rollbk.prm
step 2:
上傳r_rollbk_2.prm

chown -R opUSER:dba /crdb/DB/oradata/goldengate/dirprm


chown -R opbcds:dba /oggfs/ogg/dirprm "
創建GG進程 "cd $GGS_HOME
./ggsci
dblogin userid ggmgr password ggmgr123

step 1:
add replicat r_rollbk, exttrail ./dirdat/dr, params dirprm/r_rollbk.prm , CHECKPOINTTABLE ggmgr.gg_checkpoint_tab

step 2:
add replicat r_roll_2, exttrail ./dirdat/d2, params dirprm/r_roll_2.prm , CHECKPOINTTABLE ggmgr.gg_checkpoint_tab

?


"
創建目標端連通性測試表

step 1:
CREATE TABLE ggmgr.GG_RECEIVE_R_ROLLBK(
TESTER VARCHAR2(30) NOT NULL,
SOURCE_DATABASE VARCHAR2(10) NOT NULL,
TARGET_DATABASE VARCHAR2(10) NOT NULL,
TEST_TIME DATE DEFAULT SYSDATE,
Constraint PK_GG_RECEIVE_R_ROLLBK primary KEY (TESTER, SOURCE_DATABASE, TARGET_DATABASE, TEST_TIME) );

COMMENT ON COLUMN ggmgr.GG_RECEIVE_R_ROLLBK.TESTER IS '測試人員UM賬號';
COMMENT ON COLUMN ggmgr.GG_RECEIVE_R_ROLLBK.SOURCE_DATABASE IS '源數據庫SID';
COMMENT ON COLUMN ggmgr.GG_RECEIVE_R_ROLLBK.TARGET_DATABASE IS '目標數據庫SID';
COMMENT ON COLUMN ggmgr.GG_RECEIVE_R_ROLLBK.TEST_TIME IS '測試時間';
COMMENT ON TABLE ggmgr.GG_RECEIVE_R_ROLLBK is 'GoldenGate接收端連通性測試表';

step 2:
CREATE TABLE ggmgr.GG_RECEIVE_R_ROLLBK_2(
TESTER VARCHAR2(30) NOT NULL,
SOURCE_DATABASE VARCHAR2(10) NOT NULL,
TARGET_DATABASE VARCHAR2(10) NOT NULL,
TEST_TIME DATE DEFAULT SYSDATE,
Constraint PK_GG_RECEIVE_R_ROLLBK_2 primary KEY (TESTER, SOURCE_DATABASE, TARGET_DATABASE, TEST_TIME) );

COMMENT ON COLUMN ggmgr.GG_RECEIVE_R_ROLLBK_2.TESTER IS '測試人員UM賬號';
COMMENT ON COLUMN ggmgr.GG_RECEIVE_R_ROLLBK_2.SOURCE_DATABASE IS '源數據庫SID';
COMMENT ON COLUMN ggmgr.GG_RECEIVE_R_ROLLBK_2.TARGET_DATABASE IS '目標數據庫SID';
COMMENT ON COLUMN ggmgr.GG_RECEIVE_R_ROLLBK_2.TEST_TIME IS '測試時間';
COMMENT ON TABLE ggmgr.GG_RECEIVE_R_ROLLBK_2 is 'GoldenGate接收端連通性測試表';

?

';

"
禁用級聯刪除和觸發器 "SELECT 'alter table '||owner||'.'||table_name||' disable constraint '||constraint_name||';'
FROM dba_constraints
WHERE owner in ('BBSP',' BBSPODS','BCDPETL')
AND constraint_type = 'R'
ORDER BY constraint_type desc, owner, table_name, constraint_name;

select 'alter trigger '||owner||'.'||trigger_name||' disable ;'
from all_triggers
where owner in ('BBSP',' BBSPODS','BCDPETL')
order by owner,trigger_name;

復核:
select owner,table_name,constraint_name,status from dba_constraints where owner in ('BBSP',' BBSPODS','BCDPETL') and constraint_type = 'R' and status <> 'DISABLED'; --無結果產出

select owner,trigger_name,table_owner,table_name,status from dba_triggers where owner in ('BBSP',' BBSPODS','BCDPETL') and status <> 'DISABLED'; --無結果產出
"
啟動extract和dump進程?

step 1:
start e_rollbk
start d_rollbk
step 2:
start e_roll_2
start d_roll_2
info all
<進程都是RUNNING狀態>

?

啟動同步到unix的回滾R進程

cd $GGS_HOME

./ggsci
step 1:
start r_rollbk

step 2:
start r_roll_2

?


插入測試信息 "sqlplus '/as sysdba'

step 1
sqlplus '/as sysdba'
insert into ggmgr.GG_SEND values('測試','source_sid','target_sid',SYSDATE);
commit;

step 2:
insert into ggmgr.GG_SEND_2 values('測試','source_sid','target_sid',SYSDATE);
commit;


檢測測試信息是否同步過來 "sqlplus '/as sysdba'

step 1:
sqlplus '/as sysdba'
select * from ggmgr.GG_RECEIVE_R_ROLLBK ;

step 2:
sqlplus '/as sysdba'
select * from ggmgr.GG_RECEIVE_R_ROLLBK_2 ;


for clob table:
select count(*) from f_cus_reprintinfo;


for no-clob table:

select count(*) from t_ibps_paymentbook

"

?

3.3 OGG PKG

?

查看32列以上 沒有主鍵 的非clob表? ?(排除了clob表,如果有 clob 表,那么可能需要另外單獨為clob表 單獨創建一個鏈路,解釋2? CLOB 表會自動 創建一個唯一性的索引。可以正常使用ogg 同步,所以下面pkg 不檢測clob 表) :

1.部署pkg
2.執行查詢
SET termout OFF feedback OFF verify OFF echo OFF heading OFF trims ON escape ON pages 0 linesize 999 long 3000
select trim(sql_add_supp) from TABLE(
select cast(gg_supplemental_32.sql_supplemental_32('BBSP')
as gg_supplemental_32_table_type )
from dual
);

?

?

Pkg info:

create or replace type gg_supplemental_32_row_type as object
(
owner varchar2(32),
table_name varchar2(32),
seq# number,
sql_add_supp varchar2(2048)
);
/
create or replace type gg_supplemental_32_table_type as table of gg_supplemental_32_row_type;
/
create or replace package gg_supplemental_32 AUTHID CURRENT_USER is
function sql_supplemental_32(i_owner varchar2)
return gg_supplemental_32_table_type;
end gg_supplemental_32;
/

create or replace package body gg_supplemental_32 as
function sql_supplemental_32(i_owner varchar2)
return gg_supplemental_32_table_type as
z_data gg_supplemental_32_table_type := gg_supplemental_32_table_type();
n number;
cursor c is
select dt.owner || '.' || dt.table_name obj,
dt.column_name,
dt.table_name,
dt.owner,
Row_Number() over(partition by dt.owner || '.' || dt.table_name order by dt.column_name) rn,
do.object_id
from dba_tab_columns dt, dba_objects do
where dt.owner = i_owner
and dt.data_type not in
('CLOB', 'BLOB', 'NCLOB', 'LONG', 'LONG RAW', 'ANYDATA',
'ALERT_TYPE', 'XMLTYPE', 'WM_PERIOD', 'SQL_PLAN_TABLE_TYPE',
'BFILE')
and dt.data_type not like '%$%'
and dt.owner = do.owner
and dt.table_name = do.object_name

and do.OBJECT_TYPE='TABLE'
and dt.table_name in
(SELECT distinct (table_name) obj
FROM dba_tab_columns
WHERE owner = i_owner
AND column_id > 32
AND table_name in
(SELECT table_name
FROM dba_tables
WHERE owner = i_owner
MINUS (SELECT obj1.name
FROM SYS.user$ user1,
SYS.user$ user2,
SYS.cdef$ cdef,
SYS.con$ con1,
SYS.con$ con2,
SYS.obj$ obj1,
SYS.obj$ obj2
WHERE user1.name = i_owner
AND cdef.type# = 2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
AND con2.owner# = user2.user#(+)
AND cdef.robj# = obj2.obj#(+)
AND cdef.rcon# = con2.con#(+)
AND obj1.owner# = user1.user#
AND cdef.con# = con1.con#
AND cdef.obj# = obj1.obj#
UNION
SELECT idx.table_name
FROM dba_indexes idx
WHERE idx.owner = i_owner
AND idx.uniqueness = 'UNIQUE')));
obj_prev varchar2(200);
obj_flag number;
sql_add_supp varchar2(4000);
sql_post varchar2(2000);
n_g number;
pre_n_g number;
z_owner varchar2(32);
z_table_name varchar2(32);
begin
sql_post := ') always;';
obj_flag := 0;
for x in c loop
n_g := trunc((x.rn - 1) / 32) + 1;
n := mod(x.rn, 32);
z_owner := x.owner;
z_table_name := x.table_name;

if obj_prev is null then
sql_add_supp := 'ALTER TABLE ' || x.obj ||
' ADD SUPPLEMENTAL LOG GROUP GGS_' ||
substr(x.table_name, 1, 16) || '_' || x.object_id || '_' || n_g || '(' ||
x.column_name;
obj_prev := x.obj;
pre_n_g := n_g;
elsif (obj_prev = x.obj) then
if (n_g <> pre_n_g) then
-- print out sql statement
sql_add_supp := sql_add_supp || sql_post;
z_data.extend;
z_data(z_data.count) := gg_supplemental_32_row_type(z_owner,
z_table_name,
n_g,
sql_add_supp);
-- reset
pre_n_g := n_g;
sql_add_supp := 'ALTER TABLE ' || x.obj ||
' ADD SUPPLEMENTAL LOG GROUP GGS_' ||
substr(x.table_name, 1, 16) || '_' || x.object_id || '_' || n_g || '(' ||
x.column_name;
else
sql_add_supp := sql_add_supp || ' ,' || x.column_name;
end if;
else
-- print out sql statement
sql_add_supp := sql_add_supp || sql_post;
z_data.extend;
z_data(z_data.count) := gg_supplemental_32_row_type(z_owner,
z_table_name,
n_g,
sql_add_supp);
-- reset
pre_n_g := n_g;
obj_prev := x.obj;
sql_add_supp := 'ALTER TABLE ' || x.obj ||
' ADD SUPPLEMENTAL LOG GROUP GGS_' ||
substr(x.table_name, 1, 16) || '_' || x.object_id || '_' || n_g || '(' ||
x.column_name;
end if;
end loop;
-- print last sql if exist --
sql_add_supp := sql_add_supp || sql_post;
z_data.extend;
z_data(z_data.count) := gg_supplemental_32_row_type(z_owner,
z_table_name,
n_g,
sql_add_supp);

return z_data;
end sql_supplemental_32;
end;
/

?

?

###解釋說明:

?

解釋1?非clob 表帶有唯一主鍵的表。

SELECT obj1.name
FROM SYS.user$ user1,
SYS.user$ user2,
SYS.cdef$ cdef,
SYS.con$ con1,
SYS.con$ con2,
SYS.obj$ obj1,
SYS.obj$ obj2
WHERE user1.name = i_owner
AND cdef.type# = 2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
AND con2.owner# = user2.user#(+)
AND cdef.robj# = obj2.obj#(+)
AND cdef.rcon# = con2.con#(+)
AND obj1.owner# = user1.user#
AND cdef.con# = con1.con#
AND cdef.obj# = obj1.obj#

?

###以下是查? clob 表和非clob 表都帶有唯一主鍵的表

SELECT idx.table_name
FROM dba_indexes idx
WHERE idx.owner = i_owner
AND idx.uniqueness = 'UNIQUE'

解釋2? CLOB 表會自動 創建一個唯一性的索引。所以OGG

You are not allowed to operate directly on system-defined LOB index.

Whenever you create a LOB column the database automatically creates two segments (LOB Data Segment, LOB index Segment).? You cannot drop/alter any of these segments separately, the only way to do so is to drop the LOB column itself and consequently the two associated segments will be dropped.

TEST CASE
=========
SQL> create user user1 identified by user1;

User created.

SQL> grant dba to user1;

Grant succeeded.

SQL> connect user1/user1
Connected.
SQL> create table LOB_TAB(id number, name CLOB);

Table created.

SQL> insert into LOB_TAB values (1,'Ahmed');

1 row created.

SQL> commit;

Commit complete.

SQL> select index_name, index_type from dba_indexes where table_name like?
'LOB_TAB' and owner like 'USER1';

INDEX_NAME INDEX_TYPE
------------------------------ ---------------------------
SYS_IL0000051347C00002$$ LOB

SQL> drop index SYS_IL0000051347C00002$$;
drop index SYS_IL0000051347C00002$$
*
ERROR at line 1:
ORA-22864: cannot ALTER or DROP LOB indexes


SQL> alter table LOB_TAB drop column name;

Table altered.

SQL>


You can use the DBA_LOBS view to query for all the LOB objects related to a?
certain user and then drop their columns one by one:

SQL> col table_name format a20
SQL> col column_name format a20
SQL> select table_name, column_name from dba_lobs where owner like 'USER1';

TABLE_NAME COLUMN_NAME
-------------------- --------------------
LOB_TAB NAME

Note:? If you want to move them, see Note 130814.1 - How to move LOB Data to Another Tablespace ###解釋 3 target? : --db.oby

SETENV (ORACLE_SID = "USER")

?

--mgr.prm

port 7809
dynamicportlist 7809-7819
autostart er *
autorestart er *, retries 24, waitminutes 3, resetminutes 1440
lagreportminutes 10
laginfoseconds 30
LAGCRITICALMINUTES 45
purgeoldextracts ./dirdat/*, usecheckpoints, minkeephours 168

?

---r_roll_2.prm

REPLICAT r_roll_2
obey ./direnv/db.oby
--If the NLS_CHARACTERSET of the Target DB is not the same as the Source DB, db_esb_lang.oby must be set in this file
SETENV (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")
obey ./direnv/user.oby

ASSUMETARGETDEFS

-- control how often Extract and Replicat make their routine checkpoints
CHECKPOINTSECS 30

-- control the number of SQL operations that are contained in a Replicat transaction when
GROUPTRANSOPS 20000

-- Sets a global response to all errors except those for which explicit,
-- Roll back the transaction and terminate processing abnormally
REPERROR DEFAULT, ABEND

-- generate a discard file to which GoldenGate can log records that it cannot process,
-- Adds new content to existing content if the file already exists
DISCARDFILE ./dirrpt/r_rollbk_2.dsc, append, MEGABYTES 2000

-- set a schedule for aging discard files
DISCARDROLLOVER AT 05:30 ON friday

-- report a count of transaction records that Extract or Replicat processed since startup
REPORTCOUNT EVERY 10000 RECORDS, RATE

-- alter the rules for processing wildcarded table specifications in a TABLE, SEQUENCE, or MAP statement
WILDCARDRESOLVE DYNAMIC

-- control whether or not duplicate MAP statements for the same source and target objects are accepted in a parameter file
ALLOWDUPTARGETMAP


map ggmgr.gg_send_2 , target ggmgr.gg_receive_r_rollbk_2, &
colmap (
tester = tester ,
source_database = source_database ,
target_database = target_database ,
test_time = test_time
);

MAP USER.*, TARGET USER.*;
MAP AUTEK.*, TARGET AUTEK.*;

?

--r_rollbk.prm

REPLICAT r_rollbk
obey ./direnv/db.oby
--If the NLS_CHARACTERSET of the Target DB is not the same as the Source DB, db_esb_lang.oby must be set in this file
SETENV (NLS_LANG="AMERICAN_AMERICA.ZHS16GBK")
obey ./direnv/user.oby

ASSUMETARGETDEFS

-- control how often Extract and Replicat make their routine checkpoints
CHECKPOINTSECS 30

-- control the number of SQL operations that are contained in a Replicat transaction when
GROUPTRANSOPS 20000

-- Sets a global response to all errors except those for which explicit,
-- Roll back the transaction and terminate processing abnormally
REPERROR DEFAULT, ABEND

-- generate a discard file to which GoldenGate can log records that it cannot process,
-- Adds new content to existing content if the file already exists
DISCARDFILE ./dirrpt/r_rollbk.dsc, append, MEGABYTES 2000

-- set a schedule for aging discard files
DISCARDROLLOVER AT 05:30 ON friday

-- report a count of transaction records that Extract or Replicat processed since startup
REPORTCOUNT EVERY 10000 RECORDS, RATE

-- alter the rules for processing wildcarded table specifications in a TABLE, SEQUENCE, or MAP statement
WILDCARDRESOLVE DYNAMIC

-- control whether or not duplicate MAP statements for the same source and target objects are accepted in a parameter file
ALLOWDUPTARGETMAP


map ggmgr.gg_send , target ggmgr.gg_receive_r_rollbk, &
colmap (
tester = tester ,
source_database = source_database ,
target_database = target_database ,
test_time = test_time
);

MAP USER.*, TARGET USER.*;
MAP AUTEK.*, TARGET AUTEK.*;

?

---user.oby

userid ggmgr, password ggmgr123

?

?

source :

---d_roll_2.prm

--------------------------------------------------------------------------------------
-- This prm file is used to set the todatapump parameters
-- You need to replace all the '<>'
-- Please input the parameter into GoldenGate management system before you replace it
-- Please refer 'gg_wux_ref_v104.pdf' for the parameters's detail means
--------------------------------------------------------------------------------------
EXTRACT d_roll_2
obey ./direnv/db.oby
obey ./direnv/user.oby
RMTHOST 10.198.67.14, MGRPORT 7809

-- Specifies a trail to which extracted data is written on a remote system
RMTTRAIL ./dirdat/d2

--list the tables
TABLE ggmgr.gg_send_2;

table USER.E_CUS_REPRINTINFO;

?

--d_rollbk.prm

--------------------------------------------------------------------------------------
-- This prm file is used to set the todatapump parameters
-- You need to replace all the '<>'
-- Please input the parameter into GoldenGate management system before you replace it
-- Please refer 'gg_wux_ref_v104.pdf' for the parameters's detail means
--------------------------------------------------------------------------------------
EXTRACT d_rollbk
obey ./direnv/db.oby
obey ./direnv/user.oby
RMTHOST 10.198.67.14, MGRPORT 7809

-- Specifies a trail to which extracted data is written on a remote system
RMTTRAIL ./dirdat/dr

--list the tables
TABLE ggmgr.gg_send;

TABLE USER.*;
TABLE AUTEK.*;

?

--db.oby

SETENV (ORACLE_SID = "USER")


--e_roll_2.prm

--------------------------------------------------------------------------------------
-- This prm file is used to set the extract parameters
-- You need to replace all the '<>'
-- Please input the parameter into GoldenGate management system before you replace it
-- Please refer 'gg_wux_ref_v104.pdf' for the parameters's means
--------------------------------------------------------------------------------------
EXTRACT e_roll_2
obey ./direnv/db.oby
obey ./direnv/user.oby
--These two parameter must be added in OGG 11.1.1.1 (è?? to elusion a bug. Do not add them in OGG 11.1.1 (}??,for they are
--not recognised before the version of OGG 11.1.1.X.
TRANLOGOPTIONS _NOREADAHEAD ANY
TRANLOGOPTIONS LOGRETENTION DISABLED
TRANLOGOPTIONS DBLOGREADER

--GoldenGate manager will monitor the long transections which is running upper than 4 hours, interval 30min
WARNLONGTRANS 4h, CHECKINTERVAL 30m

-- Specifies a trail to which extracted data is written on the local system
EXTTRAIL ./dirdat/e2

--list the tables
TABLE ggmgr.gg_send_2;


table USER.E_CUS_REPRINTINFO;


?

--d_rollbk.prm

--------------------------------------------------------------------------------------
-- This prm file is used to set the todatapump parameters
-- You need to replace all the '<>'
-- Please input the parameter into GoldenGate management system before you replace it
-- Please refer 'gg_wux_ref_v104.pdf' for the parameters's detail means
--------------------------------------------------------------------------------------
EXTRACT d_rollbk
obey ./direnv/db.oby
obey ./direnv/user.oby
RMTHOST 10.198.67.14, MGRPORT 7809

-- Specifies a trail to which extracted data is written on a remote system
RMTTRAIL ./dirdat/dr

--list the tables
TABLE ggmgr.gg_send;

TABLE USER.*;
TABLE AUTEK.*;

?

?

---e_rollbk.prm

--------------------------------------------------------------------------------------
-- This prm file is used to set the extract parameters
-- You need to replace all the '<>'
-- Please input the parameter into GoldenGate management system before you replace it
-- Please refer 'gg_wux_ref_v104.pdf' for the parameters's means
--------------------------------------------------------------------------------------
EXTRACT e_rollbk
obey ./direnv/db.oby
obey ./direnv/user.oby
--These two parameter must be added in OGG 11.1.1.1 (è?? to elusion a bug. Do not add them in OGG 11.1.1 (}??,for they are
--not recognised before the version of OGG 11.1.1.X.
TRANLOGOPTIONS _NOREADAHEAD ANY
TRANLOGOPTIONS LOGRETENTION DISABLED
TRANLOGOPTIONS DBLOGREADER

--GoldenGate manager will monitor the long transections which is running upper than 4 hours, interval 30min
WARNLONGTRANS 4h, CHECKINTERVAL 30m

-- Specifies a trail to which extracted data is written on the local system
EXTTRAIL ./dirdat/e1

--list the tables
TABLE ggmgr.gg_send;

TABLE USER.* ;
TABLE AUTEK.* ;


tableexclude USER.E_CUS_REPRINTINFO;

?

--mgr.prm

port 7809
dynamicportlist 7809-7819
autostart er *
autorestart er *, retries 24, waitminutes 3, resetminutes 1440
lagreportminutes 10
laginfoseconds 30
LAGCRITICALMINUTES 45
purgeoldextracts ./dirdat/*, usecheckpoints, minkeephours 168

?

--user.oby

userid ggmgr, password ggmgr123

?

?

?

?

轉載于:https://www.cnblogs.com/feiyun8616/p/9286456.html

總結

以上是生活随笔為你收集整理的数据库迁移expdp impdp 与 OGg 搭建的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产精品久久久久久模特 | 91九色国产视频 | 日本精品在线看 | 久久激情综合 | 久久久久久网址 | 一区二区丝袜 | 亚洲综合在线一区二区三区 | 国产在线观看高清视频 | 久久精品中文视频 | 天天综合网天天综合色 | 国产精品入口66mio女同 | 亚洲午夜精品久久久久久久久久久久 | 国产伦理久久精品久久久久_ | 国产电影黄色av | 欧美91成人网| 99国产成+人+综合+亚洲 欧美 | 国产老太婆免费交性大片 | a在线免费观看视频 | 五月激情丁香婷婷 | 久久视频国产精品免费视频在线 | 日韩久久电影 | 日本精品中文字幕在线观看 | 蜜臀91丨九色丨蝌蚪老版 | av免费在线网 | 免费国产黄线在线观看视频 | 久久国产片 | 亚洲精品午夜久久久久久久 | 久久精品综合网 | 国产精品一区二区麻豆 | 中文字幕在线播放日韩 | 久久久久精 | 91在线精品秘密一区二区 | 一区二区视频在线看 | 国产流白浆高潮在线观看 | 精品毛片久久久久久 | 国产精品一区二区麻豆 | 激情网站免费观看 | av在线播放一区二区三区 | 四虎成人精品 | 又色又爽又黄高潮的免费视频 | 玖玖爱国产在线 | 日本成人黄色片 | 日本中文字幕在线 | 国产精品白虎 | 伊人国产女 | 免费av电影网站 | 国产精品国产毛片 | 五月婷婷电影网 | 在线观看国产福利片 | 亚洲成熟女人毛片在线 | 亚洲专区在线视频 | 最近中文字幕高清字幕在线视频 | 黄色a级片在线观看 | 美女福利视频 | 精品嫩模福利一区二区蜜臀 | 99视频在线观看视频 | 日日夜夜狠狠干 | 99久久综合精品五月天 | www日日 | 在线欧美日韩 | 婷婷网五月天 | 国产午夜三级一区二区三桃花影视 | 国产一区二区在线免费观看 | 色国产视频 | 日韩美在线观看 | 久久丁香 | 在线免费观看国产黄色 | www视频免费在线观看 | 国产精品视频一二三 | 国内精品久久久久久久 | 就要色综合 | 久久精品久久久久电影 | 久久久久成人精品免费播放动漫 | 日韩av视屏在线观看 | 亚洲精品视频在线观看网站 | 国产在线更新 | 青青草国产在线 | 9在线观看免费 | 国产精品完整版 | 一级a性色生活片久久毛片波多野 | 国产精品高潮呻吟久久久久 | 69国产盗摄一区二区三区五区 | 国内精品久久久久久久影视麻豆 | www.伊人色.com| 亚洲精品久久久久www | 日本中文字幕一二区观 | 中文字幕av在线免费 | 成人av免费在线播放 | av福利超碰网站 | 在线观看国产www | av看片在线观看 | 欧美精品久久天天躁 | 国产美女视频一区 | 日本丰满少妇免费一区 | 国产专区第一页 | 免费看日韩 | 日韩精品一区二区在线视频 | 欧美一区二区三区四区夜夜大片 | 久久免费看a级毛毛片 | 99免在线观看免费视频高清 | 99精品视频免费观看 | 午夜精品视频免费在线观看 | 五月天综合在线 | 超碰电影在线观看 | 久久久国产在线视频 | 久久婷婷综合激情 | 在线看成人 | 国产亚洲情侣一区二区无 | 在线观看aa| 91视频首页| 婷婷激情五月综合 | 欧美日韩破处 | 97超碰人| 欧美日韩综合在线观看 | 日日夜夜精品视频天天综合网 | 国产一及片 | 日韩在线观看第一页 | 97超碰影视| 青春草视频在线播放 | 久久经典视频 | 免费观看丰满少妇做爰 | 91成人在线网站 | 日韩高清片 | 国产精品18久久久久vr手机版特色 | 91精品区 | 中文字幕资源网在线观看 | 在线观看亚洲精品 | 九九电影在线 | 免费麻豆网站 | 国产h在线播放 | 日韩激情影院 | 99麻豆久久久国产精品免费 | 亚洲国产精品va在线看黑人动漫 | 麻豆视频在线免费看 | 日韩草比 | 国内精品久久久久久久久久久久 | 日韩91在线 | 麻豆久久精品 | 国产传媒中文字幕 | 一级免费av | 丁香婷婷深情五月亚洲 | 在线之家免费在线观看电影 | 欧日韩在线视频 | 狠狠狠狠干 | 久久久久久久影视 | 国产亚洲成人网 | 91亚洲狠狠婷婷综合久久久 | 69av久久| 久久婷婷五月综合色丁香 | 日本黄色片一区二区 | 九九综合久久 | 一级黄色片在线免费观看 | 激情网在线视频 | 精品一区二区综合 | 亚洲精品国产精品乱码在线观看 | 国产精品av电影 | 日韩在线影视 | 99r在线视频 | 欧美韩国在线 | 亚洲欧美视频在线观看 | 国产老熟 | 日韩女同一区二区三区在线观看 | 国产精品久久久久久久久久久不卡 | 黄色国产区 | 色哟哟国产精品 | 日韩亚洲国产中文字幕 | 国产成人一区二区三区免费看 | 九九久久成人 | 亚洲 欧美 日韩 综合 | v片在线播放 | 日本一区二区高清不卡 | 99精品欧美一区二区蜜桃免费 | 国产成人免费观看久久久 | 日本爱爱免费 | 天天操天天干天天综合网 | 狠狠色丁香婷婷综合久小说久 | 国产97在线播放 | 天天干视频在线 | av手机版 | 一区二三国产 | 日本在线精品视频 | 久久涩视频| 亚洲乱码国产乱码精品天美传媒 | 国产糖心vlog在线观看 | 久久久久久久久久久久国产精品 | 久久久首页 | av三级在线免费观看 | 最新国产视频 | www.玖玖玖 | 久久久wwww| 日日爱av | 国产福利一区二区三区视频 | 免费a视频在线 | 亚洲国产精品500在线观看 | 999在线观看视频 | 中文字幕电影网 | av一区二区在线观看中文字幕 | 国产一区二区电影在线观看 | 黄色成人在线 | 日韩av区| 国产一级黄色片免费看 | 久久夜色精品国产欧美乱极品 | 免费在线观看污网站 | 亚洲在线精品 | 中文字幕久久精品一区 | 91在线视频精品 | 69亚洲视频| 久人人| 免费观看一级一片 | 天天综合久久 | 久久爱综合 | 欧美日韩二三区 | 国产欧美综合视频 | 精品国产一区二区三区av性色 | 99视频+国产日韩欧美 | 97超碰在线久草超碰在线观看 | 亚洲综合在线视频 | 日本电影久久 | 免费a级毛片在线看 | 一区二区三区免费在线观看视频 | 国产欧美精品一区二区三区 | 99精品国产99久久久久久福利 | 国产精品亚洲片夜色在线 | 久久黄色a级片 | 免费观看成人 | 色综合咪咪久久网 | 亚洲激情校园春色 | 日韩一区二区免费视频 | 成人免费精品 | 在线播放 日韩专区 | 啪啪资源 | 久久精品中文字幕少妇 | 久久久久免费网站 | 欧美国产亚洲精品久久久8v | 国产精品资源网 | 中文字幕在线中文 | 欧美日韩在线播放 | 99久热在线精品视频观看 | 免费看一级一片 | 久久久久久久久亚洲精品 | 香蕉免费| 91九色视频观看 | 久久免费国产视频 | 日韩免费观看av | 中文字幕在线观看第三页 | 天天干天天射天天爽 | 五月的婷婷 | 国产精品成人aaaaa网站 | 国产成人精品国内自产拍免费看 | 99在线观看免费视频精品观看 | 水蜜桃亚洲一二三四在线 | 在线观看黄色大片 | 国产精品视频资源 | 精品免费99久久 | 亚洲久草在线视频 | 婷婷五综合 | 色片网站在线观看 | 欧美日韩午夜在线 | 欧美精品免费一区二区 | 成人在线播放免费观看 | 在线观看韩国av | 超碰97免费 | 亚洲精品免费看 | 国产视频日韩视频欧美视频 | 国产精品久久视频 | 探花视频免费在线观看 | 男女视频久久久 | 97理论电影| 爱色av.com | 亚洲欧洲国产视频 | 精品影院一区二区久久久 | 欧美视频日韩视频 | 黄色91免费观看 | 国产黄色特级片 | 亚洲精品乱码久久久久久蜜桃欧美 | 成年人黄色免费视频 | 99精品国产在热久久下载 | 99成人免费视频 | 中文字幕 影院 | 亚洲丁香日韩 | 日韩视频中文 | www久久久| 久久精品综合视频 | 欧洲色吧 | 九九热只有这里有精品 | 五月激情综合婷婷 | 伊人五月在线 | 欧美日韩精品二区第二页 | av性网站 | 二区在线播放 | 激情久久久久久久久久久久久久久久 | 天天天色 | 免费成人黄色av | 亚洲视频在线看 | 久久久91精品国产 | 国产一二区视频 | 黄色福利视频网站 | 欧美精品久久久久性色 | 成人免费观看网址 | 亚洲欧美一区二区三区孕妇写真 | 激情丁香综合五月 | 午夜在线观看一区 | 日韩精品网址 | 国产亚洲aⅴaaaaaa毛片 | 久久久精品国产免费观看一区二区 | 精品电影一区 | 日本精品一 | 91最新视频| 久久国产精品久久精品国产演员表 | 999久久久免费视频 午夜国产在线观看 | 国产精品精 | 久久99在线观看 | 天天操天天弄 | 国产成人免费在线 | 欧美极品少妇xbxb性爽爽视频 | 综合色中色| 免费看毛片网站 | 超碰国产在线播放 | 超碰国产在线 | 日韩网站免费观看 | .国产精品成人自产拍在线观看6 | 久久久久久国产精品 | 狠狠色丁香婷婷综合欧美 | 精品久久网站 | 久草资源免费 | 日韩性片 | 婷婷5月色 | 成年人视频在线观看免费 | 国产日韩在线视频 | 久久天| 18岁免费看片 | 91精品爽啪蜜夜国产在线播放 | av在线看网站 | 久草在线观| 91女子私密保健养生少妇 | 久久在线精品视频 | www.com在线观看 | 人人澡av | 久久夜色电影 | 亚洲午夜精品福利 | 黄色小网站在线 | 91精品亚洲影视在线观看 | 在线观看免费成人 | 久久久国产精品久久久 | 亚洲美女视频在线 | 午夜精品视频一区二区三区在线看 | 亚洲精品国偷拍自产在线观看 | 99精品热视频只有精品10 | 欧美一级片免费 | 中文在线8新资源库 | 免费亚洲电影 | 国产视频高清 | 夜夜视频资源 | 国产精品午夜8888 | 狠狠干 狠狠操 | 狠狠做深爱婷婷综合一区 | 在线观看国产亚洲 | 亚洲日本国产 | 91麻豆产精品久久久久久 | 黄色小说在线免费观看 | 成人黄色在线看 | 欧美久久久久久久久久久久久 | 天天干亚洲 | 国产精品免费成人 | 热久久最新地址 | 手机色在线 | 日本中文字幕在线 | 成人午夜剧场在线观看 | 久艹视频免费观看 | 精品视频不卡 | 欧美一二三区播放 | 色婷婷狠狠| 久草新在线| 天天拍天天爽 | 亚洲激情视频 | 在线视频中文字幕一区 | 九色最新网址 | 久久精品视频中文字幕 | 97国产大学生情侣酒店的特点 | 国产国语在线 | 精品视频国产一区 | 中文字幕免费一区 | 国产精品一区二区白浆 | 国产成人一区二区三区在线观看 | 在线观看视频色 | 国产午夜一级毛片 | 国产视频91在线 | 91精品在线视频观看 | 亚洲天堂网在线视频 | 99久国产 | 日韩免费福利 | 五月天综合色 | 欧美一区二区三区特黄 | 狠狠综合久久av | 97超碰总站 | 在线 精品 国产 | 激情网婷婷| 九九热在线观看视频 | 黄色资源在线观看 | 视色网站 | 91精彩在线视频 | 91成人精品在线 | 在线天堂中文www视软件 | 尤物一区二区三区 | 亚洲精品电影在线 | 欧美激情h | 伊人激情综合 | 色中文字幕在线观看 | 91久久偷偷做嫩草影院 | www.天天射.com | 国产精美视频 | 日本婷婷色| 国产精品美女久久久久久 | 久久中文视频 | 久久亚洲私人国产精品va | 久久伊人操 | 国产在线观看地址 | 黄色成人免费电影 | 色射色| 欧美一区二区三区免费看 | 国产综合香蕉五月婷在线 | 在线看片a | 色伊人网 | 深爱五月激情网 | 国产精品一区一区三区 | 亚洲高清久久久 | 啪啪凸凸 | 久久久久亚洲国产精品 | 中文字幕日韩有码 | 91手机在线看片 | 日韩一级片大全 | 最近的中文字幕大全免费版 | 免费成人在线观看视频 | 色综合久久五月 | 欧美成人在线网站 | 国产一级片免费视频 | 狠狠色丁香婷婷综合欧美 | 免费在线观看成人av | 亚洲成年人免费网站 | 91视频免费看 | 国产亚洲成人网 | 久久69av| 国产精品一区免费在线观看 | 2023亚洲精品国偷拍自产在线 | 国产亲近乱来精品 | 中中文字幕av | 国内精品在线看 | 91av视频在线免费观看 | 国产亚洲精品成人av久久ww | 国产成人精品一区二区三区免费 | av中文字幕网站 | 丁香五月网久久综合 | 亚洲精品久久久久58 | 欧美日韩国产区 | 欧美 日韩 国产 成人 在线 | 成人免费av电影 | 久久免费精品国产 | 成年人在线观看免费视频 | 在线成人一区 | 久久精品综合 | 国产精品自在欧美一区 | 久久久久国产成人精品亚洲午夜 | 伊人伊成久久人综合网站 | 国产精品久久一 | 国产精品久久99精品毛片三a | av电影免费 | 午夜视频欧美 | 国产福利a| 日韩三级在线观看 | 精品麻豆入口免费 | 久久网站av | 91专区在线观看 | 中文字幕区 | 久久玖| 四虎在线免费观看 | 婷婷精品国产欧美精品亚洲人人爽 | 国产精品久久久久久久电影 | 国产又粗又猛又黄视频 | 久久99视频 | 最新不卡av | 国产成人a v电影 | 婷婷射五月| 91香蕉视频污在线 | 色噜噜日韩精品一区二区三区视频 | 日韩av中文字幕在线 | 午夜丁香网 | 嫩模bbw搡bbbb搡bbbb | 91麻豆精品国产午夜天堂 | 成年人视频在线免费播放 | 99中文字幕视频 | 亚洲一二区视频 | 欧美三级高清 | 免费在线观看中文字幕 | 黄色片网站av| 天天天天天天天操 | 碰超在线 | 日韩精品久久久久久久电影竹菊 | 成人中心免费视频 | 精品视频 | 日本精品久久久久 | av在线免费网站 | 日狠狠| 国产福利91精品一区二区三区 | 国产亚洲人成网站在线观看 | 五月天综合网 | 81精品国产乱码久久久久久 | 超碰在线资源 | 国产 av 日韩| 精品视频999| 国产黄色资源 | av黄色免费在线观看 | www黄色 | 超碰精品在线 | 日韩欧美在线免费观看 | 人人爽爽人人 | 天天操夜夜操国产精品 | 欧美极品少妇xbxb性爽爽视频 | 色国产精品一区在线观看 | 久久久久久久久久久影院 | 久久久av电影 | 美女天天操 | 日本深夜福利视频 | 久久久久久久久久久高潮一区二区 | 亚洲免费专区 | 中文字幕在线观看91 | 日韩久久久久 | 国产日韩精品欧美 | 中文字幕在线一二 | 午夜视频亚洲 | 欧美日韩高清在线一区 | 九九激情视频 | 91高清视频在线 | 中文字幕在线观看一区 | 亚洲国产成人精品电影在线观看 | 亚洲jizzjizz日本少妇 | 超碰人人在 | 西西www4444大胆视频 | 国产激情免费 | 最近中文字幕免费观看 | 日韩精品中字 | 伊人首页| 国产区在线| 在线成人小视频 | 国产视频精选在线 | 人人爱人人射 | 久草香蕉在线视频 | 国产午夜精品免费一区二区三区视频 | 中文字幕免费成人 | 99一级片 | 九九视频一区 | 色综合咪咪久久网 | www.在线看片.com | 欧美在线视频不卡 | 国产成视频在线观看 | 精品美女久久久久 | 欧美日韩国产一区二区三区 | 国产91aaa | 天堂中文在线视频 | 日日夜夜爱 | 国产福利91精品一区二区三区 | 免费日韩电影 | 国模精品一区二区三区 | 激情黄色av | 激情网五月| 欧美一级视频免费看 | 91九色自拍 | 不卡的av在线 | 99一级片 | 亚洲区视频在线 | 日韩免费高清在线 | 99精品国产一区二区三区不卡 | 亚洲第二色 | 中文免费在线观看 | 国产黄色片久久 | 亚洲 欧洲 国产 日本 综合 | 国产99久久久精品视频 | 99精品免费视频 | 五月天中文在线 | 精品成人国产 | 午夜天使| 天天做天天爽 | 日韩免费小视频 | 日韩国产欧美在线视频 | 99精品在线免费视频 | 最近免费中文视频 | 97超在线视频 | 青青五月天 | 天天干天天怕 | 九九热视频在线播放 | 精品视频久久久久久 | 成人看片| 国产免费片| 成人啪啪18免费游戏链接 | av综合网址 | 手机看片中文字幕 | 五月丁香 | 天天干天天操天天干 | 日韩免费电影 | 99国产精品久久久久老师 | 麻豆视频一区 | 精品国产免费人成在线观看 | 亚洲不卡在线 | 一级片黄色片网站 | 一级黄色片网站 | 久久精品视频免费播放 | 国产精品不卡在线播放 | 亚洲婷婷在线视频 | 欧美福利片在线观看 | 国产拍在线 | 欧洲精品久久久久毛片完整版 | 国产九九热| 黄色a在线观看 | 亚洲v精品 | 亚洲mv大片欧洲mv大片免费 | 久久99欧美| 日韩欧美观看 | 久操视频在线观看 | 久久一区二区三区日韩 | 国产精品一区二区av麻豆 | 欧美无极色 | 亚洲成av人电影 | 色丁香久久 | 午夜婷婷综合 | 久久久久免费精品国产小说色大师 | 97国产在线播放 | av大全在线免费观看 | 久久中文欧美 | 色网站视频 | 日日夜夜人人天天 | 四虎4hu永久免费 | 高清日韩一区二区 | 久久96国产精品久久99漫画 | 人人舔人人爱 | 欧美另类视频 | 久久久久久久久久亚洲精品 | 国产精品久久久久久爽爽爽 | 亚洲激情网站免费观看 | 久久电影网站中文字幕 | 特黄特色特刺激视频免费播放 | 日日干日日操 | 国产精品久久久久久一区二区 | 97电影院网 | 精品主播网红福利资源观看 | 亚洲国产精品va在线看黑人动漫 | 久久国产精品久久精品国产演员表 | 国产一级片免费观看 | 五月天综合网站 | 在线av资源| 国产剧情av在线播放 | 国产码电影 | 久久久久亚洲国产 | 国产亚洲精品久久久久久久久久久久 | 精品视频成人 | 91av大全| 欧美精品网站 | 正在播放国产精品 | 国产成人精品亚洲精品 | 成年人免费在线播放 | 精品久久久久久电影 | 91精品啪啪| 精精国产xxxx视频在线播放 | 波多野结衣动态图 | www.久久久.com | 日韩精品一区在线播放 | 久久亚洲精品国产亚洲老地址 | 综合网久久| 国产精品99久久久 | 久久免费播放视频 | 激情九九 | 日本爱爱免费视频 | 成人欧美一区二区三区黑人麻豆 | 一级a性色生活片久久毛片波多野 | 免费看的黄色的网站 | 亚洲闷骚少妇在线观看网站 | 中文字幕乱码日本亚洲一区二区 | 国产在线黄 | 国产打女人屁股调教97 | 国产精品一区二区你懂的 | 五月婷婷在线视频观看 | 精品国产电影一区 | 免费成人av | 国产日韩av在线 | 欧美大片www | 国产乱视频 | 新av在线| 91九色网站 | 一级一片免费观看 | 91在线国产观看 | 久久高清av | 日韩福利在线观看 | 国产一区在线播放 | 人人干免费 | 国产成人av电影在线观看 | 国产网站在线免费观看 | 激情五月在线视频 | 亚洲男人天堂2018 | 我爱av激情网 | 久久成人国产精品 | av先锋影音少妇 | 97av色| 日韩在线视频网 | 天天天色综合 | 国产69精品久久99不卡的观看体验 | 欧美日韩精品国产 | 偷拍精品一区二区三区 | 九九热在线视频 | 日韩视频一区二区三区在线播放免费观看 | 四虎视频 | 一区三区视频在线观看 | 中文字幕免费观看全部电影 | 在线观看中文字幕第一页 | 欧美激情视频在线免费观看 | 日本最新高清不卡中文字幕 | 国产综合激情 | 久草a视频| 日韩av在线免费看 | 免费av网站观看 | av在线成人| 欧美亚洲成人xxx | 久久国产a | 男女免费视频观看 | 日本久久久久久久久久久 | 精品亚洲免费 | 开心激情五月网 | 国产精品成久久久久三级 | 91精品国产电影 | 亚洲精品在线视频 | 欧美日韩性视频在线 | 中文字幕色网站 | 免费中文字幕 | 久久精品99久久久久久2456 | 91视频成人免费 | 人人插人人玩 | 亚洲国产欧洲综合997久久, | 亚洲网久久| 国产精品区一区 | 日本大尺码专区mv | 97超碰国产精品女人人人爽 | 中文字幕.av.在线 | 国产成人一区二区三区电影 | 成人在线免费观看视视频 | 日韩在线国产 | 久久久国产精品亚洲一区 | 日韩在线第一 | 丁香九月婷婷 | 国产精品字幕 | 成人久久影院 | 九九视频精品在线 | 美女视频永久黄网站免费观看国产 | 91福利社在线观看 | 欧美激情视频在线观看免费 | 91久久久久久久一区二区 | 成人av直播 | 免费福利片 | 天天操人人干 | 亚洲aaa毛片| 一区二区在线电影 | 激情伊人五月天久久综合 | 免费成人在线视频网站 | 久久久久高清 | 亚洲精品中文字幕在线观看 | 日韩大片在线观看 | 韩国av永久免费 | 色九九影院 | 91精品导航 | 国产精品igao视频网入口 | 欧美日韩高清一区二区 国产亚洲免费看 | 一级一片免费观看 | 免费日韩一区二区三区 | 日本69hd | 久久电影网站中文字幕 | 婷婷色中文 | 伊人五月天婷婷 | 日本精品一区二区三区在线播放视频 | 美女免费av| 麻豆影视网 | 香蕉久久久久 | 97偷拍在线视频 | 日韩免费一级a毛片在线播放一级 | 亚洲精品字幕在线 | 中文字幕日本在线观看 | 一区二区三区在线影院 | 国产手机视频 | 视频在线观看入口黄最新永久免费国产 | 欧美午夜精品久久久久久孕妇 | 中文字幕成人 | 免费观看午夜视频 | 久久三级视频 | www.人人草| 99久久精品无免国产免费 | 欧美国产日韩在线观看 | 人人射人人澡 | 天天曰夜夜操 | 欧美成人xxxx | 亚洲精欧美一区二区精品 | 91视频com| 欧美日韩国产亚洲乱码字幕 | 开心色停停 | 黄色精品网站 | 中国一级片视频 | 99久久99久久精品免费 | 一区二区三区中文字幕在线观看 | 国产日韩三级 | 黄色网www| 91九色视频国产 | 黄色小说在线免费观看 | 国产一二三四在线观看视频 | 四虎5151久久欧美毛片 | 国产精品系列在线播放 | 国产精品国产三级国产 | 亚洲精品视频在线播放 | 一区二区三区久久精品 | 天堂久久电影网 | 午夜精品久久久久久久久久 | 中文伊人 | 综合网中文字幕 | 免费观看mv大片高清 | 一色av| 成人黄大片 | 亚洲精色 | 成人网大片 | 九九热精品视频在线播放 | 手机看片国产 | 免费亚洲黄色 | 日韩一区二区三区高清免费看看 | 操操综合网 | 精品国产91亚洲一区二区三区www | 久久精品中文字幕少妇 | 3d黄动漫免费看 | 中日韩欧美精彩视频 | 在线观看日韩专区 | 黄色精品网站 | 狠狠色丁香婷婷综合橹88 | 九九热免费观看 | 天天操比 | 国产理论免费 | 婷婷色5月 | 97碰在线| 97在线免费观看视频 | 久久伊人精品天天 | 欧美一区免费观看 | 免费观看9x视频网站在线观看 | 日日干夜夜骑 | 午夜视频亚洲 | 91在线视频播放 | 区一区二区三区中文字幕 | 欧美日韩一级在线 | 日日干精品 | 久久福利在线 | 91在线看视频 | 国产一级大片在线观看 | 国产精品第7页 | 99久久超碰中文字幕伊人 | 午夜精品一二区 | 免费久久99精品国产 | 免费亚洲视频在线观看 | 最近中文字幕久久 | 深夜免费福利视频 | 久久免费av电影 | 亚洲精品小视频 | 一区二区三区四区免费视频 | 天天综合狠狠精品 | 最近中文字幕国语免费高清6 | 五月天色综合 | 久久中文字幕视频 | 亚洲91中文字幕无线码三区 | 久久污视频 | 日韩中文字幕视频在线 | 国产成人精品午夜在线播放 | 有码中文字幕在线观看 | 国产精品手机在线 | 欧美aa级 | 久久久亚洲精品 | 亚洲理论在线观看电影 | 精品美女久久久久久免费 | 日韩欧美一级二级 | 久久国产精品一区二区三区 | 国产一级二级在线播放 | 91九色porny蝌蚪主页 | 亚洲精品在线观 | 国产毛片久久 | 热久久免费视频 | 美女一区网站 | 精品国产一区二区三区久久影院 | 亚洲人成人99网站 | 欧美日韩国产综合一区二区 | 亚洲 欧美 综合 在线 精品 | 亚洲成人免费在线观看 | 天天干天天草 | 波多野结衣一区三区 | 精品久久久久亚洲 | 91高清完整版在线观看 | 人人爽人人爽人人片 | 天天草天天 | 婷婷久久综合九色综合 | 亚洲经典中文字幕 | av一二三区 | av网站播放 | 精品99免费 | aaaaaa毛片| 久久成人国产精品一区二区 | 日狠狠| 99精品视频在线观看免费 | 天天干,天天插 | 色吊丝在线永久观看最新版本 | 国产区免费在线 | 五月网婷婷 | 91九色蝌蚪视频网站 | 亚洲视频 视频在线 | 天天激情综合网 | 精品一区二区在线观看 | 99re8这里有精品热视频免费 | 99久久久成人国产精品 | 伊人资源站| 日韩精品三区四区 | 国产亚洲精品电影 | 国产一区二区电影在线观看 | 久久国产精品一国产精品 | 天天操天天操 | 国产小视频国产精品 | 亚洲精品免费在线观看视频 | 黄色一区三区 | 亚洲欧美一区二区三区孕妇写真 | 91福利视频免费观看 | 91精品在线免费观看 | 久久精品国产成人精品 | 午夜精品福利一区二区 | 一区二区中文字幕在线 | 久草99| 九九久久久久久久久激情 | 午夜视频亚洲 | 国产精品99久久久久久宅男 | 亚洲精品高清视频在线观看 | www日韩在线观看 | 日韩欧美网址 | 国产理论片在线观看 | 国产 日韩 欧美 自拍 | 97日日碰人人模人人澡分享吧 | 精品久久久久久亚洲综合网 | 欧美日韩1区2区 | 粉嫩一二三区 | 最近中文字幕在线播放 | 99亚洲天堂| 91免费视频网站在线观看 | 免费成人在线观看视频 | 国产成人免费观看久久久 | 9999在线| 久久黄色a级片 | 91精品久久久久久综合乱菊 | 三级黄在线 | 丝袜精品视频 | 蜜臀久久99精品久久久酒店新书 | 国产高清精品在线观看 | 成人毛片在线视频 | 久久精品久久精品久久精品 | 中文字幕在线播放视频 | 一区二区三区在线播放 | 99视频在线观看视频 | 天天草天天干 | 国产在线中文字幕 | 中文字幕一区二区三区在线视频 | 深爱激情综合 | 久久视频免费在线 | 久久精品一区 | 午夜在线看片 | 日韩精品视频免费 | 在线国产91| 日韩 在线 | 日韩精品三区四区 | 五月天婷婷在线播放 | 久久成人国产精品一区二区 | 亚洲激情免费 | 99在线播放 | 亚洲v欧美v国产v在线观看 | av大全在线观看 | 美女免费黄视频网站 | 精品视频免费播放 | 久久99精品久久久久久秒播蜜臀 | 成人在线免费观看网站 | 日韩一区二区免费视频 | 久久久久久久久久网 | 免费在线观看视频a | 国产欧美中文字幕 | 国产精品久久久久久久毛片 | 91亚洲综合 | 国产精品成人国产乱 | 色综合久久精品 | 久一久久| 九九九热 | 亚洲午夜精品久久久久久久久久久久 | 国产小视频免费在线网址 | 国产高清永久免费 | 欧美性直播 | 亚在线播放中文视频 | 婷香五月| 免费在线观看视频一区 | 中国一级片在线观看 | 日韩黄色免费电影 |