网站首页 > 技术文章 正文
概述
分享下之前因为项目需要,在虚拟机和阿里云上通过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方面的内容,大家有什么想看的也可以在下方留言哦,我这边后面也会发类似的。
猜你喜欢
- 2025-07-17 每天从外包系统同步百万数据,用什么方案?Java实战讲解
- 2025-07-17 搞懂java同步块(synchronized),避免踩坑
- 2025-07-17 OceanBase 推出单机版 高度兼容MySQL和Oracle
- 2025-07-17 用DataX实现两个MySQL实例间的数据同步
- 2025-07-17 【mykit-data】 数据库同步工具(数据库间数据同步)
- 2025-07-17 从 PostgreSQL 到 DolphinDB:数据实时同步一站式解决方案
- 2025-07-17 什么是实时数据同步?纯干货解读!(什么是实时数据传输)
- 2025-07-17 通过ETL工具完成达梦数据库数据同步至数仓Oracle的具体实现
- 2024-10-22 一键实现 Oracle 数据整库同步至 Apache Doris
- 2024-10-22 Oracle OGG 单向DML同步 oracle的ogg同步
你 发表评论:
欢迎- 633℃几个Oracle空值处理函数 oracle处理null值的函数
- 626℃Oracle分析函数之Lag和Lead()使用
- 614℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 608℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 606℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 599℃【数据统计分析】详解Oracle分组函数之CUBE
- 588℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 574℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- oracle 19cOCM认证有哪些内容(oracle认证ocm月薪)
- Oracle新出AI课程认证,转型要持续学习
- oracle 表的查询join顺序,可能会影响查询效率
- Oracle DatabaseAmazon Web Services正式可用,Oracle数据库上云更容易了
- Oracle 19.28 RU 升级最佳实践指南
- 汉得信息:发布EBS系统安装启用JWS的高效解决方案
- 如何主导设计一个亿级高并发系统架构-数据存储架构(三)
- Java 后端开发必看!工厂设计模式轻松拿捏
- ORA-00600 「25027」 「x」报错(抱错孩子电视剧 爸爸是武术 另一个爸爸是画家)
- 新项目终于用上了jdk24(jdk新建项目)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)