Oracle 10g 闪回
一、闪回数据库 flashback database1、可以处理的场景:1)误删用户2)truncate table3)多表数据发生混乱2、闪回数据库条件1)数
一、闪回数据库 flashback database
1、可以处理的场景:
1)误删用户
2)truncate table
3)多表数据发生混乱
2、闪回数据库条件
1)数据库配置为归档模式
2)配置了闪回恢复区(FRA:flash recovery area)
SQL>show parameter db_recovery_file; ------包括路径和使用空间大小
3)配置闪回保留时间
SQL>show parameter db_flashback_retention_target; -------注意:单位是分钟 如:1440 = 24小时
SQL>alter system set db_flashback_retention_target = 1440;
4)启动闪回数据库
在数据库是mount状态下,执行命令
SQL>alter database flashback on;
SQL>alter database flashback on; ----注意:一旦关闭闪回数据库,,FRA日志全部自动删除
例子:
SQL>shutdown immediate;
SQL>startup mount exclusive;
SQL>flashback database to timestamp to_date('20091201201030','yyyymmddhh24miss');
恢复到某个时间点上后,read only 打开数据库确认后,再重启动数据库,并以resetlogs 方式打开数据库,保证闪回日志存在,以便再次闪回。
SQL>alter database open read only;
SQL>select * from .... ----确认恢复的数据
SQL>shutdown immediate;
SQL>startup mount;
SQL>alter database open resetlogs;
闪回是根据闪回日志来恢复的,也可以根据闪回日志的SCN号进行闪回。
SQL>flashback database to scn 4879890;
另外,可以用RMAN进行闪回操作,数据库启动到mount状态
[Oracle@book ~]$ export NLS_LANG=american_america
[oracle@book ~]$ export NLS_DATE_FORMAT='yyyymmddhh24miss'
[oracle@book ~]$ rman target /
RAMN> flashback database to time='20091201203010';
或RMAN> flashback database to time='20091201203010';
注意:可以在v$flashback_database_log 相关的闪回信息。
estimated_flashback_size:根据当前产生的闪回日志速度,db_flashback_retention_target时间长度,大概需要产生多少日志。
flashback_size:当前闪回日志占用多少字节的空间
oldest_flashback_scn:当前能闪回最多能闪回到的scn
oldest_flashback_time:当前能闪回最多的时间点
为了避免闪回日志因为空间或其他原因而被自动删除,无法闪回到指定时间点,可以在某个时间点先创建 restore point
SQL>create restore point wuxzh_001 guarantee flashback database;
一旦后续处理失败,可以闪回到操作之前的时间点。
二、闪回删除 flashback drop
1、drop table 实际没有完全删除,而是改名,存放在回收站(recycle bin),对应的触发器、索引等一起进入recycle bin。
通过 dba_recyclebin 或 user_recyclebin 可以查到被删除的对象。
show recyclebin 命令也可以看到当前用户变删除表的信息。
SQL>show recyclebin;
oracle 使用空间规则:使用表空间里不属于回收站的对象所占用的可用空间,释放回收站所占用的空间(先释放最老的对象),对数据文件扩展(定义了自动扩展)。
一旦回收站被释放,就无法闪回。
2、闪回语句:
SQL>flashback table t to before drop;
SQL>flashback table t to before drop rename to t_new; --闪回并改名字
闪回后索引并行重建
如果一个表建多次,并drop多次。recycle bin 有多条记录,闪回时,按照“先进后出(FILO)”方式来闪回表。
另外也可以根据recyclebin里显示的表面进行闪回。
SQL>flashback table "FSFASnFMMFDmfd==$0" to before drop; ---含有特殊符号,使用双引号。
如果无法确定表名,使用下面语句确认
SQL>desc "FSFASnFMMFDmfd==$0";
SQL>select count(*) from "FSFASnFMMFDmfd==$0";
3、被删除的对象的空间回收
1)自动回收
oracle 使用空间规则:使用表空间里不属于回收站的对象所占用的可用空间,释放回收站所占用的空间(先释放最老的对象),对数据文件扩展(定义了自动扩展)。
一旦回收站被释放,就无法闪回。
2)手工回收
SQL>purge table t; --回收已经删除的表t,如果有多个,只回收最早删除的表。
SQL>purge index idx_t;
SQL>purge tablespace users; --清除回收站里属于users表空间的对象所占用的空间
SQL>purge user_recyclebin; --清除回收站里属于当前用户的所有对象所占用的空间
SQL>purge dba_recyclebin; --清除回收站里属于所有对象所占用的空间
以下语句无法闪回
SQL>drop table t purge;
SQL>drop user wuxzh cascade constraints;
SQL>drop tablespace users including contents;
三、闪回表 flashback table
1、闪回表利用的是undo表空间里记录的数据被改变前的值。
如果保留时间超过undo_retention所指定的值,导致数据被其他事务覆盖,则无法闪回。
2、闪回后可能数据在数据库存储的转移,闪回前,必须启动数据行的转移特性。
SQL>alter table t enable row movement;
3、闪回
SQL>delete table t;
SQL>commit;
SQL>flashback table to timestamp to_date('20091201203010','yyyymmddhh24miss');
可以不断修改闪回时间,是闪回结果符合要求。
注意:如果表做个DDL操作,则无法闪回,另外sys下的表是不能闪回的。
四、闪回版本查询 flashback version query
1、所谓版本,就是每次事务引起的数据行的变化情况,每次变化就是一个版本。
2、查看versions 表确定对应的事务。
3、闪回版本查询不支持外部表、临时表、X$表(动态性能视图的基表)以及视图。
五、闪回事务查询 flashback transaction query
1、闪回视图查询指的是一个视图 : flashback_transaction_query
同时,也是一个诊断工具,用于确定哪些事务引起的数据的变化,并且提供了撤销事务的SQL语句。
2、闪回事务查询利用的是undo表空间里的undo数据。
3.可以把闪回版本查询和闪回事务查询结合起来,通过闪回版本查询查到事务的ID,再利用闪回事务查询,找到对应的undo sql。
六、闪回查询 flashback query
SQL>select * from t as of timestamp to_date('20091201203010','yyyymmddhh24miss');
SQL>select * from t as of timestamp to_timestamp('20091201203010','yyyymmddhh24miss');
SQL>create table t_bak as select * from t as of timestamp to_date('20091201203010','yyyymmddhh24miss');

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



Bahasa Go ialah bahasa pengaturcaraan yang cekap, ringkas dan mudah dipelajari Ia digemari oleh pembangun kerana kelebihannya dalam pengaturcaraan serentak dan pengaturcaraan rangkaian. Dalam pembangunan sebenar, operasi pangkalan data adalah bahagian yang sangat diperlukan Artikel ini akan memperkenalkan cara menggunakan bahasa Go untuk melaksanakan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan pangkalan data. Dalam bahasa Go, kami biasanya menggunakan perpustakaan pihak ketiga untuk mengendalikan pangkalan data, seperti pakej sql yang biasa digunakan, gorm, dsb. Di sini kami mengambil pakej sql sebagai contoh untuk memperkenalkan cara melaksanakan operasi penambahan, pemadaman, pengubahsuaian dan pertanyaan pangkalan data. Andaikan kami menggunakan pangkalan data MySQL.

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

Pemetaan polimorfik hibernate boleh memetakan kelas yang diwarisi ke pangkalan data dan menyediakan jenis pemetaan berikut: subkelas bercantum: Cipta jadual berasingan untuk subkelas, termasuk semua lajur kelas induk. table-per-class: Cipta jadual berasingan untuk subkelas, yang mengandungi hanya lajur khusus subkelas. union-subclass: serupa dengan joined-subclass, tetapi jadual kelas induk menggabungkan semua lajur subclass.

HTML tidak boleh membaca pangkalan data secara langsung, tetapi ia boleh dicapai melalui JavaScript dan AJAX. Langkah-langkah termasuk mewujudkan sambungan pangkalan data, menghantar pertanyaan, memproses respons dan mengemas kini halaman. Artikel ini menyediakan contoh praktikal menggunakan JavaScript, AJAX dan PHP untuk membaca data daripada pangkalan data MySQL, menunjukkan cara untuk memaparkan hasil pertanyaan secara dinamik dalam halaman HTML. Contoh ini menggunakan XMLHttpRequest untuk mewujudkan sambungan pangkalan data, menghantar pertanyaan dan memproses respons, dengan itu mengisi data ke dalam elemen halaman dan merealisasikan fungsi HTML membaca pangkalan data.

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())

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.

PHP ialah bahasa pengaturcaraan bahagian belakang yang digunakan secara meluas dalam pembangunan laman web Ia mempunyai fungsi operasi pangkalan data yang kuat dan sering digunakan untuk berinteraksi dengan pangkalan data seperti MySQL. Walau bagaimanapun, disebabkan kerumitan pengekodan aksara Cina, masalah sering timbul apabila berurusan dengan aksara Cina bercelaru dalam pangkalan data. Artikel ini akan memperkenalkan kemahiran dan amalan PHP dalam mengendalikan aksara bercelaru bahasa Cina dalam pangkalan data, termasuk punca biasa aksara bercelaru, penyelesaian dan contoh kod khusus. Sebab biasa aksara bercelaru ialah tetapan set aksara pangkalan data yang salah: set aksara yang betul perlu dipilih semasa mencipta pangkalan data, seperti utf8 atau u

Menggunakan fungsi panggil balik pangkalan data di Golang boleh mencapai: melaksanakan kod tersuai selepas operasi pangkalan data yang ditentukan selesai. Tambah tingkah laku tersuai melalui fungsi berasingan tanpa menulis kod tambahan. Fungsi panggil balik tersedia untuk operasi memasukkan, mengemas kini, memadam dan pertanyaan. Anda mesti menggunakan fungsi sql.Exec, sql.QueryRow atau sql.Query untuk menggunakan fungsi panggil balik.
