BCP 可以把数据导出到本地磁盘上或从本地磁盘上导入;而 DUMP 和 LOAD 似乎只能把数据导出到服务器的磁盘上或从服务器磁盘上导入。
有没有什么方法能够既像 DUMP 和 LOAD 一样可以把数据库整个导出,而又像 BCP 一样能把导出的文件放到本地磁盘上?
---------------------------------------------------------------
在远程机器(客户机)上
1.安装ASE。
2.创建Backup Server。假定Server名字为REMOTE_BS。
在本地机器(服务器)上
1.修改interfaces文件,添加远程机器上Backup Server的条目(Backup Server的名称,地址,端口号)
注意:Backup Server名称不能使用别名;
UNIX平台使用dscp实用工具添加(详见注1);
Windows平台使用dsedit实用工具添加(这个很简单,不说了)。
2.在master数据库的sysservers系统表中添加远程机器上Backup Server的名字。
1>sp_addserver REMOTE_BS,null
2>go
3.使用sp_helpserver查看至少存在以下3个条目:
本地ASE名称;
本地Backup Server名称;
远程Backup Server名称。
4.在本地机器上远程备份:
1>dump database DATABASE_NAME to "C:\BACKUP.DAT" at REMOTE_BS
2>go
此处假定远程机器上存放备份数据文件的路径为C:\BACKUP.DAT。
5.在本地机器上远程恢复备份:
1>load database DATABASE_NAME from " C:\BACKUP.DAT " at REMOTE_BS
2>go
此处假定远程机器上存放备份数据文件的路径为C:\BACKUP.DAT。
注1:
1.telnet登录UNIX服务器;
2.运行dscp程序
$ dscp
3.打开Interfaces文件会话
>>open InterfacesDriver
4.添加服务器条目(方括号中是默认值,如接受则直接回车;否则输入新值再回车)
Session 1 InterfacesDriver>>add REMOTE_BS
Service:[SQL Server]
Transport Type:[tcp]
Transport Address:xxx.xxx.xxx.xxx 5001
#done
5.列出服务器条目以及查看某一条目详细信息
Session 1 InterfacesDriver>>list
Session 1 InterfacesDriver>>read REMOTE_BS
6.退出dscp程序
Session 1 InterfacesDriver>>quit
7.删除服务器条目
Session 1 InterfacesDriver>>del REMOTE_BS
说明:
1.经与SYBASE公司数据库支持工程师联系,跨平台的数据库dump和load是无法进行的,就像我这种情况——从UNIX服务器上dump出来的数据库,无法load到Windows服务器上的数据库中。只能通过bcp来进行。
2.不同版本的数据库之间无法进行dump和load。