SQLServer7.0数据库的六种数据移动方法

SQLServer7.0数据库的六种数据移动方法,第1张

SQLServer7.0数据库的六种数据移动方法,第2张

我的工作是数据库管理员。我想在多个服务器中维护数据库,并且我经常将一个数据库从一个服务器移动到另一个服务器。我有一些关于数据移动的经验,希望和大家分享。

1.通过工具DTS的设计器导入或导出

DTS的设计器功能强大,支持多任务,也是可视化界面。操作起来很简单,但是知道的人不多。如果只移动SQL Server数据库中的部分表,当然可以用这种方法移动所有的表。在SQL Server企业管理器中,展开服务器左侧的+号,选择数据库,右键单击,然后选择“所有任务/导入数据”...(或所有任务/导出数据...)进入向导模式,只需按照提示一步一步操作即可。非常详细,在不同数据源之间灵活复制数据非常方便。并且可以将其保存为DTS包。如果以后有同样的复制任务,直接运行DTS包就行了,省时省力。您也可以直接打开DTS设计器,方法是展开服务器名称下的Data Transformation Services,选择本地包,在右侧窗口中右键单击,然后选择“新建包”以打开DTS设计器。值得注意的是,如果要从源数据库复制的表有外键,要注意移动的顺序,有时要批量移动,否则外键、主键、索引都可能丢失。移动的时候,选项旁边的提示很明确,还是复制一次到目标数据库,然后重新建立外键,主键,索引。
其实在建立数据库的时候,建立外键、主键、索引的文件要和建立表的文件分开,使用的数据文件也要分开,放在不同的驱动器上,这样有利于数据库的优化。

2.使用Bcp工具

尽管在SQL Server7版本中不推荐使用该工具,但许多数据库管理员仍然喜欢使用它,尤其是那些使用过SQL Server早期版本的管理员。Bcp有局限性。首先,它的界面不是图形化的。其次,它只在SQL Server的表(视图)和文本文件之间进行复制。但它的优点是性能好,开销低,占用内存少,速度快。感兴趣的朋友可以查阅参考手册。

3.利用备份和恢复

首先对源数据库做一个完整的备份,备份到一个设备上,然后将备份文件复制到目的服务器上(恢复速度快),恢复数据库。在恢复的数据库名称中填写源数据库的名称(名称必须相同),选择强制恢复(可以覆盖之前数据库的选项),然后在浏览时选择备份文件。这种方法可以完全恢复数据库,包括外键、主键和索引。

4.直接复制数据文件。

复制数据文件(*。mdf)和日志文件(*。ldf)复制到目标服务器,并在SQL Server查询分析器中使用以下语句还原它们:
execsp _ attach _ db @ dbname = ' test ',
@ filename 1 = ' d:\ MSSQL 7 \ Data \ test _ Data . MDF ',
@ filename 2 = ' d:\ MSSQL 7 \ Data \ test _ log . ldf '
这样,测试数据库就附加到SQL Server上了,可以照常使用。如果不想使用原来的日志文件,可以使用下面的命令:
execsp _ detach _ db @ dbname = ' test '
execsp _ attach _ single _ file _ db @ dbname = ' test ',
@ phys name = ' d:\ MSS Data \ test _ Data . MDF '
该语句仅用于加载数据文件。SQL Server数据库可以自动添加日志文件,但原始日志文件中记录的数据将会丢失。

5.应用程序中的定制

您可以在应用程序(PB、VB)或查询分析器中执行自己的程序。这种方法是灵活的。其实它是用一个平台连接数据库,SQL语句主要用在平台上。这种方法对数据库的影响很小,但如果使用远程链接服务器,则要求网络间传输性能良好。通常有两种语句:
1 > select...到new _ tablename,其中...
2 > insert(into)old _ tablename select...从...其中
区别在于前者将数据插入新表(先建立表,再插入数据),后者将数据插入已有表。我个人比较喜欢后者,因为第二种说法在编程结构和适用范围上都强于前者。

6.SQL Server的复制功能

SQL Server提供了强大的数据复制功能,也是最难掌握的。具体应用请参考相关资料。值得注意的是,一些条件对于成功的数据复制是必不可少的:
1 >必须启动SQL Server代理,并且必须启动MSDTC。
2 >所有要复制的表都必须有主键。
3 >如果表中有文本或图像数据类型,则必须使用with log选项,但不能使用with no_log选项。
此外,max text repl size选项控制可以复制的文本和图像数据的大小,超过此限制的操作将会失败。
4 >在要复制的计算机上,至少应该是一个隐式共享,即共享名为C$或D$…。
5 >用于SQL Server代理的Windows NT帐户不能是本地系统帐户,因为本地系统帐户不允许网络访问。
6 >如果参与复制的服务器在其他计算机域中,则必须在这些域之间建立信任关系。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » SQLServer7.0数据库的六种数据移动方法

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情