1.データベースとは
データベースとはとまず定義することができます。この時何なのかに含まれることはテーブル(Table),ビュー(View),インデックス(Index),保存プロシジョ(Stored Procedure),トリガー(Trigger)のような客体(Object)入れます。
2.データベースを構成するファイル
SQL Serverのデータベースは運営体制上で見れば拡張子が mdf(または ndf)と ldf 人ファイルで存在するようになります。例えば演習用データベースである pubs データベースの場合は pubs.mdfと pubs_log.ldf 二つのファイルが存在します。
データベースはデータとログで分離して保存されます。データの場合は mdf 拡張子(または ndf)を持って,ログの場合は ldf 拡張子を持って保存されます。
拡張子(mdf,ndf,ldf)は必ず決まったのではなくて希望する場合変えることができるができるだけそのまま使うのが望ましいです。
拡張子を春としてどんな役目をするファイルなのか仕分けができるからです。
もし pubs.mdfを pubs.doc にしたらワードファイルであってデータファイルだと思うことができないからです。(作った人だけ分かりますね)
次の絵はデータベースの構造を簡単に見せてくれています。
1) データファイル(*.mdf,*.ndf)
実際資料を保存します。基本的にデータファイルは一つだけあっても良いが必要ならばもっと作ることができます。初めて作られたファイルが mdf 拡張子を持つようになりながら追加されるファイルは拡張子が ndf がになります。
2)ログファイル(*.ldf)
ログはトランザクション処理とシステムに問題が発生した時復旧のために使われます。普通データファイルの 25% 位のサイズを持ちます。
3。Pageと Extents
私は計算することを本当に嫌やがります。しかしここでは少しの計算をして見ようとします。
1)Page
データは 8KB 単位のブロックを単位に保存されるのにこれをページ(Page)と言います。結果的にデータベースは 1MBには 128Pageを保存することができるようになります。一つの Rowはいろいろな Pageにかけて保存なれなくてただ一つの Pageにだけ保存になることができます。この事実を通じて一つの Row(データレコードだと思っても良いです。)の最大サイズは 8060 バイトです。計算して見れば 8 X 1024 は 8192 です。しかし 8192バイトを Rowが全部占めることができない理由はいくつかの情報を保存するための少しの空間(8192 - 8060 = 132)が必要だからです。簡単に説明したらページヘッダーがこの空間中に 96KBを使うようになって残りは各 Rowが保存されて管理されるためのいくつかの情報を記録するのに使われます。
2)Extent
テーブルとインデックスは Extentに保存されます。Extentと言う(のは) 8個の連続されたページを示します。1 Pageが 8KB 載せるので 1 Extentは 64KB(8 KB X 8) です。
DB 銀別途のバックアップをするのが一番重要です。今後に復元等を念頭したほうがいいです。
まず別途のバックアップファイルが存在しない多面復元がよほど大変な状況です。
しかし,必ず復元をしなければならない DBなら少しは煩わしくて,該当のプログラムを捜すと
するという短所があるが,重要 DBなら該当のプログラムをどうしても捜して復元をするのが
良いと見えます。
Log Explorer というプログラムです 。該当のプログラムは DBの作業の時先に該当の作業に
対して記録する Log fileに対して Log replayingを通じて,現在障害が私は以前段階で
戻すことができるという長所がある一方,作動法がちょっと難しいという短所があります。
Log ファイルが正常に生きていて,該当の DB に保存されている内容が本当に重要だったら
上のツールを捜して復元を試みて見るのがいいと思います。
もし上のツール等を求めることができないとか,急な内容なら復旧専門業社に任せるしか
ないです。