• 締切済み

SQL2000からSQL2005へのレプリケーション

日々更新されるSQL2000(サーバー2000)上のテーブルA、テーブルB、テーブルCをSQL2005(サーバー2005)上で参照するために、レプリケーションの機能を使って、SQL2000をパブリッシュとしてSQL2005上をサブスクライバとしてプルサブスクリプション(スケジュール実行)でSQL2005上にテーブルA、テーブルB、テーブルCを生成させたいと考えております。 SQL2000側でパブリッシュの設定、2005側からプルサブスクリプションの設定ともに問題無く設定できたのですが、いざ実施すると 下記のエラーが出て実行できませんでした。 お聞きしたい点としてはそもそも上記の方法でのSQL2000から2005へ テーブルコピーが可能なのか? 無理な場合は、他にどの様な方法でスケジュールで任意のテーブルを 2000から2005へコピーするあるか教えていただけますでしょうか? ------------ ユーザー 'HOGEDOMAIN\サーバー2000$' はログインできませんでした。 (ソース: MSSQLServer, エラー番号: 18456) ヘルプの表示: http://help/18456

  • gonii
  • お礼率39% (9/23)

みんなの回答

  • hongfei
  • ベストアンサー率0% (0/1)
回答No.1

データ移行の問題ですようね。 自分作成されたツールがありますから、便利なんです。 2000のテーブルからInsert Sqlを作成して、 2005のテーブルに挿入することができます。 CSVファイルを出力する方法も使ってもかまわないと思っています。

関連するQ&A

  • SQL Server 2005 レプリケーションについて

    SQL Server2005 から SQL Server7.0 SP4 へレプリケーションを設定したいと思うのですが、上手くできません。 パブリケーション:SQL Server 2005 ディストリビューション:SQL Server 2005 サブスクリプション:SQL Server 7.0 SP4 自動起動 文献を調べると、ストアドを実行すれば設定できるようですが、 どのストアドを実行すればよいのかわかりません。 ご存知の方、そのストアドと引数をお教えください。 またアドバイス等ございましたらお教えいただきたくお願い致します。

  • レプリケーションでのSQLServer認証について

    マージレプリケーションまたは、サブスクリプションで変更可能なトランザクションレプリケーションを設定しようとしています。 SQL Server認証で行いたいと考えています。 マージパブリケーションを設定したあと、サブスクリプションを作成しようとしたところで、以下のようなエラーが発生します。 -------------------------------- ジョブは失敗しました。 所有者 AAA (ジョブ BBBB) にはサーバーへのアクセス権がありません. -------------------------------- (このAAAという所有者はWindowsのユーザーです) 思い当たるのが、サブスクリプションの設定をする時の「マージ エージェントセキュリティ」の「サブスクライバに接続」の箇所は、「プロセスのアカウントを借用する」しか選べません。「SQL Serverログインを使用する」を選びたいのですが・・・。 全てのやりとりをSQL Server認証で行うには、どこを設定したらよいでしょうか??widnows認証でしかレプリケーションの設定を行えないのでしょうか?? パブリケーションは、SQL SERVER 2005 Developer サブスクリプションは、SQL SERVER 2005 EXPRESS です。

  • マージレプリケーション

    マージレプリケーションについて質問があります。 現在Windows2000 SQLServer2000で、 サーバーAにB,C2台のサーバーがぶら下がっている状態の運用を行っております。 サーバーAとB,Cはマージレプリケーションで同期を取っており、B,Cそれぞれで更新されたデータはAで統合されるようになっております。 パブリッシャーは複数あり含まれるテーブル数はまちまちです。 おききしたい点 ある1つのパブリッシャーで、サブスクリプションが同期を取る際に、 「テーブルがほかのパブリケーションで使用中なので、 プロセスは1つ以上のテーブルを削除できませんでした。」 というメッセージが出てきて、うまく同期が取れなくなってしまいました。 現在、アーティクルに同じテーブルを参照しているパブリケーションは存在しませんので、エラーの出てくるパブリケーションを削除、追加を何度か繰り返したため、B,Cのテーブルに情報が残ってしまったのでは ないかと思われます。 パブリケーションを削除したのですが、B,Cのレプリケーションのサブスクリプションに削除したはずのサブスクリプションが「同期中です」で残っており、これを削除することができません。 正常にパブリケーションを作成しなおしたいのですが、どのようにすればよろしいでしょうか? 当方、初心者でまわりに聞ける人がいないので困っています。申し訳ありませんが、よろしくお願いします。

  • SQLServer2005 レプリケーションについて

    SQLServer2005で、 マージレプリケーションのテストを行っています。 サーバーが2台あります。 Serv1・・・パブリッシャ Serv2・・・サブスクライバ とします。(どちらも2005です) 困っていることは、 サブスクリプションの上で右クリックし、 「同期状態の表示」を開くと、 「サーバー'Serv2\インスタンス'はサブスクライバではありません。」 とのメッセージが表示されており、 「開始」ボタンを押しても、Serv1側で変更したデータは反映されず、 ログを見ると「Serv2\インスタンス に接続できませんでした。」と残っています。 これを解消したいのですが、 どこから説明してよいのかわからないので、 最後に、設定手順を書いておきます。 -----設定手順----- SQLServer Management Studioを使って、 Serv1のローカルパブリケーションから、新規パブリケーションの作成ウィザードを実行し、パブリケーションを作成。 ここまでは、問題なく進みました。 次に、先ほど作成したパブリケーションの上で右クリックし、 サブスクリプションの新規作成ウィザードを開始しました。 サブスクライバの選択画面まで進み、 「SQLServer サブスクライバの追加」ボタンで、 [Serv2\インスタンス名]を追加しようとしましたが、認識できなかったので、 [IP\インスタンス名]と指定したら、 「レプリケーションでは、IPではなく実際のサーバー名を指定してください。」のようなメッセージがでたので、いったん中断しました。 hostsファイルに[Serv2]を追加してから、再度ウィザードを実行したら、 サブスクライバの画面から次に進めました。 マージエージェントセキュリティで 1つ目の選択肢で「SQLServerエージェント サービスのアカウントで実行する」 を選択し、 サブスクライバの接続では、 「次のSQLServerのログインを使用する」を選択し、ログインとパスワードを入力しました。 あとは、規定値で、完了しました。 このあと、2アクション(Serv2\インスタンスのサブスクリプションを作成しています、同期エージェントを開始しています)とも成功で終わります。

  • レプリケーションをコマンドプロンプトなどから実行する方法

    サーバ間でレプリケーションを行えるようサーバの設定をしています。EnterPrise Managerでパブリケーション、サブスクリプション等を一通り定義し、実行したらデータはコピーできました。 上記テスト時は、ある時間になったら実行するという風にスケジュールしましたが、実際の利用方法としては、夜のあるジョブが終了したら、レプリケーションを実行するようにする事になっています。 レプリケーションをコマンドベースで実行する方法がわかりません。どなたかご存知な方、教えて下さい。 もしくは、参考URLなどをご教授ください。

  • レプリケーションの設定方法について

    お世話になっております。 現在、SQLServer2005、VB6.0(SP5)を使って開発をしています。 最終的には、レプリケーションの設定/解除を行うツールを作りたいのですが、まずSQLの機能を使って、ツール作成よりも簡単にレプリの設定/解除が出来るのではないかと調査中です。 msdnのヘルプに、次の様な記述がありました。 「レプリケーション スクリプトは、以下のような方法で作成できます。  ・レプリケーション ウィザードのスクリプト生成機能を使用する。」 (http://msdn2.microsoft.com/ja-jp/library/ms147302.aspx) しかし、この機能を使って作成したスクリプトを使っているのですが、データの同期が行えていません。 ログ リーダー エージェントを見ると、 「1 個のトランザクションが 1 個のコマンドと共に配信されました。」 と表示されているのですが、実際にデータを確認すると、同期が取れていません。 サブスクリプションの状態をチェックすると、 「ディストリビュータからサブスクライバまでの履歴」 で、「パブリケーション○○の初期スナップショットはまだ使用できません。」 と言うエラーが表示されていました。 レプリケーションモニタをチェックしたところ、スナップショットエージェントが開始されていませんでした。 そこで、スナップショットエージェントを開始したら、データの同期が行えるようになったのですが、 「レプリケーション ウィザードのスクリプト生成機能」を使用して作成したスクリプトなのに、完全なレプリケーションの設定が出来ないのは、どうしてなのでしょうか? 何か御存知の方がいらっしゃいましたら、教えてください。 よろしくお願いします。

  • マージレプリケーション ID値の返し方

    知識が浅く、自力で解決できないのでご協力お願い致します。 SQL Server2005を使用しています。 サーバーAとサーバーBで、マージレプリケーションで同期をとっているテーブルがあります。 Aの方のテーブルにストアドプロシージャを実行してINSERTし、そのID値(シーケンス番号)を直後にアウトプットとして取得したいのですが、どうも上手くクエリがうまく書けません。 例: AとBのあるテーブルには自動付番のシーケンス番号60までデータがあります。 AにINSERTして新規に追加されたデータのシーケンス番号は61となるので アウトプットとしてその61を返したいのですが、 マージの影響でコミット前のIDを返すのでしょうか、2など全く違った値が返ってきます。 実際にテーブルを確認すると、ちゃんとAもBもシーケンス番号61で新規追加されています。 現状のクエリではINSERT文のあとに 『SET @no_seq = @@IDENTITY』と記述していて、 マージレプリケーションを解除していれば@no_seqに正しいID値を返します。 他には ・@no_seq = SCOPE_IDENTITY ・@no_seq = IDENT_CURRENT('table_name') を試しましたが結果は同じでした。 クエリの書き方なのか、あるいは マージレプリケーションの設定にも詳しくないので なにか原因に心当たりがあれば教えて頂きたいです。 よろしくお願い致します。

  • SQLServer2005SP2のレプリケーション

    間違えて削除してしまったので再投稿します。 このたび、SQLServer2005SP2でレプリケーションを実装しようと思っています。 構成はこのように考えています。 Server1(プライマリサーバ):パブリッシャ SQLServer2005 SP2 Server2(セカンダリサーバ):ディストリビュータ&サブスクライバ 間違えて削除してしまったので再度投稿します。 SQLServer2005 SP2 Server1とServer2のDB、TABLE構成は同じです。 設定方法についていろいろ調べているのですが、どうもこれでよいかと確信がもてません。 どなたか設定方法をご教授お願い致します。 今回の構成に近い設定方法が載ったページなどがあれば合わせて教えてください。 また、Server1は更新用アプリが使用、Server2は参照用アプリが使用などといったことはできるのでしょうか?

  • レプリケーションのトランザクション

    SQL Server 2005にて、トランザクションパブリケーションによるレプリケーションの設定を行っています。 例えばプログラム側で3つのinsert文で一つのトランザクションとしているとき insert into tableA・・・(1) insert into tableB・・・(2) insert into tableC・・・(3) SQLServerのレプリケーション機能で同期中((1)、(2)のみ同期完了)にディストリビュータサーバに障害が起こった場合 (1)、(2)のみコミットされた状態で、(3)は適応されないという不整合は起こり得るのでしょうか? また、そのような状況を防ぐ方法はあるのでしょうか? レプリケーションを初めて構築するので困っております。 ご存知の方、どうかよろしくお願い致します。

  • レプリケーションの結果確認

    こんにちは。 SQL Server2000を使用しています。 レプリケーション(パブリケーション、サブスクリプション)の 実行結果を簡単に確認するために模索しております。 Enterprise Managerを使用すれば見る事はできるのですが、 それをクエリアナライザやOSQLを使用して確認したく、 適切なSPコマンドやシステムテーブルを教えて頂けないでしょうか。 自分なりに調べてはみたのですが、適切なものが見つからなく、 どうぞよろしくお願い致します。