「Microsoft SQL Server」が稼働するデータベースシステムを運用する管理者に向け、「動的管理ビュー」の活用を軸にしたトラブル対策のためのノウハウを紹介していきます。今回は、テープデバイスの一覧と状態情報を出力する方法について解説します。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
本連載では、「Microsoft SQL Server(以下、SQL Server)」で使用可能な動的管理ビューについて、動作概要や出力内容などを紹介していきます。今回は動的管理ビュー「sys.dm_io_backup_tapes」における、テープデバイスの一覧と状態情報を出力する方法について解説します。対応バージョンは、SQL Server(サポートされている全てのバージョン)です。
SQL Serverでは、データベースバックアップをテープデバイスに採取できます。
「sys.dm_io_backup_tapes」動的管理ビューを使用することで、SQL Serverで使用したテープデバイスの一覧やマウントされたテープに関する情報、テープデバイスに要求された命令など、テープデバイスの状態に関する情報を確認できます。
列名 | データ型 | 説明 |
---|---|---|
physical_device_name | nvarchar(520) | バックアップを実行できる実際の物理デバイスの名前 |
logical_device_name | nvarchar(256) | ユーザーが指定したデバイス名。名前が指定されていない場合は「NULL」 |
status | int | テープの状態 「1」=オープン、使用可能 「2」=マウント保留 「3」=使用中 「4」=読み込み中 注:テープの読み込み中(status = 4)には、メディアラベルは実際には読み取られていない。「media_sequence_number」など、メディアラベルの値をコピーする列には、予測値が表示されている。この値は、テープの実際の値とは異なる場合がある。ラベルの読み取りが終わり、使用中(status = 3)へ変更された後に、テープの実際の値が反映される |
status_desc | nvarchar(520) | statusの説明 |
mount_request_time | datetime | マウントが要求された時刻 保留中のマウントがない場合(status! = 2)は「NULL」 |
mount_expiration_time | datetime | マウント要求の有効期限が切れる時刻(タイムアウト) 保留中のマウントがない場合(status! = 2)は「NULL」 |
database_name | nvarchar(256) | このデバイスにバックアップされるデータベース |
spid | int | バックアップを実行するセッションID |
command | int | バックアップを実行するコマンド |
command_desc | nvarchar(120) | コマンドの説明 |
media_family_id | int | メディアファミリのインデックス(1...n) nはメディアセット内のメディアファミリの数 |
media_set_name | nvarchar(256) | メディアセットが作成されたときに、MEDIANAMEオプションで指定されたメディアセットの名前(存在する場合) |
media_set_guid | uniqueidentifier | メディアセットを一意に識別する識別子 |
media_sequence_number | int | メディアファミリ内のボリュームのインデックス(1...n) |
tape_operation | int | 実行中のテープ操作: 「1」=読み取り 「2」=フォーマット 「3」=初期化 「4」=追加 |
tape_operation_desc | nvarchar(120) | tape_operationの説明 READ FORMAT INIT APPEND |
mount_request_type | int | マウント要求の種類: 「1」=特定のテープ media_* フィールドによって識別されるテープが必要 「2」=次のメディアファミリ まだ復元されていない次のメディアファミリが要求される 「3」=後続テープ メディアファミリが拡張され、後続テープが要求されている |
mount_request_type_desc | nvarchar(120) | mount_request_typeの説明 SPECIFIC TAPE NEXT MEDIA FAMILY CONTINUATION VOLUME |
バックアップデバイスとして、テープ装置を設定しました(図1)。
テープデバイスをバックアップデバイスとして登録するには、テープデバイスがSQL Serverの動作するサーバにマウントされている必要があります。今回は別のサーバでテープ装置のエミュレータを使用して仮想デバイスを作成し、iSCSIを使用してSQL Serverの動作するサーバにマウントしました。
バックアップデバイスとして定義し、まだバックアップは開始していない状態で「sys.dm_io_backup_tapes」動的管理ビューを出力してみます(図2)。
バックアップデバイスとして定義しただけではテープデバイスへのアクセスは発生せず、結果も出力されないようです。
次に、テープデバイスへのバックアップを開始しました。この時点ではテープデバイスにテープを挿入していませんので、テープの挿入を促すメッセージダイアログが表示されました(図3、図4)。
テープを挿入していない状態のまま、「sys.dm_io_backup_tapes」動的管理ビューを出力しました(図5)。
出力内容から、テープデバイスがバックアップコマンドによりテープのマウントを待っている状態であることや、要求日時、要求を行ったセッションIDなどを確認できました。
テープをテープデバイスに挿入したところバックアップが正常に完了しましたので、もう一度「sys.dm_io_backup_tapes」動的管理ビューを出力しました。テープデバイスのメディアセットなどの情報が更新され、状態が「AVAILABLE」へと変更されました。アクセスが完了した後もテープデバイスの情報を確認できるようです(図6)。
※本Tipsは、「Windows Server 2019」上に「SQL Server 2019」をインストールした環境を想定して解説しています。
BIPROGY株式会社(ビプロジー)所属。Microsoft MVP for Data Platform(2017〜)。入社以来 SQL Serverの評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。SQL Serverのトラブル対応で社長賞の表彰を受けた経験も持つ。休日は学生時代の仲間と市民駅伝に参加し、銭湯で汗を流してから飲み会へと流れる。
BIPROGY株式会社(ビプロジー)所属。入社以来SQL Server一筋で評価/設計/構築/教育などに携わりながらも、主にサポート業務に従事。社内のプログラミングコンテストで4回の優勝経験も持つ。趣味は輪行で週末は自転車を持っての旅行。目標は色々な日本百選を制覇すること。
Copyright © ITmedia, Inc. All Rights Reserved.