今天早上,客户经理过来说,客户发现拜访类报表的数据不对,都显示的当前组织,而且kpi值也不对。
我看了一下结存任务,判断应该是晚上的结存任务就把新的主数据给结存了,而覆盖了之前结存的1月份的主数据。
我问他是几号导入的新版主数据,他问了开发人员,说是应用程序在昨天晚上9点把之前销售代表对主数据做的修改生效了,因为不是在月中最后一天导入主数据,这样就导致新的数据覆盖了老的数据,就出问题了。
想了想,可以通过数据库的备份文件来还原数据库,然后从这个还原后的数据库中找到之前的主数据,再把主数据结存到1月份就可以。
在备份文件夹找到了最近的完整数据库备份文件,然后查看备份文件,取得数据库的逻辑名称:
点击(此处)折叠或打开
- RESTORE FILELISTONLY FROM
- DISK = 'D:DB_backupNia_backup_2016_01_30_201201_3105469.bak'
然后,把还原语句改成这样,注意一定要修改还原后数据库的 数据文件、日志文件的路径,不然会和原来的数据库文件有冲突而报错:
点击(此处)折叠或打开
- restore database Nia_TEMP --新的数据库名称
- from disk = 'D:DB_backupNia_backup_2016_01_30_201201_3105469.bak'
- with move 'kace' to 'D:DB_backupNia_SFA.mdf', --数据的逻辑名称->新的物理路径
- move 'kace_log' to 'D:DB_backupNia_SFA.log' --日志的逻辑名称->新的物理路径
- /*
- Processed 15055352 pages for database 'Nia_TEMP', file 'lkkace' on file 1.
- Processed 184 pages for database 'Nia_TEMP', file 'lkkace_log' on file 1.
- RESTORE DATABASE successfully processed 15055536 pages in 15896.332 seconds (7.399 MB/sec).
- */
可以看到,一共处理了 15055352页,也就是15055352.0*8*1024/1024/1024/1024,数据库大小是114GB。
这个数据库最后花了15896.332 seconds才还原完,也就是差不多4.5个小时,真够慢的。。。
另外,通过这个语句,可以看到数据库还原的百分比,当等于100的时候,就说明还原完成了:
select percent_complete
from sys.dm_exec_requests with(nolock)
where session_id = xxx