標題の別サーバーの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も見ています
-
許せない心理テスト
私は「あなたの目の前にケーキがあります。ろうそくは何本刺さっていますか」と言われ「12本」と答えたら…
-
フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
あなたが普段思っている「これまだ誰も言ってなかったけど共感されるだろうな」というあるあるを教えてください
-
映画のエンドロール観る派?観ない派?
映画が終わった後、すぐに席を立って帰る方もちらほら見かけます。皆さんはエンドロールの最後まで観ていきますか?
-
海外旅行から帰ってきたら、まず何を食べる?
帰国して1番食べたくなるもの、食べたくなるだろうなと思うもの、皆さんはありますか?
-
天使と悪魔選手権
悪魔がこんなささやきをしていたら、天使のあなたはなんと言って止めますか?
-
別のDBからテーブルをコピーする方法
SQL Server
-
他のデータベースとのテーブル結合
SQL Server
-
サーバーと実行端末が違う場合のsqlcmdの書き方
SQL Server
-
-
4
あるDBから別のDBのテーブルをselectしたい
MySQL
-
5
2台のサーバー間でのテーブル結合方法
SQL Server
-
6
データのインポートに失敗します。
SQL Server
-
7
SQLServerでViewの参照・・・
SQL Server
-
8
SQLServerで文字列の末尾からある位置で取出
SQL Server
-
9
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
-
10
副問合せの書き方について
SQL Server
-
11
CSVファイルをBULK INSERTでSQLserverに読み込むことは可能?
その他(データベース)
-
12
SQLサーバから、項目の属性(型)を取得したいのですが・・・
SQL Server
-
13
DataTableに入っているデータを全てinsertしたい!(C#)
Microsoft ASP
-
14
select insert 句
Oracle
-
15
GridViewにバインドせずにデータを表示する方法
Microsoft ASP
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ITパスポートについての質問で...
-
SQLServerでViewの参照・・・
-
MySQLに良いCPUスペックは?
-
dtexecコマンドを使ってDTSパッ...
-
SQL ServerにWindowsパスワード...
-
マザーボード交換についてです ...
-
SQL SERVER エージェントの権限
-
Excel-VBAの「しばらくお待ちく...
-
ノートンの解約(「ライセンス...
-
IDENTITY列を持つテーブルへBCP...
-
SQLサーバー接続 特定のPCがWin...
-
Windows認証できない
-
windows8.1 でサーバー(SQL)...
-
ACCESSからのODBC接続のみ応答...
-
Accessからストアドプロシジャ...
-
ACCESSのツールバー「フォーム...
-
クライアントでの処理が遅い
-
5ユーザシステム
-
Access2010 accdbのエラー「ODB...
-
DB接続ができなくなって困って...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
別サーバーのDB同士を結合する...
-
SQLServerでViewの参照・・・
-
異なるサーバーにファイルをエ...
-
MySQLに良いCPUスペックは?
-
(SQLSERVER) 別サーバーへテー...
-
dtexecコマンドを使ってDTSパッ...
-
SQLサーバーでの正規表現メタ文...
-
FreeBSD+PostgreSQLでありえな...
-
2つのPCの SQL Server のテー...
-
DBサーバーはどれがいいのですか?
-
リンクサーバ(PostgreSQL)に...
-
outlook 予定表の連動でexchang...
-
FileMaker for Mac
-
CSVにエクスポート
-
1台のサーバーに対して複数のDB...
-
MySQL複製
-
2005で動くのに2008では処理負...
-
難易度順にならべると?
-
DBのハードディスクについて
-
ACCESSで格納しているデータ保...
おすすめ情報