SQLserver数据库⽂件(mdfldf)的迁移
情况:
数据库运⾏期间插⼊数据出现以下异常:
“⽆法为数据库 'IOTDB' 中的对象 'dbo.iot_plcitems'.'PK__iot_plci__3214EC077C9CA7F8' 分配空间,因为 'PRIMARY' ⽂件组已满。请删除不需要的⽂件、删除⽂件组中的对象、将其他⽂件添加到⽂件组或为⽂件组中的现有⽂件启⽤⾃动增长,以便增加可⽤磁盘空间。”
经过⽹上查阅资料有以下解决⽅法:
1.到数据⽂件(mdf&ldf)存放的位置的磁盘是否已满
2.更改数据库⽂件的增长为⾃动增长,最⼤⽂件⼤⼩改为⽆限制
更改时发现最⼤⽂件⼤⼩更改不了为⽆限制,查阅资料显⽰是限制⼤⼩中的2097152(2TB)就是SqlServer限制的最⼤的⼤⼩了,它与⽆限制是同⼤⼩的。
结果:
以上的⽅法改了之后仍⽆效果,最终发现是因为数据库的版本为SQL Server的社区版,它对数据的存储是有限制的,限制的数据最⼤为10G 查看数据⽂件的⼤⼩
最终选择的解决⽅法是将sql server的社区版改为sql server 企业版(不对数据做限制)
更改数据库的版本后就涉及的数据库迁移的问题,由于本次数据库的数据过⼤以及表过多,采⽤备份数据的⽅式不太合适,就采⽤直接迁移mdf &ldf⽂件的⽅式将数据库迁移到新版本上(注:这种迁移的⽅式会使数据库断开,期间有他服务请求操作数据库会请求不了,导致数据丢失,如果不允许出现此情况可以采⽤备份数据库的⽅式,数据库过⼤的话可能会很耗时)
数据⽂件迁移采⽤以下两种⽅式:
1.数据库分离
(1)到mdf &ldf⽂件的位置
右键⽬标数据库=》属性=》⽂件
(2)右键⽬标数据库=>任务=》分离
选中删除连接(数据库与相关的资源断开连接后,后续才能操作相关⽂件)确定。
完成后会发现此数据库会从数据库的列表中移除(IOTDB就被移除了)
到mdf &ldf⽂件所在的位置将这两个⽂件拷贝到你后续想放置的位置(本)
⽬标位置(本次为data⽂件夹中)
完成后在新版本的数据库中才⽤附加的⽅式将数据库加⼊到新版本的数据库中
2.第⼆种⽅式
(1)停掉MSSQLSERVER服务(注:种⽅式⽐较粗暴,会导致服务下的所有数据库停⽌,服务下没有其他数据库或者数据库没有访问或不重要可以采⽤此种⽅式)
sql数据库备份文件(2)拷贝mdf &ldf⽂件到⽬标⽬录
(3)开启MSSQLSERVER服务
(4)附加数据库,此时需要注意将以下位置的路径更改为前⾯拷贝的⽬录,由于我们采⽤的是停服务的粗暴⽅式拷贝的⽂件,⽂件会保留它原始路径的信息不回随拷贝的位置更改。
总结:
两者的的共同点,断开数据库与数据⽂件(mdf、ldf)的连接,可以进⾏数据⽂件的拷贝
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论