怎么用SQL語句備份和恢復數據庫
SQL語句備份和恢復
SQL Server:
備份命令:
BACKUP DATABASE test
TO disk = 'c:\test'
WITH FORMAT,
NAME = 'Full Backup of MyNwind'
解釋如下:
NAME = 'Full Backup of MyNwind' --這個是備注,隨便寫。
還原命令:
USE master
GO
RESTORE DATABASE test_wt
FROM disk = 'c:\test_wt'
GO
MySQL:
備份:
mysqldump -u root -p database_name >d:\*
恢復:
mysql -u root -p database_name 注意:在WIN下,路徑用path/*是不行的,那就用path\*
sql數據庫備份語句
--完整備份
Backup Database NorthwindCS
To disk='G:\Backup\NorthwindCS_Full_*'
--差異備份
Backup Database NorthwindCS
To disk='G:\Backup\NorthwindCS_Diff_*'
With Differential
--日志備份,默認截斷日志
Backup Log NorthwindCS
To disk='G:\Backup\NorthwindCS_Log_*'
--日志備份,不截斷日志
Backup Log NorthwindCS
To disk='G:\Backup\NorthwindCS_Log_*'
With No_Truncate
--截斷日志不保留
Backup Log NorthwindCS
With No_Log
--或者
Backup Log NorthwindCS
With Truncate_Only
--截斷之后日志文件不會變小
--有必要可以進行收縮
--文件備份
Exec Sp_Helpdb NorthwindCS --查看數據文件
Backup Database NorthwindCS
File='NorthwindCS' --數據文件的邏輯名
To disk='G:\Backup\NorthwindCS_File_*'
--文件組備份
Exec Sp_Helpdb NorthwindCS --查看數據文件
Backup Database NorthwindCS
FileGroup='Primary' --數據文件的邏輯名
To disk='G:\Backup\NorthwindCS_FileGroup_*'
With init
--分割備份到多個目標
--恢復的時候不允許丟失任何一個目標
Backup Database NorthwindCS
To disk='G:\Backup\NorthwindCS_Full_*'
,disk='G:\Backup\NorthwindCS_Full_*'
--鏡像備份
--每個目標都是相同的
Backup Database NorthwindCS
To disk='G:\Backup\NorthwindCS_Mirror_*'
Mirror
To disk='G:\Backup\NorthwindCS_Mirror_*'
With Format --第一次做鏡像備份的時候格式化目標
--鏡像備份到本地和遠程
Backup Database NorthwindCS
To disk='G:\Backup\NorthwindCS_Mirror_*'
Mirror
To disk='\\192.168.1.200\Backup\NorthwindCS_Mirror_*'
With Format
--每天生成一個備份文件
Declare @Path Nvarchar(2000)
Set @Path ='G:\Backup\NorthwindCS
sql語句數據庫備份-簡述SQLServer中四種類型的備份方法的含義 愛問
數據庫備份可以分為4個備份類型。
l 全備份:創建備份完成時數據庫內存在的數據的副本。l 差異備份:只記錄自上次數據庫備份后發生更改的數據。
差異數據庫備份比數據庫備份小,而且備份速度快,因此可以更經常地備份,經常備份將減少丟失數據的危險。 l 日志備份:是自上次備份事務日志后對數據庫執行的所有事務的一系列記錄。
可以使用事務日志備份將數據庫恢復到特定的即時點(如輸入多余數據前的那一點)或恢復到故障點。l 文件組備份:可以備份和還原數據庫中的個別文件。
可以只還原已損壞的文件,而不用還原數據庫的其余部分,從而加快了恢復速度。不同的備份類型適用的范圍也不同。
全備份,可以只用一步操作完成數據的全部備份,但執行時間比較長。差異備份和日志備份,都不能獨立作為一個備份集來使用,需要進行一次全備份。
文件備份必須與事務日志備份一起使用,所以文件備份只適用于完全恢復模型和大容量日志記錄恢復模型。 每一種備份類型都有不足之處,要針對需要選擇備份類型,或者使用幾種備份方式的配合來完成數據庫的備份。
經常使用備份方式組合有以下幾種:l 全備份+差異備份:以一周為周期,星期日進行全備份,星期一到星期六每天進行差異備份。l 全備份+日志備份:以一周為周期,星期日進行全備份,星期一到星期六每天進行日志備份。
l 文件組備份+日志備份:備份周期取決于數據庫的大小和能力,每周期分別進行一部分數據文件備份,每天進行日志備份。
sql語句對數據庫備份如何寫
今天看到一篇關于ORCLE的邏輯備份,冷、熱備份的帖子講的挺好的,不過這篇文章是以ORACLE 7為例子,雖然現在已經有很好很強大的RMAN,但還是覺得有必要轉過來,不能喜新厭舊嘛。
==================================================================================Oracle數據庫的備份與恢復 ---- 當我們使用一個數據庫時,總希望數據庫的內容是可靠的、正確的,但由于計算機系統的故障(包括機器故障、介質故障、誤操作等),數據庫有時也可能遭到破壞,這時如何盡快恢復數據就成為當務之急。如果平時對數據庫做了備份,那么此時恢復數據就顯得很容易。
由此可見,做好數據庫的備份是多么的重要,下面筆者就以ORACLE7為例,來講述一下數據庫的備份和恢復。ORACLE 數據庫有三種標準的備份方法,它們分別為導出/導入(EXPORT/IMPORT)、冷備份、熱備份。
導出備份是一種邏輯備份,冷備份和熱備份是物理備份。---- 一、 導出/導入(Export/Import)---- 利用Export可將數據從數據庫中提取出來,利用Import則可將提取出來的數據送回Oracle數據庫中去。
---- 1. 簡單導出數據(Export)和導入數據(Import)---- Oracle支持三種類型的輸出:---- (1)表方式(T方式),將指定表的數據導出。---- (2)用戶方式(U方式),將指定用戶的所有對象及數據導出。
---- (3)全庫方式(Full方式),將數據庫中的所有對象導出。---- 數據導出(Import)的過程是數據導入(Export)的逆過程,它們的數據流向不同。
---- 2. 增量導出/導入---- 增量導出是一種常用的數據備份方法,它只能對整個數據庫來實施,并且必須作為SYSTEM來導出。在進行此種導出時,系統不要求回答任何問題。
導出文件名缺省為*,如果不希望自己的輸出文件定名為*,必須在命令行中指出要用的文件名。---- 增量導出包括三個類型:---- (1)“完全”增量導出(Complete)---- 即備份整個數據庫,比如:---- $exp system/manager inctype=complete file=*---- (2) “增量型”增量導出---- 備份上一次備份后改變的數據。
比如:---- $exp system/manager inctype=incremental file=*---- (3) “累計型”增量導出(Cumulative)---- 累計型導出方式只是導出自上次“完全” 導出之后數據庫中變化了的信息。比如:---- $exp system/manager inctype=cumulative file=*---- 數據庫管理員可以排定一個備份日程表,用數據導出的三個不同方式合理高效地完成。
---- 比如數據庫的備份任務可作如下安排:---- 星期一:完全導出(A)---- 星期二:增量導出(B)---- 星期三:增量導出(C)---- 星期四:增量導出(D)---- 星期五:累計導出(E)---- 星期六:增量導出(F)---- 星期日:增量導出(G)---- 如果在星期日,數據庫遭到意外破壞,數據庫管理員可按以下步驟來恢復數據庫:---- 第一步:用命令CREATE DATABASE重新生成數據庫結構;---- 第二步:創建一個足夠大的附加回段。---- 第三步:完全增量導入A:---- $imp system./manager inctype= RECTORE FULL=Y FILE=A---- 第四步:累計增量導入E:---- $imp system/manager inctype= RECTORE FULL=Y FILE =E---- 第五步:最近增量導入F:---- $imp system/manager inctype=RESTORE FULL=Y FILE=F---- 二、 冷備份---- 冷備份發生在數據庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完整的數據庫。
冷備份是將關鍵性文件拷貝到另外位置的一種說法。對于備份Oracle信息而言,冷備份是最快和最安全的方法。
冷備份的優點是:---- 1.是非常快速的備份方法(只需拷貝文件)---- 2.容易歸檔(簡單拷貝即可)---- 3.容易恢復到某個時間點上(只需將文件再拷貝回去)---- 4.能與歸檔方法相結合,作數據庫“最新狀態”的恢復。---- 5.低度維護,高度安全。
---- 但冷備份也有如下不足:---- 1.單獨使用時,只能提供到“某一時間點上”的恢復。---- 2.在實施備份的全過程中,數據庫必須要作備份而不能作其它工作。
也就是說,在冷備份過程中,數據庫必須是關閉狀態。---- 3.若磁盤空間有限,只能拷貝到磁帶等其它外部存儲設備上,速度會很慢。
---- 4.不能按表或按用戶恢復。---- 如果可能的話(主要看效率),應將信息備份到磁盤上,然后啟動數據庫(使用戶可以工作)并將所備份的信息拷貝到磁帶上(拷貝的同時,數據庫也可以工作)。
冷備份中必須拷貝的文件包括:---- 1.所有數據文件---- 2.所有控制文件---- 3.所有聯機REDO LOG文件---- *文件(可選)。---- 值得注意的是冷備份必須在數據庫關閉的情況下進行,當數據庫處于打開狀態時,執行數據庫文件系統備份是無效的---- 下面是做冷備份的完整例子:---- (1) 關閉數據庫$sqldba lmode=y---- SQLDBA >connect internal;---- SQLDBA >shutdown normal;---- (2) 用拷貝命令備份全部的時間文件、重做日志文件、控制文件、初始化參數文件---- SQLDBA >! cp ---- (3) 重啟Oracle數據庫---- $sqldba lmode=y---- SQLDBA >connect internal;---- SQLDBA >startup;---- 三、 熱備份---- 熱備份是在數據庫運行的情況下,采用archivelog mode方式備份數據的方。
oracle 數據庫備份語句
EXP 畢竟也需要連接到數據庫,也就是需要提供用戶名,密碼,所以你說的數據庫模式導出,是無法正常實現的。但是使用DBA用戶登陸,可以實現導出整個數據庫的類似功能。
數據庫模式:
EXP SYSTEM/PASSWD@ORACLE FULL = Y FILE = '*' LOG = '*'
用戶模式:
EXP USER/PASSWD@ORACLE FILE = '*' LOG = '*'
表模式:
EXP USER/PASSWD@ORACLE FILE = '*' LOG = '*' TABLES = ('TABLE_1','TABLE_2')
IMP 語句只要把上面3個語句中的 'EXP' 換成 'IMP' 就行了
如果還有不明白的,可以在命令行中輸入EXP -HELP 或者 IMP -HELP 查看幫助!
SQL 數據庫備份
SQL語句里有.備份backup database [數據庫名] to disk=[磁盤路徑]例如backup database data to disk='D:\*'恢復restore database [數據庫名] from disk=[磁盤路徑]例如restore database data from disk='D:\*'create PROCEDURE GY_DBBak @bakequip int, -- 備份設備:磁盤&磁帶 @bakpath varchar(50), -- 帶全路徑的備份文件名 @baktype int, -- 完全備份&增量備份 @baklog int, -- '0'備份日志 @bakdb int, -- '0'備份數據庫 @kind varchar(7), --備份還是恢復 @retmsg varchar(20) output --返回信息 AS DECLARE @DevName_data varchar(50) DECLARE @DevName_log varchar(50) declare @db_path varchar(100) declare @log_path varchar(100) DECLARE @RC INT SELECT @db_path = @bakpath + '.dat' SELECT @log_path = @bakpath + '*' SELECT @RC=0 DBCC CHECKDB(Northwind) /*********************************************************** ** CREATE BACKUP AND RESTORE DEVICES ************************************************************/ IF @RC=0 BEGIN EXEC sp_addumpdevice 'disk', @DevName_data,@db_path exec sp_addumpdevice 'disk', @DevName_log,@log_path select @rc=@@error IF @RC<>0 begin EXEC SP_DropDevice @Devname_data exec sp_dropdevice @devname_log SELECT @RC=-1000 return @rc end END IF @kind='backup' BEGIN IF @bakequip=0 BEGIN IF @baktype=0 BEGIN IF @bakdb=0 BEGIN BACKUP DATABASE Northwind TO DISK=@Devname_data WITH INIT END IF @baklog=0 BEGIN BACKUP LOG Northwind WITH NO_LOG BACKUP LOG Northwind TO DISK=@DevName_log WITH INIT,NO_TRUNCATE END END ELSE BEGIN IF @bakdb=0 BEGIN BACKUP DATABASE Northwind TO DISK=@DevName_data WITH NOINIT END IF @baklog=0 BEGIN BACKUP LOG Northwind WITH NO_LOG BACKUP LOG Northwind TO DISK=@DevName_log WITH NOINIT,NO_TRUNCATE END END END SELECT @retmsg='數據庫備份成功!' END IF @kind='restore' BEGIN RESTORE DATABASE Northwind FROM DISK= @DevName_data WITH REPLACE SELECT @retmsg='恢復數據庫成功!' END RETURN 0。
sql 語句 數據庫備份
給你一個vb版本的作為參考吧,思路應該一樣。
還原:
Private Sub restoreButton_Click()
If * <> "" Then '如果路徑不為空
If Dir(*, vbDirectory) <> "" Then '如果路徑所在的文件存在,即路徑正確
sqlString = "RESTORE DATABASE patrol FROM disk = '" & * & "'"
Set rs = accessSQL(sqlString)
Unload Me
MsgBox "數據庫還原成功!", vbOKOnly, "成功!"
Else
MsgBox "找不到該文件!", vbOKOnly, "提示!"
End If
Else '如果文件路徑為空
MsgBox "文件路徑不能為空", vbOKOnly, "提示!"
End If
End Sub
備份:
Private Sub backupButton_Click()
If * <> "" Then '如果路徑為空
If Dir(*, vbDirectory) <> "" Then '如果路徑所在的文件已經存在
If MsgBox("該文件已經存在!" & vbCrLf & "要覆蓋原有文件?", vbYesNo, "警告!") = vbYes Then
GoTo next1
Else
GoTo Next2
End If
Else '不存在覆蓋問題
GoTo next1
End If
'備份數據庫
next1: sqlString = "backup database patrol to disk = '" & * & "' WITH FORMAT, NAME = '" & * & "'"
Set rs = accessSQL(sqlString) //查詢數據庫
Unload Me
MsgBox "數據庫備份成功", vbOKOnly, "成功!"
Else
MsgBox "路徑不能為空", vbOKOnly
Next2: End If
End Sub
用SQL語句備份數據庫
用SQL2000還原bak文件
1.右擊SQL Server 2000實例下的“數據庫”文件夾。就是master等數據庫上一級的那個圖標。選擇“所有任務”,“還原數據庫”
2.在“還原為數據庫”中填上你希望恢復的數據庫名字。這個名字應該與你的源碼中使用的數據庫名字一致。
3.在彈出的對話框中,選“從設備”
4.點擊“選擇設備”
5.點擊“添加”
6.點擊“文件名”文本框右側的“。”按鈕,選中你的“.BAK”文件,并點擊確定回到“選擇還原設備”對話框。
7.點擊確定回到“還原數據庫”對話框。
8.點擊“選項”選項卡
9.將所有“移至物理文件名”下面的路徑,改為你想還原后的將數據庫文件保存到的路徑。如果你不希望改變,可以直接點擊確定。這時便恢復成功了。
很不錯!我今天終于把.bak搞定了,這里有個要注意的地方就是選項中的“移至物理文件名”下面的路徑,這個路徑一定要修改哦,不然會出現錯誤