阿里云SQL Server 2008 客户端导入数据库教程

1、适用场景

 
源端数据库是SQL Server 2005 及以上。(SQL Server 2000未测试。)
数据文件总大小在10G之内。
能够在低峰期停应用。
 

2、导出步骤

 
一、软件准备
若是源端SQL Server版本低于2008,则下载一个2008的客户端工具,在任意一台机器上安装。
 
下载Microsoft® SQL Server® 2008 Management Studio
 
 
安装,忽略各类提示,都选默认选项。
 
二、运行SQL Server 2008 Management Studio,链接到源数据库。
 
 
三、导出目标数据库的生成脚本
 
 
弹出“脚本向导”的对话框,按提示选择下一步
 
 
选择数据库
不要勾选“为所选数据库中的有所对象编写脚本”
 
 
选择脚本选项,设置“编写数据的脚本”为TRUE,其余选项根据实际须要修改。下图是建议值。简单起见除了建立数据库的脚本,登陆脚本,编写统计信息,生成依赖对象脚本这几项必定要设置为FALSE,其余均可以设置为TRUE。
 
 
选择对象类型,注意不要选“用户和数据库角色”
 
 
选择存储过程(若是没有,就直接跳过)
 
 
选择表,不用迁移的表就不要选了
 
 
选择视图,若是没有就跳过
 
 
选择输出选项,能够选择导出到一个文件,也能够选择每一个对象导出一个文件。数据量很是大的状况下建议每一个对象导出一个文件。
 
 
最终确认
 
 
等待导出,数据量大的状况下,时间会比较久。
 
 
四、新建到RDS数据库的链接,打开查询分析器,执行上面导出的脚本。
若是脚本文件比较大,建议前面针对每一个对象导出一份文件。
也能够不打开脚本进行执行,利用SQLCMD模式。
 
 
在目标RDS数据库上打开一个查询分析器,而后点击菜单“查询”,选择“SQLCMD模式”
而后在查询分析器里执行
执行OS命令是前面加上两个感叹号,后面跟上windows cmd命令
执行sql文件
:r d:\test\script20120605.sql
 
 
当文件很大的时候(如1G以上),若是云服务器内存不大,颇有可能会报 “OufOfMemory Exception”。这个时候就换个方法调用sqlcmd。
在windows的命令行下(开始->运行,输入:cmd
Sqlcmd –S “xxx.sqlserver.rds.aliyuncs.com,3433” -U 用户名 -P 密码 -d 数据库名 -i SQL文件路径 -o 输出日志名
 
 
5. 验证数据(略)
 

3、可能遇到的问题:

 
一、 若是导出脚本里有乱码,请检查导出文件是不是Unicode格式
二、若是导入新库后查询有乱码,请检查新库和老库的服务器排序规则是否一致。
三、大表的导入慢问题。
 
当表的数据量很是大的时候,如超过百万。上面的导入效率可能很是的低。这时候能够用bcp命令来导数据。方法以下:
 
1) 在源库主机上或者云服务器上用bcp命令导出源库数据。
Bcp test.dbo.adminInfo out d:\tt\admininfo.out -T -S AY120724113142a -c
 
 
2) 用前面SQLServer导出脚本在目标RDS 数据库中建好表,可是不要建索引和主键、外键约束。
3)用bcp导入数据
bcp yundns8885.dbo.admininfo in d:\tt\admininfo.out –U yundns8885 –P xxxxxxxx -S "sp500xxxxxxx.sqlserver.rds.aliyuncs.com,3433" –c –E –b 1000
 
 
4)在RDS数据库上的表上加索引和主键、外键等。
相关文章
相关标签/搜索