2、我一般都是在新计算机上安装新的SQL服务实例,然后逐个迁移用户数据库
3、只需要向用户贴出安民告示即可,也就半个小时到1一个小时,基本上全部搞定。
若非要迁移,那么你可以这样做:
首先迁移master数据库,master数据库是整个SQL Server实例的核心,所有的设置都存放在master数据库里,如果master数据库出现问题,整个实例都将瘫痪。首先打开SQL Server Configuration Manager,在左边的列表框中选中SQL Server Services节点,然后在右边的列表框中找到需要迁移系统数据库的实例的那个SQL Server服务,比如说SQLServer(MSSQLSERVER),停止这个实例的服务(不会停的去菜场买块豆腐撞死算了),然后右键单击,选中最底下的“Properties”,并且切换到“Advanced”标签,如下图所示:
看到“Startup Parameters”了吧,这里的参数就是需要我们更改的。如下图所示:
把这段字符整理一下就是这样:
-dC:\Program Files\Microsoft SQLServer\MSSQL10.MSSQLSERVER\MSSQL\DATA\master.mdf
-eC:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG
-lC:\Program Files\Microsoft SQLServer\MSSQL10.MSSQLSERVER\MSSQL\DATA\mastlog.ldf
基本上看出来了吧,“-d”后面的就是master数据库数据文件的位置,“-e”是该SQL Server实例的错误日志所在的位置,至于“-l”就是master数据库日志文件所在的位置了。修改数据文件和日志文件的路径到适当为位置,错误日志的位置一般不需要做变更,例如将数据文件存放到D盘的SQLData文件夹下,日志文件存放到E盘的SQLLog文件夹下,则参数如下:
-dD:\SQLData\master.mdf-eC:\Program Files\Microsoft SQLServer\MSSQL10.MSSQLSERVER\MSSQL\Log\ERRORLOG-lE:\SQLLog\mastlog.ldf
点击“OK”保存并关闭对话框。
一、迁移DatabaseSchema。
首先使用Sybase
Powerdesigner的逆向工程功能,逆向出SQL
Server数据库的物理模型。具体 *** 作是在Powerdesigner中选择“File”,“Reverse
Engine”再选择Database,将DBMS选择为SQL
Server
然后选择数据源,也就是要具体连接到的SQL
Server数据库服务器,然后选择要逆向的数据库名,比如选中“WSS_Content_80”
单击确定即可生成物理模型图,然后单击“Database”菜单下的Change
Current
DBMS修改当前的DBMS,改为MySQL
5.0,单击确定后即可生成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即可。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)