使用DBCC SHRINKFILE EMPTYFILE 选项迁移数据 推荐
2014-03-06 14:23
495 查看
对于DBCC SHRINKFILE EMPTYFILE的解释:
将指定文件中的所有数据迁移到同一文件组中的其他文件。由于数据库引擎不再允许将数据放在空文件内,因此可以使用ALTERDATABASE语句来删除该文件。
假设说我现在想将数据从一个磁盘移动到另外一个磁盘,在移动过程中不想数据库Offline,我们可以使用这个选项。下面是一个例子:
--create demodatabasecreatedatabase testonprimary( 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 filegroupuse testgocreatetable test(id int)on [seconday] --Insert Demodata declare @int intset @int =0while @int <100000begininsertinto test values (@int )set @int = @int+1end--Add another dadtafile on secondary file groupalterdatabase 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 filegroupdbccshrinkfile('testsecondary',emptyfile)go--Show filesizeafter empty filedbccshowfilestatsgo--remove old filealterdatabase test remove filetestsecondary--drop demodatabaseusemastergodropdatabase test 使用这个选项不能够移动系统对象,所以有局限性。另外性能上来讲肯定没有detach然后附近来的快,好处是整个数据库不会offline.
将指定文件中的所有数据迁移到同一文件组中的其他文件。由于数据库引擎不再允许将数据放在空文件内,因此可以使用ALTERDATABASE语句来删除该文件。
假设说我现在想将数据从一个磁盘移动到另外一个磁盘,在移动过程中不想数据库Offline,我们可以使用这个选项。下面是一个例子:
--create demodatabasecreatedatabase testonprimary( 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 filegroupuse testgocreatetable test(id int)on [seconday] --Insert Demodata declare @int intset @int =0while @int <100000begininsertinto test values (@int )set @int = @int+1end--Add another dadtafile on secondary file groupalterdatabase 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 filegroupdbccshrinkfile('testsecondary',emptyfile)go--Show filesizeafter empty filedbccshowfilestatsgo--remove old filealterdatabase test remove filetestsecondary--drop demodatabaseusemastergodropdatabase test 使用这个选项不能够移动系统对象,所以有局限性。另外性能上来讲肯定没有detach然后附近来的快,好处是整个数据库不会offline.
相关文章推荐
- 使用DBCC SHRINKFILE EMPTYFILE 选项迁移数据
- 直接使用DBCC SHRINKFILE,BACKUP LOG WITH NO_LOG 和 WITH TRUNCATE_ONLY 选项已废止
- DBCC大全集之(适用版本MS SQLServer 2008 R2)----DBCC SHRINKFILE收缩当前数据库的指定数据或日志文件的大小
- 如何在 SQL Server 2005 中使用 DBCC SHRINKFILE 语句收缩事务日志文件-数据库知识
- 如何在 sql server 2005 中使用 dbcc shrinkfile 语句收缩事务日志文件
- 使用DBMS_FILE_TRANSFER迁移ASM中的表空间和数据文件
- 使用create datafile... as ...迁移数据文件到裸设备
- 在SQL Server 2005 中使用 DBCC SHRINKFILE 语句收缩事务日志文件
- 使用DBCC CHECKPRIMARYFILE 查询Detach数据库信息 推荐
- 在asp.net 2.0中使用SqlBulkCopy类迁移数据
- SQL Server dbcc shrinkfile 不起作用
- 使用参数innodb_file_per_table支持MySQL InnoDB表数据共享空间自动收缩
- 使用sqoop --options-file 导入hive数据
- 数据字典(选项)管理 的具体使用方法介绍 - 以审批流程类别管理为例(工作流类型管理)
- 获悉文件服务器上的变化和数据访问情况,推荐使用NetWrix文件服务器免费变更通知工具
- 进行大规模数据迁移时,使用多线程,利用改进二分法,近似均等切分任务
- 使用SQL Server Analysis Services数据挖掘的关联规则实现商品推荐功能(三)
- 使用alter tablespace create datafile恢复丢失的数据文件
- 使用mysqldump迁移数据
- mysql使用load file导出导入[大]批量数据