一个MDF 文件80G,加一个log文件是64G正在附加之前是有由于我强行关闭了SQL 服务,重新打开的时候说恢复文件。然后找CSDN 的方法附加数据库。
现在心急如焚附加数据库的上面一直在提示“正在执行”,我也不知道多久~~现在还有什么好方法? 的要等多久呢?

解决方案 »

  1.   

    这里有个大概值,但是仅仅是大概,你的问题应该是IO太慢,或者当时分离时强行分离,很多事务没有提交,现在需要回滚DECLARE @DBName VARCHAR(64) = 'DB_Name'
     
    DECLARE @ErrorLog AS TABLE([LogDate] CHAR(24), [ProcessInfo] VARCHAR(64), [TEXT] VARCHAR(MAX))
     
    INSERT INTO @ErrorLog
    EXEC sys.xp_readerrorlog 0, 1, 'Recovery of database', @DBName
     
    SELECT TOP 10
     [LogDate]
    ,SUBSTRING([TEXT], CHARINDEX(') is ', [TEXT]) + 4,CHARINDEX(' complete (', [TEXT]) - CHARINDEX(') is ', [TEXT]) - 4) AS PercentComplete
    ,CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0 AS MinutesRemaining
    ,CAST(SUBSTRING([TEXT], CHARINDEX('approximately', [TEXT]) + 13,CHARINDEX(' seconds remain', [TEXT]) - CHARINDEX('approximately', [TEXT]) - 13) AS FLOAT)/60.0/60.0 AS HoursRemaining
    ,[TEXT]
     FROM @ErrorLog ORDER BY [LogDate] DESC
      

  2.   

    内存一直是慢的,但CPU 好低~~~感觉好像没有在附加一样,我记得附加应该是很快的啊 ~~
      

  3.   

    附加是IO问题,和内存CPU一般没多大关系,附加要初始化的,如果你没有“即使文件初始化”的权限,那会很慢,你可以到sqlserver查查:select * from sys.sysprocesses where blocked<>0有没有数据。回复请引用
      

  4.   

    还有一个问题,是这个数据在我之前关闭服务之前,进行一个大批量的数据插入,但是那个作业执行了大概12个小时依旧现在正在执行,我就把SQL 服务给关掉了,然后就在打开就显示“正在恢复”。我就再关闭服务,然后剪切出去,在附加数据库的方法,就到现在了现在的情况
      

  5.   

    慢慢恢复吧,我这边数据库和你一样大小
    我下午下班前恢复.BAK
    次日来就好了。
    别动它别管他