- PR -

データベースの設定やテーブル構造だけバックアップする方法

1
投稿者投稿内容
きのこ
ぬし
会議室デビュー日: 2004/09/01
投稿数: 256
投稿日時: 2006-09-21 11:46
いつもお世話になってます。
現在、1つのレポート用の巨大なデータベースがあり
(俗にゆう読み取り専用のデータウェアハウス)、
データ自体は毎日更新されます。2つほど質問があるのですが

1.
データベースの構造やテーブルなどの構造だけをバックアップすることは可能か?
 (そうすることで、バックアップ時間を極力短くする、ただいいざというときのためテーブルの構造だけは保存しておいて、データだけは流し込める状態にしておきたい)

2.
差分でデータを追加しているような特定のテーブルだけは、
他のデータソースからそのまま流しこんですべてのデータが普及されるのが複雑になるかもしれないので特定のテーブルだけは保存したい。

こういったことは可能なのでしょうか?
アクセスですらテーブルをコピーするときにできるので可能だとは思いますが。

つかっているのはSQLサーバー2005です

もちろん
1.データベースコピーして、
2.すべてのテーブル名をsysobjects などのobjectのシステムテーブルから
  もってきて
 (SQL 2000までMASTERというシステムデータベースにこれがあったんですけど
  SQL 2005ではなくなってしまいました、どこにいったんでしょうか?)
3.それをすべてTRUNCATEして、
4.必要であれば容量をちじめるためそのデータベースをSHRINKして、
5. Detachして
6. DatafileとLogfileコピーして

とバッチにしてそれをスケジュールにいれればできないことはなさそうですが
(上のやりかたは素人的かもしれません)、
大変です。
もっと簡単にできる方法はあるのでしょうか?
アドバイスいただければ幸いです。

ちなみに書いててきになってしまったのですが
SQL2000にあったmasterのdbo.sysobject テーブル
SQL2005ではどこにいってしまったのでしょうか?

vincent
大ベテラン
会議室デビュー日: 2004/07/09
投稿数: 142
投稿日時: 2006-09-21 13:32
構造だけ取っておきたいなら、Management Studio上で対象データベースを
選んで、タスク→スクリプト生成、でどうでしょうか。
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-09-21 13:48
こんにちは。

引用:

きのこさんの書き込み (2006-09-21 11:46) より:
データベースの構造やテーブルなどの構造だけをバックアップすることは可能か?


可能です。
GUI なら vincentさんが提案された方法でできますし、プログラムを組むなら SQL Server 管理オブジェクト (SMO) を利用する方法があります。
たとえばテーブルの構造ならこんな感じです。c# です。
Microsoft.SqlServer.ConnectionInfo と Microsoft.SqlServer.Smo を参照しておいてください。
コード:
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Management.Smo;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Server server = new Server(@"サーバー\インスタンス");

            foreach (string s in server.Databases["データベース名"].Tables["テーブル名","スキーマ名"].Script())
            {
                Console.WriteLine(s); 
            }
        }
    }
}



引用:

きのこさんの書き込み (2006-09-21 11:46) より:
SQL2000にあったmasterのdbo.sysobject テーブル
SQL2005ではどこにいってしまったのでしょうか?


sys.sysobjects というビューとして存在しています。
SQL Server 2000 のときのシステムテーブルは SQL Server 2005 ではシステムビューというかたちにリニューアルされています。
Books Online の 互換性ビューSQL Server 2000 システム テーブルから SQL Server 2005 システム ビューへのマッピング をご覧ください。
_________________
上本亮介 (ue) @ わんくま同盟
Microsoft MVP for VSTO (Jul 2008 - Jun 2009)
Hello Another World!
.NET 勉強会 / ヒーロー島
きのこ
ぬし
会議室デビュー日: 2004/09/01
投稿数: 256
投稿日時: 2006-09-22 03:26
ueさん、vincentさん

参考になります。本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)