當前位置:首頁 » 數據倉庫 » 小麥科技資料庫初始化後怎樣恢復
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

小麥科技資料庫初始化後怎樣恢復

發布時間: 2023-06-07 04:21:07

❶ 緊急求救,怎樣才能恢復資料庫

資料庫被掛起了。你可以試一試用下面的方法恢復:
A.現象:Error 926
Severity Level 14
Error Message Text
Database 'xx' cannot be opened - it has been marked SUSPECT by recover Explanation

(1) 當你使用Transact_sql命令操作這個資料庫的數據時, 出現這個信息, 這是一個嚴重的錯誤, 如果你要使用這個資料庫的數據, 必須改正這個錯誤.

(2) 啟動Backup Server, 後備master資料庫

1>mp database master to "/usr/sybase/master_mp.19991201"
2>go

(3) 用isql登錄到SQL Server, 須用sa帳號 (本文以pubs2資料庫為例)

1>sp_configure "allow updates", 1
2>go
1>begin tran
2>go
1>update master..sysdatabases
2>set status = -32768
3>Where name="pubs2"
4>go

如果得到(1 row affected),則

1>commit
2>go

否則

1>rollback
2>go

(4.1)如果條件允許,bcp out用戶數據或mp用戶資料庫

(5.1)這時重新啟動SQL Server, 再有sa帳號注冊到SQL Server.

1>begin tran
2>go
1>update master..sysdatabases
2>set status=0
3>Where name="pubs2"
4>go

如果得到(1 row affected),則

1>commit
2>go

否則
1>rollback
2>go

1>sp_configure "allow updates" ,0
2>go

(4) 如果你的資料庫原來有dboption(例如"select into","trunc log on chkpt"等), 你需要重新設置這些option..

(5) 運行dbcc命令檢查資料庫的一致性
isql -Usa -P -i dbcc.sql -o dbcc.out
dbcc.sql文件示例:
dbcc checkdb("pubs2")
go
dbcc checkalloc("pubs2")
go
dbcc checkcatalog("pubs2")
go
grep Msg dbcc.out

6) 後備用戶資料庫

1>mp database pubs2 on "/usr/sybase/pubs2_mp.19991201"
2>go

B.如何解決資料庫被標記為"suspect"的問題之二( 資料庫設備損壞時的解決方案 )?

A.現象: 926錯誤產生的原因有幾種。本文討論當資料庫設備初始化失敗( 設備文件丟失或文件讀寫許可權不正確)時,導致數據桐盯庫恢復失敗,出現926錯誤的情況。
(1) 請先恢消賀復資料庫設備及讀寫許可權。

(2) 啟動Backup Server, 後備master資料庫
1>mp database master to "/usr/sybase/master_mp.19991201"
2>go

3) 用isql登錄到SQL Server, 須用sa帳號 (本文以pubs2資料庫為例)

1>sp_configure "allow updates", 1
2>go
1>begin tran
2>go

1>update master..sysdatabases
2>set status = status - 256
3>Where name="pubs2"
4>go

如果得到(1 row affected),則

1>commit
2>go

否則
1>rollback
2>go
(4) 重新啟動SQL Server, 運行dbcc命令檢查資料庫的一致性編輯生成dbcc.sql文件:

dbcc checkdb("pubs2")
go
dbcc checkalloc("pubs2"局橋和)
go
dbcc checkcatalog("pubs2")
go

isql -Usa -P -i dbcc.sql -o dbcc.out
grep Msg dbcc.out

(5) 後備用戶資料庫

1>mp database pubs2 on "/usr/sybase/pubs2_mp.19991201"
2>go

❷ 資料庫被刪除了怎麼恢復

恢復步驟:
1、運行EasyRecovery。
2、選擇「DeletedRecovery」。
3、選擇資料庫文件所在的驅動器,在「File Filter」中輸入*.mdf|*.ldf,選擇「Next」。
4、在左側窗口會列出被刪除的資料庫文件,選擇所要恢復的資料庫文件,選擇「Next」。
5、在「Recover to Local Drive」中選擇恢復後的文件存放的路徑,要選擇與原資料庫文件不同的路徑,選擇「Next」。
6、文件被恢復後,將恢復的文件復制到原資料庫文件位置,並在企業管理器通過附加資料庫,將恢復的文件恢復到SQL Server中。
註:如果刪除的資料庫文件所有的存儲區域被寫過了,就無法恢復了,所以刪除與恢復的時間間隔越短越好。

❸ 如何從完好的數據文件恢復oracle資料庫

一。有數據文件、控制文件和日誌文件的備份1.伺服器重裝了操作系統,oracle也重裝了。如果重裝的oracle和以前損壞的資料庫是一模一樣的結構,那麼此時的恢復是比較簡單的。
1)刪除掉新建資料庫的所有數據文件、控制文件和日誌文件。Copy原資料庫的數據文件、控制文件和日誌文件到對應目錄下。

2)

Cmd>sqlplus /nolog

Sql>conn as sysdba

用戶名:system

密碼:(此處密碼為新創建資料庫的密碼)

Sql>shutdown immediate

Sql>startup nomount

Sql>alter database mount

此時看資料庫是不是能mount起來,有時會提示沒有口令文件PWDdemo.ora文件找不到。查看對應的目錄(database下)會發現該文件是存在的。此時需要注意,該口令文件是新安裝資料庫後創建實例時生成的口令文件,不是以前所用資料庫的口令文件,而現在,我們是用以前資料庫的控制文件和數據文件來打開以前的資料庫,所以此時需要重新創建一個口令文件。

Sql>shutdown immediate

Sql>host orapwd file=c:/oracle9i/database/PWDdemo.ora password=oracle

Entries=10 (放在database 目錄下)

Sql>startup nomount

Sql>alter database mount

Sql>alter database open

打開資料庫

2.如果新資料庫的安裝目錄和原有資料庫的目錄不一樣,那麼此時可以重建控制文件來打開資料庫。因為原控制文件中記錄的數據文件地址和現有的數據文件位置不一樣。此時和下面第二中情況一樣。當然,此時也可以創建和原資料庫一樣的目錄結構(前提是要記得原資料庫的目錄結構),需要注意的就是參數文件中記錄的控制文件位置和控制文件中記錄的數據文件位置。

說明:我們需要清楚資料庫在打開的三個階段中,需要讀取的文件

Sql>startup nomount (此時讀取參數文件)

Sql>alter database mount (根據參數文件中記錄的控制文件地址,去讀取控制文件)

Sql>alter database open (根據控制文件中記錄的數據文件地址,讀取數據文件,打開資料庫)

二。只有數據文件備份,沒有控制文件和日誌文件

由於只有數據文件備份,沒有控制文件和日誌文件,此時只能採用重建控制文件來恢復資料庫。以下通過兩中方法來介紹如何通過重建控制文件來進行資料庫的恢復。

1)僅安裝資料庫軟體,通過新建oracle服務,引用數據文件來創建一個實例。下面以實例名為demo為例進行說明。

1.創建存儲demo相關文件的目錄。即::各類文件的存放地址。

C:/documents and settings/mkdir c:/demo

C:/documents and settings/mkdir c:/demo/bmp

C:/documents and settings/mkdir c:/demo/ump

C:/documents and settings/mkdir c:/demo/cmp

C:/documents and settings/mkdir c:/demo/pfile

C:/documents and settings/mkdir c:/demo/create

C:/documents and settings/mkdir c:/demo/oradata

C:/documents and settings/mkdir c:/demo/oradata/demo (放置datafile、logfile、controlfile)

2.創建初始化參數文件(pfile)

此處pfile文件可以從其他能正常運行的資料庫上一個過來進行修改。(判斷其他正常運行的資料庫使用的是pfile還是spfile,如是pfile可以直接,如是spfile,則可根據spfile創建一個pfile文件)

Copy過來的pfile需要修改的地方:

background_mp_dest=c:/demo/bmp
core_mp_dest=c:/demo/cmp
user_mp_dest=c:/demo/ump
control_files=("c:/demo/oradata/demo/CONTROL01.CTL", "c:/demo/oradata/demo/CONTROL02.CTL", "c:/demo/oradata/demo/CONTROL03.CTL")
dispatchers="(PROTOCOL=TCP) (SERVICE=demoXDB)"(實例名)
dispatchers="(PROTOCOL=TCP) (SERVICE=demoXDB)"
db_domain=""
db_name=demo

3.創建oracle服務和口令文件

C:/documents and settings/oradim — new —sid demo —intpwd oracle

4.配置監聽和服務

用net manager 進行配置(demo實例的配置)

5.復制數據文件備份到指定的目錄下。此處為c:/demo/oradata/demo
6.重建controlfile

C:/Documents and Settings/hefan>sqlplus /nolog
SQL*Plus: Release 9.2.0.1.0 - Proction on 星期一 12月 29 10:57:07 2008
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
SQL> conn as sysdba
請輸入用戶名: system
請輸入口令:
已連接。
SQL> shutdown immediate
ORA-01507: 未安裝資料庫
ORACLE 常式已經關閉。
SQL> startup nomount file= c:/demo/pfile/initdemo.ora
ORACLE 常式已經啟動。
Total System Global Area 135338868 bytes
Fixed Size 453492 bytes
Variable Size 109051904 bytes
Database Buffers 25165824 bytes
Redo Buffers 667648 bytes
SQL> @d:/controlfile.sql
控制文件已創建
Controlfile.sql內容如下:(此處也可以直接在sql>下輸入以下內容進行創建controlfile)
CREATE CONTROLFILE REUSE DATABASE "demo" RESETLOGS NOARCHIVELOG
MAXLOGFILES 50
MAXLOGMEMBERS 5
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 226
LOGFILE
GROUP 1 'c:/demo/oradata/demo/redo01.log' SIZE 50M,
GROUP 2 'c:/demo/oradata/demo/redo02.log' SIZE 50M,
GROUP 3 'c:/demo/oradata/demo/redo03.log' SIZE 50M
DATAFILE
'c:/demo/oradata/demo/system01.dbf',
'c:/demo/oradata/demo/odm01.dbf',
'c:/demo/oradata/demo/indx01.dbf',
'c:/demo/oradata/demo/tools01.dbf',
'c:/demo/oradata/demo/undotbs01.dbf',
'c:/demo/oradata/demo/users01.dbf',
'c:/demo/oradata/demo/xdb01.dbf',
'c:/demo/oradata/demo/cwmlite01.dbf',
'c:/demo/oradata/demo/drsys01.dbf',
'c:/demo/oradata/demo/example01.dbf'
CHARACTER SET zhs16gbk
說明:此時沒有日誌文件,所以只能進行reserlogs,如果是有logfile,則此處不需要resetlogs,noresetlogs就可以

❹ 如何Oracle 資料庫備份與恢復

Oracle資料庫備份與恢復的三種方法
Oracle資料庫有三種標準的備份方法,它們分別是導出/導入(EXP/IMP)、熱備份和冷備份。導出備件是一種邏輯備份,冷備份和熱備份是物理備份。
一、 導出/導入(Export/Import)
利用Export可將數據從資料庫中提取出來,利用Import則可將提取出來的數據送回到Oracle資料庫中去。
1、 簡單導出數據(Export)和導入數據(Import)
Oracle支持三種方式類型的輸出:
(1)、表方式(T方式),將指定表的數據導出。
(2)、用戶方式(U方式),將指定用戶的所有對象及數據導出。
(3)、全庫方式(Full方式),瘵資料庫中的所有對象導出。
數據導入(Import)的過程是數據導出(Export)的逆過程,分別將數據文件導入資料庫和將資料庫數據導出到數據文件。
2、 增量導出/導入
增量導出是一種常用的數據備份方法,它只能對整個資料庫來實施,並且必須作為SYSTEM來導出。在進行此種導出時,系統不要求回答任何問題。導出文件名預設為export.dmp,如果不希望自己的輸出文件定名為export.dmp,必須在命令行中指出要用的文件名。
增量導出包括三種類型:
(1)、「完全」增量導出(Complete)
即備份三個資料庫,比如:
exp system/manager inctype=complete file=040731.dmp
(2)、「增量型」增量導出
備份上一次備份後改變的數據,比如:
exp system/manager inctype=incremental file=040731.dmp
(3)、「累積型」增量導出
累計型導出方式是導出自上次「完全」導出之後資料庫中變化了的信息。比如:
exp system/manager inctype=cumulative file=040731.dmp
資料庫管理員可以排定一個備份日程表,用數據導出的三個不同方式合理高效的完成。
比如資料庫的被封任務可以做如下安排:
星期一:完全備份(A)
星期二:增量導出(B)
星期三:增量導出(C)
星期四:增量導出(D)
星期五:累計導出(E)
星期六:增量導出(F)
星期日:增量導出(G)
如果在星期日,資料庫遭到意外破壞,資料庫管理員可按一下步驟來回復資料庫:
第一步:用命令CREATE DATABASE重新生成資料庫結構;
第二步:創建一個足夠大的附加回滾。
第三步:完全增量導入A:
imp system/manager inctype=RESTOREFULL=y FILE=A
第四步:累計增量導入E:
imp system/manager inctype=RESTOREFULL=Y FILE=E
第五步:最近增量導入F:
imp system/manager inctype=RESTOREFULL=Y FILE=F
二、 冷備份
冷備份發生在資料庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完整的資料庫。冷備份時將關鍵性文件拷貝到另外的位置的一種說法。對於備份Oracle信息而言,冷備份時最快和最安全的方法。冷備份的優點是:
1、 是非常快速的備份方法(只需拷文件)
2、 容易歸檔(簡單拷貝即可)
3、 容易恢復到某個時間點上(只需將文件再拷貝回去)
4、 能與歸檔方法相結合,做資料庫「最佳狀態」的恢復。
5、 低度維護,高度安全。
但冷備份也有如下不足:
1、 單獨使用時,只能提供到「某一時間點上」的恢復。
2、 再實施備份的全過程中,資料庫必須要作備份而不能作其他工作。也就是說,在冷備份過程中,資料庫必須是關閉狀態。
3、 若磁碟空間有限,只能拷貝到磁帶等其他外部存儲設備上,速度會很慢。
4、 不能按表或按用戶恢復。
如果可能的話(主要看效率),應將信息備份到磁碟上,然後啟動資料庫(使用戶可以工作)並將備份的信息拷貝到磁帶上(拷貝的同時,資料庫也可以工作)。冷備份中必須拷貝的文件包括:
1、 所有數據文件
2、 所有控制文件
3、 所有聯機REDO LOG文件
4、 Init.ora文件(可選)
值得注意的使冷備份必須在資料庫關閉的情況下進行,當資料庫處於打開狀態時,執行資料庫文件系統備份是無效的。
下面是作冷備份的完整例子。
(1) 關閉資料庫
sqlplus /nolog sql>;connect /as sysdba sql>;shutdown normal;
(2) 用拷貝命令備份全部的時間文件、重做日誌文件、控制文件、初始化參數文件
{$PageTitle=sql>;cp ; ;}
(3) 重啟Oracle資料庫
sql>;startup
三、 熱備份
熱備份是在資料庫運行的情況下,採用archivelog mode方式備份資料庫的方法。所以,如果你有昨天夜裡的一個冷備份而且又有今天的熱備份文件,在發生問題時,就可以利用這些資料恢復更多的信息。熱備份要求資料庫在Archivelog方式下操作,並需要大量的檔案空間。一旦資料庫運行在archivelog狀態下,就可以做備份了。熱備份的命令文件由三部分組成:
1. 數據文件一個表空間一個表空間的備份。
(1) 設置表空間為備份狀態
(2) 備份表空間的數據文件
(3) 回復表空間為正常狀態
2. 備份歸檔log文件
(1) 臨時停止歸檔進程
(2) log下那些在archive rede log目標目錄中的文件
(3) 重新啟動archive進程
(4) 備份歸檔的redo log文件
3. 用alter database bachup controlfile命令來備份控制文件
熱備份的優點是:
1. 可在表空間或資料庫文件級備份,備份的時間短。
2. 備份時資料庫仍可使用。
3. 可達到秒級恢復(恢復到某一時間點上)。
4. 可對幾乎所有資料庫實體做恢復
5. 恢復是快速的,在大多數情況下愛資料庫仍工作時恢復。
熱備份的不足是:
1. 不能出錯,否則後果嚴重
2. 若熱備份不成功,所得結果不可用於時間點的恢復
3. 因難於維護,所以要特別仔細小心,不允許「以失敗告終」。