通过DELETE删除数据后相当于放入回收站,一般情况下可以找回:通过UPDATE更新数据后数据库也会保留数据快照.闪回就是恢复指定时间的数据快照以达到恢复数据的目的.根据步骤一查询出数据快照,恢复数据自行决定(之前的数据都有了,咋恢复还不会吗?) 一.查询指定时间的数据快照--1.查询执行过SQL语句,确定快照的时间SELECT R.FIRST_LOAD_TIME,R.SQL_TEXT,R.* FROM V$SQLAREA R WHERE R.SQL_TEXT LIKE '%ABOUT YOUR…
Oracle9i开始提供闪回查询,以便能在需要的时候查到过去某个时刻的一致性数据,这是通过Undo实现的.这个功能有很大的限制,就是相关事务的undo不能被覆盖,否则就无力回天了.oracle10g大大的增强了闪回查询的功能,并且提供了将整个数据库回退到过去某个时刻的能力,这是通过引入一种新的flashback log实现的. flashback log有点类似redo log,只不过redo log将数据库往前滚,flashback log则将Oracle数据库往后滚.为了保存管理和备份恢复相…
Oracle闪回操作 1. 记录当前时间或SCN 在数据库变动前记录时间或SCN SQL> select  to_char(sysdate,'YYYY-MM-DD HH24:mi:ss') from dual; SQL> select  current_scn from v$database; 2.开启闪回 开启闪回需要数据库在归档模型下,所以首先需要开启归档.并且在mount状态下. 首先查看是否开启闪回: SQL> select flashback_on from V$databas…
Oracle Flashback Technologies - 闪回数据库 根据指定的SCN,使用rman闪回数据库 #查看可以闪回到多久前 SQL> select * from v$flashback_database_log; #查看当前的SCN SQL> select current_scn from v$database; CURRENT_SCN ----------- SQL> #关闭数据库 $ rman target / Recovery Manager: Release -…
Oracle 中利用闪回查询确定某表在某时间点之后的修改内容: 1.查看 DELETE 及 UPDATE 操作修改的数据: SQL> SELECT * FROM tab AS OF TIMESTAMP  to_timestamp('time_point', 'yyyy-mm-dd hh24:mi:ss') MINUS SELECT * FROM tab; 其中将查询得 tab 表在 time_point 时点之后因 DELETE 及 UPDATE 操作修改的数据. 2.查看 INSERT 操作修…
Oracle Flashback Technologies - 闪回查询 查看表中,某行数据的修改记录 #创建一个表,并插入和修改数据 SQL> create table y3(id )); Table created. SQL> insert into y3 values(,'wahaha'); row created. SQL> commit; Commit complete. SQL> update y3 ; row updated. SQL> commit; Comm…
我们在开发和运维过程中,经常遇到数据被误删除的情况.无论是在应用开发中的Bug,还是修改数据的时候,如果提交了错误数据修改结果,会带来很多问题.一般来说,一旦提交commit事务,我们是不能获取到之前的数据情况,除非使用较复杂的数据恢复手段,利用备份数据恢复. 但是在Oracle中,可以使用其闪回FlashBack特性来解决这个问题.首先,声明一点,闪回Flashback的范围很大,包括数据库.表.数据均是可以Flashback的,但是机制差别很大.本文说的是简单的数据flashback,用来快…
2014-07-02 Created By BaoXinjian…
一,闪回表初探 闪回须知: 1 使用闪回表注意如下事项: 2 3 (1)被闪回的表必须启用行移动功能 4 5 SQL> alter table dept enable row movement; 6 7 (2)“FLASHBACK TABLE”命令的执行者必须有“FLASHBACK ANY TABLE”系统权限或者在被闪回的表上具有“FLASHBACK”对象权限. 8 9 (3)“FLASHBACK TABLE”属于DDL命令,隐式提交. 10 11 (4)SYS用户的任何表无法使用此功能. 闪…
ORACLE数据库误操作执行了DELETE,该如何恢复数据? 原创 2016年08月11日 17:23:04 10517 作为一个程序员,数据库操作是必须的,但是如果操作失误,一般都会造成比较严重的后果. 今天一不小心,干了一件揪心的事情,将正在使用的组织机构误操作执行了delete,顿时大脑有点缺氧,感觉蒙圈了(相信对于没有数据备份和回滚经验的小伙伴来说都是这样的感受),但是一想,数据库一般都是支持数据回滚的,然后查找了一下解决方案. 由于用的是Oracle数据库,这一点非常好,因为Oracl…
2014-06-25 Created By BaoXinjian…
在前面的文章中我们介绍了MySQL误操作后数据恢复(update,delete忘加where条件),大概操作是通过sed命令把binlog中相关SQL误操作给逆向回来,然后导入SQL文件来恢复错误操作,sed相关命令也比较复杂.如果没有正则基础的同学肯定搞不清楚在干嘛.今天无意中发现淘宝的大神(翻译高性能mysql第三版的作者之一)开发了一个补丁,该补丁能够模拟Oracle的闪回操作,这样以来我们的MySQL也可以实现闪回咯.真是给力.注意:同样binlog格式需要是ROW 项目主页:http:…
项目中运用: 首先说明:闪回方法有一个前提,就是需要尽早的发现问题,果断的采取行动.若误操作的记录已经在UNDO表空间中被清除,则此方法就不可行了,需要另寻他法. 例如: SELECT * FROM tb_moko_info_basic AS OF TIMESTAMP TO_TIMESTAMP('2014-12-16 9:50:24', 'YYYY-MM-DD HH24:MI:SS') WHERE receipt_num = 'P14120100496'; 使用闪回功能快速恢复用户的误操作 Or…
Oracle Flashback Technologies - 闪回被drop的表 在oracle10g中,drop一个表后,表没有真正被删除,支持被rename后放在recyclebin中. #新建一个表y2,用来测试 SQL> create table y2 as select * from all_tables; Table created. SQL> select count(*) from y2; COUNT(*) ---------- #删除表 SQL> show recyc…
C#连接oracle数据库提示ORA-12154: TNS: 无法解析指定的连接标识符如果PLSQL Develope能连接上而用代码无法连接上则可以考虑sqlnet.ora文件中是否有NAMES.DIRECTORY_PATH= (TNSNAMES)这句话,如果有则删除了再试看是否能连接的上不.…
1.查询指定时间区间的工作日 这个主要难点是法定节假日,国家的法定节假日每年都不一样,还涉及到调休,所以我们设计一个假日表.主要字段有年份,类型(是否调休),假期日期.如下: CREATE TABLE [dbo].[Holidays]( [ID] [int] IDENTITY(1,1) NOT NULL, [Holiday] [datetime2](7) NULL,--假期日期 [YearS] [char](4) NULL,--年份 [daytype] [int] NULL--类型 ) 添加好当…
Oracle10g中引入了闪回技术,但这并不意味着所有的表都能闪回成功,当没有足够的磁盘空间,Oracle将使用回收站中的磁盘空间,而且位图连接索引和引用完整性约束也不受回收站的保护. recyclebin参数的设置 show parameter bin --展示是否使用了闪回技术,默认是使用闪回技术的alter session set recyclebin=off; --在session级别修改alter system set recyclebin=off DEFERRED; --不加DEFE…
alter system set db_recovery_file_dest_size=4g scope=both; connect system/1qaz2wsx as sysdba; archive log list; shutdown immediate; startup mount; alter database archivelog; ; alter database flashback on; alter database open; archive log list; connec…
实验环境:Linux6.4 + Oracle 11g 面向读者:Oracle开发维护人员 概要: 1.误操作drop了emp表 2.误操作delete了emp表 3.误操作delete了emp表的部分记录 4.误操作truncate了emp表 5.误操作带有purge选项drop了表 本文以Oracle自带的scott用户进行演示: 首先逻辑备份导出scott的对象数据 $ exp scott/tiger file='/u01/app/backup/scott.dmp' log='/u01/ap…
2014-12-09 Created By BaoXinjian…
2014-12-09 Created By BaoXinjian…
操作练习代码,知识点往下翻 TRUNCATE TABLE hehe1111; select * from hehe1111; desc hehe1111; ,'); ,'); ,'); ,'); ,'); ,'); COMMIT; SAVEPOINT a1; ROLLBACK; DELETE hehe1111; '; select length(name) from hehe1111; select name from hehe1111; select upper(name) from hehe…
文档结构: 在生产环境中如果遇到误删,改错数据的情况,利用mysql闪回工具binlog2sql,可以实现数据的快速回滚,从binlog中提取SQL,并能生成回滚SQL语句.Binlog以event作为单位记录数据库变更的数据信息,闪回就是可以重现这些变化数据信息之前的操作.也就是说,对于insert操作,会生成相反的update语句.这块工具只能使用在binlog格式为row模式下,且只支持DML语句不支持DDL语句. binlog2sql下载地址:https://github.com/dan…
Oracle数据库的备份方式有冷备份和热备份两种,针对这两种备份的实施过程记录如下: 一.Oracle冷备份 概念数据库在关闭状态下完成所有物理系统文件拷贝的过程,也称脱机备份.适合于非归档模式(即noarchivelog模式,SCN保持一致)下,数据库处于一致性状态.冷备份,数据库可以处于归档模式也可以处于非归档模式,最好是处于非归档模式. 步骤 首先在运行的库中得到数据库运行的所有的物理文件位置,然后在计划内关闭数据库(shutdown) 再执行拷贝物理文件到备份路径或备份设备 备份完成后立…
命令说明 imp命令和exp命令需要在cmd命令窗口下执行,并且需要在系统环境变量中配置imp,exp命令所在目录 导出命令 --全库导出 exp system/systempassword@orcl file=d:\allData.dmp full=y; --按用户导出 exp username/userpassword@orcl file=d:\user_owner.dmp owner=(username); 更多imp和exp使用说明请参考:http://www.blogjava.net/…
这个是可以的.sql:create table tablename1 as select t2. * from tablename2 t2 where t2.filename =‘张三’. 解释:就是从tablename2 读取出来的结果集作为tablename1 的数据.之后可以通过 “ select * from tablename1” 进行结果查看. Oracle中把一个查询结果插入到一张表中 二.Oracle数据库中支持把查询结果导入到另外一张表中. 例如:有两个表A和B 1)如果两个表…
在开发或客户使用过程中,难免会出现误操作或脏数据,那么怎么迅速处理这个问题呢? 1.备份还原就用了,太麻烦. 就是使用ORACLE的备份功能,然后在还原,还原的时候新建一个库,然后使用dblink进行连接. 将数据导回去. 2.使用oracle的还原操作,但是这个操作只能还原数据,表发生改变就不能了,切记.这个语句是这样的: ---说明这个语句来自网络:地址:这里就是笔记. select * from 表名 as of timestamp to_timestamp('2014-6-19 1:10…
2014-12-09 Created By BaoXinjian…
1. 安装成功后进入DOS界面操作 在进行以下操作时,需启动Oracle服务. A.进入sql界面:开始--运行--cmd:输入sqlplus 回车 提示输入正确的用户名和密码 B.开始—>所有程序-àoracle的-à运行sql命令—>直接采用conn 用户名/密码 进入 用户名 默认的是 sys,system. 密码是你安装的密码 输入正确的用户名及密码即可进入界面. 2.密码修改 当忘记密码时,可以采用 sqlplus sys/aaa as sysdba;--以数据库管理员的身份登录.…
1. select * from emp; 2. select empno, ename, job from emp; 3. select empno 编号, ename 姓名, job 工作 from emp; 4. select job from emp; 5. select distinct job from emp; 6. select distinct empno, job from emp;说明:因为雇员编号不重复, 所以此时证明所有的列没有重复,所以不能消除掉重复的列. 7. 查询…