sql資料庫壓縮備份
(以壓縮的方式備份) 解答:備份示例如下:例1:(備份) 1 use master 2 declare @path='c:aazy.bak' 3 backup database zy to 4 disk=@path with noinit 說明: 1 使用系統庫 2 設置備份的路徑及文件名,注意是用單引號引用. 3 需備份的資料庫 4 設置備份的驅動器,將路徑設給驅動器,再設定備份的方式(重寫或覆蓋) 例2:(壓縮備份的資料庫文件) use master exec xp_makecab 'c:m.cab',mszip,1,'c:aazy.bak' exec xp_cmdshell ' c:123.cab', 'd:123.cab' 說明: 'c:m.cab' 壓縮備份的名稱 mszip 壓縮方式 'c:aazy.bak' 被壓縮文件的路徑 到另一個目錄保存 (責任編輯:盧兆林)
B. SQL資料庫安裝與備份詳解!!沒接觸過SQL,但公司要求會備份與安裝!!求解!!!謝謝!!
sql資料庫安裝簡明教程
http://www.hotliu.net/Read.Asp?id=65
SQL資料庫的備份、還原、壓縮與數據轉移的方法
一、備份資料庫
1、打開SQL企業管理器,在控制台根目錄中依次點開Microsoft SQL Server
2、SQL Server組-->雙擊打開你的伺服器-->雙擊打開資料庫目錄
3、選擇你的資料庫名稱(如財務資料庫cwdata)-->然後點上面菜單中的工具-->選擇備份資料庫
4、備份選項選擇完全備份,目的中的備份到如果原來有路徑和名稱則選中名稱點刪除,然後點添加,如果原來沒有路徑和名稱則直接選擇添加,接著指定路徑和文件名,指定後點確定返回備份窗口,接著點確定進行備份。二、還原資料庫
1、打開SQL企業管理器,在控制台根目錄中依次點開Microsoft SQL Server;
2、SQL Server組-->雙擊打開你的伺服器-->點圖標欄的新建資料庫圖標,新建資料庫的名字自行取;
3、點擊新建好的資料庫名稱(如財務資料庫cwdata)-->然後點上面菜單中的工具-->選擇恢復資料庫;
4、在彈出來的窗口中的還原選項中選擇從設備-->點選擇設備-->點添加-->然後選擇你的備份文件名-->添加後點確定返回,這時候設備欄應該出現您剛才選擇的資料庫備份文件名,備份號默認為1(如果您對同一個文件做過多次備份,可以點擊備份號旁邊的查看內容,在復選框中選擇最新的一次備份後點確定)-->然後點擊上方常規旁邊的選項按鈕;
5、在出現的窗口中選擇在現有資料庫上強制還原,以及在恢復完成狀態中選擇使資料庫可以繼續運行但無法還原其它事務日誌的選項。在窗口的中間部位的將資料庫文件還原為這里要按照你SQL的安裝進行設置(也可以指定自己的目錄),邏輯文件名不需要改動,移至物理文件名要根據你所恢復的機器情況做改動,如您的SQL資料庫裝在D:Program FilesMicrosoft SQL ServerMSSQLData,那麼就按照您恢復機器的目錄進行相關改動改動,並且最後的文件名最好改成您當前的資料庫名(如原來是 cw123_data.mdf,現在的資料庫是cwdata,就改成cwdata_data.mdf),日誌和數據文件都要按照這樣的方式做相關的改動(日誌的文件名是*_log.ldf結尾的),這里的恢復目錄您可以自由設置,前提是該目錄必須存在(如您可以指定 d:sqldatacwdata_data.mdf或者d:sqldatacwdata_log.ldf),否則恢復將報錯;
6、修改完成後,點擊下面的確定進行恢復,這時會出現一個進度條,提示恢復的進度,恢復完成後系統會自動提示成功,如中間提示報錯,請記錄下相關的錯誤內容並詢問對SQL操作比較熟悉的人員,一般的錯誤無非是目錄錯誤或者文件名重復或者文件名錯誤或者空間不夠或者資料庫正在使用中的錯誤,資料庫正在使用的錯誤您可以嘗試關閉所有關於SQL窗口然後重新打開進行恢復操作,如果還提示正在使用的錯誤可以將SQL服務停止然後重起看看,至於上述其它的錯誤一般都能按照錯誤內容做相應改動後即可恢復。三、收縮資料庫
一般情況下,SQL資料庫的收縮並不能很大程度上減小資料庫大小,其主要作用是收縮日誌大小,應當定期進行此操作以免資料庫日誌過大。
1、設置資料庫模式為簡單模式:打開SQL企業管理器,在控制台根目錄中依次點開Microsoft SQL Server-->SQL Server組-->雙擊打開你的伺服器-->雙擊打開資料庫目錄-->選擇你的資料庫名稱(如財務資料庫cwdata)--> 然後點擊右鍵選擇屬性-->選擇選項-->在故障還原的模式中選擇「簡單」,然後按確定保存;
2、在當前資料庫上點右鍵,看所有任務中的收縮資料庫,一般裡面的默認設置不用調整,直接點確定;
3、收縮資料庫完成後,建議將您的資料庫屬性重新設置為標准模式,操作方法同第一點,因為日誌在一些異常情況下往往是恢復資料庫的重要依據。四、數據的轉移(新建資料庫或轉移伺服器)
一般情況下,最好使用備份和還原操作來進行轉移數據,在特殊情況下,可以用導入導出的方式進行轉移,這里介紹的就是導入導出方式,導入導出方式轉移數據一個作用就是可以在收縮資料庫無效的情況下用來減小(收縮)資料庫的大小。
1、將原資料庫的所有表、存儲過程導出成一個SQL文件,導出的時候注意在選項中選擇編寫索引腳本和編寫主鍵、外鍵、默認值和檢查約束腳本選項;
2、新建資料庫,對新建資料庫執行第一步中所建立的SQL文件;
3、用SQL的導入導出方式,對新資料庫導入原資料庫中的所有表內容。 五、SQL資料庫備份恢復的另一種方法
1、將原來備份的C:Program FilesMicrosoft SQL ServerMSSQLData目錄下的兩個文件*_sql_Data.MDF 和 *_sql_Log.LDF 同時COPY 到您的SQL Server 2000的安裝目錄中,如: C:Program FilesMicrosoft SQL ServerMSSQLData ;
2、打開 "企業管理器" -> "機器名" -> "資料庫" ,右鍵點擊 "所有任務" -> "附加資料庫" ,然後再選擇剛才COPY的文件 *_sql_Data.MDF ,點擊附加,成功!
3、做好其它設置,如登錄身份、密碼等即可。
C. 用vb.net對sql多資料庫壓縮備份為一個文件
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;
using System.Text;
using _5dRss.Const;
using _5dRss.lib.Data.Tool;
public partial class admin_admin_dbmanage : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//生成備份文件列表
ListBackupFiles();
if (!Page.IsPostBack)
{
Showmsg.Visible = false;
//資料庫路徑
lilDBPath.Text = HttpContext.Current.Request.PhysicalApplicationPath + "App_Data\\" + ConfigurationSettings.AppSettings["DBFile"];
//新建一個 FileInfo 對象,並獲得資料庫文件的大小,然後轉換單位為KB
FileInfo myFileInfo = new FileInfo(lilDBPath.Text);
lilDBSize.Text = Convert.ToString(myFileInfo.Length/1024) + " KB";
//如果兩個參數都不為空,則繼續執行
if (Request.QueryString["cmd"] != null && Request.QueryString["source"] != null)
{
//備份資料庫原文件名
string sourceFileName = Request.QueryString["source"];
//如果 cmd 參數為 DelFile
if (Request.QueryString["cmd"].Equals("DelFile"))
{
//刪除備份資料庫文件
File.Delete(HttpContext.Current.Request.PhysicalApplicationPath + "Backup\\" + sourceFileName);
//刷新備份文件列表
ListBackupFiles();
Showmsg.Visible = true;
Showmsg.Text = "<div align='center' style='margin-bottom:8px;'><img src='images/aL.gif' style='margin-bottom:-6px;'/><span class='alertTxt'>刪除備份資料庫成功!</span><img src='images/aR.gif' style='margin-bottom:-6px;'/></div>";
}
//如果 cmd 參數為 Restore
if (Request.QueryString["cmd"].Equals("Restore"))
{
//用備份文件覆蓋原文件
File.Copy(HttpContext.Current.Request.PhysicalApplicationPath + "Backup\\" + sourceFileName, HttpContext.Current.Request.PhysicalApplicationPath + "App_Data\\" + ConfigurationSettings.AppSettings["DBFile"], true);
//刷新備份文件列表
ListBackupFiles();
Showmsg.Visible = true;
Showmsg.Text = "<div align='center' style='margin-bottom:8px;'><img src='images/aL.gif' style='margin-bottom:-6px;'/><span class='alertTxt'>還原備份資料庫成功!</span><img src='images/aR.gif' style='margin-bottom:-6px;'/></div>";
}
}
}
}
protected void lnkbtnCompactDB_Click(object sender, EventArgs e)
{
//壓縮修復資料庫
AccessDBtool.CompactAccessDB(SysConfig.ConnectionString, HttpContext.Current.Request.PhysicalApplicationPath + "App_Data\\" + ConfigurationSettings.AppSettings["DBFile"]);
Showmsg.Visible = true;
Showmsg.Text = "<div align='center' style='margin-bottom:8px;'><img src='images/aL.gif' style='margin-bottom:-6px;'/><span class='alertTxt'>壓縮修復資料庫成功!</span><img src='images/aR.gif' style='margin-bottom:-6px;'/></div>";
}
protected void lnkbtnBackupDB_Click(object sender, EventArgs e)
{
string sourceFileName = HttpContext.Current.Request.PhysicalApplicationPath + "App_Data\\" + ConfigurationSettings.AppSettings["DBFile"];
string destFileName = HttpContext.Current.Request.PhysicalApplicationPath + "Backup\\" + "Backup_";
destFileName += DateTime.Now.ToString("yyyyMMddHHmmss");
destFileName += ".mbk";
//將資料庫文件Copy到Backup目錄,如果有重名文件就覆蓋原文件
File.Copy(sourceFileName, destFileName, true);
//生成備份文件列表
ListBackupFiles();
Showmsg.Visible = true;
Showmsg.Text = "<div align='center' style='margin-bottom:8px;'><img src='images/aL.gif' style='margin-bottom:-6px;'/><span class='alertTxt'>備份資料庫成功!</span><img src='images/aR.gif' style='margin-bottom:-6px;'/></div>";
}
/// <summary>
/// 生成備份文件列表
/// </summary>
/// <returns>文件列表,文件詳細信息及操作選項的HTML代碼</returns>
public void ListBackupFiles()
{
//如果目錄不存在則創建次目錄
if (!Directory.Exists(HttpContext.Current.Request.PhysicalApplicationPath + "Backup\\"))
Directory.CreateDirectory(HttpContext.Current.Request.PhysicalApplicationPath + "Backup\\");
DirectoryInfo mydir = new DirectoryInfo(HttpContext.Current.Request.PhysicalApplicationPath + "Backup\\");
StringBuilder sb = new StringBuilder();
foreach (FileInfo f in mydir.GetFiles())
{
sb.Append("<a href='backup/" + f.Name + "' target='_blank'><img border='0' src='images/mdb.gif' style='margin:4px 3px -3px 0px'/>" + f.Name + "</a><a href='?cmd=DelFile&source=" + f.Name + "' title='刪除備份文件'>刪除</a> | <a href='?cmd=Restore&source=" + f.Name + "' title='刪除備份文件'>還原資料庫</a> | " + f.Length/1024 + " KB | " + f.CreationTime + "<br />");
}
lilBackupFileList.Text = sb.ToString();
}
}
把下面這句換成你的資料庫地址:
//資料庫路徑
// lilDBPath.Text = HttpContext.Current.Request.PhysicalApplicationPath + "App_Data\\" + ConfigurationSettings.AppSettings["DBFile"];
D. 如何讓SQL Server資料庫自動備份並壓縮成rar文件
1、 先開啟xm_cmdshell服務
xp_cmdshell 擴展存儲過程將命令字元串作為操作系統命令 shell 執行,並以文本行的形式返回所有輸出。由於xp_cmdshell 可以執行任何操作系統命令,所以一旦SQL Server管理員帳號(如sa)被攻破,那麼攻擊者就可以利用xp_cmdshell 在SQL Server中執行操作系統命令,如:創建系統管理員,也就意味著系統的最高許可權已在別人的掌控之中。由於存在安全隱患,所以在SQL Server 中, xp_cmdshell 默認是關閉的。
兩種方式啟用xp_cmdshell
a.打開外圍應用配置器—>
功能的外圍應用配置器—>
實例名Database Enginexp_cmdshell—>啟用
b.sp_configure
--開啟xp_cmdshell部分
--------------------------------------------------
-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 1
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO
--通過xp_cmdshell執行shell命令的部分
--------------------------------------------------
Exec xp_cmdshell 'bcp '
GO
--關閉xp_cmdshell部分
-----------------------------------------------------
-- To allow advanced options to be changed.
EXEC sp_configure 'show advanced options', 1
GO
-- To update the currently configured value for advanced options.
RECONFIGURE
GO
-- To enable the feature.
EXEC sp_configure 'xp_cmdshell', 0
GO
-- To update the currently configured value for this feature.
RECONFIGURE
GO
2、新建立一個作業,名稱命名為「MyDb完全備份」,在分類下面選擇「資料庫維護」,然後新建立作業第一個步驟,步驟名為「對數據進。
DECLARE @strSql VARCHAR(1000)
,@strSqlCmd VARCHAR(1000)
,@timeDateDiff INT
SET @timeDateDiff = DATEDIFF(week,0,GETDATE())
SET @timeDateDiff = CASE DATEPART(WEEKDAY,GETDATE())
WHEN 1 THEN @timeDateDiff -1
ELSE @timeDateDiff END
SET @strSql='E:\DataBackup\LiangJiaLun219' -- 備份目錄及備份的文件頭
+CONVERT(CHAR(8),DATEADD(week, @timeDateDiff,0),112) -- 完全備份日期
+'_0100' -- 完全備份時間
+'完全備份'
SET @strSqlCmd= @strSql+'.BAK' --備份文件的擴展名
BACKUP DATABASE [LiangJiaLun219]
TO DISK = @strSqlCmd WITH INIT
,NOUNLOAD
,NAME = N'LiangJiaLun219 備份'
,NOSKIP
,STATS = 10
,NOFORMAT
3、然後開始執行對資料庫的壓縮,在步驟中再新建一個作業,步驟名為「壓縮資料庫」,然後在命令框中輸入如下的SQL代碼:
DECLARE @strSql VARCHAR(1000)
,@strSqlCmd VARCHAR(1000)
,@timeDateDiff INT
,@strWeekDay VARCHAR(20)
SET @timeDateDiff= DATEDIFF(week,0,GETDATE())
SET @timeDateDiff= CASE DATEPART(WEEKDAY,GETDATE())
WHEN 1 THEN @timeDateDiff-1
ELSE @timeDateDiff END
SET @strSql='E:\DataBackup\LiangJiaLun219' -- 備份目錄及備份的文件頭
+CONVERT(CHAR(8),DATEADD(week,@timeDateDiff,0),112) -- 完全備份日期
+'_0100' -- 完全備份時間
+'完全備份'
SET @strWeekDay= CASE DATEPART(WEEKDAY,GETDATE()) WHEN 1 THEN '星期天'
WHEN 2 THEN '星期一'
WHEN 3 THEN '星期二'
WHEN 4 THEN '星期三'
WHEN 5 THEN '星期四'
WHEN 6 THEN '星期五'
WHEN 7 THEN '星期六' END
SET @strSqlCmd= 'ECHO 壓縮開始日期: '+CONVERT(VARCHAR(20),GETDATE(),120)+' '+@strWeekDay+' >> E:\DataBackup\CompressDataBase\LiangJiaLun219'+CONVERT(CHAR(6),DATEADD(week,@timeDateDiff,0),112)+'.txt'
EXEC master.dbo.XP_CMDSHELL @strSqlCmd,NO_OUTPUT
SET @strSqlCmd= 'RAR.EXE A -R '+@strSql+'.RAR '+@strSql+'.BAK >> E:\DataBackup\CompressDataBase\LiangJiaLun219'+CONVERT(CHAR(6),DATEADD(week,@timeDateDiff,0),112)+'.txt'
PRINT LEN(@strSqlCmd)
PRINT (@strSqlCmd)
EXEC master.dbo.XP_CMDSHELL @strSqlCmd,NO_OUTPUT
SET @strSqlCmd= 'ECHO 壓縮日期: '+CONVERT(VARCHAR(20),GETDATE(),120)+' '+@strWeekDay+' >> E:\DataBackup\CompressDataBase\LiangJiaLun219'+CONVERT(CHAR(6),DATEADD(week,@timeDateDiff,0),112)+'.txt'
EXEC master.dbo.XP_CMDSHELL @strSqlCmd,NO_OUTPUT
4、設定計劃任務
5、如果執行一下代碼 首先必須安裝WinRar 然後 在環境變數中---系統環境變數 Path 中 把Rar.exe 的路徑加進去 (如:C:/Program Files/WinRar/) 這樣就可以了。只需要加路徑。。。不需要Rar.exe。
E. 如何讓SQL Server資料庫自動備份並壓縮
從sqlserv2008開始備份都有自動壓縮功能,不需要再額外壓縮。可以在實例的屬性中查看是否有開啟壓縮備份。
自動備份只需要加任務計劃選擇定時執行就可以了。
兩項用自帶的功能就完全能夠實現
F. SQL Server如何備份並壓縮備份文件
答:SQLSERVER2000 備份 例1:(備份) 1 use master 2 declare @path='c:aazy.bak' 3 backup database zy to 4 disk=@path with noinit 說明: 1 使用系統庫 2 設置備份的路徑及文件名,注意是用單引號引用. 3 需備份的資料庫 4 設置備份的驅動器,將路徑設給驅動器,再設定備份的方式(重寫或覆蓋) 例2:(壓縮備份的資料庫文件) use master exec xp_makecab 'c:m.cab',mszip,1,'c:aazy.bak' exec xp_cmdshell ' c:123.cab', 'd:123.cab' 說明: 'c:m.cab' 壓縮備份的名稱 mszip 壓縮方式 'c:aazy.bak' 被壓縮文件的路徑 到另一個目錄保存關鍵字:MYSQL相關文章:master資料庫中兩個非常有用的存儲過程如何利用存儲過程和觸發器來管理數據輕松應對創建存儲過程時出現失敗的情況深入了解存儲過程的編寫經驗和優化措施通過實例講解由淺入深學會存儲過程
G. sqlserver2008資料庫壓縮備份能分卷壓縮嗎
不能,不過你可以把壓縮後的文件用winrar進行分卷壓縮, 這樣比較好弄
H. 如何實現SQL Server 2005資料庫自動備份壓縮
實現SQL server2005資料庫自動備份壓縮功能有兩種方式,自動功能和用第三方工具,自帶功能比較復雜,請直接參考網路文庫教程,如下:http://wenku..com/link?url=HzqV-g1lympn-L7wFynKq2p4N0za04ZoV5LpW
用第三方工具「多備份」也可以實現資料庫自動備份壓縮,節省存儲空間
I. 為什麼要壓縮和備份資料庫
資料庫壓縮是SQL
Server
2008的一個新特性,它可以顯著地降低備份和恢復操作。默認情況下,備份壓縮是在伺服器實例級別上關閉的。不像其它提供不同級別壓縮的第三方軟體,SQL
Server
2008隻提供了一個級別。
資料庫壓縮是針對資料庫存儲的內容主要是文本進行壓縮存儲以節約空間的一種方法。
數據備份就是要保存數據的完整性,防止非法關鍵,斷電,病毒感染等等情況,使數據丟失。有必要的話,最好勤備份,防止數據丟失。
最主要的原因:盡可能地減少損失,包括時間上、精神上和金錢上的損失。很多人都不注意備份數據,以致在發生問題後丟失大量的重要數據。要知道,在地球上網是很危險的,即使做好安全預防措施,也難免會發生不可預想的問題。因此,數據備份是日常必不可少的操作。
J. MySQL的備份與還原,非常規備份,全量備份,增量備份
1:官方百萬級別的測試資料庫:
官方測試資料庫github網址:https://github.com/datacharmer/test_db
下載到目錄,解壓即可,運行命令:
2:自己創建簡單測試資料庫:
快速隨機生成測試語言的網站:https://generatedata.com/
選擇sql和想生成的欄位,點擊生成Generate!生成即可。
在MySQL輸入生成的語句即可。
3:測試備份還原時用到的命令
刪庫跑路測試(先備份好)
還原後查詢庫的表數據是否完整。
採用復制整個數據存放目錄
1:查看資料庫數據存放位置
有兩種方法:
1):在資料庫中用命令 show variables like 'datadir' 查看
2):在配置文件中查看,配置了 datadir 目錄的可查看。沒有配置的默認為 /var/lib/mysql/ 位置
Linux中查看配置文件
2:復制目錄或者目錄下某個資料庫名
3:還原時直接復制文件夾到資料庫目錄即可
mysqlmp又可叫做全量備份。
參數 --databases 同 -B ,單獨一個庫,也可省略。
1、備份命令mysqlmp格式
格式:mysqlmp -h主機名 -P埠 -u用戶名 -p密碼 database 資料庫名 > 文件名.sql
備份testDatabase資料庫
2、備份MySQL資料庫為帶刪除表的格式
備份MySQL資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫。
3、直接將MySQL資料庫壓縮備份
備份並壓縮
4、備份MySQL資料庫某個(些)表
備份testDatabase中的myTable表,不需要用參數 --databases 或者 -B
5、同時備份多個MySQL資料庫
同時備份testDatabase和 employees兩個庫
6、備份伺服器上所有資料庫
參數 --all-databases 同 -A
7、還原MySQL資料庫的命令
1) 不指定數據名還原,默認生成原資料庫名稱,還原所有資料庫。
2) 指定數據名還原,還原指定單個資料庫,需在資料庫種預先創建一個testDatabase名稱。
3) 還原壓縮的MySQL資料庫
4) 進入資料庫用source導入
增量備份是針對於資料庫的bin-log日誌進行備份的,增量備份是在全量的基礎上進行操作的。增量備份主要是靠mysql記錄的bin-log日誌。
1:查看是否開啟bin-log日誌
進入mysql輸入命令可查看。
顯示如下為開啟狀態,日誌文件在/var/lib/mysql/以binlog.00001的格式保存。
如未開啟,需要在配置文件種配置
2:查看目前使用的bin-log日誌文件
進入mysql查看命令。
顯示如下,目前使用的是binlog.000022文件,所有操作都記錄在此文件。
查看當前testDatabase的表myTable數據如下,
3:刷新日誌,使用新的日誌文件(備份)
在命令端執行命令
日誌文件從 binlog.000022 變為 binlog.000023
這時相當與已經備份成功,備份文件即為上次的binlog.000022日誌文件。
4:刪除數量,從日誌還原數據
1) 刪除ABC行
查詢以及沒有ABC行列。
2) 恢復數據ABC行
退出mysql,在命令端用mysqlbinlog命令恢復到binlog.000022日誌狀態。
進入資料庫再次查看數據,ABC已經恢復。
增量備份完成。