使用DBCC SHRINKFILE EMPTYFILE 选项迁移数据

简介:

对于DBCC SHRINKFILE EMPTYFILE的解释:

 

将指定文件中的所有数据迁移到同一文件组中的其他文件。由于数据库引擎不再允许将数据放在空文件内,因此可以使用ALTERDATABASE语句来删除该文件。

 

假设说我现在想将数据从一个磁盘移动到另外一个磁盘,在移动过程中不想数据库Offline,我们可以使用这个选项。下面是一个例子:

 

--create demodatabase

createdatabase test

onprimary( name =test,filename='D:\testdata\test_primary.mdf'),

filegroup [seconday]

(name = testsecondary,filename='d:\testdata\test_secondary.ndf')

logon (name = test_log,filename='d:\testdata\test_log.ldf')

 

 

--create tableon secondary filegroup

use test

go

createtable test(id int)on [seconday]

 

--Insert Demodata

 

declare @int int

set @int =0

while @int <100000

begin

insertinto test values (@int )

set @int = @int+1

end

--Add another dadtafile on secondary file group

alterdatabase test 

addfile

(name = test_secondary_new,filename='d:\testdata\test_secondary_new.ndf')

to filegroup[seconday]

--Empty oldfile and data will move to another file in the same filegroup

dbccshrinkfile('testsecondary',emptyfile)

go

--Show filesizeafter empty file

dbccshowfilestats

go

--remove old file

alterdatabase test remove filetestsecondary

--drop demodatabase

usemaster

go

dropdatabase test

 

使用这个选项不能够移动系统对象,所以有局限性。另外性能上来讲肯定没有detach然后附近来的快,好处是整个数据库不会offline.

 


本文转自 lzf328 51CTO博客,原文链接:

http://blog.51cto.com/lzf328/1369213
相关文章
|
Oracle 关系型数据库 数据库
9-2 Oracle数据库(表)的逻辑备份与恢复 --导出与导入
9-2 Oracle数据库(表)的逻辑备份与恢复 --导出与导入
185 1
|
弹性计算 容灾 关系型数据库
PostgreSQL PITR 任意时间点恢复过程中如何手工得到recovery需要的下一个WAL文件名 - 默认情况下restore_command自动获取
标签 PostgreSQL , recovery , recovery.conf , restore_command , timeline , 时间线 , next wal , PITR , 时间点恢复 背景 PostgreSQL数据库支持PITR时间点恢复。默认情况下,只需要配置目标是时间点,resotre_command即可,PG会自动调用resotre_command去找需要的WA
1561 0
ORCALE清除全部表数据,保留表结构
ORCALE清除全部表数据,保留表结构
138 0
|
关系型数据库 测试技术 数据库
Postgres 如何清空数据库下的所有表记录,但保留表结构?
Postgres 如何清空数据库下的所有表记录,但保留表结构?
544 0
|
SQL 关系型数据库 MySQL
mysql备份单个表恢复失败
问题 备份数据库 mysqldump -uroot -p database_name tab1 > test.sql; # 远程加 -h 恢复数据库 使用的是source,进入数据库以后 use database_name; source test.
|
SQL 监控 数据库
SQL Server中收缩、清空和删除数据库文件及日志文件
一、简单方法 –SQL Server收缩方法 1、右键数据库→属性→选项→故障还原模型→设为简单→确定; 2、右键数据库→所有任务→收缩数据库→确定; 3、右键数据库→属性→选项→故障还原模型→设为大容量日志记录→确定。
6860 0

热门文章

最新文章