復元処理中、容量不足でエラー表示。
まず、
compmgmt.msc>記憶域>ディスク管理>C:>ボリュームの拡張
を実施(環境によって、通常効果はない)
次に、2回に分けて復元し、圧縮を実施した。(1度目の復元後に下記実施し、残りを復元)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
USE master; -- master データベースに接続。sys.databases ビューを参照するため。 GO -- データベース名を格納する変数を宣言 DECLARE @DBName NVARCHAR(MAX); -- カーソルを宣言して、システムデータベースを除外したすべてのデータベース名を取得 DECLARE db_cursor CURSOR FOR SELECT name FROM sys.databases WHERE name NOT IN ('master', 'model', 'msdb', 'tempdb') -- システムデータベースを除外 -- カーソルを開く(データベースのリストを準備) OPEN db_cursor; -- 最初のデータベース名をカーソルから取得 FETCH NEXT FROM db_cursor INTO @DBName; -- カーソルで取得したすべてのデータベースに対して繰り返し処理を実行 WHILE @@FETCH_STATUS = 0 BEGIN -- 圧縮コマンドを格納する変数を宣言 DECLARE @SQL NVARCHAR(MAX); -- DBCC SHRINKDATABASE コマンドを動的SQLとして構築 -- ここでは、10% の空き領域を残して圧縮する設定(必要に応じて変更可能) SET @SQL = 'DBCC SHRINKDATABASE ("' + @DBName + '", 10);'; -- 実行されるコマンドを確認するために出力(オプション) PRINT @SQL; -- 実際の圧縮コマンドが何か確認したい場合に役立つ -- 構築した SQL コマンドを実行 EXEC sp_executesql @SQL; -- 次のデータベース名をカーソルから取得 FETCH NEXT FROM db_cursor INTO @DBName; END; -- カーソル操作が完了したら閉じる CLOSE db_cursor; -- カーソルのメモリを解放 DEALLOCATE db_cursor; GO |
もし一括でDBを削除する場合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
USE master; -- master データベースに接続 GO DECLARE @DatabaseName NVARCHAR(128); DECLARE @SQL NVARCHAR(MAX); -- カーソルを宣言して、削除対象のデータベース名を取得 DECLARE db_cursor CURSOR FOR SELECT name FROM sys.databases WHERE name NOT IN ('master', 'model', 'msdb', 'tempdb') -- システムデータベースを除外 -- カーソルを開く OPEN db_cursor; -- 最初のデータベース名を取得 FETCH NEXT FROM db_cursor INTO @DatabaseName; -- すべてのデータベースに対して繰り返し処理 WHILE @@FETCH_STATUS = 0 BEGIN -- データベースをシングルユーザーモードに設定し、接続を強制切断 SET @SQL = 'ALTER DATABASE "' + @DatabaseName + '" SET SINGLE_USER WITH ROLLBACK IMMEDIATE;'; PRINT @SQL; -- 実行されるコマンドを確認(オプション) EXEC sp_executesql @SQL; -- データベースを削除 SET @SQL = 'DROP DATABASE "' + @DatabaseName + '";'; PRINT @SQL; -- 実行されるコマンドを確認(オプション) EXEC sp_executesql @SQL; -- 次のデータベース名を取得 FETCH NEXT FROM db_cursor INTO @DatabaseName; END; -- カーソルを閉じて解放 CLOSE db_cursor; DEALLOCATE db_cursor; GO |