网站首页 > 技术文章 正文
概述
分享下之前因为项目需要,在虚拟机和阿里云上通过dblink和快照触发器结合做的一个单向同步,下面写一下大致步骤和整体的一个思路。
一、创建dblink
1、在虚拟机数据库配置tnsnames.ora($oracle_home/network/admin)
bihuan = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = nwppdb) ) ) [oracle@Oracle11g admin]$ tnsping bihuan TNS Ping Utility for Linux: Version 11.2.0.3.0 - Production on 30-JUL-2018 21:15:17 Copyright (c) 1997, 2011, Oracle. All rights reserved. Used parameter files: Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.xx.xx)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = nwppdb))) OK (40 msec)
2、在虚拟机数据库创建dblink_aliyun (test用户执行)
conn test/123456; drop database link dblink_aliyun; create database link dblink_aliyun connect to xxxx identified by xx using 'bihuan';
二、创建快照
1、先在虚拟机数据库导入阿里云数据库的表结构,再同步阿里云表的数据到虚拟机
drop table test --不创建主键后面无法建立快照 create table test(id number primary key ,name varchar2(12));
---往阿里云test表插入数据
insert into test values(1,'a'); insert into test values(2,'b'); commit;
---同步阿里云表的数据到虚拟机
insert into test select * from test@dblink_aliyun
--同步虚拟机表的数据到阿里云
insert into test@dblink_aliyun select * from test
2、测试dblink_aliyun(虚拟机执行)
select * from test@dblink_aliyun;
select * from test;
3、在阿里云数据库创建要同步表的快照日志(基于表级别)
create snapshot log on test; --test表必须有主键
4、在虚拟机数据库创建快照(前提是阿里云数据库服务启动)
create snapshot sn_test as select * from test@dblink_aliyun;
5、设置快照刷新时间
--快速刷新
Alter snapshot sn_test refresh fast start with sysdate next sysdate+1/1440;
6、测试快照
在阿里云插入数据:
insert into test values(3,'c');
insert into test values(2,'b');
上面建立好后大家可以写个触发器来单向同步,这里我就不提供了,大家根据需求改下就行,主要思路是当源数据库表改变时,目的数据库表跟着改变,但目的数据库表改变时,源数据库表不改变。
总结:
上面单向同步的方式是基于表级别,主要思路是:
1.首先创建一个dblink,可以访问远程数据库
2.在本地创建一个快照,映射远程数据表,当远程数据表有变化时,会反应到快照中.
3.由于快照类似于视图表,所以在本地为快照创建一个触发器,当快照有变化时,会触发相应事件.
4.在触发器中写同步数据的代码.
后面会分享更多dba方面的内容,大家有什么想看的也可以在下方留言哦,我这边后面也会发类似的。
猜你喜欢
- 2024-10-22 一键实现 Oracle 数据整库同步至 Apache Doris
- 2024-10-22 Oracle OGG 单向DML同步 oracle的ogg同步
- 2024-10-22 Spring Boot整合DataX同步数据 springboot自动装配原理
- 2024-10-22 多源异构数据离线同步方案实战 多源异构数据整合处理
- 2024-10-22 常见数据同步工具之实时同步 数据同步工具有哪些
- 2024-10-22 MySQL超时参数以及相关DataX数据同步案例分享
- 2024-10-22 《github精选系列》——数据库同步中间件(DBSyncer)
- 2024-10-22 如何将Oracle的blob同步到MySQL oracle blob转字符串
- 2024-10-22 ETL数据集成丨实现SQLServer数据库的高效实时数据同步
- 2024-10-22 SeaTunnel同步Oracle数据至ClickHouse
你 发表评论:
欢迎- 499℃几个Oracle空值处理函数 oracle处理null值的函数
- 494℃Oracle分析函数之Lag和Lead()使用
- 493℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 481℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 472℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 467℃【数据统计分析】详解Oracle分组函数之CUBE
- 453℃Oracle有哪些常见的函数? oracle中常用的函数
- 448℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 最近发表
-
- Spring Boot跨域难题终结者:3种方案,从此告别CORS噩梦!
- 京东大佬问我,SpringBoot为什么会出现跨域问题?如何解决?
- 在 Spring Boot3 中轻松解决接口跨域访问问题
- 最常见五种跨域解决方案(常见跨域及其解决方案)
- Java Web开发中优雅应对跨域问题(java跨域问题解决办法)
- Spring Boot解决跨域最全指南:从入门到放弃?不,到根治!
- Spring Boot跨域问题终极解决方案:3种方案彻底告别CORS错误
- Spring Cloud 轻松解决跨域,别再乱用了
- Github 太狠了,居然把 "master" 干掉了
- IntelliJ IDEA 调试 Java 8,实在太香了
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端react (48)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端富文本编辑器 (47)
- 前端路由 (55)
- 前端数组 (65)
- 前端定时器 (47)
- Oracle RAC (73)
- oracle恢复 (76)
- oracle 删除表 (48)
- oracle 用户名 (74)
- oracle 工具 (55)
- oracle 内存 (50)
- oracle 导出表 (57)
- oracle 中文 (51)
- oracle链接 (47)
- oracle的函数 (57)
- 前端调试 (52)
- 前端登录页面 (48)
本文暂时没有评论,来添加一个吧(●'◡'●)