解惑

解己之惑,解人之惑

分类:软件开发 (第3页共4页)

不能导入mdf文件

今天帮一个朋友查问题,给了我MDF和LDF,死活不能导入,报错都是无法读取物理文件,根据它的出错信息给的链接到微软的网站结果是无更多的信息,google了下,有人说是用户问题,导出的时候是sql server2000,我用的是sql server 2005,所以attach的时候要用detach的用户,但是我的机器和他的机器完全不相干啊,后来想到也许是我登录的用户的问题,我安装的时候使用的是Mix模式,我登录studio的时候用的是sa用户,试着用windows authenticate,导入成功。
但是在这之前我手工的建了一个同名的数据库,然后detach掉了。
不知道到底是更换用户使得attach好使还是建同名数据库然后detach使得导入成功。

另外一个比较搞笑的事情就是打开mdf文件,开始提示是系统文件,可能会损坏,选择open with,提示是使用windows的服务自动查找还是从程序列表选择,选择windows查找,结果页面显示:

File Type: Unknown

Description: Windows does not recognize this file type.

最后就是2000下的MDF文件很小,变成2005就大了一倍多。

还有没有漏洞的算法吗?

刚刚在infoq上看到的新闻:Quicksort算法标准实现中发现严重安全漏洞,这个年头还有安全的代码吗?还有没有漏洞的算法吗?

Cygwin sshd的问题

原来的Lab Manager的环境整个Crash了,我们升级Lab Manager的时候没有做snapshot,重新搭建了整个环境,还好没有浪费什么时间。
原来搭建的自动deploy的环境出问题了,原来我安装的是sshwindows,都是好好的,现在我们换了一个server,美国那边的一个工程师已经安装了cygwin sshd作为ssh server,偷懒不想重新安装,结果不好使,因为很多sshexec失败,最奇怪的一个是:
        <sshexec host="${remote.host}"
         trust="yes"
         username="${user}"
         password="${password}"
         command="net stop ${jboss.service.name}"/>
        
        <waitfor maxwait="300" maxwaitunit="second" checkevery="2000">
            <not>
                <socket server="${remote.host}" port="${jboss.port}"/>
            </not>
        </waitfor>
       
        <sshexec host="${remote.host}"
         trust="yes"
         username="${user}"
         password="${password}"
         command="net start ${jboss.service.name}"/>

第一个sshexec执行成功,第二个失败,两个命令唯一的区别就是一个是stop,一个是start,而且执行的时候控制台都是显示执行成功,最后第二个命令的返回值是-1导致build failed。
禁用原来的cygwin,问题解决,没有时间研究具体的差异了。

2009-3-19 更新:
有时候失败有时候成功,可能是service的问题,返回值不稳定。
sshwindows的问题是它完全不检查返回值,所以没有问题,相对而言,还是cygwin更好一些。

Ant下通过FTP删除目录

一个很简单的问题,但是google了下竟然发现没有太多的答案,仔细看了下Ant的文档,自己摸索出来了方法:

        <ftp action="del" server="${remote.host}" port="${ftp.port}" remotedir="${remote.dir}" userid="${user}" password="${password}">
            <fileset>
                <include name="test/**/*"/>
            </fileset>
        </ftp>
        <ftp action="rmdir" server="${remote.host}" port="${ftp.port}" remotedir="${remote.dir}" userid="${user}" password="${password}">
            <fileset>
                <include name="test/**/*"/>
                <include name="test"/>
            </fileset>
        </ftp>

好像必须得这样才行,第一步先得把文件全部删除,使用的action是del,然后删除全部的子目录,使用的action是rmdir,删除目录的时候把要删除的那个目录连带也删除。

更换IP

总算拿到我们自己Team的IP段了,今天进行大更换,遇到不少VMWare相关的问题。

第一个就是Virtual Center启动不了,花了好大劲才搞定,原因是更换了IP和主机名,但是安装Virtual Center的时候建立的ODBC数据源连不上了,报的错一直是登录失败,把ODBC数据源更新了下就好了。

第二个问题是Lab Manager里面加Hosts的时候有问题,因为原来加过那些host,所以那些机器里面已经有Lab Manager的Agent了,直接加不行,必须先把那些Agent卸载,卸载完又有另外的问题,hosts文件里面的内容不正确,因为只改了ip没有改hosts文件,按照问题修改hosts搞定。后来配置网络的时候又遇到一个问题,我们用的是虚拟网VLAN,IT告诉了我vlan的id,所以配置的时候我把那个ID也配置上了,结果发现发布的机器不能被访问到,把那个去掉后就可以访问了,呵呵,很迷惑的问题。

PS:列一些相关的路径和命令

  • Virtual Center的启动出错的日志路径:C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\Logs
  • 修改ESX server的IP: /usr/bin/esxcfg-vswif, 删除IP用 -d vswif0,添加IP用 -a vswif0 -p Service\ Console -i 10.0.0.10 -n 255.255.255.0 -b 10.0.0.255
  • 卸载Lab Manager的Agent用命令:/usr/bin/uninstall-labmanager

TeamCity不能设置通知列表

用TeamCity构建Continuous Integration是非常好的,总体上也确实不错,但是现在发现一个很基本的功能好像没有,那就是设置通知列表,例如一些人修改了代码,但是导致编译失败,那么那些check in的人应该收到邮件并检查是否是自己的问题,发现TeamCity好像不能做到这一点,目前只有Admin可以收到邮件,那就是我,只能先创建一个转发规则把邮件发送给所有的人。

2009-3-17 更新:发现冤枉TeamCity了,通知设置里面有一项就是通知修改人的:
Responsibility changes

我们用的professional版不支持LDAP,必须付费的版本才支持。

虚拟化节约企业IT成本

从上个星期到现在一直在搭建我们的开发环境,其实就是两台机器而已,一个R200,一个R900,在上面安装ESX,然后再安装Virtual Center和Lab Manager,安装Virtual Center后,把R200和R900加进去的时候有问题,说license不够,后来发现是因为我们的ESX的license是host based的,后来重新申请了server based的搞定了。R900有4个双核的CPU,64G内存,1.5T的硬盘,安装30个虚拟机一点问题没有,我们整个team的开发服务器就依赖这两台机器了。

一般的公司对于服务器要很多,但是实际上大部分机器都是闲置状态,通过虚拟化来最大程度的共用资源,实在是不错的选择,以后需要扩展就加点内存和硬盘就差不多了,CPU基本上不会增加太多,除了性能测试对CPU要求高一些外,其他对CPU的要求应该都可以满足,而在建立虚拟机的时候这些内存和CPU的参数可以调整,对于性能要求高的多分配些资源就行了。感觉EMC在这个方面做得不错,整体的布局很正确。

总算用上工作站了

我们Team的服务器来了,R900,64G内存,4CPU,这几天我要负责把这些事情搞定,也开始要用VMWare的ESX了,R900上可以装几十个虚拟机弄着玩了。

第一次直接使用这样的工作站,以后还会有专门的磁盘存储服务器Clariion

Perforce password (P4PASSWD) invalid or unset

今天重新安装了TeamCity,但是配置Perforce的时候出了问题,密码有问题,google了一下,很多人遇到这个错误,但是基本上都是直接使用perforce的,后来我把密码框的内容留空,竟然成功连接了。呵呵,这个Perforce还是不好啊。

2009年1月10日更新:把密码下面的那个"Use Ticket Based Authentication"选上再填密码就没有问题了。

对Sql Server彻底失望

今天为QA写一个报表,使用了存储过程,在里面定义了一个临时表, 然后向临时表插入数据,插入数据的顺序和临时表的字段定义的顺序不一样,结果出来的结果乱七八糟,查了半天也没有想到什么原因,后来突然想到是不是和顺序有关,修改了insert语句里面的字段插入顺序,问题搞定。
唉,不知道是我对SQL了解太少还是SQL server确实很烂。

例子如下:
DECLARE @TEMP_TABLE TABLE (id int,count int)

insert INTO @TEMP_TABLE
select x.id as id, count(x.id) as count
from xxx x group by x.id

insert INTO @TEMP_TABLE
select count(x.id) as count), x.id as id
from xxx x group by x.id

上面的那个insert可以工作,下面的不能,得到的结果和期望的是不一致的

更早的文章 更新的文章

© 2024 解惑

本主题由Anders Noren提供向上 ↑