オリジナルます。https://www.cnblogs.com/jaday/p/6088200.html
需要はじめに:公式データベース毎日オンラインバックアップとは、サーバが自動的に復元するデータベースのバックアップファイルをテストし、テストサーバーにバックアップファイルをコピーします。
プログラムの説明:
ステップ1:正式なライブラリにストアドプロシージャを作成するには、データベースをバックアップするために使用され、テストサーバーにコピーされ、その後、新しい仕事を毎日作成したストアドプロシージャを実行するタイミング。
ステップ2:その後、毎日作成されたストアドプロシージャのジョブの実行タイミングを作成し、データベースを復元するために、テスト用データベースサーバー上のストアドプロシージャを作成します。
準備:
ファイル共有、バックアップの公式サーバフォルダ上のファイルとフォルダに、すべての人の権利。
みんなのフォルダに共有テストサーバー上のフォルダ、およびファイルのアクセス権を作成します。
公式のデータベースのバックアップとデータベースのコードを複製します:
-开启xp_cmdshellを ます。sp_configure '高度な表示オプション'、1つの 再構成 行く sp_configureを1つの'のxp_cmdshell' 再構成が 行きます
使用[マスター] GO / ******オブジェクト:。のStoredProcedure [DBO] [backup_db_ksedu]スクリプト日:2016年11月22日八時41分23秒****** / SETは、ON ANSI_NULLS GO ON SET QUOTED_IDENTIFIER GO -备份数据库 。PROCを作成[DBO] [backup_db_ksedu] として 宣言@strPswのVARCHAR(50) @strUsr VARCHAR(50)を宣言 @strCmdShellのVARCHARを宣言(300) 宣言@strDataBaseNameのVARCHAR(20) 宣言@FullFileName VARCHAR(200) 宣言@ FullFileName1 VARCHAR(200) FullFileName2 varchar型@(200)を宣言 @FileFlagのVARCHAR(50)を宣言 する@ FileFlag2のVARCHARを宣言(50) DECLAREする@ FileFlag3のVARCHAR(50) @ToFileNameのVARCHARを宣言し(200) @SQLStr VARCHARのDECLAREは(500) SQLStr2 VARCHAR(500)@ DECLARE SQLStr3 VARCHAR(500)@ DECLARE @FlagDel VARCHAR(20)を宣言 バックアップ定義されたデータベース名- 設定する@ strDataBaseName = 'データベース名' ローカルバックアップファイルの定義を-名前 @ + =セット@ FileFlag strDataBaseName 'が_db_' +置き換え(変換(CHAR(20)と、GETDATE()、112)、 ''、 '') -前日のローカルバックアップファイル名を定義する --set @ FileFlag3 strDataBaseName @ + = '_db_' +交換してください((CHAR(20)で変換し、GETDATE() - 1112)、 ''、 '') -リモートバックアップファイルサーバー名が前に3日間で定義 --set @ FileFlag2 = @ strDataBaseName + '_db_' +置き換える(GETDATE()、(CHAR(20)のために変換する- ' '''、3112)) -ログインするために、リモートサーバーのドメインとユーザー名を設定 strUsr = 'ZONGHEGUANLI-SQ \管理者@セットを - -リモートサーバのログインパスワードの設定 設定@ strPsw =」をABC123 " -リモート接続サーバをセットアップ @ StrCmdShell = SET 'NET xx.xxx.x.xxx使用\\ \ db_backupための' @strPsw + + '/ユーザー:' @ + strUsr -ローカル・バックアップ・セットのファイル名 を設定@ FullFileName = 'E:\ BAK \' + + @FileFlag「BAK」 -ローカルバックアップファイル名の前の日に設定 --set @ FullFileName1 = 『D:\ \バックアップ』 + @ FileFlag3 +「BAKは、」 - 3日前に、リモートサーバのバックアップファイル名を設定します - @ FullFileName2 = -set '\\ 172.17.1.10 \ J $ \のdb_backup \' + @ + FileFlag2 'BAK。' -バックアップファイルディレクトリ保存するために、リモート・サーバを設定 @ToFileName =「\\ xx.xxx.x.xxx \ db_backupを設定します\「 --set @ ToFileName =」E:\バックアップ\「 - Trueに設定すると、バックアップが削除され、バックアップファイルを削除しない、Falseに設定され た「偽--set @ FlagDel =」 -現地からの設定リモートサーバの文にバックアップファイルをコピー セット@ sqlstr =「コピー」+ @ FullFileName +「」+ @ ToFileName -前日のファイルを削除するように設定されたローカル・バックアップ --set @ SQLStr2 =「デル」@ FullFileName1 + - 3日前にバックアップファイルを削除するには、リモートサーバーを設定します = @ SQLStr3 --set 'デル' + @ FullFileName2 -圧縮されたバックアップデータベースのバックアップ のBACKUP DATABASE TO DISK = @FullFileName WITHはINITを@strDataBaseName、STATS = 20である -リモートサーバに接続 @strCmdShellをmaster..xp_cmdshell Execの -コピーバックアップファイルリモートサーバへの Execの@SQLStrをmaster..xp_cmdshell -ローカルバックアップファイルの前に1日に削除 --IF(@FlagDel =「TRUE」) --execマスター.. SQLStr2 @ xp_cmdshellを ---- 3日間のリモートサーバーの前に削除しますバックアップファイル --IF(@FlagDel = 'TRUE') xp_cmdshellをマスター--exec .. @ SQLStr3
テスト・データベースは、データベースのコードを復元します:
USE [マスター] GO / ******オブジェクト:のStoredProcedure [DBO] [restore_db_ksedu]スクリプト日:. 2016年11月22日8時40分12秒****** / SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIERをON GO PROCEDURE ALTER [DBO] [restore_db_ksedu]。 AS 宣言@strDataBaseName VARCHAR(50) @FileFlag VARCHARを宣言(50) -バックアップデータベース名定義された 設定します@ strDataBaseName = 'データベース名' に設定@ FileFlag =は'D:\ db_backupする\' strDataBaseName @ + + '_db_' +交換してください((CHAR(20)で変換し、GETDATE()、112)、 ''、 '')+ 'BAK' -プラスフレーズデータベースが正常に実行さの原因を防止するために使用される ALTERをデータベース[データベース名] SET OFFLINEとROLLBACK IMMEDIATEが データベース[データベース名]を復元し 、ファイル= 1とディスク= @ FileFlagから REPLACE、 回復 ALTERデータベース[データベース名]オンライン設定
ジョブ計画を作成するには:リファレンスhttp://wenku.baidu.com/link?url=HLojwfVr1gkEuKjhk3Twsy7SxTWNMxovLg4LXpqvg_a3r50XQE5hZt8e03uPhbW8qUNjEx0IKa39DjyJ0spuNN1TV42UCIAMNDUQllhjsZu