程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> mssql server 數據庫附加不上解決辦法分享

mssql server 數據庫附加不上解決辦法分享

編輯:更多數據庫知識

image

錯誤15105,從網上找了一些解決方案,一般都是說文件的權限不足的問題,

當然附加的時候必須是有數據庫附加權限才可以操作的。

解決辦法1:給相應的MDF文件給Full Control的權限,如果不知道是什麼用戶可以去Sql Server的配置中心去找

但是我遇到這個用上述方法就不可以。

解決方法2:換個用戶試試,我原數據庫是用sa登陸的,我試著用sa登陸一下,附加成功了!~

如果反復的用sa登陸卻登陸失敗,可能是沒有開權限。

權限可以在登陸用戶的選項中設置,允許登陸即可。

驗證模式則可以在服務器處設置,要選擇混合登陸模式。

image

另外對高版本數據附加低版本數據庫也可以試試上面的方法。

其實我個人更喜歡用生成腳本的方式導結構和數據。

image
在QA裡執行sp_attach_db或者sp_attach_single_file_db,出現提示:錯誤1813:未能打開新數據庫'dbname',create database 將終止。設備激活錯誤。物理文件名'd:\sql server\mssql\data\dbname _log.ldf'可能有誤!
  按下面的步驟處理:
  1.新建一個同名的數據庫
  2.再停掉sqlserver服務(注意不要分離數據庫)
  3.用原數據庫的數據文件覆蓋掉這個新建的數據庫
  4.再重啟sqlserver服務
  5.此時打開企業管理器時會出現置疑,先不管,執行下面的語句(注意修改其中的數據庫名)
  6.完成後一般就可以訪問數據庫中的數據了。這時,數據庫本身一般還有問題,解決辦法是:利用數據庫的腳本創建一個新的數據庫,然後通過DTS將數據導進去就行了
復制代碼 代碼如下:
use master go sp_configure 'allow updates',1 reconfigure with override go update sysdatabases set status =32768 where name='置疑的數據庫名' go sp_dboption '置疑的數據庫名', 'single user', 'true' go dbcc checkdb('置疑的數據庫名') go update sysdatabases set status =28 where name='置疑的數據庫名' go sp_configure 'allow updates', 0 reconfigure with override go sp_dboption '置疑的數據庫名', 'single user', 'false' go


Sql Server 2000附加數據庫出現1813錯誤的解決方法

今天進行了一錯誤操作。

數據庫xxzx_discuz,因生成大量日志使日志文件'xxzx_discuz_Log.LDF' 占滿了磁盤所有空間,使網站無法正常使用數據庫。

自己圖省事分離數據庫xxzx_discuz後,直接刪除'xxzx_discuz_Log.LDF' (因為文件太大,無法存放到回收站),重新附件到SQL Server時出現兩個提示:
------------------------------------------------------------------------------------------------------------------------------
SQL Server 企業管理器
---------------------------
為日志文件指定的文件名不正確。
將創建新的日志文件。
要繼續嗎?
---------------------------
是(Y) 否(N)
------------------------------------------------------------------------------------------------------------------------------
Microsoft SQL-DMO (ODBC SQLState: 42000)
---------------------------
錯誤 1813: 未能打開新數據庫 'xxzx_discuz'。CREATE DATABASE 將終止。
設備激活錯誤。物理文件名 'S:\Program Files\Microsoft SQL Server\MSSQL\data\xxzx_discuz_Log.LDF' 可能有誤。
---------------------------
確定
------------------------------------------------------------------------------------------------------------------------------

從而無法將數據庫正常附加到SQL Server 2000,正常情況下這樣操作是沒有問題的,SQL Server會重新生成日志文件,但是因為之前出現了磁盤空間不足,日志文件不完整,從而造成了無法正常附加。

解決辦法如下(從網上找來的):

0.備份數據文件'xxzx_discuz_Log.MDF'
1.新建一個同名的數據庫'xxzx_discuz'
2.再停掉sqlserver服務(注意不要分離數據庫)
3.用原數據庫的數據文件'xxzx_discuz_Log.MDF' 覆蓋掉新建的數據庫

4.再重啟sqlserver服務
5.此時打開企業管理器時會出現置疑,先不管,執行下面的語句(注意修改其中的數據庫名) 6.完成後一般就可以訪問數據庫中的數據了。這時,數據庫本身一般還有問題,解決辦法是:利用數據庫的腳本創建一個新的數據庫,然後通過DTS將數據導進去就行了. SQL代碼
復制代碼 代碼如下:
use master
go
sp_configure 'allow updates',1 reconfigure with override
go
update sysdatabases set status =32768 where name='置疑的數據庫名'
go
sp_dboption '置疑的數據庫名', 'single user', 'true'
go
dbcc checkdb('置疑的數據庫名')
go
update sysdatabases set status =28 where name='置疑的數據庫名'
go
sp_configure 'allow updates', 0 reconfigure with override
go
sp_dboption '置疑的數據庫名', 'single user', 'false'
go

特別注意最後一步中的說明“這時,數據庫本身一般還有問題,解決辦法是:利用數據庫的腳本創建一個新的數據庫,然後通過DTS將數據導進去就行了” 參考文章:Sql Server附加數據庫出現1813錯誤的解決方法

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved