Rumah pangkalan data tutorial mysql 假设数据文件顺序被打乱,你有办法找回正确的文件把数据库打开吗

假设数据文件顺序被打乱,你有办法找回正确的文件把数据库打开吗

Jun 07, 2016 pm 04:03 PM
cara kecewa mendapatkan semula data pangkalan data dokumen betul pesanan

一种非常应用很广泛的架构:HACMP+RAC+RAW。这种架构采用裸设备作为数据文件。今天演示一种恢复场景:数据库异常宕机,数据文件顺序错乱,数据库无法启动。 下面通过实验逐步演示,如果把数据文件的正确顺序找出来: SQL select * from v$version;BANNER----

一种非常应用很广泛的架构:HACMP+RAC+RAW。这种架构采用裸设备作为数据文件。今天演示一种恢复场景:数据库异常宕机,数据文件顺序错乱,数据库无法启动。

下面通过实验逐步演示,如果把数据文件的正确顺序找出来:

SQL> select * from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
PL/SQL Release 11.2.0.4.0 - Production
CORE	11.2.0.4.0	Production
TNS for Linux: Version 11.2.0.4.0 - Production
NLSRTL Version 11.2.0.4.0 - Production
Salin selepas log masuk

展示表空间、数据文件的简要情况

SQL> select ts#,name from v$tablespace;

TS# NAME
---------- --------------------
0 SYSTEM
1 SYSAUX

2 UNDOTBS1
3 TEMP
4 USERS

SQL> select file#,name from v$datafile;

FILE# NAME
---------- ---------------------------------------------------------------------
1 /u01/app/oracle/oradata/primary/system01.dbf
2 /u01/app/oracle/oradata/primary/sysaux01.dbf

3 /u01/app/oracle/oradata/primary/undotbs01.dbf
4 /u01/app/oracle/oradata/primary/users01.dbf

“断电”式快速强制停库

SQL> shutdown abort;
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area 784998400 bytes
Fixed Size 2257352 bytes
Variable Size 700452408 bytes
Database Buffers 79691776 bytes
Redo Buffers 2596864 bytes
Database mounted.

搞破坏,将system01.dbf和sysaux01.dbf两个数据文件相互替换名字

mv /u01/app/oracle/oradata/primary/system01.dbf /u01/app/oracle/oradata/primary/a

mv /u01/app/oracle/oradata/primary/sysaux01.dbf /u01/app/oracle/oradata/primary/system01.dbf

mv /u01/app/oracle/oradata/primary/a /u01/app/oracle/oradata/primary/sysaux01.dbf 

尝试启库,但会报错

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01122: database file 1 failed verification check
ORA-01110: data file 1: '/u01/app/oracle/oradata/primary/system01.dbf'
ORA-01210: data file header is media corrupt

细心的朋友可能会顺便查询一下视图v$datafile_header

\

v$datafile是从控制文件里读取信息,而v$datafile_header是从数据文件头部读取信息。

其实到这里,已经能从FILE#,ERROR,RFILE#的值就可以看出,system01.dbf与sysaux01.dbf到换了,可以改名直接将数据库打开。我们不妨通过其他方法去修复破坏

以下已经提示system01.dbf数据文件头部损坏,我们dump部分数据文件瞧瞧:

DUMP数据文件头部

SQL> alter system dump datafile '/u01/app/oracle/oradata/primary/system01.dbf' block 2;

System altered.

SQL> alter system dump datafile '/u01/app/oracle/oradata/primary/sysaux01.dbf' block 2;

System altered.

\

以上可以看出,system01.dbf的头部记录着自身其实是2号数据文件

\

从以上可以看出,sysaux01.dbf头部记录着自身其实是1号数据文件

至此,可以判断,system01.dbf其实是SYSAUX表空间的数据文件,sysaux01.dbf其实是SYSTEM的数据文件,对照v$datafile视图的输出将数据文件重命名:

重命名数据文件,修复破坏

mv /u01/app/oracle/oradata/primary/system01.dbf /u01/app/oracle/oradata/primary/b
mv /u01/app/oracle/oradata/primary/sysaux01.dbf /u01/app/oracle/oradata/primary/system01.dbf
mv /u01/app/oracle/oradata/primary/b /u01/app/oracle/oradata/primary/sysaux01.dbf

再次尝试打开数据库:

SQL> alter database open;

Database altered.

SQL> select * from dual;

DUM
---
X

经过以上实验的演示将数据文件重新对应,最终得以顺利打开数据库。

启示:

数据文件头部记录都记录着DBID,DB_NAME,File Number,Blsize等信息,同时数据块也通过rdba标识着该数据块的物理位置(数据文件+数据块),因此可以通过这些信息与控制文件的信息做对照。
-------------------------------------------------------------------------------------------------

本文来自于我的技术博客 http://blog.csdn.net/robo23

转载请标注源文链接,否则追究法律责任!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1667
14
Tutorial PHP
1273
29
Tutorial C#
1255
24
iOS 18 menambah fungsi album 'Dipulihkan' baharu untuk mendapatkan semula foto yang hilang atau rosak iOS 18 menambah fungsi album 'Dipulihkan' baharu untuk mendapatkan semula foto yang hilang atau rosak Jul 18, 2024 am 05:48 AM

Keluaran terbaharu Apple bagi sistem iOS18, iPadOS18 dan macOS Sequoia telah menambah ciri penting pada aplikasi Photos, yang direka untuk membantu pengguna memulihkan foto dan video yang hilang atau rosak dengan mudah disebabkan pelbagai sebab. Ciri baharu ini memperkenalkan album yang dipanggil "Dipulihkan" dalam bahagian Alat pada apl Foto yang akan muncul secara automatik apabila pengguna mempunyai gambar atau video pada peranti mereka yang bukan sebahagian daripada pustaka foto mereka. Kemunculan album "Dipulihkan" menyediakan penyelesaian untuk foto dan video yang hilang akibat kerosakan pangkalan data, aplikasi kamera tidak disimpan ke pustaka foto dengan betul, atau aplikasi pihak ketiga yang menguruskan pustaka foto. Pengguna hanya memerlukan beberapa langkah mudah

Pemula AI secara kolektif menukar pekerjaan kepada OpenAI, dan pasukan keselamatan berkumpul semula selepas Ilya pergi! Pemula AI secara kolektif menukar pekerjaan kepada OpenAI, dan pasukan keselamatan berkumpul semula selepas Ilya pergi! Jun 08, 2024 pm 01:00 PM

Minggu lalu, di tengah gelombang peletakan jawatan dalaman dan kritikan luar, OpenAI dibelenggu oleh masalah dalaman dan luaran: - Pelanggaran kakak balu itu mencetuskan perbincangan hangat global - Pekerja menandatangani "fasal tuan" didedahkan satu demi satu - Netizen menyenaraikan " Ultraman " tujuh dosa maut" ” Pembasmi khabar angin: Menurut maklumat dan dokumen bocor yang diperolehi oleh Vox, kepimpinan kanan OpenAI, termasuk Altman, sangat mengetahui peruntukan pemulihan ekuiti ini dan menandatanganinya. Di samping itu, terdapat isu serius dan mendesak yang dihadapi oleh OpenAI - keselamatan AI. Pemergian lima pekerja berkaitan keselamatan baru-baru ini, termasuk dua pekerjanya yang paling terkemuka, dan pembubaran pasukan "Penjajaran Super" sekali lagi meletakkan isu keselamatan OpenAI dalam perhatian. Majalah Fortune melaporkan bahawa OpenA

Bagaimana untuk mengendalikan ralat sambungan pangkalan data dalam PHP Bagaimana untuk mengendalikan ralat sambungan pangkalan data dalam PHP Jun 05, 2024 pm 02:16 PM

Untuk mengendalikan ralat sambungan pangkalan data dalam PHP, anda boleh menggunakan langkah berikut: Gunakan mysqli_connect_errno() untuk mendapatkan kod ralat. Gunakan mysqli_connect_error() untuk mendapatkan mesej ralat. Dengan menangkap dan mengelog mesej ralat ini, isu sambungan pangkalan data boleh dikenal pasti dan diselesaikan dengan mudah, memastikan kelancaran aplikasi anda.

Tutorial terperinci tentang mewujudkan sambungan pangkalan data menggunakan MySQLi dalam PHP Tutorial terperinci tentang mewujudkan sambungan pangkalan data menggunakan MySQLi dalam PHP Jun 04, 2024 pm 01:42 PM

Cara menggunakan MySQLi untuk mewujudkan sambungan pangkalan data dalam PHP: Sertakan sambungan MySQLi (require_once) Cipta fungsi sambungan (functionconnect_to_db) Fungsi sambungan panggilan ($conn=connect_to_db()) Laksanakan pertanyaan ($result=$conn->query()) Tutup sambungan ( $conn->close())

Model 70B menjana 1,000 token dalam beberapa saat, penulisan semula kod mengatasi GPT-4o, daripada pasukan Kursor, artifak kod yang dilaburkan oleh OpenAI Model 70B menjana 1,000 token dalam beberapa saat, penulisan semula kod mengatasi GPT-4o, daripada pasukan Kursor, artifak kod yang dilaburkan oleh OpenAI Jun 13, 2024 pm 03:47 PM

Model 70B, 1000 token boleh dijana dalam beberapa saat, yang diterjemahkan kepada hampir 4000 aksara! Para penyelidik memperhalusi Llama3 dan memperkenalkan algoritma pecutan Berbanding dengan versi asli, kelajuannya adalah 13 kali lebih pantas! Bukan sahaja ia pantas, prestasinya pada tugas menulis semula kod malah mengatasi GPT-4o. Pencapaian ini datang dari mana-mana, pasukan di belakang Kursor artifak pengaturcaraan AI yang popular, dan OpenAI turut mengambil bahagian dalam pelaburan. Anda mesti tahu bahawa pada Groq, rangka kerja pecutan inferens pantas yang terkenal, kelajuan inferens 70BLlama3 hanyalah lebih daripada 300 token sesaat. Dengan kelajuan Kursor, boleh dikatakan bahawa ia mencapai penyuntingan fail kod lengkap hampir serta-merta. Sesetengah orang memanggilnya lelaki yang baik, jika anda meletakkan Curs

Bagaimana untuk mendapatkan semula rantaian mata wang maya yang salah? Tutorial tentang mendapatkan semula rantaian pemindahan mata wang maya yang salah Bagaimana untuk mendapatkan semula rantaian mata wang maya yang salah? Tutorial tentang mendapatkan semula rantaian pemindahan mata wang maya yang salah Jul 16, 2024 pm 09:02 PM

Peluasan pasaran maya tidak dapat dipisahkan daripada peredaran mata wang maya, dan secara semula jadi ia juga tidak dapat dipisahkan daripada isu pemindahan mata wang maya. Ralat pemindahan biasa ialah ralat salinan alamat, dan ralat lain ialah ralat pemilihan rantai. Pemindahan mata wang maya ke rantaian yang salah masih menjadi masalah yang sukar, tetapi disebabkan oleh operasi pemindahan yang tidak mahir, orang baru sering memindahkan rantaian yang salah Jadi bagaimana untuk memulihkan rantaian mata wang maya yang salah? Pautan yang salah boleh diambil melalui platform pihak ketiga, tetapi ia mungkin tidak berjaya. Seterusnya, editor akan memberitahu anda secara terperinci untuk membantu anda menjaga aset maya anda dengan lebih baik. Bagaimana untuk mendapatkan semula rantaian mata wang maya yang salah? Proses mendapatkan semula mata wang maya yang dipindahkan ke rantaian yang salah mungkin rumit dan mencabar, tetapi dengan mengesahkan butiran pemindahan, menghubungi bursa atau pembekal dompet, mengimport kunci peribadi ke dompet yang serasi dan menggunakan alat jambatan rantai silang

China Mobile: Kemanusiaan memasuki revolusi perindustrian keempat dan secara rasmi mengumumkan 'tiga rancangan' China Mobile: Kemanusiaan memasuki revolusi perindustrian keempat dan secara rasmi mengumumkan 'tiga rancangan' Jun 27, 2024 am 10:29 AM

Menurut berita pada 26 Jun, pada majlis perasmian Persidangan Komunikasi Mudah Alih Dunia 2024 Shanghai (MWC Shanghai), Pengerusi Mudah Alih China Yang Jie menyampaikan ucapan. Beliau berkata, pada masa ini, masyarakat manusia memasuki revolusi industri keempat, yang dikuasai oleh maklumat dan sangat bersepadu dengan maklumat dan tenaga, iaitu "revolusi kecerdasan digital", dan pembentukan kuasa produktif baru semakin pesat. Yang Jie percaya bahawa daripada "revolusi mekanisasi" yang digerakkan oleh enjin wap, kepada "revolusi elektrifikasi" yang didorong oleh elektrik dan enjin pembakaran dalaman, kepada "revolusi maklumat" yang didorong oleh komputer dan Internet, setiap pusingan revolusi perindustrian adalah berdasarkan "maklumat dan "Tenaga" adalah barisan utama, membawa pembangunan produktiviti

Bagaimana untuk menyimpan data JSON ke pangkalan data di Golang? Bagaimana untuk menyimpan data JSON ke pangkalan data di Golang? Jun 06, 2024 am 11:24 AM

Data JSON boleh disimpan ke dalam pangkalan data MySQL dengan menggunakan perpustakaan gjson atau fungsi json.Unmarshal. Pustaka gjson menyediakan kaedah kemudahan untuk menghuraikan medan JSON dan fungsi json.Unmarshal memerlukan penuding jenis sasaran kepada data JSON unmarshal. Kedua-dua kaedah memerlukan penyediaan pernyataan SQL dan melaksanakan operasi sisipan untuk mengekalkan data ke dalam pangkalan data.

See all articles