我是靠谱客的博主 风中大门,最近开发中收集的这篇文章主要介绍SQLServer移动数据文件,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

SQLServer 移动数据文件

 

移动用户数据库

移动系统数据库

 

移动用户数据库

https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/move-user-databases?view=sql-server-2017

 SQL Server 中,通过在   ALTER DATABASE   语句的 FILENAME 子句中指定新的文件位置,可以将用户数据库中的数据、日志和全文目录文件移动到新位置。   此方法适用于在同一  SQL Server 实例中移动数据库文件。   若要将数据库移动到另一个  SQL Server  实例或另一台服务器上,请使用   备份和还原     分离和附加操作

 

将数据库 chenjch 文件迁移到同一服务器其他目录;

1.    离线准备迁移的数据库。

--- 先全备数据库

use master ;

--- 执行 offline 命令之前,确保 chenjch 数据库没有任何连接,否则会被阻塞;

ALTER DATABASE chenjch SET OFFLINE ;  

2.  将文件移动到新位置

SELECT name , physical_name AS CurrentLocation , state_desc  

FROM sys . master_files  

WHERE database_id = DB_ID ( N'chenjch' );

bb

---手动 移动文件到指定目录下

3.  对于已移动的每个文件 请运行以下语句

ALTER DATABASE chenjch MODIFY FILE ( NAME = chenjch , FILENAME = 'D:sqlserver2012datachenjchchenjch.mdf' );  

--- 文件 'chenjch' 在系统目录中已修改。新路径将在数据库下次启动时使用。

ALTER DATABASE chenjch MODIFY FILE ( NAME = chenjch_log , FILENAME = 'D:sqlserver2012datachenjchchenjch_log.ldf' );  

--- 文件 'chenjch_log' 在系统目录中已修改。新路径将在数据库下次启动时使用。

4.  运行以下语句

ALTER DATABASE chenjch SET ONLINE ;  

5.  通过运行以下查询来验证文件更改

SELECT name , physical_name AS CurrentLocation , state_desc  

FROM sys . master_files  

WHERE database_id = DB_ID ( N'chenjch' );  

bb

use chenjch

select count (*) from t1 ; ---100

 

移动系统数据库

2.1 移动 master 数据库

https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/move-system-databases?view=sql-server-2017

SELECT name , physical_name AS CurrentLocation , state_desc  

FROM sys . master_files  

WHERE database_id = DB_ID ( N'master' );

bb

D:sqlserver2012MSSQL11.MSSQLSERVERMSSQLDATAmaster.mdf

D:sqlserver2012MSSQL11.MSSQLSERVERMSSQLDATAmastlog.ldf

移动到

D:sqlserver2012datamaster master.mdf

D:sqlserver2012datamaster DATAmastlog.ldf

1 开始 菜单中 依次指向 所有程序 Microsoft SQL Server 配置工具 然后单击 SQL Server 配置管理器

2 SQL Server 服务 节点中 右键单击 SQL Server 实例 SQL Server ( MSSQLSERVER ) ), 并选择 属性

3 SQL Server ( instance_name ) 属性 **** 对话框中 单击 启动参数 选项卡

4 现有参数 框中 选择 d 参数以移动 master 数据文件 单击 更新 以保存更改

指定启动参数 框中 将该参数更改为 master 数据库的新路径

5 现有参数 框中 选择 l 参数以移动 master 日志文件 单击 更新 以保存更改

指定启动参数 框中 将该参数更改为 master 数据库的新路径

数据文件的参数值必须跟在 - d 参数的后面 日志文件的参数值必须跟在 - l 参数的后面

bb

-dD:sqlserver2012MSSQL11.MSSQLSERVERMSSQLDATAmaster.mdf

改成

-dD:sqlserver2012datamaster master.mdf

bb

bb

-lD:sqlserver2012MSSQL11.MSSQLSERVERMSSQLDATAmastlog.ldf

改成

-lD:sqlserver2012datamastermastlog.ldf

bb

bb

6 通过右键单击实例名称并选择 停止 来停止 SQL Server 实例

bb

7 master . mdf mastlog . ldf 文件移动到新位置

手动拷贝文件到新的目录

bb

8 重新启动 SQL Server 实例

bb

9 通过运行以下查询 验证 master 数据库的文件更改

SELECT name , physical_name AS CurrentLocation , state_desc  

FROM sys . master_files  

WHERE database_id = DB_ID ( 'master' );  

bb

10 此时 SQL Server 应正常运行 但是 Microsoft 建议还调整 HKEY_LOCAL_MACHINE SOFTWARE Microsoft Microsoft SQL Server instance_ID Setup 处的注册表项 其中 instance_ID 类似于 MSSQL13 . MSSQLSERVER 在该配置单元中 SQLDataRoot 值更改为新路径 未能更新注册表可能会导致修补和升级失败

bb

……

bb

 

迁移问题:

无法找到文件

确保修改路径已经生效,保路径和名称正确;

拒绝访问

权限问题

bb 迁移后的文件,

右键 --- 属性 --- 安全 ---Authenticated Users--- 完全控制

bb

 


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29785807/viewspace-2157762/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29785807/viewspace-2157762/

最后

以上就是风中大门为你收集整理的SQLServer移动数据文件的全部内容,希望文章能够帮你解决SQLServer移动数据文件所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部