題:怎樣做sql server數據庫的還原 ( 積分:50, 回覆:32, 閱讀:1034 ) 分類:數據庫-C/S型 ( 版主:qince, luyear ) | ||
來自:skyhill, 時間:2001-11-7 16:56:00, ID:713795 | [顯示:小字體 | 大字體] | |
我用restore database master from disk='c:/temp.bak'但數據庫必須在無連接狀態下使用, 我斷開連接,又不能執行sql 來自:antic_ant, 時間:2001-11-8 11:25:00, ID:715557
用sqldmo來解決吧 http://luck4u.126.com 上提供原碼參考 來自:bluerain, 時間:2001-11-8 11:25:00, ID:715563
1.先斷開所有的連接, 2.最好在服務器端執行代碼,連接數據庫到任何一個不是master的數據庫, 2.1 然後執行restore database master from disk='c:/temp.bak'. 來自:qiangyuan, 時間:2001-11-9 16:00:00, ID:719371
好象就算斷掉所有連接仍然不定啊!它會報數據庫正在使用狀態中之類的錯,連到master也不行。 來自:bluerain, 時間:2001-11-9 17:09:00, ID:719592
sql server斷開連接也需要一定時間,看一下sql server的參數就知道了. 等那天有空,我把以前做的一個系統裏恢復,備份數據庫的代碼貼一下. 來自:sundart, 時間:2001-11-9 17:39:00, ID:719716
恢復數據庫首先要保存沒有其它人訪問它。 切換至Master數據庫,然後再恢復,再切換回來。 來自:huhongru, 時間:2002-3-2 17:42:00, ID:954604
恢復數據庫首先要保存沒有其它人訪問它. 一定要設定其參數是強行執行得就可以了。我試過。 來自:龍石佛, 時間:2002-9-13 12:09:00, ID:1322787
我怎麼看不到別人的答案! 來自:luky_99, 時間:2002-9-13 13:29:00, ID:1322979
一定要確定沒有連接情況下才行, 比如先連接到別的數據庫。。。。 同意sundart。 來自:luky_99, 時間:2002-9-13 13:32:00, ID:1322991
TO bluerain: 你快點粘上來好嗎? 我也急用呀!! 來自:王公子, 時間:2002-9-13 13:46:00, ID:1323044
好似有點麻煩!關注! 來自:liu_sir, 時間:2002-10-17 16:21:00, ID:1380476
單做一個備份程序,連接master數據庫,然後執行該語句應該可以得,我就是這麼做的 來自:Gracezmhb, 時間:2002-10-21 10:41:00, ID:1384928
各位做通過恢復數據庫的高手,我用 DataModule1.ADOConnection1.Close; 斷開連接 DataModule1.ADOConnection1.ConnectionString 連到master數據庫 DataModule1.ADOConnection1.Open; 重新打開連接 新的連接已經連上去了,但是在SQL 2000中原數據庫還是有連接, 仍然無法恢復原數據庫,這是怎麼回事呢? 急切等待回答! 來自:zhoudongchao, 時間:2002-10-21 10:47:00, ID:1384940
使用備份嚮導很ESAY 來自:Gracezmhb, 時間:2002-10-23 19:30:00, ID:1390807
to zhoudongchao 我不想用嚮導,要在delhpi程序中實現啊 來自:Gracezmhb, 時間:2002-10-23 21:36:00, ID:1391036
to skyhill 你的數據庫還原搞好了嗎?能不能告訴我怎麼弄的呢? TO bluerain 你什麼時候有空能貼出來啊? 來自:bluerain, 時間:2002-10-31 13:55:00, ID:1404203
這個是我寫的一個例程,包括用SQL語言(backup,restore)和SQL-DMO兩種方法備份合 恢復數據庫。 注:1。自己改鏈接字符串 2。我的數據庫驗證方式是用混合模式,自己根據自己的登陸方式改一下相應地方。 文件: http://www.flyfish.i-p.com/Source/bkrstDB.rar 此外,利用sql server的Virtual Device Interface (VDI) 也可以實現,VDI相當於sql server 的備份恢復API技術。例程可參見MS SQLServer 2000盤的 /devtools/samples/backup目錄下文件。 來自:Gracezmhb, 時間:2002-11-9 21:46:00, ID:1423554
to bluerain 請問你的程序在哪裏還能下載?上面的那個URl我打不開。怎麼辦呢?[blue][/blue][:)] 來自:bluerain, 時間:2002-11-10 8:53:00, ID:1423838
降地址粘貼到netant或者flashGet中下載,沒有問題的。 來自:Gracezmhb, 時間:2002-12-2 14:15:00, ID:1478049
to bluerain 謝謝你的程序!! 來自:xuefeiyang, 時間:2002-12-2 14:20:00, ID:1478071
try DM.ADOConnection1.Connected:=False;//關閉sbhy數據庫 DM.adocommand1.Connection:=DM.ADOConnection2;//轉移連接到數據庫master DM.ADOCommand1.CommandText:='ALTER DATABASE sbhy SET OFFLINE WITH ROLLBACK IMMEDIATE';//切斷sbhy連接 DM.ADOCommand1.Execute; DM.ADOCommand1.CommandText:='RESTORE DATABASE sbhy FROM DISK = ''' +opendialog1.FileName +'''';//恢復sbhy數據庫 DM.ADOCommand1.Execute; showmessage('完成'); finally DM.ADOCommand1.CommandText:='ALTER DATABASE sbhy SET ONLINE WITH ROLLBACK IMMEDIATE';//重新連接sbhy數據庫 DM.ADOCommand1.Execute; DM.ADOConnection2.Connected:=False;//關閉master數據庫 end; DM.ADOConnection1.Connected:=True;//打開sbhy數據庫 DM.adocommand1.Connection:=DM.ADOConnection1;//恢復連接到數據庫sbhy 來自:tomljh, 時間:2002-12-5 16:24:00, ID:1488513
to:bluerain你的代碼根本就不能解決skyhill提的問題,我試了SQL下的方式。 測試:如下在A機上啓動一個對目標數據庫的訪問,如查詢分析器 在B機上運行你的程序,備份成功,還原還是老問題不成功。 請注意我們的目標不是在單用戶的基礎上還原成功,而是在多用戶在使用的基礎上 還原成功。 來自:tomljh, 時間:2002-12-5 16:49:00, ID:1488634
to xuefeiyang: 你做法是正確的,非常感謝我又學了一招。 關鍵在於還原數據庫之前 'ALTER DATABASE sbhy SET OFFLINE WITH ROLLBACK IMMEDIATE' Set offline/online這個開關我找了好久。 來自:ssss__0002, 時間:2002-12-14 13:45:00, ID:1510171
up 來自:zhengyue, 時間:2002-12-19 8:18:00, ID:1521770
我試了以下但是這一句抱錯呢 'ALTER DATABASE sbhy SET OFFLINE WITH ROLLBACK IMMEDIATE' 說 set 設置不對呢? 來自:bernhn, 時間:2002-12-19 10:41:00, ID:1522164
to tomljh 爲什麼提示我set有誤呢,我的是sql70! 來自:flowcloud, 時間:2002-12-19 12:15:00, ID:1522577
在服務器上用存儲過程。 RESTORE DATABASE databasename FROM DISK = 備份文件名 with REPLACE 來自:bluerain, 時間:2002-12-19 13:21:00, ID:1522793
xuefeiyang的語法是針對sql2000的。 如果是sql7,使用如下: EXEC sp_dboption 'databasename', 'offline', 'TRUE' RESTORE DATABASE databasename FROM DISK = 備份文件名 with REPLACE EXEC sp_dboption 'databasename', 'offline', 'false' 另大家用single user開關也可以 EXEC sp_dboption 'dababasename','single user', 'TRUE' RESTORE DATABASE databasename FROM DISK = 備份文件名 with REPLACE EXEC sp_dboption 'dababasename','single user', 'false' 來自:zhengyue, 時間:2002-12-20 18:00:00, ID:1525576
用樓上同志的做法,如果打開過該數據庫,需要等很長時間才能執行以上語句, 否則告訴還有其他客戶在使用數據庫,有沒有辦法可以很快,執行該語句; 來自:woshixiaoxin, 時間:2002-12-23 13:45:00, ID:1530173
Restore database ... 這條語句在查詢分析器中,對數據庫自身進行還原也會出現"未取得對數據庫的排它訪問權限", 我沒有取得這個權限,用了另外一個方法解決了這個問題, 1 斷開數據庫的連接 2 動態的創建一個數據庫別名,連接master數據庫,在master數據庫中執行Restore database ... 3 刪除新建的數據庫別名 但我還想知道如何取得對數據庫的排它訪問權限 來自:angiin, 時間:2002-12-23 17:40:00, ID:1531173
還原?是什麼意思?是恢復到幾月幾號?還是把以前有的數據庫文件恢復到新的SQLServer中 如果是後者我還有辦法在Sql分析器中的help中查找“SP_attach_db“,有詳細的說明。 來自:dirk, 時間:2002-12-23 18:14:00, ID:1531240
來自:tianxing78, 時間:2003-1-26 14:36:00, ID:1599774
做一個存儲過程,如sjhf。將此過程放在你並不應用的數據庫中,像: master。設置ODBC如:sjhf。用adostoredproc連接。CREATE PROCEDURE sjhf @backpath char(50) AS restore database 你的數據庫 from disk=@backpath GO 。執行時先將備份路徑傳給它就可以了。 其餘的就像是上面說的那樣。要先將數據庫斷開。 | ||
問題討論沒有結束 ... | ||
|
解決了對數據庫的排它訪問權的問題
轉載自
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.