問題定義
ユーザーには、ほとんどが最新のデータベースを照会する機能が必要です。データは最大24時間古くなる可能性があり、許容範囲内です。本番コピーで2番目のデータベースを取得して最新の状態に保つための最低コストのアプローチは何でしょうか?私が考えていないアプローチはありますか?
仕事量
株式取引活動の監視に使用するサードパーティのアプリケーションがあります。日中は、さまざまな作業フローの一部として多くの小さな変更が発生します(はい、この取引は有効でした。いいえ、これは疑わしいなどです)。夜には、大規模なセットベースの操作を実行します(前日の取引を読み込みます)。
現在の解決策と問題
データベーススナップショットを使用します。午後10時にスナップショットを削除して再作成します。ETL処理が開始されます。これは明らかにディスクに負担がかかりますが、ユーザーはデータベースをロックせずにデータベースを照会できます(Accessフロントエンドを使用します)。彼らはそれを夜遅くまで、また早朝に使うので、ダウンタイムに気づくでしょう。
このアプローチの問題は2つあります。1つ目は、夜間の処理が失敗した場合であり、これはそれほど珍しいことではないため、データベースを復元し、スナップショットが削除されることです。もう1つの問題は、処理時間がSLAを超えていることです。不十分な記述のクエリとインデックス作成の欠如を特定した後、ベンダーと協力してこの問題に対処しようとしています。データベースのスナップショットは、速度が存在する場合と存在しない場合の速度の違いから明らかなように、この速度低下の原因でもあります。
考慮されるアプローチ
クラスタリング
データベースクラスタリングを有効にしましたが、データを使用可能にする必要性に対処できず、一般的に管理者の生活を複雑にしました。それ以降はオフになっています。
SQL Serverレプリケーション
先週、レプリケーションを検討し始めました。私たちの理論では、2番目のカタログを立ち上げ、本番データベースと同期させることができます。ETLを開始する前に、接続を切断し、ETLプロセスが完了してから再度有効にします。
管理者はスナップショットレプリケーションを開始しましたが、スナップショットと必要なディスク消費量を生成するためにCPU使用率が数日かかることを心配しています。彼は、サブスクライバーに出荷する前にすべてのデータを物理ファイルに書き出すように見えるため、0.6TBのデータベースのストレージコストは1.8TBになると指摘しています。また、スナップの生成に数日かかる場合、目的のSLAに適合しません。
すばらしい記事を読んだ後、Snapshotがサブスクライバを初期化する方法であるように思えますが、その後、トランザクションレプリケーションに切り替えて同期を維持したいと思います。トランザクションレプリケーションをオン/オフしても、完全な再初期化は強制されませんか?それ以外の場合は、時間枠を爆破します
データベースミラーリング
データベースは完全復旧モードになっているため、データベースミラーリングはオプションですが、レプリケーションよりも知識が少ないです。「データベースミラーリングによってデータに直接アクセスすることはできません。ミラーリングされたデータにはデータベーススナップショットからのみアクセスできます」というSOの答えが見つかりました。
ログ配布
ログ配布もオプションのように思えますが、これは私が何も知らないことの別のものです。他の何よりも低コストのソリューション(実装と保守)でしょうか?Remusのコメント「ログシッピングはレプリカコピーへの読み取り専用アクセスを許可しますが、受信した次のバックアップログを適用するときにすべてのユーザーを切断します(15分から30分ごとなど)。」そのダウンタイムがどれくらいの時間に変換されるかわからないので、ユーザーが不安を感じるかもしれません。
MS Sync
先週末、Syncの使用について聞いただけで、まだ調査していません。この問題のように視認性の高いものに新しいテクノロジーを導入するのは嫌ですが、それが最良のアプローチである場合は、そうしてください。
SSIS
ここでは多くのSSISを実行しているため、数百のSSISパッケージを生成してセカンダリの同期を維持することは、見苦しいとはいえ、オプションです。私はこれを行うのが好きではありません。それは多くのメンテナンスのオーバーヘッドであり、むしろ私のチームが引き受けないようにするためです。
SAN「マジック」スナップショット
過去に、管理者がSANテクノロジーを使用してディスク全体のインスタントバックアップを作成したことを聞いたことがあります。おそらく、mdf / ldfのuberquickコピーを作成するために使用できるいくつかのEMCマジックがあり、ターゲットデータベースをデタッチ/アタッチできます。
バックアップと復元
週に1回フルバックアップを取り、夜間に差分を取り、15分ごとにtlogを取ります。ユーザーが完全な復元のために3〜4時間の停止に耐えることができる場合、これはアプローチであると思われます。
制約
Windows 2008 R2、SQL Server 2008 R2(Enterprise Edition)、VMWare v5 Enterprise Edition、vmdkファイルにマップされたドライブを備えたEMC SANストレージ、Commault処理バックアップ、およびソースカタログ内の.6TBのデータ。これは、社内でホストするサードパーティアプリケーションです。それらの構造を変更することは、一般的に嫌われています。ユーザーは、データベースにクエリを実行せずに進むことはできず、作業を行うために監視するテーブルを積極的に識別することによる制約を受けることを拒否します。
現在、DBAは純粋に請負業者です。常勤者は出航しており、私たちはまだ交代していません。アプリケーション管理者はSQL Serverの問題に精通しておらず、この作業を支援/妨害できるストレージ/ VM管理者のチームがあります。開発チームは現在関与していませんが、アプローチに基づいて参加できます。そのため、ソリューションの実装と保守がより簡単であることが望ましいでしょう。
私は、法務の開発側にいるので、アプローチを提案することしかできず、物事の管理側に対処する必要はありませんでした。だから、管理者のサドルに時間がないので、あるアプローチが別のアプローチよりも優れていると言うのをためらっています。私が見ているように、それはDBの専門家として私をより価値あるものにするだけだからです。手押し車は持っていますが、ホロコーストマントはありません。
関連する質問
/programming/525637/what-are-the-scenarios-for-using-mirroring-log-shipping-replication-and-cluste
/programming/4303020/sync-databases-mirroring-replication-log-shipping
/programming/4303020/sync-databases-mirroring-replication-log-shipping
http://nilebride.wordpress.com/2011/07/24/log-shipping-vs-mirroring-vs-replication/
編集
@onpntの質問に対処するには
データ遅延の受け入れ
ユーザーは現在、最大24時間遅れのデータを表示しています。データは2200の時点でのみ最新です
特定の分、時間、日におけるデータ変更の量それを定量化する方法がわからない。営業時間、おそらく1時間あたり数百の変更。夜間処理、1営業日あたり数百万行
セカンダリへの接続
内部ネットワーク、個別の仮想ホストおよび専用ストレージ
セカンダリインスタンスの要件を読む
Windowsグループには、セカンダリ、すべてのテーブルへの読み取りアクセス権があります
セカンダリインスタンスの稼働時間
アップタイム要件の明確な定義はありません。ユーザーはいつでも利用できることを望んでいますが、その代価を払っても構わないと思っています。現実的には、1日のうち23時間で十分です。
既存のスキーマとすべてのオブジェクトの変更
まれな変更。テーブルオブジェクトの場合は四半期ごとに1回。コードオブジェクトの場合は月に1回かもしれません。
セキュリティ
特別なセキュリティは必要ありません。実動許可は、コピーの許可と一致します。私が考えているように、ユーザーのprodへの読み取りアクセスを取り消し、コピーの読み取りのみを許可することもできますが、必須ではありません。
@darin strait
スナップショットに戻すことはオプションかもしれませんが、彼らがそれを追求しなかった何らかの理由があったと思います。管理者に確認します
@cfradenburg
私の想定では、これらのアプローチのいずれかを使用するだけでしたが、それは復元が「他の」同期テクノロジーを破壊する良い点です。彼らは、EMCスナップショットマジックを使用して行うことを調査しています。管理者が説明したように、彼らは1900年にスナップショットを撮り、イメージをセカンダリのゾーンに移行します。これは2200年までに完了し、セカンダリデータベースのデタッチと再アタッチを実行します。
要約
2012-10-29 EMCスナップショットマジックおよびその他のレプリケーションオプションを評価しましたが、DBAはミラーリングを最もよく理解できると判断しました。彼らがすべて助けてくれて、調査するための「宿題」だけでなく多くの選択肢を与えてくれたので、答えを支持しました。