問題タブ [replication]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
1941 参照

database - 使用するデータベース レコード ID のタイプ: long または guid?

近年、私は MSSQL データベースを使用していましたが、テーブル内のすべての一意のレコードの ID 列の型は bigint (long) です。これは自動インクリメントであり、通常は正常に動作します。

現在、人々がレコードの ID に GUID を使用することを好むことを観察しています。

一意のレコード ID のために bigint を guid に交換することは理にかなっていますか?

bigintの生成とソートは常にguidよりも高速であるため、意味がないと思いますが...アプリケーションとデータベースの2つ(またはそれ以上)に分離されたインスタンスを使用して同期を保つと、いくつかの問題が発生するため、 SQL サーバー間で ID プールを管理する必要があります (たとえば、sql1 は 100 から 200 までの ID を使用し、sql2 は 201 から 300 までの ID を使用します) - これは薄い氷です。guid id を使用すると、id プールは気にしません。

私のミラー化されたアプリケーション (およびデータベース) に対するアドバイスは何ですか? 従来の ID を使用するか、GUID に移行するか?

お返事ありがとうございます!

0 投票する
5 に答える
3072 参照

java - 多数のエンティティを使用したEhcache/HibernateおよびRMIレプリケーション

現在、ehcacheでRMI配布オプションを使用する方法を調査しています。ehcache.xmlを適切に構成しましたが、レプリケーションは正常に機能しているようです。しかし、私は2つの質問があります:

-> ehcache/hibernateはエンティティごとに1つのキャッシュを作成するようです。これは問題ありませんが、レプリケーションが行われると、レプリケートする1​​つのスレッド/キャッシュが作成されます。これは意図された振る舞いですか?私たちのドメインは大きいので、それは約300のスレッドを作成します、それは私には本当に大きいようです

->もう1つの厄介な結果は、ハートビートメッセージがこれらのキャッシュ名をすべて集約しているように見えることです。私が見たところ、メッセージは1500バイトに収まるはずですが、収まらないため、ログに次のメッセージが表示されます。ハートビートが機能していません。レプリケーション用に構成するキャッシュの数を減らします。サイズは1747ですが、1500を超えてはなりません。これをどのように変更できるかについてのアイデアはありますか?

あなたの助けをどうもありがとう

0 投票する
8 に答える
26001 参照

sql-server - SQL レプリケーションの「行が見つかりません」エラー

2 つのデータベース間でトランザクション レプリケーションを実行しています。少し同期がずれているのではないかと思いますが、影響を受けるレコードはわかりません。知っていれば、加入者側で手動で修正できました。

SQL Server から次のメッセージが表示されます。

レプリケートされたコマンドを適用するときに、サブスクライバーで行が見つかりませんでした。(ソース: MSSQLServer、エラー番号: 20598)

問題の原因となっているテーブル、またはさらに良いのはどのレコードであるかを調べてみましたが、その情報はどこにも見つかりません。

これまでに見つけた最も詳細なデータは次のとおりです。

トランザクション シーケンス番号: 0x0003BB0E000001DF000600000000、コマンド ID: 1

しかし、そこからテーブルと行を見つけるにはどうすればよいでしょうか? 何か案は?

0 投票する
6 に答える
16240 参照

sql-server - スケジュールに従ってSQLServerデータをあるサーバーから別のサーバーにコピーする

異なるWebホストにSQLServerのペアがあり、一方のサーバーをもう一方のサーバーを使用して定期的に更新する方法を探しています。これが私が探しているものです:

  1. 可能な限り自動化されています。理想的には、セットアップ後に私の側に関与することはありません。
  2. 多数のデータベースを、その全体(スキーマの変更を含む)で1つのサーバーから別のサーバーにプッシュします
  3. プロセスを中断することなく、ソースサーバーでの変更を自由に許可します。このため、レプリケーションを使用したくありません。ソースが更新されるたびにレプリケーションを中断してから、パブリケーションとサブスクリプションを再作成する必要があるためです。
  4. 1つのデータベースのサイズは約4GBで、バイナリデータが含まれています。これをスクリプトにエクスポートする方法があるかどうかはわかりませんが、エクスポートすると巨大なファイルになります。

もともと、私は各データベースのスケジュールされた完全バックアップを取り、バックアップが完了したら一方のサーバーからもう一方のサーバーにFTPでバックアップし、新しいサーバーがそれを取得して復元するものを作成することを考えていました。私がこれに見ることができる唯一の欠点は、バックアップが転送を開始する前に行われたことを知る方法がないということです-これらのバックアップは同期的に行うことができますか?また、更新されるサーバーはテストサーバーであるため、データの移動にダウンタイムが発生する場合は問題ありません。

誰かがより良いアイデアを持っていますか、それとも私が現在考えているレプリケーション以外の最善の方法ですか?皆さん、助けてくれてありがとう。

更新: BATファイル、7Zip、コマンドラインFTP、およびOSQLを使用してこれを実行するカスタムソリューションを設計することになったので、完全に自動で実行され、全国の12台のサーバーからのデータを集約します。手順については、ブログエントリで詳しく説明しました

ご入力いただきありがとうございます。

0 投票する
3 に答える
15886 参照

database - postgres サーバーを複数のサーバーにスケーリングする

私たちの postgres サーバーは限界に近づいており、2 番目のデータベース サーバーの追加を検討しています。postgres セットアップに特に適したスケーリング ソリューションはありますか?

0 投票する
6 に答える
5588 参照

sql-server - アドバイスをお願いします: Entity Framework を使用する場合の SQL Server ID と一意の識別子キー

私はかなり複雑なシステムを設計中です。私たちの主な関心事の 1 つは、SQL Server のピア ツー ピア レプリケーションのサポートです。アイデアは、地理的に離れた複数のノードをサポートすることです。

2 つ目の懸念事項は、中間層で最新の ORM を使用することです。私たちが最初に選んだのは常に Entity Framework でした。これは主に、開発者が Entity Framework で作業することを好むためです。(彼らは LiNQ サポートが大好きです。)

だからここに問題があります:

ピア ツー ピア レプリケーションを念頭に置いて、すべてのテーブルの主キーに、uniqueidentifier をデフォルト値の newsequentialid() で使用することにしました。これにより、キーの競合を回避することとインデックスの断片化を減らすことのバランスが取れているように見えました。

ただし、現在のバージョンの Entity Framework には非常に奇妙な制限があることが判明しました。エンティティのキ​​ー列が一意の識別子 (GUID) である場合、データベースによって提供される既定値 (newsequentialid()) を使用するように構成することはできません。アプリケーション層は GUID を生成し、キー値を設定する必要があります。

だからここに議論があります:

  1. Entity Framework を放棄し、別の ORM を使用します。
    • NHibernate を使用し、LiNQ サポートをあきらめる
    • linq2sql を使用し、将来のサポートを断念します (DB 上の SQL Server にバインドされることは言うまでもありません)
  2. GUID を放棄し、別の PK 戦略を採用する
  3. アプリケーション層で順次 GUID (COMBs?) を生成する方法を考案する

私は linq2sql (私の開発者は linq2[stuff] が本当に好きです) と 3 でオプション 1 に傾いています。開発者の視点。

洞察や意見をいただければ幸いです。

0 投票する
1 に答える
247 参照

sql-server - マージ レプリケーション プッシュ サブスクライバーとして設定された SQL Server 2005 データベースでは、同じデータベースをパブリッシャーとしても使用できますか?

異なるオフィスのデータベース間にマージ (プッシュ) レプリケーションをセットアップしました。各データベースには完全なデータ セットが含まれているため、各オフィスのユーザーはオフィスのデータベース サーバーに接続するだけで済みます。ユーザーがオフサイトに移動したい場合、データのサブセットをローカル (ユーザーのラップトップ) の SQL Express データベースにプルする必要があります。SQL Server 2005 レプリケーションを使用して、サブスクライバー データベースの 1 つからこのサブセットをプルし、後でローカルの変更をレプリケートすることはできますか?

編集: 支社のユーザーがメインのパブリッシャー データベースに対してレプリケートするのではなく、サブスクライバー データベースに対してレプリケートすることを望んでいます。したがって、各サブスクライバーは、そのオフィスのユーザーのパブリッシャーとして機能する必要があります (場合によっては、マージ レプリケーションの代わりにトランザクション レプリケーションを使用することもあります)。