トップページへ PASSJ ブログへ
トップページへ
分科会
特集!
コミュニケーション
資格
セミナー・コンファレンス
インフォメーション
開発者必見! 覚えておきたいSQL Serverの便利機能
文=株式会社システムインテグレータ 堀 真人
第3回
開発者のための、日常的バックアップの小ワザ
今回は「バックアップ」のお話です。と言っても、管理者が行う定期的な運用バックアップではなく、開発者が日々の作業の工夫として使うバックアップテクニックです。たとえば皆さん、開発中にこう思ったことはありませんか?

 ・ 午前中に作ったテストデータをどこかにとっておきたい
 ・ このテーブルだけ保存したい
 ・ 開発サーバーのコピーを自分のPCに作りたい
 ・ 客先のデータベースを持ち帰りたい

こんなときに便利な“カジュアルバックアップ”のための小ワザをご紹介しましょう!
Tips 1

範囲選択して張り付ける


一番簡単なのが、この範囲選択して張り付ける方法です。操作はいたってシンプルで、SQL Serverの管理コンソール「Enterprise Manager」から、データが必要なテーブルを右クリックして開きます。開いたテーブルのデータは、そのまま切り貼り(コピー&ペースト)できるようになっています。ちょっとしたデータのコピーは、筆者もよくこの方法を使いますね。

■ Enterprise Managerで範囲選択
(図)Enterprise Managerで範囲選択


Tips 2

固定長テキストやCSVテキストで出力する


クエリアナライザでは、クエリの結果をCSVと固定長テキストファイルとして出力できます。クエリアナライザのメニューから[クエリ]-[結果をテキストで表示]と設定すれば、[F5]キーでクエリを実行したときに、バラバラっと固定長文字列のクエリ結果が表示されます。また、メニューから[ツール]-[オプション]-[結果]と選択すれば、固定長文字列かCSVのいずれかの出力形式を選択できます。出力したデータは、次に紹介するDTSで簡単に取り込めます。クエリ結果のデータだけとっておきたいようなときには、便利な機能と言えるでしょう。

■ クエリ結果が直接CSV形式で!
(図)クエリ結果が直接CSV形式で!


Tips 3

DTSでサーバー内に部分コピーを取得する


Oracleでテーブルのバックアップとるときに一番簡単な方法は、下記のようにCREATE TABLE文にSELECT文をつなげてしまう方法でしょう。

  CREATE TABLE 新テーブル AS SELECT * FROM 旧テーブル

この構文を使えばあっという間にテーブルのコピーが作れますね。

さて、SQL ServerではCREATE TABLE AS...はありませんが、Enterprise ManagerからDTS(Data Transformation Service)を使えば簡単にバックアップを作れます。

■ 「エクスポート」でDTSを起動する
(図)「エクスポート」でDTSを起動する


DTSは、本来はデータ転送の総合ツールです。OracleからSQL Serverにデータを移行したり、逆にSQL ServerからOracleへの転送、CSV取り込みといった目的で使うのですが、SQL Server同士のやりとりや、テーブルのバックアップをとる場合にも、十分に役立ちます。操作もウィザード形式で質問に答えていくだけなので簡単です。

また、DTSでは同じ端末にバックアップを作るのはもちろんのこと、ネットワークでつながっているSQL Serverであれば、どこにでもバックアップを作ることができます。

■ DTSウィザード画面
(図)DTSウィザード画面

■ テーブルを選んでコピー
(図)テーブルを選んでコピー


Tips 4

デタッチで切り離したデータベースを持ち歩く


SQL Serverのデータベースの実体は、「MDFファイル」と「LDFファイル」の2つのWindowsファイルになります。この2ファイルをコピーすれば、それがそのままバックアップとなります。これらは通常、SQL Serverと結びついているのでコピーできないのですが、「デタッチ」操作で切り離すことによってコピーが可能となります。

■ データベースの実体はLDFとMDFのWindowsファイル
(図)データベースの実体はLDFとMDFのWindowsファイル


デタッチした2つのファイルは、別のSQL Serverに対して適用操作「アタッチ」をすればそのまま動き出します。DTSと比べたメリットは、ネットワークでつながっていないSQL Serverにもデータベースを移せることです。

たとえば、お客さんのDBサーバーのデータを持ち帰って、社内で調査したいときなどに役立つでしょう。運用中のDBの場合でも、DTSでいったんデータベースを複製して、それをデタッチすれば、本番稼動中のDBを止めることなくDBを切り離すことができるのです。

■ データベースのデタッチ
(図)データベースのデタッチ



・ 第1回 SQL クエリアナライザのクエリ実行機能
・ 第2回 SQL クエリアナライザ Part 2
・ 第3回 開発者のための、日常的バックアップの小ワザ
・ 第4回 SQL Server 転ばぬ先の杖!
・ 第5回 エラーをやっつけろ!
・ 第6回 SQL構文の違いを押さえる!
・ 第7回 Transact-SQLをマスターしよう!
・ 第8回 パフォーマンス監視ノウハウ


著者プロフィール
堀 真人(HORI, Masato)
株式会社システムインテグレータ
http://www.sint.co.jp/


新横浜で2年半Oracleを使い、埼玉に飛んでからはSQLServerと戦う毎日を送る“DBバイリンガル”な27歳。
ITとは、「アイデアを支えるテクノロジー」と心得る。
趣味はレゲエとSQL Server。愛読書はレゲエ専門誌「Riddim」とデータベース専門誌「DBマガジン」。

← 特集!DBバイリンガル 目次

PASSJメールニュース 著作権ついて プライバシーポリシー リンクポリシー お問い合わせ
(C) 2005 Professional Association for SQL Server Japan. All rights reserved.