数据库在工作站上的备份问题(50分)

  • 主题发起人 主题发起人 lccc
  • 开始时间 开始时间
L

lccc

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure TfrmBackData.BitBtn1Click(Sender: TObject);
Var
UserBackName,MasterBackName,ModelBackName,MsdbBackName:String;
begin
....
DataBase1.CloseDataSets;//关闭备份窗体上的DataBase1
DataBase1.Close;
//客户数据库的备份名称
UserBackName:=Edit1.Text+'/'+Edit2.Text+'_'+DateToStr(Date)+'.lgw';
//Edit1是路径,Edit2是文件名称。
//系统数据库的备份名称
MasterBackName:=Edit1.Text+'/Master_Back_'+DateToStr(Date)+'.lgw';
ModelBackName:=Edit1.Text+'/Model_Back_'+DateToStr(Date)+'.lgw';
MsdbBackName:=Edit1.Text+'/Msdb_Back_'+DateToStr(Date)+'.lgw';
try
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.Add('USE Master');
//备份用户数据库
Query1.SQL.Add('BACKUP DATABASE DepotManage TO DISK='+''''+UserBackName+'''');
//备份系统数据库
Query1.SQL.Add('BACKUP DATABASE Master TO DISK='+''''+MasterBackName+'''');
Query1.SQL.Add('BACKUP DATABASE Model TO DISK='+''''+ModelBackName+'''');
Query1.SQL.Add('BACKUP DATABASE msdb TO DISK='+''''+MsdbBackName+'''');
Query1.Prepare;
Query1.ExecSQL;
ShowMessage('备份完毕。');
except
ShowMessage('数据备份失败!');
end;
end;

现在的问题是:
A、当在服务器上执行时:
1、如果有工作站在使用数据库,不能备份;
2、如果无工作站使用时,正常
B、当在工作站上执行时:
1、如果有其它工作站在使用数据库,不能备份;
2、如果无工作站使用时,正常运行,但却在本地硬盘上没有备份文件;
例如:将文件备份到D:/Data_Back目录中,在该目录中没有任何文件。
请高手指教!
 
怎么久都没人回答?
 
看样子该是和数据库的锁定有关系.
 
数据库的备份是在服务器端执行的,因此你的A能够正常运行。你的B能正常运行却找不到
文件是很正常的,你可以看一看在你的服务器的相应目录下肯定生成了你指定的文件。
备份方法与你运行的机器无关,不管你是在服务器运行还是在工作上运行,它备份时都是在
服务器端执行!
你要想在你的D盘的相应目录下生成备份文件时你可以共享你的目录,然后使用网络路径来
进行备份也许可以成功(不知道备份时是否可以输入网络路径?)
 
谢谢 hhzh426 ,
 
后退
顶部