在實際的資料庫Sqlserver的運維的過程中,很多時候我們需要做到數據的備份操作,可以做到定時備份,也可以進行手動資料庫備份。在實際的過程中,有時候因業務需要備份出完整資料庫,而有時候又因為實際業務只需要影響到一張表或者幾張表,備份整個資料庫未必是最優的方案,此時可採用生成腳本或者Select I ...
在實際的資料庫Sqlserver的運維的過程中,很多時候我們需要做到數據的備份操作,可以做到定時備份,也可以進行手動資料庫備份。在實際的過程中,有時候因業務需要備份出完整資料庫,而有時候又因為實際業務只需要影響到一張表或者幾張表,備份整個資料庫未必是最優的方案,此時可採用生成腳本或者Select Into的方式對單表進行備份。DBA在運維過程中備份數據差不多用的就是以上幾種操作方式,下麵就詳細說下這幾種備份方式。
(1)資料庫整庫備份
此方式備份資料庫是最完整的,可以將資料庫中所有的對象都備份下來生成個.Bak文件,後續如果出現問題,可以直接通過.bak文件還原資料庫,但備份的耗時會比較長,並且占用磁碟空間會比較大。此方法備份的操作是直接在Sqlserver資料庫管理軟體中選中資料庫,右鍵選擇任務,然後選擇備份,如下圖
然後進入備份界面後選擇備份存放的路徑以及設置好備份文件名稱,點擊確定即可進行備份,如下圖
(2)通過生成腳本的方式單表備份
有時候我們業務系統的更新可能只涉及到一張表或者幾張表,此時可以通過對每個數據表進行單表備份的方式來操作,只備份這幾張涉及到變更操作的數據表。操作的方法為在Sqlserver資料庫管理軟體中選中資料庫,右鍵選擇任務,然後選擇生成腳本,參考方法一中的第一個圖。然後進入生成腳本界面,選擇下一步進入設置界面:
進入設置界面後,選擇特定的資料庫對象,然後再從中選擇你需要備份的數據表,如下圖:
然後點擊下一步,進入存儲路徑以及導出設置界面,保存到文件可以選擇保存為單個文件或者每個對象一個文件。此處關鍵一點記得選擇高級按鈕,在裡面設置要編寫腳本的數據類型,否則預設規則導出來的文件中只含有表的架構語句(即創建table的SQL語句),不含有任何表數據。如下圖
選擇高級按鈕後,進入高級設置項,將下拉菜單下拉到最後可以看到一個設置項叫做要編寫腳本的數據的類型。將之設置為架構和數據或者僅限數據。只有這兩種方式導出來的文件中才包含表格中的數據,僅限架構導出來的只是創建table的語句。
設置好上述信息後點擊完成,自動創建備份文件到指定的存儲路徑下,生成的文件是.sql尾碼的資料庫SQL文件。
(3)通過Select Into語句將一個表快速備份到一個臨時新表中。
此備份方法是將查找出來的數據快速寫入到指定的備份新表中,自動創建table。
如將A資料庫中的Product表所有數據快速備份到ABackUp資料庫中的Product_0228表中,可使用以下語句操作,直接在新建查詢視窗執行即可。
Select * Into ABackUp.dbo.Product_0228 FROM A.dbo.Product;
執行此語句要求into後面的表在執行之前不存在,存在的話上述語句無法執行。這個Product_0228表格也無需手動處理,上述語句在執行的時候自動創建跟Product表一致的結構。
備註:此文章轉載自博主個人技術站點,博主個人站致力於分享相關技術文章,同時也分享Windows伺服器和Linux伺服器運維等知識:IT技術小趣屋。