数据库备份---远程备份到本地 找金蝶财务软件多少钱
begin
try
Winexec(pchar(''net share test=''+''d:\text''),SW_HIDE);
except
on E:Exception do
Application.MessageBox(pchar(E.Message),''Net share ERROR'');
end;
try
Winexec(pchar(''net use \\192.168.0.1\test /user:administrator''),SW_HIDE);
except
on E:Exception do
Application.MessageBox(pchar(E.Message),''Net Use ERROR'');
end;
try
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Text:=''backup database tsdata to disk=''+quotedstr(''\\192.168.0.1\test\tsdata.bak'');
AdoQuery1.ExecSQL;
except
on E:Exception do
application.MessageBox(pchar(E.Message),''Backup ERROR'');
end;
end;
注:上面IP是本地IP在这程序前以和对方数据库连接上了,但是总报错说无法打开 备份设备\\192.168.0.1\test\tsdata.bak'',请大家帮我看看,谢谢
2楼: 备份就我所知,是只能在本地的。
你可以在本地备份完毕后,将备份文件拷贝到远程机器上。 如管家婆财务软件
3楼: 如果要备份到远程机器上的话,要保证能够访问到远程机器,也就是要先登录一下远程机器,论坛上有相应的帖子,你可搜一下!!
4楼: 我也想知
5楼: 如果你的数据库是ORACLE的话,在远端机上的CMD下用这个命令
exp 用户名@服务器名
然后照做就可以把远端数据库的数据备份到本地了
6楼: win2000 没戏!win98也许可以
销售管理软件版7楼: 备份是只能在本地的。
你可以在本地备份完毕后,将备份文件拷贝到远程机器上。
8楼: 不着急,张大哥为你提供2个解决方按,10点左右
9楼: 目标:把其它服务器上备到本机
假设我们不知道,服务器的用户名称,密码
当然,我们知道自己的!
思路一
exec master..xp_cmdshell ''net use \\10.181.215.85\test /user:administrator''
backup database ddczp_test to disk=''\\10.181.215.85\test\ddczp_test.bak''
思路二,如果是自己单位服务器,必然有共享目录,弄一个remott.exe上去
exec master..xp_cmdshell ''remott.exe \\10.181.215.85\test /user:administrator''
backup database ddczp_test to disk=''\\10.181.215.85\test\ddczp_test.bak''
remott.exe:思路
ZeroMemory(@nr, sizeof(nr));
nr.dwType := RESOURCETYPE_ANY;
nr.lpLocalName := '''';
nr.lpProvider := '''';
nr.lpRemoteName := ''\\192.168.0.89'';
lpuser := ''vssuser'';
lppwd := ''login'';
rv := WNetAddConnection2(nr, lppwd, lpuser, 0);
思路三
我们公司开了,服务器上共享受目录,显然,我们也有登陆共享受目录密码
显然,可以backup到那里,在从那里拷贝回来
目标:我在internet 上别人服务器上申请网站,有自己的user,pwd,
我可以在自己库里任意写procedure,
显然,我可以使用企业管理器backup弄回来!
显然,他们也给我了我自己的web,文件夹,可以ftp 上传,当然,我也可以做网络映射,
当然,我也可以ftp 到自己的计算机,我也可以配ftp服务(哈哈,不可以,因为我
没有公网ip)
当然,我通过asp pathmap(''./51merit.mdb'') 也知道我的文件在c,d,e具体的位置
如何做个全自动,把他backup到我的计算机!
10楼: exec master..xp_cmdshell ''net use \\10.181.215.85\ /user:administrator''
backup database ddczp_test to disk=''c:\ddczp_test.bak''
exec master..xp_cmdshell ''ftp@\\10.181.215.85\@user@pwd@51merit c:ddczp_test.bak''
11楼: 我来说2句吧。。。
你那种用命令的方法把数据复制到别的机器上是不太保险的...
应该使用下面调用系统函数的方法:
把我下面的UNIT加入到你的项目中去,
再这样调用就可以了。。。
//**********下面是复制数据到远程服务器**********
RemoteCopyFile(
''\\Dell\d$'', //远程目录名
''administrator'', //用户名
''yyzzxx'', //PWD
''c:\信息卡\用户资料库.dbc'', //本地源文件名(全)
''用户资料库.dbc''); //目标文件名(仅需文件名)
==========远程复制文件单元====================================================
UNIT Unit2;
INTERFACE
USES
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, ExtCtrls, DBCtrls, Grids, DBGrids;
FUNCTION RemoteCopyFile(
ARemote, //远程目录名
AUserID, //用户名
APassword, //PWD
ASour, //源文件名(全)
ADest //目标文件名(仅文件名)
: STRING): Cardinal; //返回0表示成功,否则为错误代码
IMPLEMENTATION
FUNCTION RemoteCopyFile(
ARemote, //远程目录名
AUserID, //用户名
APassword, //PWD
ASour, //源文件名(全)
ADest //目标文件名(仅文件名)
: STRING): Cardinal; //返回0表示成功,否则为错误代码
VAR
nr : TNetResource;
BEGIN
FillChar(nr, SizeOf(nr), 0);
nr.dwType := RESOURCETYPE_ANY;
nr.lpRemoteName := PChar(ARemote); //参数1
nr.lpLocalName := ''X:'';
nr.lpProvider := '''';
Result := WNetAddConnection2(nr, PChar(APassword), PChar(AUserID), 0);
IF Result <> 0 THEN
Exit;
ADest := ''X:'' + Trim(ADest);
IF NOT CopyFile(PChar(ASour), PChar(ADest), false) THEN
Result := GetLastError;
WNetCancelConnection2(''X:'', 0, True);
END;
END.
12楼: 多谢大家,小弟在试试! 如金蝶财务软件多少钱