【技術(shù)實戰(zhàn)】Oracle數(shù)據(jù)庫數(shù)據(jù)提取的方法
數(shù)據(jù)庫是信息系統(tǒng)中不可或缺的部分。隨著大數(shù)據(jù)時代的到來,數(shù)據(jù)庫已經(jīng)成為犯罪分子的目標(biāo),大量數(shù)據(jù)庫被用于存放網(wǎng)絡(luò)盜竊和網(wǎng)絡(luò)詐騙中產(chǎn)生的數(shù)據(jù)。將涉案數(shù)據(jù)庫的數(shù)據(jù)提取出來,成為了打擊犯罪的重要手段之一。
在眾多數(shù)據(jù)庫中,Oracle (全稱OracleDatabase),一直是一款處于領(lǐng)先地位的關(guān)系數(shù)據(jù)庫管理系統(tǒng)。因為其系統(tǒng)可移植性好、使用方便、功能強(qiáng),適用于各類大、中、小、微機(jī)環(huán)境,它是一種高效率、可靠性好的、適應(yīng)高吞吐量的數(shù)據(jù)庫解決方案。
也因為穩(wěn)定性好、安全系數(shù)高等優(yōu)勢,Oracle數(shù)據(jù)庫是眾多大型企事業(yè)單位首選的數(shù)據(jù)庫,如公安局的身份證數(shù)據(jù)信息存儲、中國銀行的數(shù)據(jù)信息存儲、淘寶數(shù)據(jù)存儲等。這些單位有一個共同特點(diǎn):數(shù)據(jù)量大,要求數(shù)據(jù)準(zhǔn)確,要求系統(tǒng)性能高。
現(xiàn)階段,在眾多案件的電子取證過程中我們也常??吹絆racle數(shù)據(jù)庫的身影,今天,源妹兒就跟大家分享一種通過附加Oracle數(shù)據(jù)庫提取數(shù)據(jù)庫數(shù)據(jù)的方法。
數(shù)據(jù)提取思路
1、將Oracle數(shù)據(jù)庫文件提取恢復(fù)出來;
2、在取證電腦上安裝Oracle數(shù)據(jù)庫,Oracle版本號需要與案例檢材中Oracle版本號一樣,然后將檢材中的Oracle數(shù)據(jù)庫文件拷貝到取證電腦,附加數(shù)據(jù)庫文件(PS:附加數(shù)據(jù)庫是整個數(shù)據(jù)提取過程中的核心所在,本文檔將詳細(xì)講解附加數(shù)據(jù)庫的過程);
3、附加完成后即可打開Oracle數(shù)據(jù),提取記錄數(shù)據(jù)。
操作步驟
1、使用專業(yè)的電子取證工具:DRS6800數(shù)據(jù)恢復(fù)系統(tǒng)(以下簡稱DRS),加載案例服務(wù)服務(wù)器鏡像,提取鏡像中的Oracle數(shù)據(jù)庫文件,提取出來的Oracle數(shù)據(jù)庫文件如下圖:
2、在取證電腦中安裝與檢材中Oracle數(shù)據(jù)庫版本相同的Oracle軟件,并且創(chuàng)建與檢材中相同實例名的數(shù)據(jù)庫(Oracle安裝過程本文檔不詳細(xì)介紹,網(wǎng)上很多Oracle的安裝教程)。
3、Oracle安裝成功并且創(chuàng)建了實例后,將數(shù)據(jù)庫服務(wù)關(guān)閉,建議在cmd命令行使用如下語句完成:
- sqlplus /nolog
- conn /as sysdba
- shutdown immediate
4、關(guān)閉數(shù)據(jù)庫后,將從檢材中提取出來的Oracle數(shù)據(jù)文件替換到當(dāng)前電腦的Oracle數(shù)據(jù)文件所在路徑
5、Oracle數(shù)據(jù)文件替換完畢后,在cmd命令行以無掛載的方式重新啟動數(shù)據(jù)庫,使用如下命令完成 :startup nomount;
6、因為控制文件的記錄了數(shù)據(jù)庫的創(chuàng)建時間,數(shù)據(jù)文件的位置,日志文件的位置等,其作用是指導(dǎo)數(shù)據(jù)庫找到數(shù)據(jù)文件,日志文件并將數(shù)據(jù)庫啟動到open狀態(tài),因為遷移的原因改變這些參數(shù),因此需要重構(gòu)控制文件,使用如下語句重構(gòu)控制文件:
CREATE CONTROLFILE REUSE DATABASE "qsdb" NORESETLOGS ARCHIVELOG
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 226
LOGFILE
GROUP 1
'F:\app\xly\oradata\qsdb\redo01.log' SIZE 800M,
GROUP 2
'F:\app\xly\oradata\qsdb\redo02.log' SIZE 800M,
GROUP 3
'F:\app\xly\oradata\qsdb\redo03.log' SIZE 800M,
DATAFILE
'F:\app\xly\oradata\qsdb\system01.dbf',
'F:\app\xly\oradata\qsdb\system02.dbf',
'F:\app\xly\oradata\qsdb\undotbs01.dbf',
'F:\app\xly\oradata\qsdb\sysaux01.dbf',
'F:\app\xly\oradata\qsdb\users01.dbf',
'F:\app\xly\oradata\qsdb\hfsj_qs1.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs2.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs3.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs4.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs5.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs6.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs7.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs8.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs9.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs10.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs11.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs12.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs13.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs14.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs15.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs16.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs17.dbf',
'F:\app\xly\oradata\qsdb\ hfsj_qs18.dbf',
'F:\app\xly\oradata\qsdb\qsweihu.dbf'
'F:\app\xly\oradata\qsdb\goldengate.dbf'
'F:\app\xly\oradata\qsdb\hfqsquery.dbf'
'F:\app\xly\oradata\qsdb\hfqsmon.dbf '
CHARACTER SET US7ASCII;
7、在重構(gòu)完畢控制文件后,重新打開數(shù)據(jù)庫,會報錯,提示SYSTEM01數(shù)據(jù)文件需要執(zhí)行介質(zhì)修復(fù),如圖所示:
a.修復(fù)數(shù)據(jù)文件,執(zhí)行如下語句完成修復(fù):
- recover datafile 'F:\app\xly\oradata\qsdb\SYSTEM01.DBF';
b.在執(zhí)行介質(zhì)修復(fù)過程中若提示數(shù)據(jù)文件因為有壞塊,無法進(jìn)行介質(zhì)恢復(fù),可以執(zhí)行如下語句,跳過壞塊繼續(xù)修復(fù):
- recover database ‘F:\app\xly\oradata\qsdb\system01.dbf’ allow 1 corruption;
重復(fù)以上a,b步驟,將數(shù)據(jù)文件修復(fù)完畢,其中只有當(dāng)出現(xiàn)a步驟中因為有壞塊無法正常進(jìn)行介質(zhì)修復(fù)時,才采用b步驟中的跳過壞塊修復(fù),如圖所示:
8、若無法忽略壞塊進(jìn)行修復(fù),且恰好是sysaux數(shù)據(jù)文件出現(xiàn)錯誤,如圖所示:
可選擇使sysaux數(shù)據(jù)文件offline,即可打開數(shù)據(jù)庫,執(zhí)行如下語句:
- alter database datafile ‘F:\app\xly\oradata\SYSAUX01.DBF’ offline;
9、完成如上操作,即可正常啟動數(shù)據(jù),如圖所示:
10、使用Navicat軟件鏈接并打開Oracle,即可訪問Oracle記錄,根據(jù)公安局要求需要指定代理商及其會員的所有刷卡套現(xiàn)的記錄,分析Oracle數(shù)據(jù)庫表結(jié)構(gòu)后,編寫SQL語句查詢某代理商的數(shù)據(jù)如下:
注意事項
在采用上述方法對Oracle數(shù)據(jù)庫數(shù)據(jù)進(jìn)行提取時要注意以下幾點(diǎn):
1、上述方法能確保Oracle數(shù)據(jù)庫的數(shù)據(jù)完整性,并且不會對原始數(shù)據(jù)產(chǎn)生破壞,但是該方法較為復(fù)雜,需要專業(yè)的技術(shù)人員輔助完成;
2、確保從服務(wù)器中獲取到的數(shù)據(jù)庫的完整性,不然會導(dǎo)致附加失??;
3、確保搭建環(huán)境附加數(shù)據(jù)庫的電腦具有足夠的空間,不然會因為空間不足導(dǎo)致附加失?。?/p>
4、確保搭建環(huán)境中Oracle數(shù)據(jù)庫版本與服務(wù)器中的Oracle數(shù)據(jù)庫版本完全一致;
5、以上操作涉及到很多專業(yè)技能,如有必要可找尋專業(yè)的公司或技術(shù)人員協(xié)助完成。