標題の別サーバーのDBへテーブルをコピー(更新)したいと考えておりますが、やり方が全く分かりませんのでお教えください。
【更新元】
販売管理サーバー
OS:Windwos2008R2
SQL SERVER 2008R2
サーバー名:POS
DB名:POSDATA
テーブル名:POS売上伝票
【更新先】
社内開発用サーバー
OS:Windwos2008R2
SQL SERVER 2012Express
サーバー名:AD
DB名:POS
テーブル名:POS売上伝票
POS上のSQL ManagementStudeoから、AD上のSQLSERVERへのアクセスは可能な状態にしております。
◎実装したい要件
POSサーバー上のデータを、毎日定時にADサーバー上のDBに追加更新
※理想としては、バッチ等のスクリプトをタスクに登録し定時に実行
自分なりに調べてみたのですが、データを丸ごとコピーする場合は、"bcp"コマンドを実行すれば可能なようですが、bcpコマンドで、サーバー間のコピーの方法が良くわかりませんでした。
また、出来れば日々更新する為、データが変更されたレコードはUPDATE追加されたデータは、INSERTする事が理想です。
※夜間のバッチ処理ですので、上記の方法が私の知識的に難しようであれば、テーブルを作り直ししてもよいと考えております。
効率的な方法をご存じの方がいらっしゃいましたらアドバイスをお願いいたします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
>間違っているかもしれませんが、BCPを使う場合。
>販売管理SV側で、bcpコマンドでバックアップファイルを作成・出力。
>ADSV側で、出力されたバックアップファイルを読込と言う事で宜しいでしょうか?
はい。あっています。
とはいえ、
>
>お教え頂いたURLを拝見しましたが、イマイチ理解出来なかったため、最低限必要な書き方をお教え頂け>たら幸いです。
という感じでしたら、リンクサーバを使うほうがいいのかなあという気がしてきました。
http://sql55.com/query/linked-server.php
ここで、SQL SERVER認証のほうをつかう。
これが難しいようなら、
下のサイトの「SQL Server Management Studio の使用」のところを見てもらう。
http://msdn.microsoft.com/ja-jp/library/ff772782 …
ちょっとわかりにくいかも。
ならば、下のサイトの手順でやってみる。
http://d.hatena.ne.jp/haradago/20110125/p1
ぐらいかな。
・・・これで引っかかるようなら、どこがわからないか、あるいは、何を入力したか
返信いれてください。
No.4
- 回答日時:
とりあえず、Microsoftのサイトに自習書があるので見てください。
(参照URL)他の回答者も書いていますが、
更新元サーバーをさわらずに実施しようとするならば
更新先サーバーにリンクサーバーとして、更新元サーバーを登録して
更新元を select した結果を
更新先へ insert する方法が最善だと思われます。
参考URL:https://www.microsoft.com/ja-jp/sqlserver/2008/r …
toshih2000様
MSの自習書お教え頂きありがとうございます。
いくつかダウンロードして見ましたが、低能な私でも理解出来そうでしたので、参考にさせて頂きます。
No.3
- 回答日時:
BCPは、
1.販売管理サーバーで
OUTパラメタをつけてデータベースから普通のファイルへ出力
2.出力したファイルを社内開発用サーバーへコピー
(ネットワークドライブで直接参照してもいいが4.が遅い)
3.社内開発用サーバーで対象テーブルをtruncateまたはdelete
(BCPではデータが変更された分はUpdateされたと思いますが削除された分が反映できないため)
4.社内開発用サーバーで
INパラメタをつけてデータベースへ普通のファイルから読み込む
という処理になります。
http://msdn.microsoft.com/ja-jp/library/ms162802 …
参照。(本当は2008R2のに移動してもらったほうがいいけど。)
なお、テーブルレイアウトの変更は両方のサーバに必要。
他の方法としては、
A)データベースをバックアップしてリストアする。
他のテーブルは対象外なのでかえってやりにくい。
(まあ、別のデータベースとしてリストアしてmerge文とdelete文使って・・・
という方法はありますが)
B)トランザクションレプリケーションする
たぶんバッチ処理でなくリアルタイムになってしまうので論外。
トランザクションログやディストリビューションデータベースのサイズなどもろもろを考慮する
必要もある。
C)スナップショットレプリケーションする
これは、時刻指定でコマンドを実行したときに全部入れ替えされるのでやり方としてはありと
思いますが。
販売管理サーバーに設定することが多いのと、知っておかないといけないことが大量なのと。。。
D)リンクサーバを作ってSQLを実行する。
これは、時刻指定で、deleteとmerge(またはinsert/update)命令を実行するだけ。
トランザクションログがあふれないかどうかだけが気がかりですが。
リンクサーバの作り方は下のURLあたりかな。
http://technet.microsoft.com/ja-jp/library/ff772 …
権限設定で、はまる可能性はありますが、
sqlのほうは、deleteもmergeも、
テーブル名の指定で、リンクサーバ名.DB名.スキーマ名.テーブル名とするだけなので比較的簡単。
まあ、簡単なのは、BCPかリンクサーバを使う方法でしょう。
Siegrune様
回答ありがとうございます。
記載頂いた、URLを拝見しましたが、私にはハードルが高すぎて理解出来ませんでした。
質問では、理想を描いてしまったため、根本的なSQLServerを理解していない私には厳しそうです。
今まで、Accessのリンクテーブルを作成して必要なデータを抽出していたのですが、大量のデータのクエリをかけると販売管理システム自体が不安定になるため、上記のような事が出来ないかと考えておりました。
ですので、販売管理側に大きな負荷がかからなければ、(ADサーバー側は負荷がかかって停止しても問題ありません。)全テーブルを作り直してもかまいません。
あわせて、出来れば毎日深夜にその作業を行えれば、業務に支障が出る事は無いと思います。
間違っているかもしれませんが、BCPを使う場合。
販売管理SV側で、bcpコマンドでバックアップファイルを作成・出力。
ADSV側で、出力されたバックアップファイルを読込と言う事で宜しいでしょうか?
お教え頂いたURLを拝見しましたが、イマイチ理解出来なかったため、最低限必要な書き方をお教え頂けたら幸いです。
私のイメージとしては、Mysqldumpみたいな事が出きれば現段階では良いと考えております。
あつかましいお願いで申し訳ありませんが、よろしくお願いいたします。
No.2
- 回答日時:
SQL Serverの場合リンクサーバーの設定をすれば別サーバーのデータベースをリンクサーバー名.データベース名.スキーマ名.テーブル名とする事で通常のSQLで扱えるようになります。
夜間バッチで行うのであれば受ける側のSQL ServerでDROPとCREATEとINSERTを行う作業をプログラムを組んで実現されれば問題が少ないです。nharasawa様
回答ありがとうございます。
リンクサーバーの件も考えたのですが、どう変更してよいやら全く分からず。。。
また、販売管理SV側には、閲覧権限しかないので、リンクサーバー構築も難しいのではと考えております。
No.1
- 回答日時:
SQLServerなら、ストアドプロシージャに、そういう処理するSQL文を作っておいて、SQLServerのジョブのスケジュール設定で、毎日定時に実行してあげればいいと思いますよ。
STICKY2006様
回答ありがとうございます。
ほんと、初歩の初歩が分かってないのですいません。
ストアドプロシージャーの作り方というか書き方が分かりません。
ジョブスケジュールについては、購入した本に載っていたので、何とかなるかなと思いますが、T-SQLについてAmazonを探したのですが、分かりやすい本がなかったのでお手上げ状態です。
また、販売管理SV側には、閲覧権限しか与えられてない為、ストアドも作成出来ないのではと考えています。
素人以下の質問で申し訳ありませんが、良い方法が有ればお教え頂けましたら幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
それもChatGPT!?と驚いた使用方法を教えてください
仕事やプライベートでも利用が浸透してきたChatGPTですが、こんなときに使うの!!?とびっくりしたり、これは画期的な有効活用だ!とうなった事例があれば教えてください!
-
スマホに会話を聞かれているな!?と思ったことありますか?
スマートフォンで検索はしてないのに、友達と話していた製品の広告が直後に出てきたりすることってありませんか? こんな感じでスマホに会話を聞かれているかも!?と思ったエピソードってありますか?
-
みんなの【マイ・ベスト積読2024】を教えてください。
積読、ついついしちゃいませんか?そこでみなさんの 「2024年に買ったベスト積読」を聞きたいです。
-
AIツールの活用方法を教えて
みなさんは普段どのような場面でAIツール(ChatGPTなど)を活用していますか?
-
「これいらなくない?」という慣習、教えてください
現代になって省略されてきたとはいえ、必要性のない慣習や風習、ありませんか?
-
別のDBからテーブルをコピーする方法
SQL Server
-
あるDBから別のDBのテーブルをselectしたい
MySQL
-
ODBCの接続に失敗しました(3146)について
その他(Microsoft Office)
-
-
4
サーバーと実行端末が違う場合のsqlcmdの書き方
SQL Server
-
5
SQLserver算術オーバーフローエラーについて
SQL Server
-
6
2台のサーバー間でのテーブル結合方法
SQL Server
-
7
SQLServer 2008のインスタンス間DBコピーの方法を探してい
SQL Server
-
8
【DB】同じトランザクション内でupdateとselectをしたときの結果値
その他(データベース)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・集中するためにやっていること
- ・テレビやラジオに出たことがある人、いますか?
- ・【お題】斜め上を行くスキー場にありがちなこと
- ・人生でいちばんスベッた瞬間
- ・コーピングについて教えてください
- ・あなたの「プチ贅沢」はなんですか?
- ・コンビニでおにぎりを買うときのスタメンはどの具?
- ・おすすめの美術館・博物館、教えてください!
- ・ことしの初夢、何だった?
- ・【お題】大変な警告
- ・【大喜利】【投稿~1/20】 追い込まれた犯人が咄嗟に言った一言とは?
- ・洋服何着持ってますか?
- ・みんなの【マイ・ベスト積読2024】を教えてください。
- ・「これいらなくない?」という慣習、教えてください
- ・今から楽しみな予定はありますか?
- ・AIツールの活用方法を教えて
- ・【お題】逆襲の桃太郎
- ・自分独自の健康法はある?
- ・最強の防寒、あったか術を教えてください!
- ・【大喜利】【投稿~1/9】 忍者がやってるYouTubeが炎上してしまった理由
- ・歳とったな〜〜と思ったことは?
- ・モテ期を経験した方いらっしゃいますか?
- ・好きな人を振り向かせるためにしたこと
- ・スマホに会話を聞かれているな!?と思ったことありますか?
- ・それもChatGPT!?と驚いた使用方法を教えてください
- ・見学に行くとしたら【天国】と【地獄】どっち?
- ・これまでで一番「情けなかったとき」はいつですか?
- ・この人頭いいなと思ったエピソード
- ・あなたの「必」の書き順を教えてください
- ・14歳の自分に衝撃の事実を告げてください
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
(SQLSERVER) 別サーバーへテー...
-
MySQLに良いCPUスペックは?
-
異なるサーバーにファイルをエ...
-
FreeBSD+PostgreSQLでありえな...
-
SQLのエラー(~付近に不適切な...
-
SQLServerとOracleの共存
-
リストボックスで選択したレコ...
-
Excel-VBAの「しばらくお待ちく...
-
VB.NetでSQLServer2005に接続で...
-
オラクルインストールユーザ以...
-
ストアドの速度がクエリの30...
-
ストアドプロシージャーでバッ...
-
バッチファイルからのBCP起動に...
-
単純な質問です
-
SQL ServerのSQL実行時のエラー...
-
ユーザー定義関数内でのsp_exec...
-
データベース SQL のセッショ...
-
SQL Loaderを使いたい
-
ACCESSからSQLServerのデータを...
-
PostgreSQLと、AccessをODBC接続
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
異なるサーバーにファイルをエ...
-
(SQLSERVER) 別サーバーへテー...
-
SQLServerでViewの参照・・・
-
別サーバーのDB同士を結合する...
-
dtexecコマンドを使ってDTSパッ...
-
FreeBSD+PostgreSQLでありえな...
-
2つのPCの SQL Server のテー...
-
リンクサーバ(PostgreSQL)に...
-
MySQLに良いCPUスペックは?
-
SQLサーバーのテーブルでサーバ...
-
SQLサーバーでの正規表現メタ文...
-
ITパスポートについての質問で...
-
SQLのエラー(~付近に不適切な...
-
Oracle 8i コンマ(,)を含むデ...
-
SQLサーバー接続 特定のPCがWin...
-
Excel-VBAの「しばらくお待ちく...
-
既定のインスタンスと名前付き...
-
SQL Loaderを使いたい
-
Access2010 accdbのエラー「ODB...
-
SQLCMDにて教えていただきたい...
おすすめ情報