sql server 2005系统数据库移动

来源:互联网 发布:斗鱼抢鱼丸软件 编辑:程序博客网 时间:2024/06/07 01:27
 

 

系统数据库的用途:

master:
          这个数据库是全局数据库,它包含一些系统表,权限分配,用户帐号设置,当前数据库配置信息以及关于磁盘空间,文件分配等信息。所以在执行诸如用户帐号设置,权限分配和改变系统配置信息后都要备份此数据。所以在这里强烈建议,不仅要经常备份自己的数据库,还有备份此数据库,虽然不像备份自己数据库那样那么频繁。至少半个月或一个月备份一次此数据库。 

model:
           这个数据库只是一个模板数据库,我们在创建任意的一个数据库的时候,都是复制此数据库为新数据库的基础,如果希望每一个新的数据库都含有某些对象或者权限,可以把这个对象或权限放在此数据库中,新创建的新数据库都会继承此数据的新对象或权限,并且拥有这些对象或权限。 
msdb: 
          SQL Server代理服务器会使用该数据库,它会执行一些列如备份和复制任务的计划好的活动。Service Borker也会用到该数据库,他为SQL Sever提供队列和可靠消息传递。当我们不在该数据库执行备份或维护任务时,通常可以忽略该数据库。在SQL Server2005之前,实际上是可以删除该数据库的,只后SQL Server仍然可用,但不能在维护任何备份历史了,并且不能够在定义任务,警告,工作或者建立复制,不过因为默认的msdb数据库非常小,建议即使用不到也不要删除它。
tempdb:
          该数据库说白了,就是一个中转站或数据寄存站,用户显示创建的临时表,在查询处理和排序时内部所产生的中间结果的工作表,维护用的快照等,都会用到此数据库,与其他数据库所不同的是,在每次SQL Server实例重启之后,都会重建而不是恢复. 所以我们在其中创建的所有对象和权限在下次重启SQL Server时都会全部丢失。
          但是我们也不能忽略此数据库,因为tempdb的大小和配置,对优化SQL Server的功能和性能来说很重要.tempdb数据库,还要多说几句,虽然在tempdb每次被重建时,它会从model数据库继承大多数的数据库选项,但是tempdb却不会从modeldb数据库中复制其恢复模式,因为它总是使用简单恢复模式。另外,tempdb是无法删除的,也不用备份。

 

 

系统数据库的移动

      Mssql程序安装的时候装到了C盘,由于C盘空间不够大,故想把系统库转移到其他盘内。

 

查看一下SQL Server默认存储这些系统数据库的路径:

SELECT name,physical_name,state_desc FROM sys.master_files

 

 

移动tempdb,model,msdb数据库:

ALTER DATABASE tempdb MODIFY FILE(NAME='tempdev',FILENAME='D:\Data\tempdb.mdf')

ALTER DATABASE tempdb MODIFY FILE(NAME = 'templog',FILENAME='D:\Data\templog.ldf')

 

ALTER DATABASE model MODIFY FILE(NAME='modeldev',FILENAME='D:\Data\model.mdf')

ALTER DATABASE model MODIFY FILE(NAME='modellog',FILENAME='D:\Data\modellog.ldf')

 

ALTER DATABASE msdb MODIFY

FILE(NAME='MSDBData',FILENAME='D:\Data\msdbdata.mdf')

ALTER DATABASE msdb MODIFY FILE(NAME='MSDBLog',FILENAME='D:\Data\msdb_log.ldf')

 

该操作完成后需关闭mssql主服务,然后去默认存储这些系统数据库文件的路径里找到

这三个系统库的数据文件,copy至自定义的路径内(我的是D:\Data)。然后开启服务后,

一切正常证明这三个系统库成功移至到自定义的盘内。

 

移动master数据库:
           移动master数据库的位置和其他的系统数据库不同是,只能用SQL Server 配置管理器来更改master的位置。 首先打开SQL Server配置管理器,右击目标SQL Server实例,选择属性,然后点击高级标签,如图所示:

更改启动参数一项,

-dD:\DATA\master.mdf;

-eC:\ProgramFiles(x86)\MicrosoftSQLServer\MSSQL.1\MSSQL\LOG\ERRORLOG;-lD:\DATA\mastlog.ldf

mdf和ldf改掉就可以了,error信息就扔到C盘吧。

更改完毕后,关闭mssql的主服务,然后去默认存储这些系统数据库文件的路径里找到

master系统库的数据文件,copy至自定义的路径内(我的是D:\Data)。

此时还有 一个只读数据库,包含 SQL Server 包括的系统对象。系统对象在物理上保留在 Resource 数据库中,但在逻辑上显示在每个数据库的sys 架构中。

数据文件Mssqlsystemresource.mdf

日志文件Mssqlsystemresource.ldf

也随master一块copy至自定义的文件夹中。

然后开启服务后,

一切正常证明master系统库成功移至到自定义的盘内。