AMDU-- ASM文件转移工具
近日遇到一个问题,就是ASMdiskgroup无法挂载,通过分析之后,发现有会快存在,但是由于没有备份,没有办法重建diskgroup并从backup恢复--所以所以所以....备份
近日遇到一个问题,就是ASM diskgroup无法挂载,通过分析之后,发现有会快存在,,但是由于没有备份,没有办法重建diskgroup并从backup恢复--所以所以所以....备份很重要啊!不然,哭!!是早晚的事情!
通过解决这个问题,我在自己的测试环境测试了如何在ASM diskgroup无法mount的情况下,尽量挽救数据文件。
这里使用到oracle 工具AMDU,该具体信息可以参考AMDU functionality and usage (Doc ID 855791.1)
1. 由于diskgroup无法挂载,SPFILE、CONTROLFILE、DATAFILE都无法读取
根据步骤,我们首先需要恢复spfile文件,spfile文件存在的意义就是找到control_files的位置,如果spfile无法访问,需要查找备份。
SQL> show parameter control_files +DATA/db/controlfile/current.260.804295233, +FRA/db/controlfile/current.256.804295237
2. 通过ASM实例找到asm_diskstring
SQL> show parameter disk NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ asm_diskgroups string DATA, FRA asm_diskstring string /dev/sd*
3. 查找asm disk的路径,后续要指定diskstring来扫描磁盘
SQL> select NAME,STATE,TYPE,OFFLINE_DISKS,VOTING_FILES from v$asm_diskgroup; SQL> col PATH for a50 SQL> col name for a10 SQL> set line 200 SQL> select DISK_NUMBER,GROUP_NUMBER,PATH,name from v$asm_disk; DISK_NUMBER GROUP_NUMBER PATH NAME ----------- ------------ -------------------------------------------------- ---------- 1 2 /dev/oracleasm/disks/ASMDISK5 FRA_0001 0 2 /dev/oracleasm/disks/ASMDISK4 FRA_0000 2 1 /dev/oracleasm/disks/ASMDISK3 DATA_0002 DISK_NUMBER GROUP_NUMBER PATH NAME ----------- ------------ -------------------------------------------------- ---------- 1 1 /dev/oracleasm/disks/ASMDISK2 DATA_0001 0 1 /dev/oracleasm/disks/ASMDISK1 DATA_0000
4. 在diskgroup mount状态,是不能使用amdu导出文件的
执行amdu命令开始导出,遇到错误
$ amdu -diskstring '/dev/oracleasm/disks/ASMDISK*' -extract data.260 amdu_2013_07_03_17_29_13/ AMDU-00204: Disk N0005 is in currently mounted diskgroup DATA AMDU-00201: Disk N0005: '/dev/oracleasm/disks/ASMDISK1'
检查发现磁盘组mount
$ crsctl status res -t -------------------------------------------------------------------------------- NAME TARGET STATE SERVER STATE_DETAILS -------------------------------------------------------------------------------- ora.DATA.dg ONLINE ONLINE single-db ora.FRA.dg ONLINE ONLINE single-db
5. 导出控制文件
$ amdu -diskstring '/dev/oracleasm/disks/ASMDISK*' -extract data.260 amdu_2013_07_03_17_46_07/ [oracle@Single-DB amdu]$ cd amdu_2013_07_03_17_46_07/ [oracle@Single-DB amdu_2013_07_03_17_46_07]$ ls DATA_260.f report.txt
6. 尝试挂载control file
发现spfile也存放在磁盘组中无法nomount
$ sqlplus / as sysdba SQL> startup nomount; ORA-01078: failure in processing system parameters ORA-01565: error in identifying file '+DATA/db/spfiledb.ora' ORA-17503: ksfdopn:2 Failed to open file +DATA/db/spfiledb.ora ORA-15056: additional error message ORA-17503: ksfdopn:DGOpenFile05 Failed to open file +DATA/db/spfiledb.ora ORA-17503: ksfdopn:2 Failed to open file +DATA/db/spfiledb.ora ORA-15001: diskgroup "DATA" does not exist or is not mounted ORA-06512: at line 4
7. 那就编辑一个新的pfile文件
$ cp init.ora spfilebk.ora $ vi spfilebk.ora ~~~~~~~~~~~~~~~ db_name='DB' sga_target=1G processes = 150 audit_trail ='db' db_block_size=8192 db_domain='' db_recovery_file_dest_size=2G open_cursors=300 remote_login_passwordfile='EXCLUSIVE' undo_tablespace='UNDOTBS1' control_files = /u01/amdu/amdu_2013_07_03_17_46_07/DATA_260.f compatible ='11.2.0' ~~~~~~~~~~~~~~~
8. 通过导出的控制文件启动数据库到mount模式,成功启动,说明AMDU导出的数据时正确的,继续。。。。。
$ sqlplus / as sysdba SQL> startup nomount pfile='/u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfilebk.ora'; ORACLE instance started. Total System Global Area 1068937216 bytes Fixed Size 2220200 bytes Variable Size 281022296 bytes Database Buffers 780140544 bytes Redo Buffers 5554176 bytes SQL> alter database mount; Database altered.
9. 查看数据文件的位置,然后一一导出
SQL> select name from v$datafile; NAME -------------------------------------------------------------------------------- +DATA/db/datafile/system.256.804295135 +DATA/db/datafile/sysaux.257.804295137 +DATA/db/datafile/undotbs1.258.804295139 +DATA/db/datafile/users.259.804295141 $ amdu -diskstring '/dev/oracleasm/disks/ASMDISK*' -extract data.256
10. 重命名数据文件,并移动到同一个目录下,准备挂载数据文件
$ mv amdu_2013_07_03_18_12_56/DATA_257.f sysaux.257.804295137 $ mv amdu_2013_07_03_18_22_23/DATA_259.f users.259.804295141 $ mv amdu_2013_07_03_18_23_06/DATA_258.f undotbs1.258.804295139 $ ll -rw-r--r-- 1 oracle dba 545267712 Jul 3 18:14 sysaux.257.804295137 -rw-r--r-- 1 oracle dba 702554112 Jul 3 18:11 system.256.804295135 -rw-r--r-- 1 oracle dba 99622912 Jul 3 18:23 undotbs1.258.804295139 -rw-r--r-- 1 oracle dba 5251072 Jul 3 18:22 users.259.804295141
11. 挂载前需要修改pfile文件,下面是open数据库是control file如何识别不同路径的datafile, 我使用convert参数来解决(也可以是用set newname的方式)
db_file_name_convert='+DATA/db/datafile','/u01/amdu/amdu_datafile'
添加完pfile,启动数据库,最终成功启动数据库

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

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

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Pengimbasan jadual penuh mungkin lebih cepat dalam MySQL daripada menggunakan indeks. Kes -kes tertentu termasuk: 1) jumlah data adalah kecil; 2) apabila pertanyaan mengembalikan sejumlah besar data; 3) Apabila lajur indeks tidak selektif; 4) Apabila pertanyaan kompleks. Dengan menganalisis rancangan pertanyaan, mengoptimumkan indeks, mengelakkan lebih banyak indeks dan tetap mengekalkan jadual, anda boleh membuat pilihan terbaik dalam aplikasi praktikal.

Keupayaan carian teks penuh InnoDB sangat kuat, yang dapat meningkatkan kecekapan pertanyaan pangkalan data dan keupayaan untuk memproses sejumlah besar data teks. 1) InnoDB melaksanakan carian teks penuh melalui pengindeksan terbalik, menyokong pertanyaan carian asas dan maju. 2) Gunakan perlawanan dan terhadap kata kunci untuk mencari, menyokong mod boolean dan carian frasa. 3) Kaedah pengoptimuman termasuk menggunakan teknologi segmentasi perkataan, membina semula indeks dan menyesuaikan saiz cache untuk meningkatkan prestasi dan ketepatan.

Ya, MySQL boleh dipasang pada Windows 7, dan walaupun Microsoft telah berhenti menyokong Windows 7, MySQL masih serasi dengannya. Walau bagaimanapun, perkara berikut harus diperhatikan semasa proses pemasangan: Muat turun pemasang MySQL untuk Windows. Pilih versi MySQL yang sesuai (komuniti atau perusahaan). Pilih direktori pemasangan yang sesuai dan set aksara semasa proses pemasangan. Tetapkan kata laluan pengguna root dan simpan dengan betul. Sambung ke pangkalan data untuk ujian. Perhatikan isu keserasian dan keselamatan pada Windows 7, dan disyorkan untuk menaik taraf ke sistem operasi yang disokong.

MySQL adalah sistem pengurusan pangkalan data sumber terbuka. 1) Buat Pangkalan Data dan Jadual: Gunakan perintah Createdatabase dan Createtable. 2) Operasi Asas: Masukkan, Kemas kini, Padam dan Pilih. 3) Operasi lanjutan: Sertai, subquery dan pemprosesan transaksi. 4) Kemahiran Debugging: Semak sintaks, jenis data dan keizinan. 5) Cadangan Pengoptimuman: Gunakan indeks, elakkan pilih* dan gunakan transaksi.

Perbezaan antara indeks clustered dan indeks bukan cluster adalah: 1. Klustered Index menyimpan baris data dalam struktur indeks, yang sesuai untuk pertanyaan oleh kunci dan julat utama. 2. Indeks Indeks yang tidak berkumpul indeks nilai utama dan penunjuk kepada baris data, dan sesuai untuk pertanyaan lajur utama bukan utama.

MySQL dan Mariadb boleh wujud bersama, tetapi perlu dikonfigurasikan dengan berhati -hati. Kuncinya adalah untuk memperuntukkan nombor port dan direktori data yang berbeza untuk setiap pangkalan data, dan menyesuaikan parameter seperti peruntukan memori dan saiz cache. Konfigurasi sambungan, konfigurasi aplikasi, dan perbezaan versi juga perlu dipertimbangkan dan perlu diuji dengan teliti dan dirancang untuk mengelakkan perangkap. Menjalankan dua pangkalan data secara serentak boleh menyebabkan masalah prestasi dalam situasi di mana sumber terhad.

Dalam pangkalan data MySQL, hubungan antara pengguna dan pangkalan data ditakrifkan oleh kebenaran dan jadual. Pengguna mempunyai nama pengguna dan kata laluan untuk mengakses pangkalan data. Kebenaran diberikan melalui perintah geran, sementara jadual dibuat oleh perintah membuat jadual. Untuk mewujudkan hubungan antara pengguna dan pangkalan data, anda perlu membuat pangkalan data, membuat pengguna, dan kemudian memberikan kebenaran.

MySQL menyokong empat jenis indeks: B-Tree, Hash, Full-Text, dan Spatial. 1. B-Tree Index sesuai untuk carian nilai yang sama, pertanyaan dan penyortiran. 2. Indeks hash sesuai untuk carian nilai yang sama, tetapi tidak menyokong pertanyaan dan penyortiran pelbagai. 3. Indeks teks penuh digunakan untuk carian teks penuh dan sesuai untuk memproses sejumlah besar data teks. 4. Indeks spatial digunakan untuk pertanyaan data geospatial dan sesuai untuk aplikasi GIS.
