當前位置:首頁 » 數據倉庫 » restore無法啟動資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

restore無法啟動資料庫

發布時間: 2022-10-17 08:26:23

『壹』 資料庫還原失敗。

主要原因應該是資料庫備份不完整或者損壞.
最好的資料庫物理方法應該是單獨保存mdf(主資料庫文件)和ldf(事務日誌文件)
然後通過企業管理器,右鍵附加資料庫來完成還原.
LZ可以試著去下載sql
Server資料庫修復軟體來解決,注意版本要匹配

『貳』 我還原MSSQL資料庫時報錯:用戶沒有 RESTORE 資料庫『XXX』的許可權。RESTORE DATABASE 操作異常終止。請問

你要確定下 要還原的資料庫備份文件中的資料庫,使用的是什麼用戶,例如使用ABC,那麼你需要在你的資料庫中創建ABC用戶,並賦予管理員許可權
然後再進行還原操作

『叄』 restore 還原資料庫 ,使用離線方法OFFLINE,出現無法打開備份設備的異常

的寫入許可權。

,對於NTFS分區上的目錄而言,可以給賬號或組指定如下幾種許可權: 1.完全控制,具有對文件夾的全部操作能力。 2.修改,能夠更改、添加、讀取文件。 3.讀取,僅能夠讀文件內容。 4.寫入,能夠向文件中添加內容。 5.讀取及運行,同時包括3和4。 6.列出文件夾目錄,能夠查看文件夾內容,但不能訪問。 7.禁止訪問,不具有如何許可權。
許可權的設定是在我的電腦或者Windows資源管理器中完成的,具體方法如下: 1.右擊NTFS分區上的文件夾,在彈出菜單上選擇。 2.單擊文件夾屬性對話框中的選項卡,如右圖。 3.選項卡上部的賬號和組列表中,列出當前具有訪問許可權的賬號和組。 4.從列表中選擇需要指定許可權的賬號或組,在列表中指定其對該文件夾擁有的訪問許可權。具體方法是選擇欲指定許可權對應的或復選框。例如,需要允許某賬號讀取但不允許寫入時,就分別選擇和許可權所對應的和復選框。將所有許可權都選為時,相當於指定了拒絕訪問的許可權。 5.當需要指定其他賬號或組的訪問許可權時,應先將其加入賬號和組列表中,單擊賬號戶和組列表右側的,打開如左圖所示的對話框。 6.在下拉列表框中指定賬號和組所在的域或計算機。 7.從列表中選擇賬號或組名,單擊。 8.反復將多個賬號或組加入結果列表後,單擊返回。

『肆』 如何解決sqlserver還原資料庫出現提示無法打開備份設備的問題

解決辦法:
在備份的硬碟上右擊->屬性->安全,找到Users,單擊它,然後在下面的許可權上全部打勾即可。

『伍』 在vs2010上使用RESTORE語句資料庫還原時,提示資料庫正在被訪問,無法還原。

重啟電腦,關閉瀏覽器

『陸』 如何解決無法打開資料庫,恢復操作已將數據標記為suspect

釋放磁碟空間並且重新運行恢復操作,按照下面的步驟收縮日誌。

sp_resetstatus 關閉資料庫的置疑標志,但是原封不動地保持資料庫的其它選項。

為從根本上解決這樣的問題,你可以按下面的操作配置SQLSERVER 2000:
a.如果不需要恢復到指定的時間點,你可以將資料庫的恢復模式配置為簡單,這樣
UPDATE,DELETE,SELECT就不會記錄日誌,日誌就不會增加的很大:

USE MASTER
GO

ALTER DATABASE DB_NAME SET RECOVERY SIMPLE

b.如果你的恢復模式是全部,你一定要配置日誌欄位收縮:

USE MASTER
GO

sp_dboption 'databasename','trunc. log on chkpt.',true
sp_dboption 'databasename','autoshrink',true

c.通過每日備份將日誌收縮:
BACKUP DATABASE DATABASE_NAME TO BACKUP_DEVICES
BACKUP LOG DATABASE_NAME TO LOG_DEVICES
OR
BACKUP LOG DATABASE_NAME with truncate_only

**檢查日誌的容量:DBCC SQLPERF (LOGSPACE) 這時日誌並沒有收縮!

d.每天在備份資料庫完成之後,重新啟動MS SQLSERVER SERVICE.
USE DATABASE_NAME
go
DBCC SHRINKFILE(2,truncateonly)

**檢查日誌的容量:DBCC SQLPERF (LOGSPACE) 這時日誌已經收縮!

e.手動快速收縮日誌:
/ *run below script,you will shrink you database log files
immediately, in my experience,you need to run the script for 3 or
4 minutes before stopping it manually */

use databasename
dbcc shrinkfile(2,notruncate)
dbcc shrinkfile(2,truncateonly)
create table t1(char1 char(4000))
go
declare @i int
select @i=0
while(1=1)
begin
while(@i<100)
begin
INSERT INTO T1 VALUES ('A')
SELECT @I=@I+1
END
TRUNCATE table T1
BACKUP LOG youdatabasename with truncate_only
end
GO

『柒』 如何解決無法打開資料庫,恢復操作已將數據標記為suspect。

5. 釋放磁碟空間並且重新運行恢復操作,按照下面的步驟收縮日誌。

sp_resetstatus 關閉資料庫的置疑標志,但是原封不動地保持資料庫的其它選項。

為從根本上解決這樣的問題,你可以按下面的操作配置SQLSERVER 2000:
a.如果不需要恢復到指定的時間點,你可以將資料庫的恢復模式配置為簡單,這樣
UPDATE,DELETE,SELECT就不會記錄日誌,日誌就不會增加的很大:

USE MASTER
GO

ALTER DATABASE DB_NAME SET RECOVERY SIMPLE

b.如果你的恢復模式是全部,你一定要配置日誌欄位收縮:

USE MASTER
GO

sp_dboption 'databasename','trunc. log on chkpt.',true
sp_dboption 'databasename','autoshrink',true

c.通過每日備份將日誌收縮:
BACKUP DATABASE DATABASE_NAME TO BACKUP_DEVICES
BACKUP LOG DATABASE_NAME TO LOG_DEVICES
OR
BACKUP LOG DATABASE_NAME with truncate_only

**檢查日誌的容量:DBCC SQLPERF (LOGSPACE) 這時日誌並沒有收縮!

d.每天在備份資料庫完成之後,重新啟動MS SQLSERVER SERVICE.
USE DATABASE_NAME
go
DBCC SHRINKFILE(2,truncateonly)

**檢查日誌的容量:DBCC SQLPERF (LOGSPACE) 這時日誌已經收縮!

e.手動快速收縮日誌:
/ *run below script,you will shrink you database log files
immediately, in my experience,you need to run the script for 3 or
4 minutes before stopping it manually */

use databasename
dbcc shrinkfile(2,notruncate)
dbcc shrinkfile(2,truncateonly)
create table t1(char1 char(4000))
go
declare @i int
select @i=0
while(1=1)
begin
while(@i<100)
begin
INSERT INTO T1 VALUES ('A')
SELECT @I=@I+1
END
TRUNCATE table T1
BACKUP LOG youdatabasename with truncate_only
end
GO

注意 只有在您的主要支持提供者指導下或有疑難解答建議的做法時,才可以使用
sp_resetstatus。否則,可能會損壞資料庫。

由於該過程修改了系統表,系統管理員必須在運行 sp_resetstatus這個過程前,啟用系統表更新。要
啟 用更新,使用下面的過程:

USE master
GO
sp_configure 'allow updates', 1
GO
RECONFIGURE WITH OVERRIDE
GO
過程創建後,立即禁用系統表更新:

sp_configure 'allow updates', 0
GO
RECONFIGURE WITH OVERRIDE
GO
只有系統管理員才能執行 sp_resetstatus。執行該過程後,立即關閉 SQL Server。

『捌』 根據一些經典資料用rman的restore恢復oracle資料庫,數據沒有任何變化!求救

我覺得原因有兩個,一個是沒歸檔當前的日誌,另外一個是rman根本就沒有執行恢復。
第一個原因:當向表中插入數據後,雖然commit了,但是一些文件依然有可能沒有寫入到數據文件,而存在了redo中,而redo沒有歸檔的情況下,也是恢復不了的。
第二個原因:你的表空間(假定為users),根本就沒有損壞,當你restore時,就不會執行恢復。

下面是我做的測試:
SQL> insert into test values(2);
已創建 1 行。

SQL> insert into test values(1);
已創建 1 行。

SQL> insert into test values(3);
已創建 1 行。

SQL> commit;
提交完成。

SQL> select * from test;

PID
----------
3
1
2

SQL> alter database switch logfile;
系統已更改。
SQL> alter database switch logfile;
系統已更改。

RMAN> run{
2> allocate channel d1 type disk;
3> backup tag 'tsuser' format 'd:\backup\qqqqqq_%U'
4> tablespace users;
5> release channel d1;
6> }

分配的通道: d1
通道 d1: sid=15 devtype=DISK

啟動 backup 於 29-5月 -08
通道 d1: 正在啟動 full 數據文件備份集
通道 d1: 正在指定備份集中的數據文件
輸入數據文件 fno=00009 name=D:\ORACLE\ORADATA\ORCL\USERS01.DBF
通道 d1: 正在啟動段 1 於 29-5月 -08
通道 d1: 已完成段 1 於 29-5月 -08
段 handle=D:\BACKUP\QQQQQQ_0IJHJDV0_1_1 comment=NONE
通道 d1: 備份集已完成, 經過時間:00:00:03
完成 backup 於 29-5月 -08

啟動 Control File and SPFILE Autobackup 於 29-5月 -08
段 handle=D:\ORACLE\ORA92\DATABASE\C-1182576868-20080529-05 comment=NONE
完成 Control File and SPFILE Autobackup 於 29-5月 -08

釋放的通道: d1

RMAN>

然後再在表中插入記錄

SQL> insert into test values(4);

已創建 1 行。

SQL> commit;

提交完成。

SQL> select * from test;

PID
----------
3
1
2
4

SQL> alter system switch logfile;

系統已更改。

SQL> alter system switch logfile;

系統已更改。

然後關閉資料庫模擬文件丟失
SQL> shutdown
資料庫已經關閉。
已經卸載資料庫。
ORACLE 常式已經關閉。

SQL> host del D:\oracle\oradata\orcl\users01.dbf

啟動資料庫,會報錯
SQL> startup
ORACLE 常式已經啟動。

Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
資料庫裝載完畢。
ORA-01157: 無法標識/鎖定數據文件 9 - 請參閱 DBWR 跟蹤文件
ORA-01110: 數據文件 9: 'D:\ORACLE\ORADATA\ORCL\USERS01.DBF'

這時把datafile 9 離線,然後打開資料庫

SQL> alter database datafile 9 offline;

資料庫已更改。

SQL> alter database open;

資料庫已更改。

SQL>

恢復表空間
RMAN> run{
2> allocate channel d1 type disk;
3> restore datafile 9;
4> recover datafile 9;
5> sql 'alter database datafile 9 online';
6> release channel d1 ;
7> }

分配的通道: d1
通道 d1: sid=15 devtype=DISK

啟動 restore 於 29-5月 -08

通道 d1: 正在開始恢復數據文件備份集
通道 d1: 正在指定從備份集恢復的數據文件
正將數據文件00009恢復到D:\ORACLE\ORADATA\ORCL\USERS01.DBF
通道 d1: 已恢復備份段 1
段 handle=D:\BACKUP\QQQQQQ_0IJHJDV0_1_1 tag=TSUSER params=NULL
通道 d1: 恢復完成
完成 restore 於 29-5月 -08

啟動 recover 於 29-5月 -08

正在開始介質的恢復
完成介質的恢復

完成 recover 於 29-5月 -08

sql 語句: alter database datafile 9 online

釋放的通道: d1

RMAN>

然後檢查數據完整性

SQL> select * from test;

PID
----------
3
1
2
4

SQL>

『玖』 用友軟體輸出帳套的時候顯示無法打開資料庫 該資料庫正處於還原操作中途

這個是資料庫的問題,也只是其中一個賬套出現了問題,其他的賬套應該沒有問題的,需要到資料庫中檢查下為什麼是還原狀態,修復這個資料庫到正常狀態,就可以了

『拾』 restore database 報錯誤

你要確定下 要還原的資料庫備份文件中的資料庫,使用的是什麼用戶,例如使用ABC,那麼你需要在你的資料庫中創建ABC用戶,並賦予管理員許可權
然後再進行還原操作
求採納為滿意回答。