一、适用场景

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

二、导出步骤

 
1、软件准备
如果源端SQL Server版本低于2008,则下载一个2008的客户端工具,在任意一台机器上安装。
 
下载Microsoft® SQL Server® 2008 Management Studio
 
 
安装,忽略各种提示,都选默认选项。
 
2、运行SQL Server 2008 Management Studio,连接到源数据库。
 
 
3、导出目标数据库的生成脚本
 
 
弹出“脚本向导”的对话框,按提示选择下一步
 
 
选择数据库
不要勾选“为所选数据库中的有所对象编写脚本”
 
 
选择脚本选项,设置“编写数据的脚本”为TRUE,其他选项根据实际需要修改。下图是建议值。简单起见除了创建数据库的脚本,登录脚本,编写统计信息,生成依赖对象脚本这几项一定要设置为FALSE,其他都可以设置为TRUE。
 
 
选择对象类型,注意不要选“用户和数据库角色”
 
 
选择存储过程(如果没有,就直接跳过)
 
 
选择表,不用迁移的表就不要选了
 
 
选择视图,如果没有就跳过
 
 
选择输出选项,可以选择导出到一个文件,也可以选择每个对象导出一个文件。数据量非常大的情况下建议每个对象导出一个文件。
 
 
最终确认
 
 
等待导出,数据量大的情况下,时间会比较久。
 
 
4、新建到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. 验证数据(略)
 

三、可能遇到的问题:

 
1、 如果导出脚本里有乱码,请检查导出文件是否是Unicode格式
2、如果导入新库后查询有乱码,请检查新库和老库的服务器排序规则是否一致。
3、大表的导入慢问题。
 
当表的数据量非常大的时候,如超过百万。上面的导入效率可能非常的低。这时候可以用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数据库上的表上加索引和主键、外键等。
 

阿里云SQL Server 2008 客户端导入数据库教程的更多相关文章

  1. 有关sql server 2008无法导入数据库mdf文件的处理方法

    解决方法1:根据该博客中的引导,加上自己安装版本的细节,可以添加成功 http://www.2cto.com/database/201408/328930.html 解决方法2: 根据<数据库系 ...

  2. sql server 2008怎样导入mdf,ldf文件,怎样解决导入mdf,ldf文件时出现附加数据库错误的问题

    废话不多说,直入主题吧. 1:打开sql server 2008,右键数据库-->附加 2:这时出现这个界面点击添加 3:打开数据库实例的安装目录,打开DATA文件夹;(如我的实例目录地址为:D ...

  3. 基于Sql Server 2008的分布式数据库的实践(二)

    原文 基于Sql Server 2008的分布式数据库的实践(二) 从Win7连接Win2003的Sql Server 2008 1.新建链接服务器链接到Win2003的Sql Server 2008 ...

  4. 基于Sql Server 2008的分布式数据库的实践(一)

    原文 基于Sql Server 2008的分布式数据库的实践(一) 配置Sql Server 2008(Win7) 1.打开SQL server2012,使用windows身份登录 2.登录后,右键选 ...

  5. sql server 2008如何导入mdf,ldf文件

    sql server 2008怎样导入mdf,ldf文件   网上找了非常多解决sql server导入其它电脑拷过来的mdf文件,多数是不全.遇到的解决方法不一样等问题,下边是找到的解决这个问题的最 ...

  6. SQL SERVER 2008 R2 还原数据库3154错误

    1.SQL SERVER 2008 在还原数据库时,会报错. 提示错误:"备份集中的数据库备份与现有的 '***' 数据库不同.RESTORE DATABASE 正在异常终止. (Micro ...

  7. SQL Server 2008 R2 主从数据库同步

    一.准备工作: 主数据库服务器: OS:Windows Server 2008 R2    DB: SQL Server 2008 R2 Hostname : CXMasterDB IP: 192.1 ...

  8. SQL Server 2008 R2 主从数据库同步设置

    一.准备工作: 主数据库服务器: OS:Windows Server 2008 R2    DB: SQL Server 2008 R2 Hostname : CXMasterDB IP: 192.1 ...

  9. 基于Sql Server 2008的分布式数据库的实践(五)

    原文 基于Sql Server 2008的分布式数据库的实践(五) 程序设计 ------------------------------------------------------------- ...

随机推荐

  1. Java SE/ME/EE的概念介绍

    转自 Java SE/ME/EE的概念介绍 多数编程语言都有预选编译好的类库以支持各种特定的功能,在Java中,类库以包(package)的形式提供,不同版本的Java提供不同的包,以面向特定的应用. ...

  2. UserMailbox 必须强制使用 Database---Database is mandatory on UserMailbox error

    XX搞了接近一天,终于搞定. 不只是在查看用户邮箱里发现这样的情况,就连在PS里执行GET-MAILBOX之类,都有这个报错. 跟网上所有的解决方法都不一样. 重新了系统邮件都不行,重新了ADMINI ...

  3. java向文件写数据的3种方式

    下边列举出了三种向文件中写入数据的方式,当然还有其他方式,帮助自己理解文件写入类的继承关系.类的关系: file->fileoutputstream->outputstreamWriter ...

  4. Fibonacci数列对任何数取模都是一个周期数列

    题目是要求出斐波那契数列n项对一个正整数取模,那么可以把斐波那契数列取模后得到的数列周期求出来. 比如下面一个题目:求出f[n]的后4位,先求出数列对10000取模的周期,然后再查找即可. #incl ...

  5. QT类库与Delphi类库的体系结构对比——两者十分类似!

    今天在看QT对象内存管理的一篇文章时:http://blog.csdn.net/dbzhang800/article/details/6300025想到了一个问题:就是QT类库体系结构与Delphi类 ...

  6. [cocos2d]cocos2d 2.1与ios 6.0

    最近把xcode升级到4.5了,ios也编程6.0 mark一下需要修改的地方(针对于cocos2d 2.1版本),虽然都是warning,但是对于强迫症患者来说无法忍受啊~ 修改一 libs-Coc ...

  7. cocos2d-x拖动滑块控件CCControlSlider

    #include "GameMusicSetting.h" bool GameMusicSetting::init() { if(!CCLayer::init()) { retur ...

  8. Wide character in print at a2.pl line 6.

    jrhapt01:/home/tomcat/test> cat a2.pl my $str="$ARGV[0]"; use Encode; use URI::Escape; ...

  9. EditPlus+MinGW搭建简易的C/C++开发环境

    EditPlus+MinGW搭建简易的C/C++开发环境 有时候想用C编点小程序,但是每次都要启动那难用又难看的VC实在是不情愿,而且老是会生成很多没用的中间文件,很讨厌,后来看到网上有很多人用Edi ...

  10. C#后台执行bat

    C#后台执行bat ProcessStartInfo p = new ProcessStartInfo(); p.FileName = "C:\\1.bat"; p.WindowS ...