请问sql中如何在两个数据库间数据转移

请问sql中如何在两个数据库间数据转移,第1张

必须是AB数据库在同一个服务器上:

insertintoBtable(col2)selectcol1fromAtable

如果没在同一个服务器上,如服务器M和N,就这样:

insertintoNBDBOtable(col2)selectcol1fromMADBOtable;

服务器转移有两个含义:

物理服务器从物理地址,比如A机房搬到B机房

需要和原有机房确认无纠纷无遗留问题,然后和新机房办理入驻手续。

最终通过物流或汽车运输把服务器转移到新机房。

网站服务器的虚拟搬迁,就是转移服务商,从原来的服务商处转移到其他服务商接受服务。 *** 作流程:

1原网站程序数据,打包备份,源文件压缩最好。

2所有资料转移到新网站服务器。

3新服务器安装程序,设置数据库,重新运营。

服务介绍

数据搬迁的目标是在最少存储中断服务时间内完成数据在两个存储设备之间快速有序迁移,并保证数据的完整性、可用性、一致性。

客户面临的挑战

主要使用场景有:根据正式系统搭建测试环境、从内网复制到外网、数据库服务器硬件升级等。根据需要迁移的数据量大小、系统架构,可采取不同的迁移方法。

数据搬迁服务特点

数据核对
数据核对采用数据分级过滤的方式,数据分级过滤就是把数据按照不同的数据级别进行分类整理进入不同的中间数据库中。本系统中我们把数据分为三个级别:废弃数据、待调整数据、可转换数据。废弃数据就是该部分数据的存在对系统资源造成浪费的数据,并且会影响以后系统的运行,比如重复的个人基本信息、重复的帐户信息、重复缴费信息。待调整数据就是该部分数据严重影响新系统的运行,必须进行人工调整后,方可进行数据转换。可转换数据就是该部分数据不需做任何处理,基本满足数据转换的要求或者是该部分数据新系统建议调整,但是不影响系统的运行,可以等新系统运行后再调整,这样可以为数据转换工作节省很多时间。

数据整理
数据整理就是将原系统数据整理为系统转换程序能够识别的数据。数据整理大致分为两个阶段:第一阶段就是将不同类型来源数据采集备份到统一的数据库中;第二阶段就是将原始数据进行整理,按照要求分类进入不同的中间数据库,为数据转换提供中间数据。

确保原始数据的完整性
在进行数据整理之间,我们先需要对原始采集数据进行备份。备份的目的有两个:一个是统一数据库,便于数据转换,另一个就是为以后数据追根溯源提供参考依据。

借助数据整理相关工具
数据整理非常艰巨,涉及的数据量很大,通过人工检查是不可能完成的,因此必须编写相关的数据整理工具完成数据整理。包括数据整理工具和数据纠错工具。数据整理工具负责将原始备份数据库中的数据进行分类进入不同的中间数据库;数据纠错工具负责提供友好、方便的工具界面供用户方相关人员完善和纠正错误数据。

利用中间库作为桥梁
由于原系统和新系统的数据库结构可能不一样,所以采用中间库作为衔接新旧系统数据的重要桥梁,对于建立新旧系统的对照关系很重要。一旦业务人员对新系统中某项转换数据存在疑问的情况下,就可以通过中间库的关联,顺利找出原数据。

UCACHE灾备云是一种能帮您轻松实现服务器数据迁移的云服务产品,能满足您要求的所有应用场景,满足公有云、虚拟环境、物理环境以及私有云和混合云状态下的数据级、应用级的定时备份、差异化备份、可选择性内容恢复的任务。

UCache灾备云复杂的IT环境应用,比如:支持SAP HANA、Hadoop、KVM、Mysql、VMware、IBM DP2、Oracle等场景的数据备份/恢复、及数据迁移使用。支持海量核心业务数据的闪电恢复,极大缩短恢复所需时间,保障用户可用性数据达到秒级RTO、分钟级RTO体验。(目前UCache云灾备100G免费使用,数据压缩、重删比例:可达到7:1,实际700G的数据意思是经过加密切块压缩,及并行重删备份后实际在UCache灾备云平台上显示的占用容易仅为100G。)

1、如果两台服务器,存在的表结构什么的都一样,可以使用冷备份全库,把所有的数据文件、日志、归档日志等全拷贝过去(如果是linux系统,要使用oracle用户 *** 作,否则会产生文件权限问题)
2、RMAN的异机恢复
3、EXPDP/IMPDP 全库导出、全库导入(注意版本问题,低往高可以,反之不可以)

sqlser为例
首先网络是要通的,然后要建立 服务器对象---连接服务器 到目标服务器的数据库
然后 你执行sql时候 ,在表明前写上IP,数据库,拥有者,表名的层级结构。举个例子
select from [1023xxxxx][hr][dbo][employee]

1、用dump命令备份数据库。
# mysqldump -u root -p dbfile > dbfilesql
2、用rsync从新服务器获得备份的文件(SCP或WGET也可以)。
# rsync -avr root@myolddbserver:/home/mydumpfolder/dbfilesql
3、登陆新服务器的mysql客户端。
# mysql -u root -p
4 建立数据库。
mysql> create database dbfile;
5 选择新数据库;
mysql> use dbfile;
6 加载数据;
mysql> source dbfilesql
或者
在Mysql程序中有我自己的一个数据库共5张表,里边数据不算太多。我现在想把他们全部弄到另一台电脑中去,该怎么弄,如果不用其它的软件工具,只用Mysql自已的程序不知可否?
注:不用考虑 *** 作系统。
---------------------------------------------------------------
在dos命令提示符下使用mysqldump命令进行备份
如下:
C:\Documents and Settings\Administrator>mysqldump yinshi >c:\\backuptxt -uroot
-p12142022
说明:yinshi是我的数据库名,里面有5张表; c:\\backuptxt 是我备份出来文件名和路径;
-u,-p参数后面跟的分别是用户名和密码
将你备份出来的文件我这里是backuptxt拷贝到另一台机上,再在dos命令提示符下用mysql命令,进行恢复,如下:
C:\Documents and Settings\Administrator>mysql < c:\\backuptxt -uroot -p12142022
or
mysql>source backuptxt;(这里backuptxt在放在data目录下)
---------------------------------------------------------------
如果另一台机器上也安装了mysql,可以直接导入
C:\mysql\bin>mysqldump -h172206250 -udeveloper -p123456 --opt server_databasename | mysql -hlocalhost -uroot -C obj_databasename
172206250源服务器ip
developer源服务器连接用户名
---------------------------------------------------------------
有两种办法。
1、在B机器上装mysql。
将A机器上的mysql/data下的你的数据库目录整个拷贝下来。
将B机器上的mysql服务停止。
找到B机器上的mysql/data目录,将你拷贝的目录粘贴进去,然后启动mysql服务就可以了。
2、使用SQL语句备份和恢复
你可以使用SELECT INTO OUTFILE语句备份数据,并用LOAD DATA INFILE语句恢复数据。这种方法只能导出数据的内容,不包括表的结构,如果表的结构文件损坏,你必须要先恢复原来的表的结构。
语法:
SELECT INTO {OUTFILE | DUMPFILE} ’file_name’ FROM tbl_name
LOAD DATA [LOW_PRIORITY] [LOCAL] INFILE ’file_nametxt’ [REPLACE | IGNORE]
INTO TABLE tbl_name
SELECT INTO OUTFILE ’file_name’

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


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

原文地址: http://outofmemory.cn/zz/12995022.html

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

发表评论

登录后才能评论

评论列表(0条)

保存