標題の別サーバーの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も見ています
-
【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
【お題】 ・存在しそうで存在しないモノマネ芸人の名前を教えてください
-
【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
2024年は「名探偵コナン30周年」「涼宮ハルヒ20周年」などを迎えますが、 あなたが「もうそんなに!?」と驚いた○○周年を教えてください。
-
【お題】引っかけ問題(締め切り10月27日(日)23時)
【大喜利】 「日本で一番高い山は富士山……ですが!」から始まった、それは当てられるわけ無いだろ!と思ったクイズの問題
-
ちょっと先の未来クイズ第4問
11月ごろに発表される、2024年の「新語・流行語大賞」にノミネートされる言葉を書けるだけ書いてください。
-
ギリギリ行けるお一人様のライン
おひとり様需要が増えているというニュースも耳にしますが、 あなたが「ギリギリ一人でも行ける!」という場所や行為を教えてください
-
別のDBからテーブルをコピーする方法
SQL Server
-
サーバーと実行端末が違う場合のsqlcmdの書き方
SQL Server
-
データのインポートに失敗します。
SQL Server
-
-
4
VB.NETでDOSコマンドの複数実行
Visual Basic(VBA)
-
5
SQLServer 2008のインスタンス間DBコピーの方法を探してい
SQL Server
-
6
select insert 句
Oracle
-
7
SQLServerでViewの参照・・・
SQL Server
-
8
VB.NETで DataRow()を利用して、値からコードを取得したい。
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
(SQLSERVER) 別サーバーへテー...
-
異なるサーバーにファイルをエ...
-
Oracle 8i コンマ(,)を含むデ...
-
SQLのエラー(~付近に不適切な...
-
Excel-VBAの「しばらくお待ちく...
-
4K Video Downloaderのライセン...
-
SQLサーバー接続 特定のPCがWin...
-
分散トランザクションを開始で...
-
SQL Server 2008をインストール...
-
99bb.com のライセンスバック...
-
100万件レコードdelete
-
SQL研修で使うSQLツール
-
セキュリティソフト カスペルス...
-
ノートンの解約(「ライセンス...
-
GROUP BYでエラーが発生
-
DB接続ができなくなって困って...
-
アクションクエリが実行できない
-
ノートパソコンのHDDを同機種へ...
-
オラクルのインストール
-
Access から SQLserver に接続...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
異なるサーバーにファイルをエ...
-
SQLServerでViewの参照・・・
-
別サーバーのDB同士を結合する...
-
MySQLに良いCPUスペックは?
-
dtexecコマンドを使ってDTSパッ...
-
(SQLSERVER) 別サーバーへテー...
-
リンクサーバ(PostgreSQL)に...
-
2つのPCの SQL Server のテー...
-
Accessで作成したアプリを複数...
-
ACCESS97が2003Serverで動作可能?
-
CSVにエクスポート
-
難易度順にならべると?
-
FreeBSD+PostgreSQLでありえな...
-
webページのサーバーの変更
-
ITパスポートについての質問で...
-
クワッドコアのマシンにoracleを
-
MySQL複製
-
負荷ダウン対策
-
Oracle 8i コンマ(,)を含むデ...
-
SQLサーバー接続 特定のPCがWin...
おすすめ情報