我正在为自己的实践模拟数据库损坏。
我所做的是编辑Running 'npm install' in C:\Users\pc\demoapp
> demoapp@0.0.0 postinstall C:\Users\pc\demoapp
> webdriver-manager update --gecko false
[09:55:46] I/config_source - curl -oC:\Users\pc\demoapp\node_modules\protractor\node_modules\webdriver-manager\selenium\standalone-response.xml https://selenium-release.storage.googleapis.com/
[09:55:46] I/config_source - curl -oC:\Users\pc\demoapp\node_modules\protractor\node_modules\webdriver-manager\selenium\chrome-response.xml https://chromedriver.storage.googleapis.com/
events.js:183
throw er; // Unhandled 'error' event
^
Error: read ECONNRESET
at TLSWrap.onread (net.js:622:25)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! demoapp@0.0.0 postinstall: `webdriver-manager update --gecko false`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the demoapp@0.0.0 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\pc\AppData\Roaming\npm-cache\_logs\2018-10-16T06_55_48_437Z-debug.log
文件并将其弄乱,当我运行SQL Server时,数据库处于.LDF
模式,这意味着它已损坏。
没有任何要还原的备份,或者没有替换备份"Recovery Pending"
文件,有什么方法可以恢复数据库?
注意:我对使用任何第三方工具/软件不感兴趣。
希望您提出任何建议。
答案 0 :(得分:2)
尝试在 master 数据库上使用这些命令。它将重置数据库的状态,以便您可以使用它。这会将其置于“单用户模式”和“回滚”挂起的更改中。修复后,它将允许MULTIUSER AGAIN。
EXEC sp_resetstatus 'yourDBname';
ALTER DATABASE yourDBname SET EMERGENCY
DBCC checkdb('yourDBname')
ALTER DATABASE yourDBname SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DBCC CheckDB ('yourDBname', REPAIR_ALLOW_DATA_LOSS)
ALTER DATABASE yourDBname SET MULTI_USER
答案 1 :(得分:1)
您也可以不使用.ldf文件(因为损坏甚至根本没有.ldf文件)使数据库恢复联机状态。 根据您的问题,我假设您在破坏日志之前先关闭了clead数据库(如果没有其他方法,请根据需要在评论中添加更新请求)。要检查它是否运行:
SELECT [name], [state_desc], [is_cleanly_shutdown] FROM sys.databases;
然后如果[is_cleanly_shutdown] = 1
并且您的数据库只有一个日志文件(多数情况就是这样):
CREATE DATABASE [Your_DB_Name] ON
(FILENAME = N'D:\full_file_path\db.mdf')
FOR ATTACH;
如果您有多个日志文件,请运行:
CREATE DATABASE [DB_Name] ON
(FILENAME = N'D:\full_file_path\db.mdf')
FOR ATTACH_REBUILD_LOG;
在两种情况下,您都将创建一个新的日志文件(只是单个日志文件),大小仅为0.5MB,因此您必须根据需要对其进行修改:
ALTER DATABASE [Your_DB_Name] MODIFY FILE
(
NAME = N'DB_Name_log'
,SIZE = 100 {KB | MB | GB | TB | UNLIMITED }
,FILEGROWTH = 20 {KB | MB | GB | TB | % })
);