使用物化视图解决GoldenGate不能使用中文表名问题
源端:
conn sh/sh
create table "学生" ("学号" number primary key,"姓名" varchar2(30))
*
ORA-00957: duplicate column name 重复列名
create table "学生" ("学号" number primary key, " 姓名" varchar2(30));
create materialized view log on "学生" with primary key;
create materialized view mv_student
refresh fast on commit
as
select "学生"."学号" as id, "学生"." 姓名" as name from "学生";
添加这个物化视图的附加日志
GGSCI (linux5.5) 1> dblogin userid goldengate, password goldengate
info trandata sh.mv_student
add trandata sh.mv_student
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
TEST TABLE
TEST1 TABLE
TEST4 TABLE
???? TABLE
MLOG$_???? TABLE
RUPD$_???? TABLE
MV_STUDENT TABLE
一个一个指定,不能用模糊匹配,否则物化视图的日志、中文表,物化视图也会复制过去
GGSCI (linux5.5) 3> edit params ext_sh
TABLE SH.test1;
TABLE SH.test4;
TABLE SH.mv_student;
GGSCI (linux5.5) 5> stop ext_sh
GGSCI (linux5.5) 7> start ext_sh
SQL> desc sh."学生"
Name Null? Type
----------------------------------------- -------- ----------------------------
???? NOT NULL NUMBER
???? VARCHAR2(30)
如果用模糊匹配:
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
TEST1 TABLE
TEST4 TABLE
???? TABLE
BIN$6TRNVHJWkIHgQKjAqQoNFg==$0 TABLE
MLOG$_???? TABLE
RUPD$_???? TABLE
SQL> desc sh."学生"
ORA-00942: table or view does not exist
目标端
dblogin userid goldengate, password goldengate
add checkpointtable goldengate.rep_mv_ckpt
add replicat rep_mv,exttrail ./dirdat/d2,checkpointtable rep_mv_ckpt
GGSCI (linux5.5) 5> edit params rep_sh
mapexclude sh.mv_student
GGSCI (linux5.5) 7> stop rep_sh
GGSCI (linux5.5) 9> start rep_sh
GGSCI (linux5.5) 10> info all
Program Status Group Lag at Chkpt Time Since Chkpt
MANAGER RUNNING
REPLICAT STOPPED REP_MV 00:00:00 00:04:37
REPLICAT RUNNING REP_OE 00:00:00 00:00:03
REPLICAT RUNNING REP_SH 00:09:26 00:00:03
REPLICAT RUNNING REP_T1 00:00:00 00:00:01
REPLICAT RUNNING REP_T401 00:00:00 00:00:01
REPLICAT RUNNING REP_T402 00:00:00 00:00:01
REPLICAT RUNNING REP_T403 00:00:00 00:00:01
GGSCI (linux5.5) 7> edit params rep_mv
REPLICAT rep_mv
SETENV (NLS_LANG="American_America.ZHS16GBK")
SETENV (ORACLE_SID=test)
USERID goldengate,PASSWORD goldengate
REPORTCOUNT EVERY 30 MINUTES, RATE
REPERROR DEFAULT, ABEND
numfiles 5000
--HANDLECOLLISIONS
assumetargetdefs
DISCARDFILE ./dirrpt/rep_mv.dsc, APPEND, MEGABYTES 1000
ALLOWNOOPUPDATES
DDL INCLUDE MAPPED
DDLOPTIONS REPORT
map sh.mv_student, target sh.mv_student;
GGSCI (linux5.5) 9> start rep_mv
初始化:
conn sh/sh
create table "学生" ("学号" number primary key, " 姓名" varchar2(30));
create or replace view mv_student
as
select "学生"."学号" as id, "学生"." 姓名" as name from "学生";
GGSCI (linux5.5) 10> alter replicat rep_mv, begin now 把以前没有执行的事务直接抛弃掉
源端:
conn sh/sh
insert into "学生" values (4,'张三4');
commit;
目标端
select * from "学生";
使用物化视图解决GoldenGate不能使用中文表名问题的更多相关文章
- 解决mysql shell执行中文表名报command not found错误
mysql -h 192.168.22.201 -uusername -ppassword --default-character-set=utf8 rom3 -e "DELETE FROM ...
- Oracle 查询库中所有表名、字段名、字段名说明,查询表的数据条数、表名、中文表名、
查询所有表名:select t.table_name from user_tables t;查询所有字段名:select t.column_name from user_col_comments t; ...
- db2 中文表名和字段
建库语句 create db test on D: using codeset GBK territory CN 或者 territory cn codeset 和 territory 都是需要指定 ...
- Android GreenDao 中文表名,中文字段DAO生成乱码的问题
在gradle.properties 文件中加入编码类型 # Project-wide Gradle settings. # IDE (e.g. Android Studio) users: # Gr ...
- calcite物化视图详解
概述 物化视图和视图类似,反映的是某个查询的结果,但是和视图仅保存SQL定义不同,物化视图本身会存储数据,因此是物化了的视图. 当用户查询的时候,原先创建的物化视图会注册到优化器中,用户的查询命中物化 ...
- postgres中的视图和物化视图
视图和物化视图区别 postgres中的视图和mysql中的视图是一样的,在查询的时候进行扫描子表的操作,而物化视图则是实实在在地将数据存成一张表.说说版本,物化视图是在9.3 之后才有的逻辑. 比较 ...
- Oracle数据库入门——如何根据物化视图日志快速刷新物化视图
Oracle物化视图的快速刷新机制是通过物化视图日志完成的.Oracle如何通过一个物化视图日志就可以支持多个物化视图的快速刷新呢,本文简单的描述一下刷新的原理. 首先,看一下物化视图的结构:SQL& ...
- Oracle数据库入门——物化视图语法
一.Oracle物化视图语法 create materialized view [view_name]refresh [fast|complete|force][on [commit|demand] ...
- Oracle 物化视图 说明
一. 物化视图概述 Oracle的物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表.物化视图存储基于远程表的数据,也可以称为快照. 物化视图可 ...
随机推荐
- ubuntu 下的文件校验(md5、sha256)
在本地使用 md5sum/sha256sum 生成某待测文件的 hash 值,以跟标准文件的 hash 值做对比验证,确定经网络传输过程得到的文件是否真实无损.一般而言,hash 值如果一致,大概率上 ...
- linux 下的文件搜索、可执行文件搜索
1. whereis 与 which 速度快,只是模糊查询,例如查询 $ whereis mysql,则会将mysql, mysql.ini, mysql*所在的目录都找出来: whereis 查看的 ...
- 文档相关命令-cat命令查看一个文件
用于查看一个文件的内容并将其显示在屏幕上 cat 后直接加上文件名 -n 表示显示行号 cat -n dirb/filee -A 显示所有内容包括特殊字符 cat -A dirb/filee
- URAL 1297 后缀数组+线段树
思路: 论文题--*n 倒过来接上 分奇偶讨论 求LCP 搞棵线段树即可 //By SiriusRen #include <cstdio> #include <cstring> ...
- TYVJ1415 差分约束
思路: i–>i+1连一条边权为0的边 i–>i-1连一条边权为-1的边 start-1 ->end 连一条边权为w的边 求0->n的最长路即可 //By SiriusRen ...
- Eclipse中將Java项目转变为Java Web项目
1.在项目上点击右键=>properties,在Project Facets配置项中,勾选Dynamic Web Module.Java.JavaScript选项. 2.用记事本打开项目目录下的 ...
- Android集成第三方微信登录
第一步: 在微信开放平台创建安卓应用,需要输入的包名和签名就不用再提吧,不知道的自行百度. 应用创建完毕后会得到两个值:AppID.AppSecret,用这两个值来请求微信. 然后去微信开放平台的资源 ...
- 改变GridView中列的宽度
<asp:TemplateField HeaderText="规格型号" HeaderStyle-Width="24%">
- e.Row.Attributes.Add
其实看到属性这个单词,还有点发憷呢,C#里面有个关键词是Attributes, 搞了半天貌似没有弄清楚 e.Row.Attributes.Add()函数的介绍,包括参数,什么是Attributes 就 ...
- ActiveMQ学习笔记(15)----Message Dispatch高级特性(一)
1. Message Cursors 1.1 概述 ActiveMQ发送持久化消息的典型的厝里方式是:当消息的消费者准备就绪时,消息发送系统把存储的消息按批次发送给消费者,在发送完一个批次的消息后,指 ...