如何将一个数据库同步到另一个数据库

如何将一个数据库同步到另一个数据库,第1张

1直接方法,将需要的查询的数据赋值到excel中。相应调整,然后再赋值到目标表中(对于数据量不大的情况下较快)

2最好两数据库拥有相同的登录名和密码不然比较麻烦

insertinto目标数据库dbo目标表名(字段1字段n)

select段1字段nfrom源数据库dbo源表名或select段1字段ninto目标数据库dbo目标表名from源数据库dbo源表名

3这样的插入注意表字段的长度和约束条件,若原表中字段长,就得将目标表中的字段相应加长

如果是同一种数据库的话,你同步的数据表结构是否相同,如果也相同的话,完全可以利用数据库的同步复制机制来解决;(做主从)如果表结构不相同的话,如果不在应用层处理的话,有两种方式参考:1,A推数据给B;A有数据的时候,实时或非实时(采用event或trigger)将数据推到B中,B再做处理;2,B从A拉数据,用一个event(mysql中的job)定时从A中拉数据然后进行处理;另外可以选择在应用层来做,这个我就不多介绍了,根据业务逻辑coding就行了。由于不清楚你的业务特点,所以无法进一步的帮你分析。

sql同步使用dblink同步数据。

具体参考实例:

1、在win下创建linux的DBLINK

a查看linux下的tnsnamesora文件

[oracle@myrac1 admin]$ cat tnsnamesora

# tnsnamesora Network Configuration File: /s01/app/oracle/product/1120/dbhome_1/network/admin/tnsnamesora

# Generated by Oracle configuration tools

HJJ =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = myrac1oraclecom)(PORT = 1521))

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = hjj)

)

)

b创建dblink

SQL> create database link win_lin_link connect to hjj identified by xxxx

2 using '(DESCRIPTION =

3 (ADDRESS = (PROTOCOL = TCP)(HOST = 1921681171)(PORT = 1521))

4 (CONNECT_DATA =

5 (SERVER = DEDICATED)

6 (SERVICE_NAME = hjj)

7 )

8 )'

9 /

Database link created

2在win下创建trigger

SQL> create or replace trigger trig_win_emp

2 after insert on emp

3 for each row

4 begin

5 insert into emp@win_lin_link values(:newempno,:newempname,:newempsalary);

6 end;

7 /

Trigger created

3测试

4结果

win下插入数据

SQL> insert into emp values('E001','LYN',2300);

1 row created

SQL>COMMIT;

Commit complete

SQL> select from emp;

EMPNO EMPNAME EMPSALARY

---------------------------------------- ---------------------------------------- ----------

E001 LYN 2300

SQL> select from emp@win_lin_link;

EMPNO EMPNAME EMPSALARY

---------------------------------------- ---------------------------------------- ----------

E001 LYN 2300

linux下查看数据

SQL> select from emp;

EMPNO EMPNAME EMPSALARY

-------------------- -------------------- ----------

E001 LYN 2300

可以使用专门的同步软件,如:数据库比较与同步工具DBSync,它是一款windows系统下的桌面软件,有免费版。缺点是,它的同步不是实时的,最快只能秒级同步,做不到毫秒级。优点是,使用比较简单,大致步骤:

1、先设置数据库连接字符串,连接双方数据库。

2、指定需要同步的数据表,以及字段对应关系。

3、指定同步方式及频率。

设置好后,软件即可按指定频率,不断检测双方数据库,找出双方之间的差异,并同步差异数据,从而使它们始终保持一致。支持各种数据库,支持多表同步。

希望对你有帮助。

这个问题比较有难度哦!

这里只能提供一些范例给你参考下:

SQLServer2000同步复制技术实现步骤

一、 预备工作

1发布服务器,订阅服务器都创建一个同名的windows用户,并设置相同的密码,做为发布快照文件夹的有效访问用户

--治理工具

--计算机治理

--用户和组

--右键用户

--新建用户

--建立一个隶属于administrator组的登陆windows的用户(SynUser)

2在发布服务器上,新建一个共享目录,做为发布的快照文件的存放目录, *** 作:

我的电脑--D:\ 新建一个目录,名为: PUB

--右键这个新建的目录

--属性--共享

--选择 "共享该文件夹 "

--通过 "权限 "按纽来设置具体的用户权限,保证第一步中创建的用户(SynUser) 具有对该文件夹的所有权限

--确定

3设置SQL代理(SQLSERVERAGENT)服务的启动用户(发布/订阅服务器均做此设置)

开始--程序--治理工具--服务

--右键SQLSERVERAGENT

--属性--登陆--选择 "此账户 "

--输入或者选择第一步中创建的windows登录用户名(SynUser)

-- "密码 "中输入该用户的密码

4设置SQL Server身份验证模式,解决连接时的权限问题(发布/订阅服务器均做此设置)

企业治理器

--右键SQL实例--属性

--安全性--身份验证

--选择 "SQL Server 和 Windows "

--确定

5在发布服务器和订阅服务器上互相注册

企业治理器

--右键SQL Server组

--新建SQL Server注册

--下一步--可用的服务器中,输入你要注册的远程服务器名 --添加

--下一步--连接使用,选择第二个 "SQL Server身份验证 "

--下一步--输入用户名和密码(SynUser)

--下一步--选择SQL Server组,也可以创建一个新组

--下一步--完成

6对于只能用IP,不能用计算机名的,为其注册服务器别名(此步在实施中没用到)

(在连接端配置,比如,在订阅服务器上配置的话,服务器名称中输入的是发布服务器的IP)

开始--程序--Microsoft SQL Server--客户端网络实用工具

--别名--添加

--网络库选择 "tcp/ip "--服务器别名输入SQL服务器名

--连接参数--服务器名称中输入SQL服务器ip地址

--假如你修改了SQL的端口,取消选择 "动态决定端口 ",并输入对应的端口号

二、 正式配置

1、配置发布服务器

打开企业治理器,在发布服务器(B、C、D)上执行以下步骤:

(1) 从[工具]下拉菜单的[复制]子菜单中选择[配置发布、订阅服务器和分发]出现配置发布和分发向导

(2) [下一步] 选择分发服务器 可以选择把发布服务器自己作为分发服务器或者其他sql的服务器(选择自己)

(3) [下一步] 设置快照文件夹

采用默认\\servername\Pub

(4) [下一步] 自定义配置

可以选择:是,让我设置分发数据库属性启用发布服务器或设置发布设置

否,使用下列默认设置(推荐)

(5) [下一步] 设置分发数据库名称和位置 采用默认值

(6) [下一步] 启用发布服务器 选择作为发布的服务器

(7) [下一步] 选择需要发布的数据库和发布类型

(8) [下一步] 选择注册订阅服务器

(9) [下一步] 完成配置

2、创建出版物

发布服务器B、C、D上

(1)从[工具]菜单的[复制]子菜单中选择[创建和治理发布]命令

(2)选择要创建出版物的数据库,然后单击[创建发布]

(3)在[创建发布向导]的提示对话框中单击[下一步]系统就会d出一个对话框。对话框上的内容是复制的三个类型。我们现在选第一个也就是默认的快照发布(其他两个大家可以去看看帮助)

(4)单击[下一步]系统要求指定可以订阅该发布的数据库服务器类型,

SQLSERVER答应在不同的数据库如 orACLE或ACCESS之间进行数据复制。

但是在这里我们选择运行 "SQL SERVER 2000 "的数据库服务器

(5)单击[下一步]系统就d出一个定义文章的对话框也就是选择要出版的表

注重: 假如前面选择了事务发布 则再这一步中只能选择带有主键的表

(6)选择发布名称和描述

(7)自定义发布属性 向导提供的选择:

是 我将自定义数据筛选,启用匿名订阅和或其他自定义属性

否 根据指定方式创建发布 (建议采用自定义的方式)

(8)[下一步] 选择筛选发布的方式

(9)[下一步] 可以选择是否答应匿名订阅

1)假如选择署名订阅,则需要在发布服务器上添加订阅服务器

方法: [工具]-> [复制]-> [配置发布、订阅服务器和分发的属性]-> [订阅服务器] 中添加

否则在订阅服务器上请求订阅时会出现的提示:改发布不答应匿名订阅

假如仍然需要匿名订阅则用以下解决办法

[企业治理器]-> [复制]-> [发布内容]-> [属性]-> [订阅选项] 选择答应匿名请求订阅

2)假如选择匿名订阅,则配置订阅服务器时不会出现以上提示

(10)[下一步] 设置快照 代理程序调度

(11)[下一步] 完成配置

当完成出版物的创建后创建出版物的数据库也就变成了一个共享数据库。

更具体的你可以看这里:

>

这个算是最基本的数据库 *** 作了,方案有很多种,常见的如:etl工具或使用dblink,etl工具比较方便,开源的产品有kettle,pdi等,这些产品可以满足大多数的数据库 *** 作,但是如果数据量级大,转换复杂的话,他们的性能有待考验,不过你说的只是简单的同步,这个很容易。使用dblink也是比较常见的,但是需要设置一定机制,避免安全隐患,首先需要再A地数据库上配置B地数据库的远程连接地址,在tnsnamesora文件中配置即可,然后在A地数据库上建立一个dblink,如:create database link b_to_a_link connect to xxx(user) identified by fundo using xxx(上面建立的连接);然后就可以 *** 作了。具体使用dblink的内容,lz到网上找一下,资料很多。先这样,忘采纳。

而不记录

select

这样的 *** 作。因此MySQL

数据库怎么同步

实现两个

Mysql数据库

之间同步

同步原理

MySQL

为了实现replication

必须打开bin-log

项,也是打开二进制的MySQL

日志记录选项。MySQL

的bin

log

进制日志,可以记录所有影响到

数据库表

中存储记录内容的sql

*** 作,如insert

/

update

/

delete

*** 作

以上就是关于如何将一个数据库同步到另一个数据库全部的内容,包括:如何将一个数据库同步到另一个数据库、多数据库之间同步数据怎么做、如何实现两个数据库的同步等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9399766.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存