当前位置:首页 » 数据仓库 » 不同服务器数据库之间的数据操作
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

不同服务器数据库之间的数据操作

发布时间: 2023-03-01 21:07:03

1. 如何在两台服务器之间转移数据库

sql Server 复制:事务发布
配置发布服务器,
快照发布:隔一段时间会覆盖订阅服务器的数据库,在订阅服务器上做的修改同样被覆盖;
事务发布:是一种接近实时地从源到目标分发数据的方法;
具有可更新订阅的事务发布:订阅服务器可更新发布服务器的数据;
合并发布:发布服务器和订阅服务器的更新都会同步到对方,注意ID在合并发布上的冲突
1. 在SQL SERVER下实现发布服务器和订阅服务器的通信正常(即可以互访),打开1433端口,在防火墙中设置入站规则;
2. 发布服务器与订阅服务器的SQL Server Agent代理帐号必须设置的一样,否则不能互访;
3. 如果你希望在复制的过程中一并复制非聚集索引,可以对发布属性-项目进行如下设置,修改完之后需要重新生成快照;

2. 如何实现同一台mysql服务器中不同数据库之间的数据同步

1.主上修改my.cnf文件:
server-id=1
log-bin=mysql-bin
2.从上修改配置文件 my.cnf
server-id=2
relay-log=relay-bin
read-only =1
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
#replicate-wild-do-table = tt.admin
replicate-wild-do-table = my_db.stu // 所要同步的数据库的单个表
3. 创建 同步的用户(主上)
grant replication client,replication slave on *.* to rep@'10.41.50.105' identified by 'root';

4.同步到主库(在从上操作)
change master to master_host='10.41.50.80',master_user='rep',master_password='root';
5.在从上验证:
show slave status\G;

主从同步某些表

3. 如何实现两个异地数据库之间的数据传输

1. SQLSERVER服务器上面安装oracle客户端,配置服务命名(假设为 test)
2. 在SQLSERVER服务器上面建立链接服务器,脚本如下

SQL code?
SQL code-- Adding linked server:

exec sp_addlinkedserver @server = 'test' ,
@srvproct = 'ORACLE',
@provider = 'MSDAORA',
@datasrc = 'test'
-- Adding linked server login:
exec sp_addlinkedsrvlogin @useself='false ', @rmtsrvname = 'test',
@rmtuser = 'user', --数据库用户
@rmtpassword = 'password' --密码
3. 建立一个作业,通过作业调度存储过程,存储过程使用类似的语句将oracle的数据插入到sqlserver表中

SQL code?
insert into sqlserver表 select * from test..oracle表名
4. 如果要球ORACLE数据是实时增加的,并且ORACLE记录上有递增的字段,可以在SQLSERVER上面建立一个表记录上次插入的id,然后下次可以从上次的ID+1开始继续插入

SQL code?
insert into sqlserver表 select * from test..oracle表名 where id>@id
5. 防止sqlserver同步的时候oracle仍在不断的插入,每次要取一个结束ID

SQL code?
select @endid=max(id) from test..oracle表名.

4. 数据库怎么实现数据同步

不同服务器数据库之间的数据操作 --创建链接服务器 exec sp_addlinkedserver 'ITSV ', '', 'SQLOLEDB ', '远程服务器名或ip地址 'exec sp_addlinkedsrvlogin 'ITSV ', 'false ',null, '用户名 ', '密码'--查询示例 select*from ITSV.数据库名.dbo.表名 --导入示例 select*into 表from ITSV.数据库名.dbo.表名 --以后不再使用时删除链接服务器 exec sp_dropserver 'ITSV ', 'droplogins '--连接远程/局域网数据(openrowset/openquery/opendatasource) --1、openrowset --查询示例 select*fromopenrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码',数据库名.dbo.表名) --生成本地表 select*into 表fromopenrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码',数据库名.dbo.表名) --把本地表导入远程表 insertopenrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码',数据库名.dbo.表名) select*from 本地表 --更新本地表 update b set b.列A=a.列A fromopenrowset( 'SQLOLEDB ', 'sql服务器名 '; '用户名 '; '密码',数据库名.dbo.表名)as a innerjoin 本地表 b on a.column1=b.column1 --openquery用法需要创建一个连接 --首先创建一个连接创建链接服务器 exec sp_addlinkedserver 'ITSV ', '', 'SQLOLEDB ', '远程服务器名或ip地址 '--查询select*FROMopenquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ') --把本地表导入远程表 insertopenquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ') select*from 本地表 --更新本地表 update b set b.列B=a.列B FROMopenquery(ITSV, 'SELECT * FROM 数据库.dbo.表名 ') as a innerjoin 本地表 b on a.列A=b.列A --3、opendatasource/openrowset SELECT*FROMopendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ' ).test.dbo.roy_ta --把本地表导入远程表 insertopendatasource( 'SQLOLEDB ', 'Data Source=ip/ServerName;User ID=登陆名;Password=密码 ').数据库.dbo.表名 select*fromSQL code 用强制订阅实现数据库同步操作 大量和批量的数据可以用数据库的同步机制处理: // 说明:为方便操作,所有操作均在发布服务器(分发服务器)上操作,并使用推模式在客户机器使用强制订阅方式。 有疑问联系作者:[email protected] 测试通过 //--1:环境服务器环境: 机器名称: ZehuaDb 操作系统:Windows 2000 Server 数据库版本:SQL 2000 Server 个人版 客户端机器名称:Zlp 操作系统:Windows 2000 Server 数据库版本:SQL 2000 Server 个人版 --2:建用户帐号在服务器端建立域用户帐号我的电脑管理->本地用户和组->用户->建立UserName:zlp UserPwd:zlp --3:重新启动服务器MSSQLServer我的电脑->控制面版->管理工具->服务->MSSQLServer 服务 (更改为:域用户帐号,我们新建的zlp用户 ./zlp,密码:zlp) --4:安装分发服务器A:配置分发服务器工具->复制->配置发布、订阅服务器和分发->下一步->下一步(所有的均采用默认配置) B:配置发布服务器工具->复制->创建和管理发布->选择要发布的数据库(SZ)->下一步->快照发布->下一步-> 选择要发布的内容->下一步->下一步->下一步->完成C:强制配置订阅服务器(推模式,拉模式与此雷同) 工具->复制->配置发布、订阅服务器和分发->订阅服务器->新建->SQL Server数据库->输入客户端服务器名称(ZLP)->使用SQL Server 身份验证(sa,空密码)->确定->应用->确定D:初始化订阅复制监视器->发布服务器(ZEHUADB)->双击订阅->强制新建->下一步->选择启用的订阅服务器->ZLP-> 下一步->下一步->下一步->下一步->完成--5:测试配置是否成功复制监视器->发布服务器(ZEHUADB)->双击SZ:SZ->点状态->点立即运行代理程序查看:复制监视器->发布服务器(ZEHUADB)->SZ:SZ->选择ZLP:SZ(类型强制)->鼠标右键->启动同步处理如果没有错误标志(红色叉),恭喜您配置成功 --6:测试数据 --在服务器执行:选择一个表,执行如下SQL insertinto WQ_NEWSGROUP_S select'测试成功',5 复制监视器->发布服务器(ZEHUADB)->SZ:SZ->快照->启动代理程序 ->ZLP:SZ(强制)->启动同步处理 去查看同步的 WQ_NEWSGROUP_S 是否插入了一条新的记录 测试完毕,通过。

5. 如何把server中的两个不同的数据库的表如何转移

我不是很理解你所说的话,但大致就以下几种情况: 1、本机器上的不同数据库之间的表,并目标数据库中不存在此表名称。那么这样做: 在选择要倒出的数据库的表上(数据库上都可以)右键\所有任务\倒出数据\下一步\下一步.在这里的对话框中的下方有一个选择目标数据库的下拉菜单,它包含了所有本机器的数据库系统,选择你要的数据库.然后直接下一步直到运行为止. 如果目标数据库中有要倒入的表名称,方法一是修改目标表名,二是直接倒,方法一是看具体应用,方法而是在原表数据基础上进行追加数据,不过注意:若主外键冲突或某些约束情况,此表倒入操作将不能倒入任何一条数据。若多表的同时倒入,出现上述情况,出现冲突的表将不能倒入任何数据,未出现冲突的可以正常倒入。 2、本两个机器之间的数据转移,那么前提是目标机器的数据库系统在本机器得到了注册的(关于注册这里就不多说了,任何书籍上都有),在操作中大部分和上述工作一样,就在选择数据库的对话框中间有一个选择服务器,再此输入目标服务器的服务器号码,并使用 SQL Server用户名和密码(这里的用户名和密码是目标服务器的)。若目标服务器中不存在自己想要的数据库名称,可以在数据库选择的下拉列表中选择“新建”,建立一个目标数据库就可以执行下面的操作了。 3、不同数据源之间的操作,操作同上,不过要在目标的对话框中上方“目的”下拉列表中选择一个数据源(比如:ACCESS、ORACLE),如果没有这个数据源就可以建立一个新的数据源不测试是否通过。其他操作同上。 4、向EXCEL、txt等倒出数据,其实它也归属于第3种数据转移,只不过这里区别大所以独立出来,这些适合于一些答应报表的直接生成。操作方法和3相同。不过不同数据源之间的数据转移很多可能是不可以完全成功的(此情况出现在有多个表并且它们之间有很多主外键关系的情况),主要是因为SQL Server在处理倒入倒出的时候没有按照主次关系,因为只考虑数据转移,然而,在数据进入 SQL Server 的时候就有部分表的数据进入就并不一定按照主次关系进入,导致他们的倒入违反主外键约束。像这样的情况我一般倒两次,第一次至少主键表可以进入,第二次,主键表的信息冲突就不改变信息了,关系表的信息自然也进去了,但这样的情况不是对于复杂的关系模式,如果关系模式很复杂,就没有那么简单了。我一般有备份或程序来实现转移。