如何把sqlserver数据迁移到mysql数据库及需要注意事项

如何把sqlserver数据迁移到mysql数据库及需要注意事项,第1张

在项目开发中,有时由于项目开始时候使用的数据是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Server的数据迁移到MySQL。下面是小编日常整理的一种sqlserver数据库迁移的方法。

一、SQL Server中常用数据类型与MySQL不同的地方

二、将SQL Server数据迁移到MySQL需要注意的一些问题

1、唯一索引的不同,sql server的唯一索引的字段只能允许存在一个null值,而mysql,一直oracle中唯一索引对应的字段都允许存在多个null值。

2、存储过程的语法存在很大的不同,存储过程的迁移是最麻烦的,需要仔细修改。

3、程序中部分写的SQL语句由于语法的不同也要相应的修改。

三、将SQL Server数据迁移到MySQL的常见方法

1、使用 SQLyog 迁移

优点

该迁移方法很简单,灵活,迁移时,可以进行字段的修改,比如在sql server中原来是datetime,然后迁移到mysql时你可以配置成timestamp;成功率很高;

缺点

迁移很慢!这是该方法最大的缺点,如果表的数据量达到几十万行,甚至几百万行,你会发现迁移起来真的很慢。明显比其他迁移方法慢很多。

2、使用 powerdesigner 和 sql server 的脚本导出功能 来迁移

(1)、该方法首先使用 powerdesigner,对sql

server数据库,进行逆向工程,得到E-R图,然后生成MySQL的建表语句。完成数据库结构的迁移;当然表结构的迁移,不使用

powerdesigner一样也是可以的。比如我将表结构导出成语句,然后手动进行修改,然后在MySQL中运行,也是一样的;

(2)、然后使用 sql server的工具 SSMS,将sql server数据库中的表的数据,导出成insert语句,每个表对应导出一个文件,然后对文件进行一些处理,然后导入到MySQL数据库中。

3、使用Oracle MySQL Server 官方的 workbeach 工具进行迁移

(1)、在workbench 连接sql server时,用户需要有 view any database 的权限。不然workbench无法访问sql server的表结构的元数据,从而无法进行迁移。

(2)、还有使用 Navicat 来进行迁移的方法,方法和 SQLyog 是类似的。

数据迁移(又称分级存储管理,hierarchical storage management,hsm)是一种将离线存储与在线存储融合的技术。它将高速、高容量的非在线存储设备作为磁盘设备的下一级设备,然后将磁盘中常用的 数据按指定的策略自动迁移到磁带库(简称带库)等二级大容量存储设备上。当需要使用这些数据时,分级存储系统会自动将这些数据从下一级存储设备调回到上一 级磁盘上。对于用户来说,上述数据迁移 *** 作完全是透明的,只是在访问磁盘的速度上略有怠慢,而在逻辑磁盘的容量上明显感觉大大提高了。

数据迁移是将很少使用或不用的文件移到辅助存储系统(如磁带或光盘)的存档过程。这些文件通常是需在未来任何时间可进行方便访问的图像文档或历史信息。迁移工作与备份策略相结合,并且仍要求定期备份。还包括电脑数据迁移,迁移旧电脑(旧系统)中的数据、应用程序、个性化设置等到新电脑(新系统),在系统升级后很有必要。

�0�2下面是处理过程。1、在目标数据库,以system登录后,执行ALTER TABLESPACE TS-D RENAME TO TS-S;2、再执行imp命令;3、执行完成后,执行ALTER TABLESPACE TS-S RENAME TO TS-D;�0�2附1:单个移动表或索引到新的表空间另附,把表或索引从一个表空间移动到另一个表空间的脚本,前提是以该表或索引的owner用户登录。ALTER INDEX SYS_C007673 REBUILD TABLESPACE zjkfq;ALTER TABLE website MOVE TABLESPACE zjkfq;�0�2附2:批量移动表或索引到新的表空间,对于大表,速度较慢将表批量移动到另一个表空间1)表执行以下sql生成批量的sql语句,控制台结果输出为sql语句select 'alter table '||table_name||' MOVE TABLESPACE ZJMZ;' from user_tables;2)复制上一步生成的输出(sql格式),执行即可。将索引批量移动到另一个表空间1)执行以下sql生成批量的sql语句,2)复制上一步生成的输出(sql格式),执行即可。

sqlserver数据库迁移的几种方式

方法一:将\Microsoft SQL Server\MSSQL\DATA文件夹中的syntt_datamdf和syntt_logldf文件复制到安装有数据库服务器的机器的文件夹中(可以是本机的\Microsoft SQL Server\MSSQL\DATA\文件夹),然后进入企业管理器。

右键点击“数据库”,在浮动菜单中选择“所有任务”中的“附加数据库”。在随后的提示页面中选择刚才复制过来的MDF文件,如果想指定数据库的所有者,在“指定数据库所有者”选择框中选择你认为合适的用户。

如果想修改数据库的名字,可在“附加为”框中输入新的数据库名字(对本数据库,不建议这么做,因为这样的话,整个程序中所有涉及数据库连接的代码都要随之修改,那将是不必要的劳动)。在进行完上述的工作之后,直接点击“确定”就可进行数据的SQL Server 数据转移转移。

方法二:(方法一)是针对数据库中没有本数据库的服务器,如果数据库中已经建有与该数据库名称相同的数据库,则直接按照备份数据库的恢复 *** 作就可完成数据的SQL Server 数据转移转移。方法如下所述:这种方法首先要在本机上建立一个备份文件,具体 *** 作介绍如下:1、 在企业管理器中打开服务器组以及指定的服务器。

然后右键点击需要备份的数据库在这里是syntt,在浮动菜单中选择“所有任务”菜单下的“备份数据库”,打开数据备份对话框。2、 选择“常规”选项卡,在名称对话框中输入本分 名称,在“描述”文本框中输入备份集描述文本信息。

在“备份”组下选择备份 *** 作类型,共有以下几种:数据库—完全:完整备份数据库。数据库—差异:增量备份数据库。

事务日志:事务日志备份。文件和文件组:数据库文件和文件组备份。

在“目的”组中指定备份设备或者备份文件名称,选择“添加”按钮添加备份设备或者文件;“删除”按钮用来删除备份设备和备份文件;选择“内容”按钮,则可查看已经存储在备份设备或文件中的备份信息。在“重写”组中有两种选项:追加到媒体:选择该选项,表示需要保存备份设备或文件中以前的备份数据。

重写现有媒体:要求本次被分数据覆盖以前的备份数据,从而节省存储空间。在“调度”组中,安排数据备份的时间。

用来指定数据库备份在将来的某个时间执行3、 “选项”选项卡,设置数据库备份 *** 作选项。其中的内容主要有以下几项:完成后验证备份:要求在备份结束时对备份数据进行校验。

备份后d出磁带:只对磁带备份设备有效,他要求在备份结束时自动卸带。删除事务日志中不活动的条目:要求在事务日志备份结束时删除事务日志中的已经完成的事务日志条目。

检查媒体集名称和备份集到期时间:要求在备份前检查介质集名称和原备份集中备份SQL Server 数据转移的有效期,以防止意外重写破坏原来的备份数据。备份集到期时间:设置备份集的有效期。

初始化并标识媒体:只对磁带设备有效。选择该选项后,SQL Server在备份时将Microsoft定义的磁带格式信息写入介质的开始部分。

此时,可以在“媒体集名称”和“媒体集描述”文本框中定义介质集名称和介质描述信息。4、 在进行完上述的 *** 作之后,剩下的任务就是点击“确定”,使系统开始进行数据库的备份 *** 作。

到目前为止,我们已经有了一个数据库的备份文件,剩下的任务就是怎么将这个文件还原至另外的数据库服务器中了。1、因为使用企业管理器进行数据库的恢复只能是在本机进行,所以在进行数据还原之前,必须将刚才所作的备份文件复制到本机,然后在本机选择“syntt”数据库,右键点击它,在显示出来的浮动菜单中选择“所有任务”下的“还原数据库”。

2、在还原数据库对话框中,在“常规”选项卡中的选择“从设备”的数据恢复方法,通过“选择设备”按钮选择刚才复制过来的文件。“常规”选项卡与“选项”选项卡中的具体内容如下所示:“常规”选项卡:数据库恢复方法:包括“数据库”、“文件组或文件”、“从设备”三种恢复方式。

“数据库”方式:选择该项时,从“显示数据库备份”列表中选择需要显示的指定数据库备份 ,从“要还原的第一个备份”列表框中选择首先使用哪一个备份集恢复数据库;“文件组或文件”:选择它时,数据库恢复部件列出指定数据库备份 中备份的数据库文件或文件组,管理员可从这些备份文件中选择恢复那个数据库文件或文件组;“从设备”:选择它时,管理员选择恢复数据库或其日志所使用的备份设备,之后再从该备份设备中选择使用哪一次备份中的数据恢复数据库或其日志。3、点击“确定”,完成恢复 *** 作。

非原创。

sql server中有行迁移现象吗

有的,和oracle一样,SQL中也有行迁移行迁移记包含forwarding_stub 和forwarded 两种类型。

这两类记录是因为数据页不能容纳更新后的记录而产生的,不是因为记录长度超过8060B引起的,所以这两类记录依然是行内记录,与行溢出记录是不同的。这两种记录总是成对出现的,当出现forwarding_stub时,在别的页面中一定有与之对应的一条forwarded记录。

forwarding记录也叫forwarding_stub记录,记录头标志为0x04,它是一条完整的数据记录。虽然结构看起来特殊,但还是符合一般记录的结构,记录中主要内容就是在行中用8字节保存了指向移出后的记录的位置指针。

forwarded 记录,有时直接叫做迁移记录。记录头部标志为0x32 它也是一条完整记录,格式跟一般记录略有差异,大体结构还是相同的。

这里是存储了溢出前的那条记录的真实数据。 这两种记录的具体存储结构比较简单和直观,其逻辑结构会在下面的实例列举中结合具体数据记录来分析说明。

测试这种的方法太长了,不在这里具体列出,你可以到51CTO里面找一下,搜索SQL行迁移有具体的测试方法。

sql server中有行迁移现象吗

有的,和oracle一样,SQL中也有行迁移

行迁移记包含forwarding_stub 和forwarded 两种类型。这两类记录是因为数据页不能容纳更新后的记录而产生的,不是因为记录长度超过8060B引起的,所以这两类记录依然是行内记录,与行溢出记录是不同的。

这两种记录总是成对出现的,当出现forwarding_stub时,在别的页面中一定有与之对应的一条forwarded记录。

forwarding记录也叫forwarding_stub记录,记录头标志为0x04,它是一条完整的数据记录。虽然结构看起来特殊,但还是符合一般记录的结构,记录中主要内容就是在行中用8字节保存了指向移出后的记录的位置指针。

forwarded 记录,有时直接叫做迁移记录。记录头部标志为0x32 它也是一条完整记录,格式跟一般记录略有差异,大体结构还是相同的。这里是存储了溢出前的那条记录的真实数据。

这两种记录的具体存储结构比较简单和直观,其逻辑结构会在下面的实例列举中结合具体数据记录来分析说明。

测试这种的方法太长了,不在这里具体列出,你可以到51CTO里面找一下,搜索SQL行迁移有具体的测试方法

SQL数据库如何自动备份和恢复

一、备份数据库

1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server

2、SQL Server组-->;双击打开你的服务器-->;双击打开数据库目录

3、选择你的数据库名称(如论坛数据库Forum)-->;然后点上面菜单中的工具-->;选择备份数据库

4、备份选项选择完全备份,目的中的备份到如果原来有路径和名称则选中名称点删除,然后点添加,如果原来没有路径和名称则直接选择添加,接着指定路径和文件名,指定后点确定返回备份窗口,接着点确定进行备份

二、还原数据库

1、打开SQL企业管理器,在控制台根目录中依次点开Microsoft SQL Server

2、SQL Server组-->;双击打开你的服务器-->;点图标栏的新建数据库图标,新建数据库的名字自行取

3、点击新建好的数据库名称-->;然后点上面菜单中的工具-->;选择恢复数据库

4、在d出来的窗口中的还原选项中选择从设备-->;点选择设备-->;点添加-->;然后选择你的备份文件名-->;添加后点确定返回,这时候设备栏应该出现您刚才选择的数据库备份文件名,备份号默认为1(如果您对同一个文件做过多次备份,可以点击备份号旁边的查看内容,在复选框中选择最新的一次备份后点确定)-->;然后点击上方常规旁边的选项按钮

5、在出现的窗口中选择在现有数据库上强制还原,以及在恢复完成状态中选择使数据库可以继续运行但无法还原其它事务日志的选项。在窗口的中间部位的将数据库文件还原为这里要按照你SQL的安装进行设置(也可以指定自己的目录),逻辑文件名不需要改动,移至物理文件名要根据你所恢复的机器情况做改动,如您的SQL数据库装在D:\Program Files\Microsoft SQL Server\MSSQL\Data,那么就按照您恢复机器的目录进行相关改动改动,并且最后的文件名最好改成您当前的数据库名(如原来是zw0001mdf,现在的数据库是zw0002,就改成zw0002mdf),日志和数据文件都要按照这样的方式做相关的改动(日志的文件名是ldf结尾的),这里的恢复目录您可以自由设置,前提是该目录必须存在(如您可以指定d:\sqldata\zw0002mdf或者d:\sqldata\zw0002ldf),否则恢复将报错

6、修改完成后,点击下面的确定进行恢复,这时会出现一个进度条,提示恢复的进度,恢复完成后系统会自动提示成功,如中间提示报错,请记录下相关的错误内容并询问对SQL *** 作比较熟悉的人员,一般的错误无非是目录错误或者文件名重复或者文件名错误或者空间不够或者数据库正在使用中的错误,数据库正在使用的错误您可以尝试关闭所有关于SQL窗口然后重新打开进行恢复 *** 作,如果还提示正在使用的错误可以将SQL服务停止然后重起看看,至于上述其它的错误一般都能按照错误内容做相应改动后即可恢复

如何设置才能使sql每半小时备份一次

SQL Server数据库备份工具 22

数据库使用过程中历史表记录的增多数据库的增大导致以下问题的出现

1 数据库性能大幅下降

2 报表生成等要求数据库大数据量 *** 作时导致数据库响应短暂停止甚至完全停止响应

3 数据库备份或同步等数据库维护时间加长

本程序为绿色软件无需安装, 正确配置参数后即可运行,通过使用备份计划(可配置)定时将数据库中历史表的历史记录转移到备份机器上,减小生产机运行数据库,转移报表生成等大幅占用数据库 *** 作到备机以减小生产机压力

实现说明:

1 增加一台备份机器

2 备机上建立一个还原库用以还原当前数据库的备份和一个历史库用以保存历史数据

3 根据调度计划定时将当前生产机数据库备份到备机

4 还原备机还原库并将还原库中新增或更新数据导入备机历史库,目的为尽量少的占用当前数据库而使用备机资源

5 删除生产机数据库中已成功转移的历史数据

6 删除使用过的文件和清理数据库日志,减少磁盘占用

特点:

1 所有参数可配置

2 占用生产机数据库资源少, 仅备份 *** 作(历史表数据转移后备份时间大大减短且大多数情况下仅进行差异备份)

3 *** 作速度快,且费时 *** 作部分都基本在备机,不占用生产机资源

4 自动备份当前数据库日志和截断备份机器上数据库日志

5 自动删除使用过的文件,减少磁盘空间占用

6 整个 *** 作过程提供详细错误日志以方便维护

7 与SQL SERVER自带的发布订阅功能不同,历史数据只在备机上保留一份(如需备份备机历史数据请自行解决或定制此需求),生产机数据库只保留有生产必须的数据量即可,可尽可能的减少当前生产机数据库的数据量减少资源占用,将历史数据转移到备机上

8 无需更改现有系统

9 和其他备份程序的区别:主要针对历史数据转移需求,数据库备份只是一个前提,转移历史数据减小生产机数据库压力才是此程序的实质

升级说明:

1 去除所有标识部分,供公共使用

2 延长一次运行时间限制到30天

附:

1 如果有意请联系public_release@sina

2 可提供源代码(vc)和实现其他定制需求

3 此共享发布程序每次运行限制为30天(可放开),请不要相信其他的所谓破解版,实为其他非善意软件的安装程序包,如果不想有一次运行30天的限制,使用额外的程序在29天时关闭程序后重新启动即可

如何查询SQL Server备份还原历史记录

SQL Server在msdb数据中维护了一系列表,用来存储执行所有备份和还原的细节信息。即使你正在使用第三方的备份应用程序,只要这个应用程序使用SQL Server的虚拟设备接口(Virtual Device Interface---VDI)来执行备份和还原执行,那么执行细节依然被存储在这一系列表中。

存储细节的表包括:

backupset

backupfile

backupfilegroup (SQL Server 2005 upwards)

backupmediaset

backupmediafamily

restorehistory

restorefile

restorefilegroup

logmarkhistory

suspect_pages (SQL Server 2005 upwards)

你可以在Books Online里面找到上面这些表的具体说明。

下面这个脚本可以帮你找出每个数据库近期的备份信息:

SELECT bname, atype, MAX(abackup_finish_date) lastbackup

FROM msdbbackupset a

INNER JOIN mastersysdatabases b ON adatabase_name COLLATE DATABASE_DEFAULT = bname COLLATE DATABASE_DEFAULT

GROUP BY bname, atype

ORDER BY bname, atype

指定数据库最后20条事务日志备份信息:

SELECT TOP 20 bphysical_device_name, abackup_start_date, afirst_lsn, auser_name FROM msdbbackupset a

INNER JOIN msdbbackupmediafamily b ON amedia_set_id = bmedia_set_id

WHERE atype = 'L'

ORDER BY abackup_finish_date DESC

指定时间段的事务日志备份信息:

SELECT bphysical_device_name, abackup_set_id, bfamily_sequence_number, aposition, abackup_start_date, abackup_finish_date

FROM msdbbackupset a

INNER JOIN msdbbackupmediafamily b ON amedia_set_id = bmedia_set_id

WHERE adatabase_name = 'AdventureWorks'

AND atype = 'L'

AND abackup_start_date > '10-Jan-2007'

AND abackup_finish_date

以上就是关于如何把sqlserver数据迁移到mysql数据库及需要注意事项全部的内容,包括:如何把sqlserver数据迁移到mysql数据库及需要注意事项、如何实现数据迁移、利用EXP/IMP进行数据迁移,如何转换表空间 *** 作(完整版)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存