web-dev-qa-db-ja.com

同じサーバーインスタンス上のDBへのトランザクションレプリケーション

多くの製品ラインのデータを含むデータベースを含むSQL Server 2012インスタンスがあります。

このデータのサブセットを同じインスタンスの別のデータベースに取り込む方法を探しています。

ベンダーに送信できるサブセットのバックアップを簡単にエクスポートできる方法を探しているため、これは継続的である必要はありません(このデータを独自のSQLサーバーにロードして製品を製造する会社があります)販売、当然のことながら巨大なため、定期的に十分に機能する製品ラインだけに縮小したり、オフラインアプリケーションで使用するSQLite DBをロードしたりできます。

ProductDB-すべての製品ラインデータのスーパーセット。

ProductLine1DB-ProductDBと構造が同じですが、データは製品ライン1にのみ関連しています。

ProductLine2DB-ProductDBと構造は同じですが、データは製品ライン2にのみ関連しています。

これは、必要に応じて毎晩、毎週行うことができますが、継続的なレプリケーションはできません。

ディストリビューターサーバーやサブスクライバーサーバーを追加したくありません。サブスクライバーデータベースが同じサーバー上にある同じサーバー上でレプリケーションを実行する必要があります。

これはトランザクションレプリケーションに適していますか?

なぜか、なぜそうでないのか?

明らかにこのデータをロードする他のオプションがありますが、これはトランザクションレプリケーションなどを使用する良いケースのようです。強力だと聞きましたが、最適にセットアップしないと問題が発生しやすくなります。

注:私はDBAではなく、単なる開発者ですが、現在新しいDBAを探しており、一部はこのような業務を一時的に引き継いでいます。

4
Andrew Kluthe

これはトランザクションレプリケーションに適していますか?

私は SSISでデータを段階的にロードする (データセットが大きすぎる場合)または毎晩(またはいつでも)データを新しくロードする(データが少ない場合)だけにします。

これにより、パブリケーション、ディストリビューションデータベース、サブスクリプションを作成する必要がなくなります。

メインデータベース(特にスキーマの変更)をアップグレードするときに、管理が簡単です。

別のオプションは BCP OUTとBULK INSERT INを使用することです。これを使用する場合は、私が支援するスクリプトがあります 。 where句を使用して必要なデータを除外するようにスクリプトを調整してください:-)

:私が言っているわけではないので、誤解しないでください。T-Repを使用することはできませんが、あなたの状況に完全に適合します。シナリオに対応するために使用できる優れたツールがあります。

3
Kin Shah