使用bbed修改文件头,推进scn,恢复offlinedrop的数据文件
最近处理了一起由于用户操作错误导致的数据库无法打开的情况。 用户数据库为windows 64bit,数据库版本为11.2.0.1,非归档模式。由于异常断电,数据库无法正常打开,而且经过用户的判断使用了错误的offline drop操作。导致数据库打开后,日志文件切换过多,
最近处理了一起由于用户操作错误导致的数据库无法打开的情况。
用户数据库为windows 64bit,数据库版本为11.2.0.1,非归档模式。由于异常断电,数据库无法正常打开,而且经过用户的判断使用了错误的offline drop操作。导致数据库打开后,日志文件切换过多,无法使用recover命令。
因为中间没有做其他操作,所以接到case后,这里将受损的几个数据文件copy到linux下使用bbed进行修改,再copy回windows,成功跳过recover,打开了offline drop的数据文件。
情景还原:
sys@UTF8A> select name ,checkpoint_change# from v$datafile ; NAME CHECKPOINT_CHANGE# -------------------------------------------------------------------- /u01/apps/oracle/oradata/utf8a/system01.dbf 1040256 /u01/apps/oracle/oradata/utf8a/sysaux01.dbf 1040256 /u01/apps/oracle/oradata/utf8a/undotbs01.dbf 1040256 /u01/apps/oracle/oradata/utf8a/users01.dbf 1039896 sys@UTF8A> select sequence#, group#,first_change#,statusfrom v$log ; SEQUENCE# GROUP# FIRST_CHANGE# STATUS ---------- ---------- ----------------------------- 19 1 1040256 CURRENT 17 2 1040250 INACTIVE 18 3 1040253 INACTIVE sys@UTF8A> recover datafile 4 ; ORA-00279: change 1039896 generated at03/30/2015 09:31:05 needed for thread 1 ORA-00289: suggestion :/u01/apps/oracle/product/11.2.0/dbhome_1/dbs/arch1_12_827004096.dbf ORA-00280: change 1039896 for thread 1 isin sequence #12 Specify log: {<RET>=suggested |filename | AUTO | CANCEL} auto ORA-00308: cannot open archived log'/u01/apps/oracle/product/11.2.0/dbhome_1/dbs/arch1_12_827004096.dbf' ORA-27037: unable to obtain file status Linux-x86_64 Error: 2: No such file ordirectory Additional information: 3 ORA-00308: cannot open archived log'/u01/apps/oracle/product/11.2.0/dbhome_1/dbs/arch1_12_827004096.dbf' ORA-27037: unable to obtain file status Linux-x86_64 Error: 2: No such file ordirectory Additional information: 3
sequence已经过去,无法执行恢复,所以这里只能使用bbed修改文件头了。归档以及备份真的很重要。
block为8192。
flist:
1/u01/apps/oracle/oradata/utf8a/system01.dbf 754974720
2/u01/apps/oracle/oradata/utf8a/sysaux01.dbf 566231040
3/u01/apps/oracle/oradata/utf8a/undotbs01.dbf 83886080
4/u01/apps/oracle/oradata/utf8a/users01.dbf 9175040
如何初始化bbed环境,以及各种bbed版本的下载,见我的博客
http://blog.csdn.net/renfengjun/article/details/7944629
这里不再重复赘述。
先关闭数据库并且启动到mount状态。
sys@UTF8A> selectfile#,change#,online_status from v$recover_file ; FILE# CHANGE# ONLINE_ ---------- ---------- ------- 4 1039896 OFFLINE sys@UTF8A> select name ,checkpoint_change# from v$datafile ; NAME CHECKPOINT_CHANGE# -------------------------------------------------------------------- /u01/apps/oracle/oradata/utf8a/system01.dbf 1041564 /u01/apps/oracle/oradata/utf8a/sysaux01.dbf 1041564 /u01/apps/oracle/oradata/utf8a/undotbs01.dbf 1041564 /u01/apps/oracle/oradata/utf8a/users01.dbf 1039896
记得修改前先备份所有的数据库文件。
BBED> set file 4 FILE# 4 BBED> p kcvfhckp struct kcvfhckp, 36 bytes @484 struct kcvcpscn, 8 bytes @484 ub4 kscnbas @484 0x000fde18 ub2 kscnwrp @488 0x0000 ub4 kcvcptim @492 0x34321859 ub2 kcvcpthr @496 0x0001 union u, 12 bytes @500 struct kcvcprba, 12 bytes @500 ub4 kcrbaseq @500 0x0000000c ub4 kcrbabno @504 0x00000015 ub2 kcrbabof @508 0x0010 ub1 kcvcpetb[0] @512 0x02 ub1 kcvcpetb[1] @513 0x00 ub1 kcvcpetb[2] @514 0x00 ub1 kcvcpetb[3] @515 0x00 ub1 kcvcpetb[4] @516 0x00 ub1 kcvcpetb[5] @517 0x00 ub1 kcvcpetb[6] @518 0x00 ub1 kcvcpetb[7] @519 0x00
注意offset 484 , kscnbas为数据文件现在的scn。
使用计算器计算后0x000fde18,得到的十进制数字为1039896,确认无误,只要修改scn为最新的1041564,即可打开损坏的数据文件。
BBED> d /v dba 4,1 offset 484 count 16 File: /u01/apps/oracle/oradata/utf8a/users01.dbf(4) Block: 1 Offsets: 484 to 499 Dba:0x01000001 ------------------------------------------------------- 18de0f00 00000000 59183234 01000000 l ......Y.24.... <16 bytes per line>
因为是这里为linux x64 ,为little endian。
1039896=18de0f00
1041564=9ce40f00
直接修改即可。
BBED> set【本文来自鸿网互联 (http://www.68idc.cn)】 mode edit MODE Edit BBED> m /x 9ce40f dba 4,1 offset 484 File:/u01/apps/oracle/oradata/utf8a/users01.dbf (4) Block: 1 Offsets: 484 to 499 Dba:0x01000001 ------------------------------------------------------------------------ 9ce40f00 00000000 59183234 01000000 <32 bytes per line> BBED> m /x 9ce40f dba 4,1 offset 484 File: /u01/apps/oracle/oradata/utf8a/users01.dbf(4) Block: 1 Offsets: 484 to 499 Dba:0x01000001 ------------------------------------------------------------------------ 9ce40f00 00000000 59183234 01000000 <32 bytes per line> BBED> sum Check value for File 4, Block 1: current = 0x5f67, required = 0x65e3 BBED> sum apply Check value for File 4, Block 1: current = 0x65e3, required = 0x65e3
完成任务
sys@UTF8A> alter database datafile 4online ; Database altered. sys@UTF8A> selectfile#,change#,online_status from v$recover_file ; FILE# CHANGE# ONLINE_ ---------- ---------- ------- 4 1041564 ONLINE sys@UTF8A> alter database datafile 4online ; Database altered. sys@UTF8A> alter database open ; alter database open * ERROR at line 1: ORA-01113: file 4 needs media recovery ORA-01110: data file 4:'/u01/apps/oracle/oradata/utf8a/users01.dbf' sys@UTF8A> recover datafile 4 ; Media recovery complete. sys@UTF8A> alter database open ; Database altered. sys@UTF8A> select * from scott.emp where rownum<2 ; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ---------- ---------- --------- ---------- --------- -------------------- ---------- 7369 SMITH CLERK 7902 17-DEC-80 800 20
完成后记得逻辑导出所有用户数据,并且完善备份计划。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









1. まずDingTalkを開きます。 2. グループ チャットを開き、右上隅にある 3 つの点をクリックします。 3. このグループで私のニックネームを見つけます。 4. クリックして入力し、変更して保存します。

CrystalDiskMark は、シーケンシャルおよびランダムの読み取り/書き込み速度を迅速に測定する、ハード ドライブ用の小型 HDD ベンチマーク ツールです。次に、編集者が CrystalDiskMark と Crystaldiskmark の使用方法を紹介します。 1. CrystalDiskMark の概要 CrystalDiskMark は、機械式ハード ドライブとソリッド ステート ドライブ (SSD) の読み取りおよび書き込み速度とパフォーマンスを評価するために広く使用されているディスク パフォーマンス テスト ツールです。 ). ランダム I/O パフォーマンス。これは無料の Windows アプリケーションで、使いやすいインターフェイスとハード ドライブのパフォーマンスのさまざまな側面を評価するためのさまざまなテスト モードを提供し、ハードウェアのレビューで広く使用されています。

創造性と活力に満ちたショートビデオプラットフォームであるDouyinでは、さまざまなエキサイティングなコンテンツを楽しむだけでなく、同じ志を持った友達と深いコミュニケーションをとることもできます。その中でも、チャットの火花は、両者間の交流の強さを示す重要な指標であり、意図せずして私たちと友人との間の感情的な絆に火をつけることがよくあります。ただし、何らかの理由でチャット スパークが切断される場合があります。それでは、チャット スパークを復元したい場合はどうすればよいでしょうか? このチュートリアル ガイドでは、コンテンツ戦略について詳しく説明し、皆様のお役に立てれば幸いです。 Douyin チャットのスパークを回復するにはどうすればよいですか? 1. Douyin メッセージ ページを開き、チャットする友達を選択します。 2. メッセージを送信し、お互いにチャットします。 3. 3日間メッセージを送信し続けると、スパークロゴを獲得できます。 3 日単位で写真やビデオをお互いに送信します

パソコン上のフォルダーを削除または解凍するときに、「エラー 0x80004005: 不明なエラー」というダイアログ ボックスが表示されることがあります。この状況はどう解決すればよいでしょうか?エラー コード 0x80004005 が表示される理由は実際にはたくさんありますが、そのほとんどはウイルスによって引き起こされます。DLL を再登録して問題を解決できます。以下では、エディターがエラー コード 0x80004005 の処理体験を説明します。 。一部のユーザーは、コンピュータの使用時にエラー コード 0X80004005 を表示されます。0x80004005 エラーは主に、コンピュータが特定のダイナミック リンク ライブラリ ファイルを正しく登録していないこと、またはファイアウォールがコンピュータとインターネット間の HTTPS 接続を許可していないことが原因で発生します。それでどうですか

foobar2000 は、音楽リソースをいつでも聴くことができるソフトウェアです。あらゆる種類の音楽をロスレス音質で提供します。音楽プレーヤーの強化版により、より包括的で快適な音楽体験を得ることができます。その設計コンセプトは、高度なオーディオをコンピュータ上で再生可能 デバイスを携帯電話に移植し、より便利で効率的な音楽再生体験を提供 シンプルでわかりやすく、使いやすいインターフェースデザイン 過度な装飾や煩雑な操作を排除したミニマルなデザインスタイルを採用また、さまざまなスキンとテーマをサポートし、自分の好みに合わせて設定をカスタマイズし、複数のオーディオ形式の再生をサポートする専用の音楽プレーヤーを作成します。過度の音量による聴覚障害を避けるために、自分の聴覚の状態に合わせて調整してください。次は私がお手伝いさせてください

Quark Netdisk と Baidu Netdisk は現在、ファイルの保存に最も一般的に使用されている Netdisk ソフトウェアです。Quark Netdisk 内のファイルを Baidu Netdisk に保存したい場合は、どうすればよいですか?今回は、Quark Network Disk コンピュータから Baidu Network Disk にファイルを転送するためのチュートリアル手順を編集者がまとめたので、その操作方法を見てみましょう。 QuarkネットワークディスクファイルをBaiduネットワークディスクに保存するにはどうすればよいですか? Quark Network Disk から Baidu Network Disk にファイルを転送するには、まず Quark Network Disk から必要なファイルをダウンロードし、次に Baidu Network Disk クライアントでターゲット フォルダーを選択して開きます。次に、Quark Cloud Disk からダウンロードしたファイルを Baidu Cloud Disk クライアントによって開かれたフォルダーにドラッグ アンド ドロップするか、アップロード機能を使用してファイルを Baidu Cloud Disk に追加します。アップロードが完了したら、Baidu Cloud Disk にファイルが正常に転送されたかどうかを必ず確認してください。それでおしまい

最近、多くのネチズンが編集者に「hiberfil.sys ファイルとは何ですか?」と尋ねました。 hiberfil.sys は C ドライブのスペースを多く消費し、削除される可能性がありますか?エディターは、hiberfil.sys ファイルを削除できることを通知します。以下で詳細を見てみましょう。 hiberfil.sys は Windows システムの隠しファイルであり、システム休止状態ファイルでもあります。通常、C ドライブのルート ディレクトリに保存され、そのサイズはシステムに搭載されているメモリのサイズと同等です。このファイルはコンピュータが休止状態になっているときに使用され、リカバリ中に以前の状態にすばやく復元できるように、現在のシステムのメモリ データが含まれています。そのサイズはメモリ容量と等しいため、より多くのハードドライブスペースを占有する可能性があります。冬休み

Douyin Blue V 認証は、Douyin プラットフォーム上の企業またはブランドの公式認証であり、ブランド イメージと信頼性の向上に役立ちます。企業の発展戦略の調整やブランドイメージの更新に伴い、企業はDouyin Blue V認証の名称を変更したい場合があります。では、Douyin Blue V は名前を変更できるのでしょうか?答えは「はい」です。この記事では、エンタープライズ Douyin Blue V アカウントの名前を変更する手順を詳しく紹介します。 1.Douyin Blue V の名前は変更できますか? Douyin Blue V アカウントの名前は変更できます。 Douyin の公式規定によると、企業の Blue V 認定アカウントは、一定の条件を満たした後にアカウント名の変更を申請できます。一般的に、企業は社名変更の合法性と必要性を証明するために、営業許可証、組織コード証明書などの関連資料を提供する必要があります。 2. 企業のDouyin Blue Vアカウントの名前を変更する手順は何ですか?
