改变WID的位置

改变wid的位置

 

一、把 \windows\wid 目录移动到 e:\wid。

要在安全模式下进行。

以后的所有工作都可以在正常模式下进行。

 

二、修改注册表中的有关内容,共有 7 个地方,分成 4 个方面。

 1、关于类注册,有两个。这两个的修改需要先取得对键值的控制权。

[hklm\software\classes\clsid\{a6f16b19-0040-4947-8d3f-52de129bb615}]

@=”microsoft wid server virtual device interface for server”

 

[hklm\software\classes\clsid\{a9a3fe12-61c7-496e-aabf-b83e3287ab82}]

@=”microsoft wid server virtual device interface for client”

 

2、关于服务,有两个。

[hklm\system\currentcontrolset\services\mssql$microsoft##wid]

[hklm\system\currentcontrolset\services\widwriter]

 

displayname 和 description,要注意前面的 @ 不能省略。

 

3、关于 sql server 的有一个。

[hklm\software\microsoft\microsoft sql server]

 

4、关于事件日志的有两个。

[hklm\system\currentcontrolset\services\eventlog\application\mssql$microsoft##wid]

[hklm\system\currentcontrolset\services\eventlog\application\widvdi]

 

经过这两步,widwriter 服务已经可以启动了,但是,sql server 服务还是不能启动。后来,发现,是由于权限的问题。

这个权限的设置就有点难度了。是要求 mssql$microsoft##wid 用户必须对 data 和 log 目录有写入的权限。而这个用户是无法添加的。因此,只能从正常的服务器上把权限复制过来。

 

三、设置 wid 目录的权限。

 

1、复制原来的权限:

cacls c:\windows\wid\log /s

下面的是输出:

c:\windows\wid\log “d:pai(a;oici;fa;;;ba)(a;oici;fa;;;sy)(a;;0x13019f;;;s-1-5-80-1184457765-4068085190-3456807688-2200952327-3769537534)(a;oiciio;sdgwgr;;;s-1-5-80-1184457765-4068085190-3456807688-2200952327-3769537534)”

 

2、设置新目录的权限:

cacls e:\wid\log /s:”d:pai(a;oici;fa;;;ba)(a;oici;fa;;;sy)(a;;0x13019f;;;s-1-5-80-1184457765-4068085190-3456807688-2200952327-3769537534)(a;oiciio;sdgwgr;;;s-1-5-80-1184457765-4068085190-3456807688-2200952327-3769537534)”

 

用同样的方法设置 data 的权限。binn 的权限可能不设置也行。

 

四、改变数据文件的位置。

实际上,文件才只有 100 多兆,不一定真有移动的必要。

因此,前面的操作意义并不好,仅在于学习而已。

 

真正需要移动的是数据文件,因为数据文件可能会很大,并且在系统盘上进行频繁访问也对性能有影响。

这就需要安装工具 sql management studio 了,有 600 多兆。

连接时,服务器名填写 \\.\pipe\microsoft##wid\tsql\query。余下的操作就没有什么难度了,分离、附加就好了。

 

五、出现的问题。

大概会有两个:

1、3417 错误

这是 sql 错误,是由于在 sql server 运行状态下复制的 master 等造成的。停止 sql server 服务后再复制数据库文件就可以了。

 

2、1067 错误

这是 windows 错误,说是进行意外终止。上,就是前面说的,mssql$microsoft##wid 用户对数据库目录没有读写权限造成的。

 

3、3605 错误

这是 sql 错误,说是验证数据库 susdb 架构失败。当把 wsus 3.0 的 susdb 附加到 windows 2012 中的 wid 时发生。

在 sql 日志中,具体表现为:

错误 50000, 严重性 16, 状态 1

detected an authorized object in schema

database verification script failed for database

 

%programfiles%\update services\tools\wsusutil postinstall [sql parameter] [content parameter]

两个参数分别指定 sql 服务器和升级补丁的位置,对于 wid, sql 就不必指定了。实际上,content 也不必指定,因为在安装时指定过了。如果不放心,就指定一焉,比如:f:\wsus

静静地等上 5、6 分钟,就好了。

 

六、说明。

微软是说通过备份与恢复的办法,实现数据库的迁移。

备份就不用多说了。

恢复的过程是这样的:

use master

go

 

alter database susdb set single_user with rollback immediate

go

 

drop database susdb

go

 

restore database [susdb] from disk = n’c:\susdb.bak’ with file = 1, move n’susdb’ to n’c:\windows\wid\data\susdb.mdf’, move n’susdb_log’ to n’c:\windows\wid\data\susdb_log.ldf’, nounload, stats = 10

 

不过,即使这样,也一样出现 3605 的错误。

 

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐