0

SQL Server 2008 で SSIS を使用して毎晩実行する次のシナリオがあります。

  • いくつかの一時を作成します。テーブル、および ODBC データ ソースからのデータのインポート
  • インポートが完了したら、既存のテーブルを削除し、temp の名前を変更します。ドロップされたテーブルと同じ名前のテーブル

ログを最小限に抑えるには、SSIS ジョブまたは SQL Server 設定で何をする必要がありますか? 毎晩更新されるテーブルはわずかしかないため、データベース全体のログをオフにしたくありません。

4

5 に答える 5

1

残念ながら、ロギングはデータベース レベルの設定です。おそらく、(SIMPLE または BULK LOGGED を使用して) 別の DB にロードし、そのビットが成功したと仮定して、既存のテーブルを更新することができます。

于 2010-06-28T14:54:28.673 に答える
1

これらのテーブルを別のデータベースに分割する可能性はありますか?

ロギング設定を個別に管理できるだけでなく、ログとバックアップ自体を管理できるため、より細かく制御できます。

新しいデータベースに移動するテーブルを指すビューを古いデータベースに作成することができるので、コードをあまり変更する必要さえないかもしれません。

于 2010-06-28T15:01:53.647 に答える
1

テーブルがロードされる直前に復旧モデルを一括ログに変更してから、完全に戻すことが最善の選択肢であると思います。実装する前に、考慮事項 ( http://msdn.microsoft.com/en-us/library/ms190203.aspx )をよく読んでください。これは、SSIS パッケージの制御フローに追加できる ALTER DATABASE ステートメントを介して実現できます。

-- switch to bulk-logged mode
alter database <dbname,,> set recovery bulk_logged;

-- switch back to full
alter database <dbname,,> set recovery full;

また、ログを飼いならすために、より頻繁なログ バックアップに依存してきましたが (そして現在も)、これは科学というより芸術です。ほとんどの芸術と同様に、何かに驚かされることでしょう。残念ながら、これらの驚きは歯医者を訪れるようなものです。痛みを伴い、おそらく予防可能です:)。

また、oledb 宛先コンポーネントで fast-load オプションを使用しているかどうかも疑問に思います (それを使用していると仮定します)。これも最小限のログ記録である必要があります。データをロードする際のパフォーマンスのためのさまざまなテクニックに関する優れたホワイト ペーパーもあり、これもチェックする価値があります (準備しておいてください。これは大変なことです)。. . おそらく、さらにいくつかのアイデアが得られるでしょう。

于 2010-06-29T03:41:44.013 に答える
1

トランザクション ログへのバックアップをより頻繁に行うと、サイズを維持でき、ログ サイズの増加を要求しなくなります。また、空き容量を確保するために LDF ファイルをそのドライブに再配置できるようになった現在、ストレージが安価になっていることもわかりました。

于 2010-06-28T15:09:22.170 に答える
0

これらのテーブルを単純復旧を有効にして別のデータベースに配置し、他のデータベースでシノニムを使用してそれらをローカルに見せます。

これにより、これらのテーブルに対して他の人が推奨する単純な復旧モデルと高速読み込みオプションを活用できます。

于 2010-07-02T05:51:02.893 に答える