none
sqlserver2000 附加数据库的问题。 RRS feed

  • 问题

  • 想通过附加的方法来复制添加数据库,分离原数据库库TEST,拷贝 TEST.MDF文件,然后改名成TEST1.MDF。重新附加原来的TEST.MDF 运行TEST数据库,然后附加TEST1.MDF,EXEC sp_attach_single_file_db 'TEST1','SQLserver2000 DATA 目录\TEST1.mdf',结果报错。

    服务器: 消息 5105,级别 16,状态 4,行 1

    设备激活错误。物理文件名 'SQLserver2000 DATA 目录\TEST.LDF' 可能有误。

    服务器: 消息 1813,级别 16,状态 1,行 1

    未能打开新数据库 'TEST1'。CREATE DATABASE 将终止。

    设备激活错误。物理文件名 'SQLserver2000 DATA 目录\TEST.LDF' 可能有误。

     

    采用企业管理器手工添加,修改文件位置 成 TEST1.MDF, 删除掉日志文件路径,提示会新建一个日志文件,但还是报错,报什么日志文件有误,我估计还是去引用原来的TEST.LOG 日志文件了。 

    如何解决这个问题呢?

    2011年10月27日 3:28

答案

全部回复

  • Why don't do backup/restore? Much safer and no down time.
    2011年10月27日 3:38
  • 问题就是在于,附加的时候,不管是有无日志文件,sqlserver 都会通过 MDF文件里的 filename 信息 得到日志文件,并且尝试去找这个文件,如果刚好有这个文件,它就会自动使用这个文件。但如果这个文件在使用中,sqlserver 就会报错而不是自己创建一个。

     

    这个是不是sqlserver 的一个安全机制,还是为了别的目的,有无办法能让在发现日志文件在使用的情况下,自动的去重建一个日志?

    2011年10月27日 3:38
  • Why don't do backup/restore? Much safer and no down time.

    3q for your answer,because i wanna know why sqlserver deal this question by  this way !!

     

    2011年10月27日 4:02
  • 如果日志文件不存在的话,那么会自动产生一个日志文件的.
    If you haven't all the things you want,be grateful for the things you don't have that you didn't want.
    2011年10月27日 9:00
  • And can't have two files with same name in same location. Can try copy and rename log file too then attach with 2 files.
    2011年10月27日 13:31