1. 程式人生 > >SQL Server 備份遷移策略

SQL Server 備份遷移策略

標籤:SQL SERVER/MSSQL SERVER/資料庫/DBA/xp_cmdshell/備份壓縮

概述

     當備份空間不是很充裕的情況下需要找方法將備份檔案拷貝到專用的備份機器上去,特別是儲存空間不夠優越的企業更是如此,接下來就分享兩種遷移備份檔案的方法。

目錄

伺服器配置選項

查詢伺服器配置

使用xp_cmdshell方法之前必須先開啟對應的伺服器配置選項,查詢系統中每個伺服器範圍的配置選項值使用以下語句。

--系統中每個伺服器範圍的配置選項值對應一行
SELECT * FROM sys.configurations
ORDER BY name DESC
GO

 開啟xp_cmdshell

---開啟xp_cmdshell
sp_configure 'show advanced options', 1;--開啟sp_configure系統儲存過程高階選項,預設為0
go
reconfigure;---指定如果配置設定不需要伺服器停止並重新啟動,則更新當前執行的值.RECONFIGURE 還會檢查新的配置值中是否有無效值(如果是RECONFIGURE WITH OVERRIDE則會跳過錯誤檢查)
go
sp_configure 'xp_cmdshell', 1;
go
reconfigure;
go
sp_configure 
'show advanced options', 0; go

開啟allow updates

在伺服器範圍的配置裡面如果‘allow updates’的vlues值是‘1’的話,會阻止對系統表的更新,即上面開啟xp_cmdshell會被阻止,所以必須先開啟allow updates

----開啟允許更新系統表功能(當更改系統配置選項時提示不執行對系統目錄即時更新時需要開啟改功能)
sp_configure 'show advanced options', 1;
GO
sp_configure 'allow updates',0 ---開啟允許更新系統表
go
sp_configure 
'show advanced options', 0; go ----關閉更新系統表功能 sp_configure 'show advanced options', 1; GO sp_configure 'allow updates',1 go sp_configure 'show advanced options', 0; go

xp_cmdshell方法

先建立一個備份資料庫的儲存過程,然後通過作業呼叫儲存過程執行備份。

USE [master] 
GO
CREATE PROCEDURE [dbo].[SP_bakupDataBase] 
(@dbname nvarchar(50)
)
as 
Declare @strCmdShell varchar(300) 
Declare @FullFileName Varchar(200) 
Declare @strPath NVARCHAR(200)
Declare @ToFileName varchar(200) 
Declare @SQLStr varchar(500) 
Declare @SQLStr2 varchar(500) 
Declare @FlagDel INT 
declare @backupSetId as int

SET @strPath = convert(NVARCHAR(19),getdate(),120)
SET @strPath = REPLACE(REPLACE(convert(NVARCHAR(19),getdate(),120), ':' , ''),' ','_')
SET @FullFileName='E:\'+@dbname+'\'+@dbname+'_backup_'+@strPath+'.bak' 
SET @ToFileName='\\192.168.1.1\E$\備份' 
SET @FlagDel=1
SET @SQLStr='copy '+@FullFileName+' '+@ToFileName 
SET @SQLStr2='del ' +@FullFileName 
BackUp DataBase @dbname To Disk= @FullFileName WITH NOINIT , NOUNLOAD , NOSKIP, NOFORMAT , STATS = 10,CHECKSUM,CONTINUE_AFTER_ERROR
---驗證備份集是否有效
select @backupSetId = position from msdb..backupset where database_name=@dbname and backup_set_id=(select max(backup_set_id) from msdb..backupset where database_name=@dbname )
IF @backupSetId is null begin raiserror(N'驗證失敗。找不到資料庫資料庫的備份資訊。', 16, 1) end
RESTORE VERIFYONLY FROM  DISK = @FullFileName WITH  FILE = @backupSetId,  NOUNLOAD,  NOREWIND
EXEC master.dbo.xp_cmdshell 'net use \\192.168.1.1\E$ 123456 /user:192.168.1.1\user' 
EXEC Master..xp_cmdshell @SQLStr 
IF (@FlagDel =1)
BEGIN 
EXEC master.. xp_cmdshell @SQLStr2
END

---圖片解釋

執行備份

USE [master] 
EXEC sp_bakupDataBase 'AdventureWorks2008R2'

dos方法

 如果遠端備份空間不夠充足,需要將備份的資料庫進行壓縮後再拷貝,先通過正常的備份將資料庫備份到本地,然後使用RAR.EXE壓縮軟體,壓縮並拷貝到遠端電腦,將下面的批處理儲存成bat字尾格式,然後可以通過任務計劃呼叫批處理進行定時操作。

@echo off
rem  為註釋語法 timeout 為window 2003版本才有的指定 xp不相容


setlocal enabledelayedexpansion
set /a t=0*3600
:start
for /f "delims=" %%a in ("dir /b 'D:\DataBase\person\person*'") do (
"c:\Program Files\WinRAR\winrar.exe" a -as -r -EP1 -ibck -df "\\192.168.1.1\DataBase\person\person_.rar"  -m3 -agyyyymmddhhmmss "D:\DataBase\person\p*"
rem del /q /f "D:\DataBase\person\p*"
)
rem timeout /t %t% /nobreak
rem goto :start

---圖片解釋

相關推薦

SQL Server 備份遷移策略

標籤:SQL SERVER/MSSQL SERVER/資料庫/DBA/xp_cmdshell/備份壓縮 概述      當備份空間不是很充裕的情況下需要找方法將備份檔案拷貝到專用的備份機器上去,特別是儲存空間不夠優越的企業更是如此,接下來就分享兩種遷移備份檔案的方法。 目錄 伺服器配置選項

SQL Server備份和還原

sql 數據庫 備份 還原 楊書凡 對於生產數據來講,數據的安全性是至關重要的,任何數據的丟失都可能產生嚴重的的後果。而備份作為數據的副本,可以有效的保護和恢復數據數據丟失的原因 數據丟失的原因主要包括以下幾類:(1)程序錯誤。例如,程序異常終止或邏輯錯誤等(2)人為錯誤。例

sql server 備份恢復效率

在服務器 效果 toolbar nbsp string index post conf creat 如何提高備份的速度呢? 其實這個問題和如何讓系統跑的更快是一樣的,要想系統跑的更快,無非就是:優化系統,或者就是更好更強大的服務器,特別是更多的cpu、更大的內存、更快的硬盤

終於將 SQL Server 成功遷移至 MySQL8.0 啦!!!

最新版 工具 .com 發生 降級 時也 SQ 維護 系統 之前一直使用 SQL Server 作為主數據庫而不是 MySQL ,原因之一是單機 SQL Server 性能比 MySQL 強很多,另一個原因是之前客戶的系統管理員大多只有 SQL Server 的維護經驗。但

sql server 備份與恢復系列四 大容量模式下的備份與還原

日誌備份 mas 正在 .com 基準 數據庫 說明 bubuko ren 一. 概述   在sql server 備份與恢復系列的第一篇裏,有講到大容量模式下備份與還原的相關知識。這篇重點來演示在大容量模式下常用的備份與還原模式“完整備份+差異備份+日誌備份”。 在大容量

JAVA入門到精通-第64講-sql server備份恢復

  郵件伺服器備份:   c 建立  查詢  更新  刪除  /  增刪改查;  

SQL SERVER 備份資料庫sql語句

declare @filename nvarchar(100) set @filename='D:\\DB_backup\\DBNAME_'+convert(char(8),getdate(),112)+'.bak' print @filename BACKUP DATA

SQL Server備份賬號和密碼

SQL Server通過任務指令碼匯出只有建立使用者的語句,無密碼這個在遷移過程很痛苦.所以官方網站提供一個儲存過程sp_help_revlogin請送匯出賬號和密碼. 找到想要的賬號在B(恢復機)恢復即可 開啟 USE master GO IF OBJECT_ID ('sp_hexadeci

使用Navicat將SQL Server資料遷移到MySQL

1、SQL Server資料庫匯出到MySQL 如果我們已經基於SQL Server進行了開發,並且具有很多基礎的資料庫資料了,那麼我們可以利用SQL Server匯出到MySQL資料庫中,這種是我們常見的一種開發方式,畢竟基於SQLServer資料庫開發起來會比較快速一些。 SQL Server資料庫的

第一篇——第一文 SQL Server 備份基礎

當看這篇文章之前,請先給你的所有重要的庫做一次完整資料庫備份。下面正式開始備份還原的旅程。前言為什麼要備份?理由很簡單——為了還原/恢復。當然,如果不備份,還可以通過磁碟恢復來找回丟失的檔案,不過SQL Server很生氣,後果很嚴重。到時候你就知道為什麼先叫你備份一次再開始

SQL Server 備份 出現作業系統錯誤 5(拒絕訪問。)

備份 對於 伺服器“WIN-XXXXX”失敗。  (Microsoft.SqlServer.SmoExtended)其他資訊:System.Data.SqlClient.SqlError: 無法開啟備份裝置 'D:\data.bak'。出現作業系統錯誤 5(拒絕訪問。)。 (

使用SQL SERVER備份命令備份資料庫

SQL SERVER資料庫備份命令: 完整備份(包括資料data和日誌log): Backup Database *database_name*   To disk='*X:\folder\databse_name_backupname.bak*' 注

sql server 備份失敗[上載入的介質已格式化為支援 1 個介質簇,但根據指定的備份裝置,應支援 2 個介質簇]

....上載入的介質已格式化為支援 1 個介質簇,但根據指定的備份裝置,應支援 2 個介質簇。 這句話的意思是,我的C:\Program Files (x86)\Microsoft SQL

SQL Server 備份和還原全攻略, 完全備份,差異備份,增量備份,事務日誌備份

2011-06-29 17:03 by 聽風吹雨, 3435 閱讀, 17 評論, 收藏, 編輯 一、知識點 完全備份: 備份全部選中的資料夾,並不依賴檔案的存檔屬性來確定備份那些檔案。(

SQL SERVER備份資料庫檔案(使用SSMS)

微軟的SQL SERVER是市面佔有率比較大的資料庫,在平時的使用與維護中,備份資料是一件十分重要的! 備份操作,用微軟自帶的ssms(SQL Server Management Studio)工具即可備份,分享一下操作過程。   一、環境準備 伺服器作業系統--winserver2008R2 資料

SQL Server 維護計劃實現資料庫備份策略實戰)

一、背景 之前寫過一篇關於備份的文章:SQL Server 維護計劃實現資料庫備份,上面文章使用完整備份和差異備份基本上能解決資料庫備份的問題,但是為了保障資料更加安全,我們需要再次完善我們的備份計劃; 下面這篇文章主要加入了日誌備份,並對設計備份的頻率和設計命名規範等問題進行實戰; 二、最佳實踐

NBU 備份 SQL Server

nbu7 netbackup7 備份恢復sql server ms-sql添加SA密碼在SQL 服務器上打開Netbackup MS SQL Client添加SA密碼生成備份腳本在SQL 服務器上打開Netbackup MS SQL Client選擇Backup SQL Server Objects選擇要備份

如何用sql server數據庫恢復.bak數據庫備份

bak 文件夾 建數據庫 名稱 這一 div 分享 alt 備份 @hcy(黃燦奕) 之前有兩次都恢復不了,折騰了很長時間,這一次碰到這樣的問題,居然又忘了,又搗鼓了很長時間,現在記下來 1.右擊SQL Server 2008實例下的“數據庫&

SQL Server 2014存儲過程的備份和還原

語句 誤刪除 記事本 nbsp 位置 管理軟件 使用 恢復 ima Sql Server 2014存儲過程備份和恢復... 1 1、 備份存儲過程:... 1 2、 還原... 8 Sql Server 2014存儲過程備份和恢復 1、 備份存儲過程

SQL Server 2008數據備份與還原的原理是什麽?

減少 備份類型 目標 大量 t-sql語句 不同 不能 -i 情況 為什麽SqlServer有完整備份、差異備份和事務日誌備份三種備份方式,以及為什麽數據庫又有簡單模式、完整模式和大容量日誌模式這三種恢復模式。本文內容適用於2005以上所有版本的SqlServer數據庫。