仅有ldf文件是还原不来的,如果他给你的是mdf文件,你用附加功能。如果给你的是他备份的bak文件,你用还原功能。一般2008还原2005或2000的备份文件不会有问题,但在2000上还原2005或2008的备份文件的时候会出问题,即sqlserver是高版本兼容低版本
在项目开发中,有时由于项目开始时候使用的数据库是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 是类似的。
一、迁移Database
Schema。
首先使用Sybase
Powerdesigner的逆向工程功能,逆向出SQL
Server数据库的物理模型。具体 *** 作是在Powerdesigner中选择“File”,“Reverse
Engine”再选择Database,将DBMS选择为SQL
Server
然后选择数据源,也就是要具体连接到的SQL
Server数据库服务器,然后选择要逆向的数据库名,比如选中“WSS_Content_80”
单击确定即可生成物理模型图,然后单击“Database”菜单下的Change
Current
DBMS修改当前的DBMS,改为MySQL
50,单击确定后即可生成MySQL的物理模型
然后单击“Database”菜单下的“Generate
Database”生成数据库脚本文件。
接下来手工修改下生成的脚本的内容。将其中的dbo全部替换成空,将create
user这样的语句删除掉。
如果有些字符在MySQL中是关键字,那么必须使用“`”(键盘上数字1左边那个符合)符合框起来。
加上MySQL所需要的存储引擎比如每个建表语句后跟上:
ENGINE = INNODB CHARACTER SET utf8 COLLATE utf8_general_ci;
将生成的脚本在MySQL中去运行一次即可创建数据库。
二、迁移数据内容
数据内容只能通过生成INSERT语句的方式来做。
首先使用SSMS的“生成脚本”功能(在数据库上右键,选择“任务”“生成脚本”选项),可以为SQL
Server数据库中的数据生成插入脚本。
首先选择要迁移数据的表,这里我们全选所有的表
然后单击下一步,选择将脚本保存到新的查询窗口
单击“高级”选项,在高级选项窗口中选择“要编写脚本的数据的类型”为仅限数据
然后“确定”再下一步下一步即可生成INSERT脚本文件。
修改生成的脚本文件,主要有以下几项修改:
使用批量替换的方式去掉[
]这是SQL
Server的符合,在MySQL中不用这个。
使用批量替换的方式去掉dbo
有些单词在MySQL中是关键字的,那么需要使用“`”引起来。
关于Datetime类型的数据,需要手工修改下,SQL
Server默认生成的是这样的语句,在MySQL中是没办法解析的:
CAST(0x00009EEF00000000
AS
DateTime)
为每一行添加一个;表示一个插入语句结束。这个分号在SQL
Server中可以不需要,但是在MySQL中是必须的。简单的方法是使用高级的文本编辑器(比如Notepad++),将\r\n替换为;\r\n即可。
用查询分析器在A库上执行
1复制表:select into btableA from tableA where 1 = 2
2复制表数据:insert into btableA select from tableA
如果B中没有表TABLEA,直接复制表加数据select into btableA from tableA
一 如果B数据库是新建的,为了移植数据库,那就直接附加,分下列步骤:
1 打开配置管理器
2 停止SQL Server服务
3 在C:\Program Files\Microsoft SQL Server\MSSQL1\MSSQL\Data目录下找到数据库文件,复制到B电脑上,B电脑打开数据库附加A数据库就好了。
二 如果B数据库已经曾在,可以使用导出任务
打开数据库,右键点在数据库上,找到导出任务
按照向导选择该到处的数据表和视图。填写两个数据库的验证信息
以上就是关于sqlserver2008 r2 不停机迁移数据库全部的内容,包括:sqlserver2008 r2 不停机迁移数据库、如何把sqlserver数据迁移到mysql数据库及需要注意事项、如何将数据库从SQL Server迁移到MySQL等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)