« 写了一个从Oracle复制到MySQL的Perl角本 »
Tools » http://www.anysql.net/tools/perl_refresh_mysql.html 2007-03-13根据对实体化视图的研究及昨天的设想, 花了大约一个早上的时间, 写了一个从Oracle复制到MySQL的Perl角本, 早上测试时还是比较有趣的. 在现在的角本中, 源表名和目标表名可以不一样, 但字段名必须一样.
做测试时, 先开一个窗口, 运行刷新角本:
C:\AnySQL>perl refresh_mysql.pl -s anysql:anysql:test -t mysql:root:mysql:localhost:test -c myrefresh.conf
02/13 12:52:25 – 1 tables will be processed.
02/13 12:53:06 – Start replication from T_MVLOG to T_MVLOG with sequence 10196 to 10199 …
02/13 12:53:07 – End replication from T_MVLOG to T_MVLOG with sequence 10196 to 10199.
02/13 12:53:26 – Start replication from T_MVLOG to T_MVLOG with sequence 10200 to 10203 …
02/13 12:53:27 – End replication from T_MVLOG to T_MVLOG with sequence 10200 to 10203.
02/13 12:54:11 – Start replication from T_MVLOG to T_MVLOG with sequence 10204 to 10204 …
02/13 12:54:12 – End replication from T_MVLOG to T_MVLOG with sequence 10204 to 10204.
02/13 12:56:13 – Start replication from T_MVLOG to T_MVLOG with sequence 10205 to 10207 …
02/13 12:56:14 – End replication from T_MVLOG to T_MVLOG with sequence 10205 to 10207.
02/13 13:11:41 – Start replication from T_MVLOG to T_MVLOG with sequence 10208 to 10211 …
02/13 13:11:42 – End replication from T_MVLOG to T_MVLOG with sequence 10208 to 10211.
在源端(Oracle)中插入一些记录, 并作查询:
SQL> SELECT * FROM T_MVLOG;
COL1 COL2
——————– ——————————
MLOG$_T_MVLOG TABLE
MV_T_MVLOG2 TABLE
RUPD$_T_MVLOG TABLE
T_MVLOG TABLE
等了3-5秒钟后, 在目标端(MySQL)中进行查询:
mysql> select * from t_mvlog;
+—————+——-+
| COL1 | COL2 |
+—————+——-+
| MLOG$_T_MVLOG | TABLE |
| MV_T_MVLOG2 | TABLE |
| RUPD$_T_MVLOG | TABLE |
| T_MVLOG | TABLE |
+—————+——-+
4 rows in set (0.00 sec)
接下来事是要进行更多的测试, 以及进行压力测试. 就算玩玩的角本, 也有很多需要改进的地方.
Tags: MVIEW, MySQL, Oracle, Perl, Replication


进展满快的。
最近需要研究mysql自带的那个sql-bench软件,是perl写的
可是因为oracle的性能调整不好,却还没来得及做