DBCC SHRINKFILE
コマンドは、ミラーリングされたデータベースに校長からミラーリングされます。ここにいくつかの証拠があります。
プリンシパルにサンプルデータベースを作成します。
create database MirroredDb;
go
次のコマンドを使用して、バックアップから同じデータベースを作成しますNORECOVERY
。
restore database MirroredDb
from disk = '\\backupdir\MirroredDb.bak'
with norecovery;
go
どちらの方法を選択しても、ミラーリングセッションをセットアップします。
上のプリンシパルデータベースのデータベースファイルのサイズを見て:
use MirroredDb;
go
select
name,
size
from sys.database_files;
結果セットは次のようになります。
name size
MirroredDb 392
MirroredDb_log 104
上のミラーデータベース、スナップショットを作成し、同じ情報を見て:
create database MirroredDbss
on
(
name = 'MirroredDb',
filename = 'c:\sqlserver\MirroedDb.ss'
)as snapshot of MirroredDb;
use MirroredDbss;
go
select
name,
size
from sys.database_files;
結果セットは次のようになります。
name size
MirroredDb 392
MirroredDb_log 104
次に、プリンシパルデータベースのトランザクションログファイルを大きくします(1 GBにしました)。
alter database MirroredDb
modify file
(
name = MirroredDb_log,
size = 1GB
);
go
見てみると、プリンシパルデータベースのトランザクションログのサイズ、我々は今、調整のサイズを参照してください。
use MirroredDb;
go
select
name,
size
from sys.database_files;
結果セットは次のようになります。
name size
MirroredDb 392
MirroredDb_log 131072
ミラーリングされたデータベースに別のスナップショットを作成し、そこでトランザクションログファイルのサイズを確認します。
create database MirroredDbss2
on
(
name = 'MirroredDb',
filename = 'c:\sqlserver\MirroedDb2.ss'
)as snapshot of MirroredDb;
use MirroredDbss2;
go
select
name,
size
from sys.database_files;
結果セットは次のようになります。
name size
MirroredDb 392
MirroredDb_log 131072
次にDBCC SHRINKFILE
、プリンシパルでを実行します。
use MirroredDb;
go
dbcc shrinkfile('MirroredDb_log', 0);
go
select
name,
size
from sys.database_files;
私の結果セットは次のとおりです:
name size
MirroredDb 392
MirroredDb_log 104
ミラーリングされたデータベースに3番目の最後のスナップショットを作成し、サイズを確認します。
create database MirroredDbss3
on
(
name = 'MirroredDb',
filename = 'c:\sqlserver\MirroedDb3.ss'
)as snapshot of MirroredDb;
use MirroredDbss3;
go
select
name,
size
from sys.database_files;
そして、私は次の結果セットを取得します:
name size
MirroredDb 392
MirroredDb_log 104
ここでわかるように、DBCC SHRINKFILE
コマンドは実際にはミラーデータベースにミラーリングされます。