一括操作
SQL Serverには さまざまな機能があるが、今回は一括操作について整理してみる。
【一括操作コマンド】
・bcpコマンド : テーブルデータとテキストファイル間のインポート、エクスポート
bcp テーブル名 out テキストファイルパス -T -t; -c
bcp "SELECT文" queryout テキストファイルパス -T -t; -c
bcp テーブル名 in テキストファイルパス -T -t; -c
・BULK INSERT : bcpコマンドと同様(エクスポートはできない)
BULK INSERT テーブル名 FROM テキストファイルパス WITH (FIELDTERMINATOR = ';', ROWTERMINATOR = '\n',)
・SELECT INTO : 検索結果をそのままテーブルへ書き込む。(テーブルがなければ作成する)
SELECT INTO テーブル名 FROM 元テーブル名 WHERE 条件句
簡単なようでいざというときに覚えていなさそうな気がする。
SQL Server 2005の冗長化構成(その2)
前回に引き続き、SQL Server 2005の冗長化構成を整理する。
3.ミラーリング
・プリンシパル(本番)サーバからミラー(待機)サーバへコピーされる。
・SP1からの実装
・ミラー(待機 )サーバは1台のみ
・監視サーバを構成すれば、自動フェールオーバーが行われる。
A.同期型:2フェーズコミットにより完全一致を保証する。
B.非同期型:パフォーマンス優先、自動フェールオーバーしない。
※ミラーリングを構成するためには、
データベースの復旧モデルを「完全」、互換性レベルを「90」に設定する必要がある。
SQL Server 2005の冗長化構成
SQL Server 2005では、多くの冗長化構成がある。
ややこしいので整理してみようと思う。
1.レプリケーション
2.ログ配布
3.ミラーリング
1.レプリケーション
・複数のサーバ間でデータをコピーする。
・厳密には冗長化ではなく、負荷分散である。
例えば、分析用途では複製されたデータを参照するなど。
・コピー元サーバ(パブリッシャ:出版社)から、
コピー先サーバ(サブスクライバ:購読者)へ、
必要なデータ(パブリケーション:出版物)を配布する。
※パブリケーション = アーティクル:記事の集合
・レプリケーションの種類
A.スナップショットレプリケーション:ある時点のデータの一括コピー
B.トランザクションレプリケーション:定期的にトランザクションログで同期を取る。
C.マージレプリケーション:サブスクライバ側で更新された内容も反映される。(競合の可能性あり)
2.ログ配布
・プライマリ(本番)サーバーのトランザクションログを、定期的にセカンダリ(待機)サーバに配布する。
・セカンダリサーバでトランザクションログを復元する。
・複数のセカンダリサーバを設定できる。
・監視機能はあるが、自動フェールオーバーは行われないので、
待機サーバを手動でプライマリサーバに昇格させる必要がある。
ミラーリング以降はまた次回。
Service Broker
Service Broker:
分散環境で非同期のメッセージベースのストアドプロシージャを呼び出す。
メッセージの型を作成してみる。
ちなみにTransactSQLでしか作成できないらしい。(ツールなし)
--メッセージタイプの定義
CREATE MESSAGE TYPE
--コントラクトの定義
CREATE CONTRACT
--キューの作成
CREATE QUEUE
--サービスの定義
CREATE SERVICE
ちょっと難しい。
