Oracle 10g数据文件的收缩与数据对象跨表空间的迁移
1.Oracle10g数据库文件的收缩: 1.1 问题: 一个数据库里面有上百万条数据,使用Delete语句删除大部分数据后,数据库文件所
1.Oracle10g数据库文件的收缩:
1.1 问题:
一个数据库里面有上百万条数据,使用Delete语句删除大部分数据后,数据库文件所占空间并不会缩小释放多余的空间。
如使用RESIZE语句对数据文件大小做调整,如下:
>ALTER DATABASE DATAFILE 'D:/Oracle10g/oradata/ORDB/NEWDB.ORA' RESIZE 100M;
则会报一个错误:ORA-03297: 文件包含在请求的 RESIZE 值以外使用的数据。
这主要涉及到Oracle的逻辑存储和段空间管理以及数据库块中的数据分布。
Oralce有一个High Water Mark(高水位线),它表示Oracle对象使用空间最高水位线。
当插入了数据以后,HWM就会上涨;Delete语句删除数据后,HWH并没有降低。
HWH数据库块分布在调整范围之外,此时使用RESIZE命令会报错。
1.2 方法:
网上查到资料说通过Move Tablespace移动表和索引后,可以重置表的HWH,然后再使用Resize就可以缩减数据库文件。
但我在Oracle10g中尝试多次,都没有成功。另外,数据库如果有Long型的字段,是不能使用Move命令的。
好在是Oracle10g,有shrink! :)
Shrink的语法如下:
--------------------
alter table
alter table
说明:收缩表,移动块中数据位置到一起,但 High Water Mark 保持不变
alter table
说明:收缩表,降低 High Water Mark
alter table
说明:收缩表,降低 High Water Mark,并且把相关索引也收缩一下。
alter index idxname shrink space;
说明:回缩索引
--------------------
1.3 操作:
对所有表空间中的所有表执行一次shrink命令,需要根据shrink语法,构造shrink命令。
此时,为了构建shrink命令,可以使用如下SQL语句来查询表空间数据库文件的File_ID:
---------------------
select * from dba_data_files;
---------------------
另外,在执行shrink前,必须开启数据表的行迁移功能,SQL语句如下:
---------------------
alter table Tbl_Name enable row movement;
---------------------
注意:该SQL语句会造成引用表Tbl_Name的对象(如存储过程、包、视图等)变为无效,后续需要重新编译一次确认是否有效。
构造shrink命令,建立create_shrink.sql文件,其内容如下:
-------------------
set heading off;
set echo off;
set feedback off;
set termout on;
spool c:/shrink.sql;
select 'alter table THAMS.'|| table_name || ' enable row movement; ' from user_tables where tablespace_name='THAMS';
select 'alter table THAMS.'|| table_name || ' shrink space CASCADE;' from user_tables where tablespace_name='THAMS';
select 'alter index THAMS.'|| segment_name || ' shrink space;' from dba_extents where segment_type='INDEX' and file_id=14;
spool off;
-------------------
以表空间的默认用户THAMS登录数据库,,成功执行create_shrink.sql后,得到shrink.sql文件。
以sys/system身份登录数据库,执行shrink.sql文件后,在OEMC中查看表空间,会发现数据库表空间的“已使用”比例大大下降。
此时,再经过EXP/IMP后,会得到一个占用空间很小的数据库文件。

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.
