トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

SQLServer

バックアップとレストア

  • VMware の vCenter サーバ作業時の例
  • データベースの把握
> sqlcmd -S localhost\SQLEXP_VIM -E -Q "select d.database_id,left(d.name,20) as database_name,left(d.state_desc,10) as state,m.file_id,m.file_guid,m.data_space_id,left(m.name,20) as file_name,left(m.physical_name,80) as file_path,left(m.state_desc,10) as state from sys.databases as d,sys.master_files as m where d.database_id=m.database_id"
> sqlcmd -S localhost\SQLEXP_VIM -E -Q "backup database VIM_VCDB TO disk='D:\backup\vim_vcdb.backup' with init"
Processed 34784 pages for database 'VIM_VCDB', file 'VIM_VCDB_dat' on file 1.
Processed 5 pages for database 'VIM_VCDB', file 'VIM_VCDB_log' on file 1.
BACKUP DATABASE successfully processed 34789 pages in 16.546 seconds (17.224 MB/sec).
> sqlcmd -S localhost\SQLEXP_VIM -E -Q "backup database VIM_UMDB TO disk='D:\backup\vim_umdb.backup' with init"
Processed 63744 pages for database 'VIM_UMDB', file 'VIM_UMDB_dat' on file 1.
Processed 4 pages for database 'VIM_UMDB', file 'VIM_UMDB_log' on file 1.
BACKUP DATABASE successfully processed 63748 pages in 30.874 seconds (16.914 MB/sec).
> dir D:\backup\vim_vcdb.backup D:\backup\vim_umdb.backup
2013/06/19  15:45       285,140,480 vim_vcdb.backup
2013/06/19  15:46       522,429,952 vim_umdb.backup
> sqlcmd -S localhost\SQLEXP_VIM -E -Q "restore filelistonly from disk='D:\backup\vim_vcdb.backup'"
> sqlcmd -S localhost\SQLEXP_VIM -E -Q "restore filelistonly from disk='D:\backup\vim_umdb.backup'"
  • レストアテスト
> sqlcmd -S localhost\SQLEXP_VIM -E -Q "RESTORE DATABASE test_vim_vcdb FROM disk='D:\backup\vim_vcdb.backup' WITH MOVE 'VIM_VCDB_dat' TO 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test_vim_vcdb.mdf', MOVE 'VIM_VCDB_log' TO 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test_vim_vcdb.ldf'"
Processed 34784 pages for database 'test_vim_vcdb', file 'VIM_VCDB_dat' on file 1.
Processed 5 pages for database 'test_vim_vcdb', file 'VIM_VCDB_log' on file 1.
RESTORE DATABASE successfully processed 34789 pages in 13.926 seconds (20.464 MB/sec).
> sqlcmd -S localhost\SQLEXP_VIM -E -Q "RESTORE DATABASE test_vim_umdb FROM disk='D:\backup\vim_umdb.backup' WITH MOVE 'VIM_UMDB_dat' TO 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test_vim_umdb.mdf', MOVE 'VIM_UMDB_log' TO 'C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\test_vim_umdb.ldf'"
Processed 63744 pages for database 'test_vim_umdb', file 'VIM_UMDB_dat' on file 1.
Processed 4 pages for database 'test_vim_umdb', file 'VIM_UMDB_log' on file 1.
RESTORE DATABASE successfully processed 63748 pages in 22.029 seconds (23.705 MB/sec).
  • レストアテストデータの削除
> sqlcmd -S localhost\SQLEXP_VIM -E -Q "drop database test_vim_vcdb,test_vim_umdb"

参考サイト

Microsoft SQL Server / MSDN

HowTo: Management Studio を使ってトランザクションログファイル (ldf) のサイズを小さくする方法 / Microsoft SQL Server Japan Support Team Blog / MSDN Blogs

ここに記載した方法で、トランザクションログファイルのサイズを小さくしたいという状況のほとんどに対応可能だと思います。

ステップ 1 : データベースの復旧モデルを確認する

ステップ 2 : トランザクションログをバックアップする

このステップ 2 は、復旧モデルが「完全」または「一括ログ」の場合のみ行います。

データベースを右クリックし、「タスク」 - 「バックアップ」をクリックします。

バックアップの種類」として「トランザクションログ」を選びます。

ステップ 3 : トランザクションログファイルのサイズを小さくする

データベースを右クリックし、「タスク」、「圧縮」、「ファイル」の順にクリックします。

「ファイルの種類」は「ログ」、「ファイル名」は、大きくなってしまったトランザクションログファイルの論理名、「圧縮アクション」として「未使用領域の解放前にページを再構成する」を選択し、ファイルサイズの目標となるサイズを MB 単位で指定します。