阿里云SQL Server 2008 客户端导入数据库教程
2016-06-16 11:46
337 查看
一、适用场景
源端数据库是SQL Server 2005 及以上。(SQL Server 2000未测试。)数据文件总大小在10G以内。
可以在低峰期停应用。
二、导出步骤
1、软件准备如果源端SQL Server版本低于2008,则下载一个2008的客户端工具,在任意一台机器上安装。
下载Microsoft® SQL Server® 2008 Management Studio
http://www.microsoft.com/zh-cn/download/details.aspx?id=7593
安装,忽略各种提示,都选默认选项。
2、运行SQL Server 2008 Management Studio,连接到源数据库。
![](http://www.sulao.cn/zb_users/upload/2015/08/20150831134928_79936.png)
3、导出目标数据库的生成脚本
![](http://www.sulao.cn/zb_users/upload/2015/08/20150831134928_63360.png)
弹出“脚本向导”的对话框,按提示选择下一步
![](http://www.sulao.cn/zb_users/upload/2015/08/20150831134929_94586.png)
选择数据库
不要勾选“为所选数据库中的有所对象编写脚本”
![](http://www.sulao.cn/zb_users/upload/2015/08/20150831134929_76802.jpeg)
选择脚本选项,设置“编写数据的脚本”为TRUE,其他选项根据实际需要修改。下图是建议值。简单起见除了创建数据库的脚本,登录脚本,编写统计信息,生成依赖对象脚本这几项一定要设置为FALSE,其他都可以设置为TRUE。
![](http://www.sulao.cn/zb_users/upload/2015/08/20150831134929_55052.jpeg)
选择对象类型,注意不要选“用户和数据库角色”
![](http://www.sulao.cn/zb_users/upload/2015/08/20150831134929_56625.png)
选择存储过程(如果没有,就直接跳过)
![](http://www.sulao.cn/zb_users/upload/2015/08/20150831134930_63638.png)
选择表,不用迁移的表就不要选了
![](http://www.sulao.cn/zb_users/upload/2015/08/20150831134930_84042.png)
选择视图,如果没有就跳过
![](http://www.sulao.cn/zb_users/upload/2015/08/20150831134951_62336.png)
选择输出选项,可以选择导出到一个文件,也可以选择每个对象导出一个文件。数据量非常大的情况下建议每个对象导出一个文件。
![](http://www.sulao.cn/zb_users/upload/2015/08/20150831134951_46199.png)
最终确认
![](http://www.sulao.cn/zb_users/upload/2015/08/20150831135013_80326.png)
等待导出,数据量大的情况下,时间会比较久。
![](http://www.sulao.cn/zb_users/upload/2015/08/20150831135013_63684.png)
4、新建到RDS数据库的连接,打开查询分析器,执行上面导出的脚本。
如果脚本文件比较大,建议前面针对每个对象导出一份文件。
也可以不打开脚本进行执行,利用SQLCMD模式。
![](http://www.sulao.cn/zb_users/upload/2015/08/20150831135013_31475.png)
在目标RDS数据库上打开一个查询分析器,然后点击菜单“查询”,选择“SQLCMD模式”
然后在查询分析器里执行
执行OS命令是前面加上两个感叹号,后面跟上windows cmd命令
执行sql文件
:r d:\test\script20120605.sql
![](http://www.sulao.cn/zb_users/upload/2015/08/20150831135014_18020.png)
当文件很大的时候(如1G以上),如果云服务器内存不大,很有可能会报 “OufOfMemory Exception”。这个时候就换个方法调用sqlcmd。
在windows的命令行下(开始->运行,输入:cmd
Sqlcmd –S “xxx.sqlserver.rds.aliyuncs.com,3433” -U 用户名 -P 密码 -d 数据库名 -i SQL文件路径 -o 输出日志名
![](http://www.sulao.cn/zb_users/upload/2015/08/20150831135014_51838.png)
5. 验证数据(略)
三、可能遇到的问题:
1、 如果导出脚本里有乱码,请检查导出文件是否是Unicode格式2、如果导入新库后查询有乱码,请检查新库和老库的服务器排序规则是否一致。
3、大表的导入慢问题。
当表的数据量非常大的时候,如超过百万。上面的导入效率可能非常的低。这时候可以用bcp命令来导数据。方法如下:
1) 在源库主机上或者云服务器上用bcp命令导出源库数据。
Bcp test.dbo.adminInfo out d:\tt\admininfo.out -T -S AY120724113142a -c
![](http://www.sulao.cn/zb_users/upload/2015/08/20150831135014_69166.png)
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
![](http://www.sulao.cn/zb_users/upload/2015/08/20150831135014_27157.png)
4)在RDS数据库上的表上加索引和主键、外键等。
相关文章推荐
- 数据库索引原理-转
- mysql 免安装版配置
- centos7下安装mysql及测试(基于Nodejs)
- pgsql + pgbouncer高并发配置
- mysql跨服务器查询
- SQL Server内存故障排除
- SQL Server内存故障排除
- MySQL学习之——锁(行锁、表锁、页锁、乐观锁、悲观锁等)
- Windows下Memcached在.Net程序中的实际运用(从Memcached客户端Enyim的库的编译到实际项目运用)
- MySQL 出现 The table is full 的解决方法
- AndBase框架中db的使用
- ORACLE 创建视图时,提示用户权限不足
- &&和&,||和|的区别
- oracle数据库
- oracle执行计划小结
- oracle 将不同数据合并成一条行数据
- Oracle DB 体系结构
- mysql数据类型与索引调优
- ELK-Logstash MySQL 慢查询日志分析
- Oracle导入本属于sys用户的表