|
本文主要描述TD8恢复后的一些意外和诸多细节方面的设置,希望对广大QA朋友有帮助。
系统移植前后配置:
win2000server sp4
TD8.0SP2
SqlServer 2000
移植后:
win2003Server R2 sp3
TD8.0SP2
Sqlserver 2000
本人使用了以下方式进行移植:http://bbs.51testing.com/thread-96154-1-1.html
在移植过程中,相信如多朋友会遇到以下几种情况:
1、移植后出现ping不通、RPC不可用、dataconst is empty等情况
2、移植后项目在Site Administrator中不能还原或激活
3、移植后用户表有数据但无法正常登陆
基于以上情况逐一分析:
1、移植后出现ping不通、RPC不可用、dataconst is empty等情况
在移植后的SqlServer中,这个是关键点,虽然系统自动生成了TDSQLSERVER用户,但是其用户账户默认是SA登陆,一定要检查该SA用户的密码是否和你安装SQL时候的密码一样,否则肯定不能登陆,所以就不能ping通了。
dataconst is empty的问题是最头疼的了,这个问题我找了足足三天才找到,其实是因为“TD”这个SQL用户账户冲突引起的(我是从原TD服务器上备份了项目数据,再还原到新服务器上,所以导致TD用户冲突了,不知道用其他方法导入导出或复制数据表是否也有这个问题,我就不再考证了,一条路可以走通就ok啦),这个问题的解决需要用到以下SQL语句(非常管用):
-------------------------引用-----------------------------------------
--替换dbo权限同时去除td权限
二、问题原因
出现这类问题的主要原因是在数据库中有些表的权限指定给了这个“欲删除的用户”,而dbo用户对这些表没有权限,所以在删除的时候提示“因为选定的用户拥有对象,所以无法除去该用户”;而在添加同名数据库用户后,在指定权限时因为该用户已经有了一定权限,所以会提示该用户已经存在。
三、解决办法
大致看了下网上说的几种办法,整理一下吧:
1、使用不同的数据库用户来管理,这样就可以避免了同名用户的问题;
该办法绕开了我们讨论的问题,不说了。
2、在查询分析器中执行脚本,赋予dbo表权限,删除“欲删除的用户”的权限,然后就可以删除该用户了,注意是在该数据库的用户位置删除;
use 你的库名称
go
declare tb cursor local
for
select 'sp_changeobjectowner '
+quotename(
+quotename(user_name(uid))
+'.'+quotename(name),'''')
+',''dbo'''
from sysobjects
where objectproperty(id,N'isusertable')=1
and uid<>user_id('dbo')
declare @s nvarchar(4000)
open tb
fetch tb into @s
while @@fetch_status=0
begin
exec(@s)
fetch tb into @s
end
close tb
deallocate tb
拷贝以上代码,替换“你的库名称”为你的数据库对应的名称,在查询分析器里执行即可;
该方法简单方便,可以快速解决问题,推荐使用。
3、用sp_changeobjectowner将对象的所有关系更改到另一个用户上,然后逐个表去修改,实际是第二种方法的分步骤执行。
----------------------------------------------------------------------------------------------------
这个方法就可以替换td的默认权限给dbo了,其实道理就是dbo是sa需要的权限,因为你在使用TDSQLSERVER时候使用的用户账户是sa,而TD用户权限只是需要普通权限即可。最好在DBServer中增加一个服务器的计算机名的管理账户,同样使用sa用户账户登录,ping通后,这部分就万无一失啦。
RPC是重中之重了,当我遇到这个问题后再网上搜了一大堆文章,结果没有一个是对口的,原因是这个rpc是因为C:\Program Files\Common Files\Mercury Interactive\DomsInfo\的DOMS.MDB文件引起的,原因是我有个步骤做反了,我先把老服务器上的项目给卸载了,再复制过来结果项目数据都没有了,弄得头晕,所以建议大家一定要先复制这个文件,以备后患。
2、移植后项目在Site Administrator中不能还原或激活
这个问题首先要确认如果要选择在Site Administrator中直接通过还原项目来实现激活的话,那么确保DOMS.MDB这个文件中的项目数据都是空,并且其他相关设置(这个就不多说了)要全部改好,那就没有问题了
3、移植后用户表有数据但无法正常登陆
这个问题的解决方法很简单,因为项目还原带来了很多用户账户但是密码都被清空了,所以,接下来就自己想吧,呵呵。
希望这些对大家有所帮助,转载时候请注明出处,谢谢! |
|