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');

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Go 언어는 효율적이고 간결하며 배우기 쉬운 프로그래밍 언어입니다. 동시 프로그래밍과 네트워크 프로그래밍의 장점 때문에 개발자들이 선호합니다. 실제 개발에서 데이터베이스 작업은 필수적인 부분입니다. 이 기사에서는 Go 언어를 사용하여 데이터베이스 추가, 삭제, 수정 및 쿼리 작업을 구현하는 방법을 소개합니다. Go 언어에서는 일반적으로 사용되는 SQL 패키지, Gorm 등과 같은 타사 라이브러리를 사용하여 데이터베이스를 운영합니다. 여기서는 sql 패키지를 예로 들어 데이터베이스의 추가, 삭제, 수정 및 쿼리 작업을 구현하는 방법을 소개합니다. MySQL 데이터베이스를 사용하고 있다고 가정합니다.

MySQLi를 사용하여 PHP에서 데이터베이스 연결을 설정하는 방법: MySQLi 확장 포함(require_once) 연결 함수 생성(functionconnect_to_db) 연결 함수 호출($conn=connect_to_db()) 쿼리 실행($result=$conn->query()) 닫기 연결( $conn->close())

Hibernate 다형성 매핑은 상속된 클래스를 데이터베이스에 매핑할 수 있으며 다음 매핑 유형을 제공합니다. Join-subclass: 상위 클래스의 모든 열을 포함하여 하위 클래스에 대한 별도의 테이블을 생성합니다. 클래스별 테이블: 하위 클래스별 열만 포함하는 하위 클래스에 대한 별도의 테이블을 만듭니다. Union-subclass: Joined-subclass와 유사하지만 상위 클래스 테이블이 모든 하위 클래스 열을 통합합니다.

Apple의 최신 iOS18, iPadOS18 및 macOS Sequoia 시스템 릴리스에는 사진 애플리케이션에 중요한 기능이 추가되었습니다. 이 기능은 사용자가 다양한 이유로 손실되거나 손상된 사진과 비디오를 쉽게 복구할 수 있도록 설계되었습니다. 새로운 기능에는 사진 앱의 도구 섹션에 '복구됨'이라는 앨범이 도입되었습니다. 이 앨범은 사용자가 기기에 사진 라이브러리에 포함되지 않은 사진이나 비디오를 가지고 있을 때 자동으로 나타납니다. "복구된" 앨범의 출현은 데이터베이스 손상으로 인해 손실된 사진과 비디오, 사진 라이브러리에 올바르게 저장되지 않은 카메라 응용 프로그램 또는 사진 라이브러리를 관리하는 타사 응용 프로그램에 대한 솔루션을 제공합니다. 사용자는 몇 가지 간단한 단계만 거치면 됩니다.

HTML은 데이터베이스를 직접 읽을 수 없지만 JavaScript 및 AJAX를 통해 읽을 수 있습니다. 단계에는 데이터베이스 연결 설정, 쿼리 보내기, 응답 처리 및 페이지 업데이트가 포함됩니다. 이 기사에서는 JavaScript, AJAX 및 PHP를 사용하여 MySQL 데이터베이스에서 데이터를 읽는 실제 예제를 제공하고 쿼리 결과를 HTML 페이지에 동적으로 표시하는 방법을 보여줍니다. 이 예제에서는 XMLHttpRequest를 사용하여 데이터베이스 연결을 설정하고 쿼리를 보내고 응답을 처리함으로써 페이지 요소에 데이터를 채우고 데이터베이스를 읽는 HTML 기능을 실현합니다.

MySQL 데이터베이스 관리 시스템의 기본 원리 분석 MySQL은 데이터 저장 및 관리를 위해 구조화된 쿼리 언어(SQL)를 사용하는 일반적으로 사용되는 관계형 데이터베이스 관리 시스템입니다. 이 글에서는 데이터베이스 생성, 데이터 테이블 설계, 데이터 추가, 삭제, 수정 및 쿼리 등을 포함한 MySQL 데이터베이스 관리 시스템의 기본 원리를 소개하고 구체적인 코드 예제를 제공합니다. 1. 데이터베이스 생성 MySQL에서는 먼저 데이터를 저장할 데이터베이스 인스턴스를 생성해야 합니다. 다음 코드는 "my

PHP는 웹사이트 개발에 널리 사용되는 백엔드 프로그래밍 언어로, 강력한 데이터베이스 운영 기능을 갖추고 있으며 MySQL과 같은 데이터베이스와 상호 작용하는 데 자주 사용됩니다. 그러나 한자 인코딩의 복잡성으로 인해 데이터베이스에서 잘못된 한자를 처리할 때 문제가 자주 발생합니다. 이 기사에서는 잘못된 문자의 일반적인 원인, 솔루션 및 특정 코드 예제를 포함하여 데이터베이스에서 중국어 잘못된 문자를 처리하기 위한 PHP의 기술과 사례를 소개합니다. 문자가 왜곡되는 일반적인 이유는 잘못된 데이터베이스 문자 집합 설정 때문입니다. 데이터베이스를 생성할 때 utf8 또는 u와 같은 올바른 문자 집합을 선택해야 합니다.

GoWebSocket을 데이터베이스와 통합하는 방법: 데이터베이스 연결 설정: 데이터베이스/sql 패키지를 사용하여 데이터베이스에 연결합니다. WebSocket 메시지를 데이터베이스에 저장: INSERT 문을 사용하여 데이터베이스에 메시지를 삽입합니다. 데이터베이스에서 WebSocket 메시지 검색: SELECT 문을 사용하여 데이터베이스에서 메시지를 검색합니다.
