oracle闪回技术
在oracle9i中引入了flashback查询,flashbackquery实际上是利用UNDO信息来获得过去的数据。由于UNDO空间是循环使用的,事务的前映像不可能永久保存,因此..
在oracle 9i中引入了flashback查询,flashback query实际上是利用UNDO信息来获得过去的数据。由于UNDO空间是循环使用的,事务的前映像不可能永久保存,因此flashback query只能支持过去一段时间内的数据查询,这个时间与undo_retention相关,undo_retention默认设置900s
下面我们来看下flashback查询恢复数据的例子:
1、创建用户fly SQL> create user fly identified by fly; User created. SQL> grant dba,connect,resource to fly; Grant succeeded. 2、创建表和索引 SQL> conn fly/fly Connected. SQL> create table fly as select * from dba_objects; Table created. SQL> create index idx_fly on fly(object_id); Index created. SQL> select count(1) from fly; COUNT(1) ---------- 78193 3、更改会话时间显示格式 SQL> alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; Session altered. SQL> select sysdate from dual; SYSDATE ------------------- 2013-12-05 21:19:52 4、假设误删除删除数据并提交了,如下所示: SQL> delete from fly where rownum commit; Commit complete. 5、可考虑如下方法恢复数据,优先使用flashback 5.1 flashback 5.2 imp/impdp 5.3 rman 5.4 logminer 6、通过flashback技术来闪回查询表被删除前的时间点的数据,并保存为一张临时表 SQL> create table fly_tmp_1205 as select * from fly as of timestamp to_timestamp('2013-12-05 21:19:52','yyyy-mm-dd hh24:mi:ss'); Table created. SQL> select count(*) from fly_tmp_1205; COUNT(*) ---------- 78193 如果只是大概记得是几分钟前被delete的,假设当前时间数据被删除了11分钟左右的话: SQL> select count(1) from fly as of timestamp sysdate-11/1440; COUNT(1) ---------- 78193 在Oracle 10g中,增强了闪回查询功能,并且提供了将整个数据库回退到过去某个时刻的能力,这个功能
是通过flashback log实现的。flashback log有点类似redo log,只不过redo log将数据库往前滚,flashback log
则将数据库往后滚。为了保存管理和备份恢复相关的文件,oracle10g提供了一个叫做闪回恢复,这个区域默认创建在ORACLE_BASE目录下。可以将所有恢复相关的文件,比如flashback log,archive log,
backup set等,放到这个区域集中管理。
到了Oracle 11g,闪回又出了一个新特性:Oracle Flashback Data Archive. FDA通过将变化数据存储到另外创建的闪回归档区(Flashback Archive)中,和undo区别开来,这样就可以为闪回归档区单独设置存储策略,也可以闪回到指定时间之前的旧数据而不影响undo策略,就是减少对undo的依赖性。 因为在一个很忙的系统,undo保
存的时间是很有限的。 但通过FDA,我们就要灵活很多了。
Flashback技术可以细分以下4种:
Flashback Database,需要开启闪回功能,默认不开启闪回功能,生产库一般不开启闪回功能
Flashback Drop,需要开启回收站,默认开启
Flashback Query(分Flashback Query, Flashback Version Query, Flashback Transaction Query 三种), 基于undo信息
Flashback Table。 用的不多,其原理也是基于undo信息,一般恢复数据使用flashback query来代替flashback table
从Oracle 10g开始,在一些动态性能视图里面,如 V$CONTROLFILE, V$LOGFILE, V$ARCHIVED_LOG, V$DATAFILE_COPY 等都新增加了一列:IS_RECOVERY_DEST_FILE ,指明相关的文件是否在恢复区内。
SQL> select recid,is_recovery_dest_file from v$archived_log where recid 1、设置flashback recovery area参数闪回恢复区主要通过3个初始化参数来设置和管理:
db_recovery_file_dest:指定闪回恢复区的位置
db_recovery_file_dest_size:指定闪回恢复区的可用空间大小
db_flashback_retention_target:指定数据库可以回退的时间,单位为分钟,默认1440分钟,也就是一天。
当然,实际上可回退的时间还决定于闪回恢复区的大小,因为里面保存了回退所需要的flash log。所以这个
参数要和db_recovery_file_dest_size配合修改。SQL> show parameter db_recovery NAME TYPE VALUE ----------------------------------------------------------------------------- db_recovery_file_dest string /home/oracle/flash_recovery_area db_recovery_file_dest_size big integer 2G SQL> alter system set db_recovery_file_dest_size=8G scope=both; System altered. SQL> alter system set db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'; System altered. SQL> show parameter db_recovery NAME TYPE VALUE ----------------------------------------------------------------------------- db_recovery_file_dest string /u01/app/oracle/flash_recovery _area db_recovery_file_dest_size big integer 8G
说明:
设置闪回恢复区后,如果没有设置过log_archive_dest_n参数,则归档日志默认是保存到该区域的。我们需要
注意闪回恢复区空间的使用率,如果闪回恢复区满了,就没地方放归档了,数据库会hang住,实际上,oracle是通
过隐式的设置log_archive_dest_10='location=USE_DB_RECOVERY_FILE_DEST'来实现的。多个数据库的闪回恢
复区可以指定到同一个位置,但是db_name不能一样,或者db_unique_name不一样。RAC的闪回恢复区必须位于
共享磁盘上,能被所有实例访问。
2、Flashback Database
2.1、如何启用和禁用Flashback Database
数据库的Flashback Database功能缺省是关闭的,要想启用这个功能,就需要做如下配置。

핫 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를 사용하여 Oracle 데이터베이스에 연결할 때 Oracle 클라이언트를 설치해야합니까? GO에서 개발할 때 Oracle 데이터베이스에 연결하는 것이 일반적인 요구 사항입니다 ...

Oraclepl/SQL의 절차, 기능 및 패키지는 각각 작업, 반환 값 및 구성 코드를 구성하는 데 사용됩니다. 1. 프로세스는 출력 인사와 같은 작업을 수행하는 데 사용됩니다. 2. 함수는 두 숫자의 합계와 같은 값을 계산하고 반환하는 데 사용됩니다. 3. 패키지는 관련 요소를 구성하고 재고를 관리하는 패키지와 같은 코드의 모듈성 및 유지 가능성을 향상시키는 데 사용됩니다.

ERP 소프트웨어를 선택할 때는 먼저 산업, 규모, 예산 및 IT 인프라를 포함한 기업의 요구를 명확히 한 다음 핵심 비즈니스 프로세스에 따라 요구 사항을 충족하는 시스템을 선택하십시오. 일반적인 ERP 시스템에는 다음이 포함됩니다. SAP에는 강력한 기능이지만 비싼 기능을 갖춘 대기업에 적합합니다. Oracle은 포괄적 인 기능을 가지고 있지만 비싸며 대기업에 적합합니다. Odoo는 중소 기업에 적합하며 저렴한 비용과 사용자 정의가 가능합니다. SAAS ERP는 클라우드에 배치되어 주문형 비용을 지불하며 빠르게 개발하는 기업에 적합합니다. 선택하기 전에 시험을 실시하고 전문적인 조언을 문의하며 애프터 판매 서비스에주의를 기울여 가장 적합한 ERP 시스템을 선택해야합니다.

데이터베이스 산 속성에 대한 자세한 설명 산 속성은 데이터베이스 트랜잭션의 신뢰성과 일관성을 보장하기위한 일련의 규칙입니다. 데이터베이스 시스템이 트랜잭션을 처리하는 방법을 정의하고 시스템 충돌, 전원 중단 또는 여러 사용자의 동시 액세스가 발생할 경우에도 데이터 무결성 및 정확성을 보장합니다. 산 속성 개요 원자력 : 트랜잭션은 불가분의 단위로 간주됩니다. 모든 부분이 실패하고 전체 트랜잭션이 롤백되며 데이터베이스는 변경 사항을 유지하지 않습니다. 예를 들어, 은행 송금이 한 계정에서 공제되지만 다른 계정으로 인상되지 않은 경우 전체 작업이 취소됩니다. BeginTransaction; updateAccountssetBalance = Balance-100WH

sqllimit 절 : 쿼리 결과의 행 수를 제어하십시오. SQL의 한계 절은 쿼리에서 반환 된 행 수를 제한하는 데 사용됩니다. 이것은 대규모 데이터 세트, 페이지 진화 디스플레이 및 테스트 데이터를 처리 할 때 매우 유용하며 쿼리 효율성을 효과적으로 향상시킬 수 있습니다. 구문의 기본 구문 : SelectColumn1, Collect2, ... Fromtable_namelimitnumber_of_rows; 번호_of_rows : 반환 된 행 수를 지정하십시오. 오프셋이있는 구문 : SelectColumn1, Column2, ... Fromtable_namelimitOffset, number_of_rows; 오프셋 : skip

기업은 종종 인적 자원 관리 시스템 (HRMS) 업그레이드, 특히 다운 타임 최소화와 같은 시스템 교체에 큰 어려움에 직면 해 있습니다. 이 기사는 실제 HR 서비스 회사가 HRMS 시스템을 데이터 마이그레이션 도구로 원활하게 교체 할 수있는 방법을 설명하기 위해 실제 예제를 사용합니다. 비즈니스 아키텍처 및 요구 사항 회사는 이전 시스템을보다 강력한 새로운 HRMS 시스템으로 대체하는 것을 목표로합니다. 이전 시스템은 직원 계약, 급여, 사회 보장 및 사무실 위치와 같은 정보 관리를 다룹니다. 새로운 시스템은 더 많은 데이터를 처리해야하므로 시스템의 데이터 저장소를 재건해야합니다. 기술 아키텍처 및 데이터 마이그레이션 전략 이전 시스템은 Oracle 데이터베이스를 기반으로하는 반면 새로운 시스템은 MySQL 데이터베이스를 사용합니다. 시스템 교체 중 HR 서비스의 연속성을 보장하고 네트워크를 처리합니다.

SQL*Plus는 Oracle 데이터베이스와 상호 작용하기위한 명령 줄 도구입니다. 주요 기능에는 SQL 문 실행, 데이터 쿼리, 테이블 작성 및 사용자 관리가 포함됩니다. 사용하기 쉽고 크로스 플랫폼 호환성이 있으며 Oracle 데이터베이스에 대한 강력한 액세스를 제공하지만 명령 줄 인터페이스로 제한되며 그래픽 사용자 인터페이스가 부족합니다.

MySQL과 SQL은 쌍둥이가 아닌 형제입니다. SQL은 데이터베이스 쿼리 언어 표준이며 MySQL은 SQL 표준을 따르는 관계형 데이터베이스 관리 시스템 (RDBMS)입니다. SQL은 데이터베이스와 상호 작용하는 규칙을 정의하며 MySQL은 이러한 규칙을 구체적으로 구현하는 것입니다. 표준 SQL 문은 SQL 표준을 준수하는 모든 데이터베이스 시스템에서 실행될 수 있지만 미세 조정이 필요할 수 있습니다. 특정 데이터베이스 시스템에 특정한 함수 및 구문은 MySQL의 load_file () 함수와 같은 해당 시스템에만 적용됩니다. SQL 학습은 MySQL 및 기타 세부 사항을 배우는 동안 모든 데이터베이스 시스템을 작동하는 데 필수적입니다.
