SQL Server の障害復旧
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-戻る
--[[SQL Server]]
---[[SQL Server の基本的な設定]]
---[[SQL Server のバックアップ]]
* 目次 [#ie78f22e]
#contents
*概要 [#v1202be8]
障害復旧に関するオプションの説明。
*SQL Server の復旧モデル [#s7f9c8ad]
SQL Serverでは、「データ消失に対する保護」、「性能」、お...
などの要件に対応するための目的とした3種類の「復旧モデル...
このため、「復旧モデル」を選択する場合は、次の業務上の条...
-コミットされたトランザクションの消失など、「データ消失の...
-インデックスの作成や一括ロードなど、大量操作の「性能」。
-「トランザクション ログ」が使用する領域の「容量」。
-バックアップ リストアの「手順の単純さ」。
**概要 [#w6bd8040]
実行する操作の種類によっては、適切な「復旧モデル」が複数...
「復旧モデル」を選択した後は、バックアップ、リストアの手...
次に、SQL Server の3 種類の「復旧モデル」の機能概要を示す。
***単純 復旧モデル [#x2271763]
-「単純 復旧モデル」は、処理性能に優れる一括コピーである...
-このため、必要なスペースを抑制できるが、最新の「完全バッ...
--バックアップ、リストアの手順は、「完全バックアップ」ま...
--「トランザクション ログ」が切り捨てられるため、「トラン...
-最小限の管理で済むが、「データ ファイル」が損傷を受けた...
--最新の変更内容の消失が許されないOLTPシステムの場合、~
顧客要件や、ストレージの信頼性によるが、「単純 復旧モデル...
--ケース バイ ケースで、「データ消失」と「性能」を考慮し...
---バックアップのオーバーヘッドが業務に影響しない程度に長...
---大量のデータを消失しないで済む程度に短いバックアップ間...
#ref(SIMPLE.png,left,nowrap,単純 復旧モデル)
***完全 復旧モデル [#x29cd104]
データが最大限に保護される。これらのモデルは「トランザク...
-「完全 復旧モデル」では、全てのトランザクションが、~
「トランザクション ログ」に記録されるため、完全な復旧が可...
-「トランザクション ログ」には、全ての操作が記録される。~
このため、
--大規模な操作の場合は、性能が問題となる。
--「トランザクション ログ」を保持する、ある程度のログ領域...
-復元の手順は、
--「完全バックアップ」のリストア、
--「差分バックアップ」のリストア、
--「トランザクション ログ バックアップ」のリストアを実施...
#ref(FULL.png,left,nowrap,完全 復旧モデル)
***一括ログ 復旧モデル [#w1da3315]
データが最大限に保護される。これらのモデルは「トランザク...
-「一括ログ 復旧モデル」では、特定の大規模な操作を除いた、~
全てのトランザクションが、「トランザクション ログ」に記録...
ほぼ完全な復旧が可能である。
-特定の大規模操作の際に、「トランザクション ログ」には、...
このため、高い性能を実現し、「トランザクション ログ」のス...
「一括ログ 復旧モデル」でログが記録されない大規模操作は以...
--SELECT INTO操作(検索結果をテーブルに挿入する処理)
--bcpユーティリティを使用した大量データのインポート、エク...
--BULK INSERTを使用した大量データのインポート
--CREATE INDEX(その他、INDEXのデフラグなど)
--text操作と、image操作
-大規模操作を実行した後に「トランザクション ログ」をバッ...
「データ ファイル」のエクステントから、最後のバックアップ...
「トランザクション ログ バックアップ」に反映される。
-このため、大規模操作を実行した後は、~
「トランザクション ログ バックアップ」を利用したデータの...
大規模操作後、直ちに「トランザクション ログ」をバックアッ...
その時点までの復旧が可能になる。
-「完全 復旧モデル」では、「一括読み込み」「インデックス...
大規模操作に長い時間がかかるので、場合によっては、~
「完全 復旧モデル」と「一括ログ 復旧モデル」を切り替える。
#ref(BULK_LOGGED.png,left,nowrap,一括ログ 復旧モデル)
***利点、欠点 [#yd44258e]
以下の表に、それぞれの「復旧モデル」の利点と欠点を示す。
|復旧モデル|データ消失の影響度|性能|運用手順の難易度|必要...
|単純|大|高|容易|小|
|完全|最小|低|普通|大|
|一括ログ|小|中|難しい|中|
**設定方法 [#x21496fb]
-既定の「復旧モデル」を変更するには、「model」DBの「復旧...
-作成済みのDBの「復旧モデル」を変更するには、各DBの「復旧...
***[[Management Studio>SSMS]] [#o2799aa3]
-オブジェクトエクスプローラーから、変更したいデータベース...
-データベースを右クリックし、「プロパティ」を選択
-プロパティ・ダイアログの「オプション」ページを開く
-「復旧モデル」ドロップダウンメニューから、変更したい復旧...
-「OK」をクリックして変更を保存
***「sp_configure」による設定 [#p143430f]
-「ALTER DATABASE」ステートメントの「RECOVERY」句で設定す...
ALTER DATABASE [DB名] SET RECOVERY [復旧モデル]
--[復旧モデル]に指定する文字列は以下の通り。
|「FULL」|「完全 復旧モデル」|
|「BULK_LOGGED」|「一括ログ 復旧モデル」|
|「SIMPLE」|「単純 復旧モデル」|
-DBに設定された「復旧モデル」は、~
「DATABASEPROPERTYEX」関数に「Recovery」プロパティを設定...
SELECT DATABASEPROPERTYEX('[DB名]','Recovery')
**切り替え操作 [#p18f4f8f]
***変更後に、必要に応じて、「トランザクション ログ」をバ...
-切り替えのパターン
--完全復旧 ---> 一括ログ復旧
--一括ログ復旧 ---> 完全復旧
-必要な操作(共通)
--バックアップの計画に変更はない。
--「トランザクション ログ バックアップ」を実施すれば、「...
最後のバックアップ以降の大規模操作が「トランザクション ロ...
-必要な操作(個別)
--完全復旧 ---> 一括ログ復旧
---ただし、大規模操作はトランザクション ログに記録されな...
大規模操作のバックアップが重要な場合は、適宜「トランザク...
--一括ログ復旧 ---> 完全復旧
---切り替え後、指定日時への復旧が重要な場合は、~
切り替え直後に「トランザクション ログ バックアップ」を実...
***変更前に、「トランザクション ログ」をバックアップする...
-切り替えのパターン
--完全復旧 ---> 単純復旧
--一括ログ復旧 ---> 単純復旧
-必要な操作(共通)
--切り替え直前に「トランザクション ログ」をバックアップす...
--切り替え後は、「トランザクション ログ」が無効になるので...
***変更後に、DBの「完全バックアップ」を実行する。 [#ta6c3...
-切り替えのパターン
--単純復旧 ---> 完全復旧
--単純復旧 ---> 一括ログ復旧
-必要な操作(共通)
--切り替え後に、「トランザクション ログ」が有効になるため...
切り替え直後に「トランザクション ログ バックアップ」のベ...
--その後、「完全 復旧モデル」、「一括ログ 復旧モデル」用...
*「recovery interval」オプション [#lea45631]
障害発生後、SQL Serverインスタンスの再起動時に発生する復...
復旧処理では、
-ロールバック
-ロールフォワード
が行われる。
-SQL Serverインスタンスは、この設定と内部アルゴリズムによ...
復旧時間が「recovery interval」オプションで指定された時間...
SQL Serverインスタンスは内部の処理量に応じて、「チェック ...
-内部の作業量(データ変更処理など)が多いほど、「チェック...
これは、「データ ファイル」にフラッシュされていないデータ...
**SQL Serverの復旧処理の概要 [#x51cfcf1]
***「チェック ポイント」処理 [#o3457c0c]
「チェック ポイント」処理とは、「バッファ キャッシュ」中...
※ データ変更は、コミット、未コミットに関係なく、すべて「...
#ref(Checkpoint.png,left,nowrap,「チェック ポイント」処理)
***復旧処理(ロールバック、ロールフォワード) [#s47d4028]
復旧処理では、「データ ファイル」にフラッシュされていなか...
この際、「コミット」されたトランザクションは、「ロール フ...
#ref(rollforward_rollback.png,left,nowrap,ロールバック、...
**チューニングの考え方 [#t3defcdf]
***復旧時間を短くしたい場合 [#cf9d6405]
「recovery interval」オプションで復旧時間を短く設定する。~
この場合、「チェック ポイント」処理は頻繁に実行されるため...
***I/Oを減らしたい場合 [#fe5f7e5d]
「recovery interval」オプションで復旧時間を長く設定すれば...
「チェック ポイント」処理の間隔を長くすることができる。~
このため、I/Oが減少するので、(I/Oに関する)性能向上が期...
**設定方法 [#k03482af]
***[[Management Studio>SSMS]] [#m34d6932]
-オブジェクト エクスプローラーでサーバー インスタンスを右...
-[データベースの設定] ノードを選び、[復旧] の [復旧間隔 (...
***「sp_configure」による設定 [#p3f5c16e]
-既定値は0。~
この場合、復旧時間は1分未満
-値を5に設定した場合~
この場合、復旧時間は5分未満で、
EXEC sp_configure 'recovery interval', n
RECONFIGURE
EXEC sp_configure
GO
nの単位は、分で指定する。
*参考 [#i004a219]
-MSDN
--復旧モデル (SQL Server)~
http://msdn.microsoft.com/ja-jp/library/ms189275.aspx
---データベースの復旧モデルの表示または変更 (SQL Server)~
http://msdn.microsoft.com/ja-jp/library/ms189272.aspx
--復旧モデルとトランザクション ログの管理~
http://msdn.microsoft.com/ja-jp/library/ms366344.aspx
---復旧モデルの概要~
http://msdn.microsoft.com/ja-jp/library/ms189275.aspx
---データベースの復旧モデルの選択~
http://msdn.microsoft.com/ja-jp/library/ms175987.aspx
-その他
--SQL Server の復旧モデルとトランザクション ログ - 松本崇...
http://d.hatena.ne.jp/matu_tak/20091224/1261710845
--SQLServer2008完全復旧モデルにおけるデータ圧縮 simBlog~
http://simosan.minibird.jp/wordpress/sql-server/sqlserver...
--SQL Server 2008 以降のログの切り捨て SE の雑記~
http://engineermemo.wordpress.com/2011/06/29/sql-server-2...
**[[SQL Server のバックアップ]] [#l6d454aa]
----
Tags: [[:データアクセス]], [[:SQL Server]], [[:障害対応]]
終了行:
「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicros...
-戻る
--[[SQL Server]]
---[[SQL Server の基本的な設定]]
---[[SQL Server のバックアップ]]
* 目次 [#ie78f22e]
#contents
*概要 [#v1202be8]
障害復旧に関するオプションの説明。
*SQL Server の復旧モデル [#s7f9c8ad]
SQL Serverでは、「データ消失に対する保護」、「性能」、お...
などの要件に対応するための目的とした3種類の「復旧モデル...
このため、「復旧モデル」を選択する場合は、次の業務上の条...
-コミットされたトランザクションの消失など、「データ消失の...
-インデックスの作成や一括ロードなど、大量操作の「性能」。
-「トランザクション ログ」が使用する領域の「容量」。
-バックアップ リストアの「手順の単純さ」。
**概要 [#w6bd8040]
実行する操作の種類によっては、適切な「復旧モデル」が複数...
「復旧モデル」を選択した後は、バックアップ、リストアの手...
次に、SQL Server の3 種類の「復旧モデル」の機能概要を示す。
***単純 復旧モデル [#x2271763]
-「単純 復旧モデル」は、処理性能に優れる一括コピーである...
-このため、必要なスペースを抑制できるが、最新の「完全バッ...
--バックアップ、リストアの手順は、「完全バックアップ」ま...
--「トランザクション ログ」が切り捨てられるため、「トラン...
-最小限の管理で済むが、「データ ファイル」が損傷を受けた...
--最新の変更内容の消失が許されないOLTPシステムの場合、~
顧客要件や、ストレージの信頼性によるが、「単純 復旧モデル...
--ケース バイ ケースで、「データ消失」と「性能」を考慮し...
---バックアップのオーバーヘッドが業務に影響しない程度に長...
---大量のデータを消失しないで済む程度に短いバックアップ間...
#ref(SIMPLE.png,left,nowrap,単純 復旧モデル)
***完全 復旧モデル [#x29cd104]
データが最大限に保護される。これらのモデルは「トランザク...
-「完全 復旧モデル」では、全てのトランザクションが、~
「トランザクション ログ」に記録されるため、完全な復旧が可...
-「トランザクション ログ」には、全ての操作が記録される。~
このため、
--大規模な操作の場合は、性能が問題となる。
--「トランザクション ログ」を保持する、ある程度のログ領域...
-復元の手順は、
--「完全バックアップ」のリストア、
--「差分バックアップ」のリストア、
--「トランザクション ログ バックアップ」のリストアを実施...
#ref(FULL.png,left,nowrap,完全 復旧モデル)
***一括ログ 復旧モデル [#w1da3315]
データが最大限に保護される。これらのモデルは「トランザク...
-「一括ログ 復旧モデル」では、特定の大規模な操作を除いた、~
全てのトランザクションが、「トランザクション ログ」に記録...
ほぼ完全な復旧が可能である。
-特定の大規模操作の際に、「トランザクション ログ」には、...
このため、高い性能を実現し、「トランザクション ログ」のス...
「一括ログ 復旧モデル」でログが記録されない大規模操作は以...
--SELECT INTO操作(検索結果をテーブルに挿入する処理)
--bcpユーティリティを使用した大量データのインポート、エク...
--BULK INSERTを使用した大量データのインポート
--CREATE INDEX(その他、INDEXのデフラグなど)
--text操作と、image操作
-大規模操作を実行した後に「トランザクション ログ」をバッ...
「データ ファイル」のエクステントから、最後のバックアップ...
「トランザクション ログ バックアップ」に反映される。
-このため、大規模操作を実行した後は、~
「トランザクション ログ バックアップ」を利用したデータの...
大規模操作後、直ちに「トランザクション ログ」をバックアッ...
その時点までの復旧が可能になる。
-「完全 復旧モデル」では、「一括読み込み」「インデックス...
大規模操作に長い時間がかかるので、場合によっては、~
「完全 復旧モデル」と「一括ログ 復旧モデル」を切り替える。
#ref(BULK_LOGGED.png,left,nowrap,一括ログ 復旧モデル)
***利点、欠点 [#yd44258e]
以下の表に、それぞれの「復旧モデル」の利点と欠点を示す。
|復旧モデル|データ消失の影響度|性能|運用手順の難易度|必要...
|単純|大|高|容易|小|
|完全|最小|低|普通|大|
|一括ログ|小|中|難しい|中|
**設定方法 [#x21496fb]
-既定の「復旧モデル」を変更するには、「model」DBの「復旧...
-作成済みのDBの「復旧モデル」を変更するには、各DBの「復旧...
***[[Management Studio>SSMS]] [#o2799aa3]
-オブジェクトエクスプローラーから、変更したいデータベース...
-データベースを右クリックし、「プロパティ」を選択
-プロパティ・ダイアログの「オプション」ページを開く
-「復旧モデル」ドロップダウンメニューから、変更したい復旧...
-「OK」をクリックして変更を保存
***「sp_configure」による設定 [#p143430f]
-「ALTER DATABASE」ステートメントの「RECOVERY」句で設定す...
ALTER DATABASE [DB名] SET RECOVERY [復旧モデル]
--[復旧モデル]に指定する文字列は以下の通り。
|「FULL」|「完全 復旧モデル」|
|「BULK_LOGGED」|「一括ログ 復旧モデル」|
|「SIMPLE」|「単純 復旧モデル」|
-DBに設定された「復旧モデル」は、~
「DATABASEPROPERTYEX」関数に「Recovery」プロパティを設定...
SELECT DATABASEPROPERTYEX('[DB名]','Recovery')
**切り替え操作 [#p18f4f8f]
***変更後に、必要に応じて、「トランザクション ログ」をバ...
-切り替えのパターン
--完全復旧 ---> 一括ログ復旧
--一括ログ復旧 ---> 完全復旧
-必要な操作(共通)
--バックアップの計画に変更はない。
--「トランザクション ログ バックアップ」を実施すれば、「...
最後のバックアップ以降の大規模操作が「トランザクション ロ...
-必要な操作(個別)
--完全復旧 ---> 一括ログ復旧
---ただし、大規模操作はトランザクション ログに記録されな...
大規模操作のバックアップが重要な場合は、適宜「トランザク...
--一括ログ復旧 ---> 完全復旧
---切り替え後、指定日時への復旧が重要な場合は、~
切り替え直後に「トランザクション ログ バックアップ」を実...
***変更前に、「トランザクション ログ」をバックアップする...
-切り替えのパターン
--完全復旧 ---> 単純復旧
--一括ログ復旧 ---> 単純復旧
-必要な操作(共通)
--切り替え直前に「トランザクション ログ」をバックアップす...
--切り替え後は、「トランザクション ログ」が無効になるので...
***変更後に、DBの「完全バックアップ」を実行する。 [#ta6c3...
-切り替えのパターン
--単純復旧 ---> 完全復旧
--単純復旧 ---> 一括ログ復旧
-必要な操作(共通)
--切り替え後に、「トランザクション ログ」が有効になるため...
切り替え直後に「トランザクション ログ バックアップ」のベ...
--その後、「完全 復旧モデル」、「一括ログ 復旧モデル」用...
*「recovery interval」オプション [#lea45631]
障害発生後、SQL Serverインスタンスの再起動時に発生する復...
復旧処理では、
-ロールバック
-ロールフォワード
が行われる。
-SQL Serverインスタンスは、この設定と内部アルゴリズムによ...
復旧時間が「recovery interval」オプションで指定された時間...
SQL Serverインスタンスは内部の処理量に応じて、「チェック ...
-内部の作業量(データ変更処理など)が多いほど、「チェック...
これは、「データ ファイル」にフラッシュされていないデータ...
**SQL Serverの復旧処理の概要 [#x51cfcf1]
***「チェック ポイント」処理 [#o3457c0c]
「チェック ポイント」処理とは、「バッファ キャッシュ」中...
※ データ変更は、コミット、未コミットに関係なく、すべて「...
#ref(Checkpoint.png,left,nowrap,「チェック ポイント」処理)
***復旧処理(ロールバック、ロールフォワード) [#s47d4028]
復旧処理では、「データ ファイル」にフラッシュされていなか...
この際、「コミット」されたトランザクションは、「ロール フ...
#ref(rollforward_rollback.png,left,nowrap,ロールバック、...
**チューニングの考え方 [#t3defcdf]
***復旧時間を短くしたい場合 [#cf9d6405]
「recovery interval」オプションで復旧時間を短く設定する。~
この場合、「チェック ポイント」処理は頻繁に実行されるため...
***I/Oを減らしたい場合 [#fe5f7e5d]
「recovery interval」オプションで復旧時間を長く設定すれば...
「チェック ポイント」処理の間隔を長くすることができる。~
このため、I/Oが減少するので、(I/Oに関する)性能向上が期...
**設定方法 [#k03482af]
***[[Management Studio>SSMS]] [#m34d6932]
-オブジェクト エクスプローラーでサーバー インスタンスを右...
-[データベースの設定] ノードを選び、[復旧] の [復旧間隔 (...
***「sp_configure」による設定 [#p3f5c16e]
-既定値は0。~
この場合、復旧時間は1分未満
-値を5に設定した場合~
この場合、復旧時間は5分未満で、
EXEC sp_configure 'recovery interval', n
RECONFIGURE
EXEC sp_configure
GO
nの単位は、分で指定する。
*参考 [#i004a219]
-MSDN
--復旧モデル (SQL Server)~
http://msdn.microsoft.com/ja-jp/library/ms189275.aspx
---データベースの復旧モデルの表示または変更 (SQL Server)~
http://msdn.microsoft.com/ja-jp/library/ms189272.aspx
--復旧モデルとトランザクション ログの管理~
http://msdn.microsoft.com/ja-jp/library/ms366344.aspx
---復旧モデルの概要~
http://msdn.microsoft.com/ja-jp/library/ms189275.aspx
---データベースの復旧モデルの選択~
http://msdn.microsoft.com/ja-jp/library/ms175987.aspx
-その他
--SQL Server の復旧モデルとトランザクション ログ - 松本崇...
http://d.hatena.ne.jp/matu_tak/20091224/1261710845
--SQLServer2008完全復旧モデルにおけるデータ圧縮 simBlog~
http://simosan.minibird.jp/wordpress/sql-server/sqlserver...
--SQL Server 2008 以降のログの切り捨て SE の雑記~
http://engineermemo.wordpress.com/2011/06/29/sql-server-2...
**[[SQL Server のバックアップ]] [#l6d454aa]
----
Tags: [[:データアクセス]], [[:SQL Server]], [[:障害対応]]
ページ名: