在oracle10G之后;oracle提供一种回收站的机制;即闪回技术。闪回技术通常用于快速简单恢复数据库中出现的认为误操作等逻辑错误。发展到11G之后;回收站更加完善;对在可闪回时间内;数据库级别的恢复。
 
      postgresql本身未支持闪回技术的;目前没有像oracle闪回技术的功能;目前postgresql实现这种功能原理是:在drop table时;创建一个名为Trash的schema, 然后将被删除的表移动到这个schema下面.     
 
安装操作
su - root
git clone https://github.com/petere/pgtrashcan
cd pgtrashcan/
export PATH=/opt/pgsql/bin:$PATH             --根据环境来设定
make
make install

修改postgresql.conf文件

shared_preload_libraries = 'pgtrashcan'

在重新启动postgresql数据库

 
1.  drop table操作验证

mydb=> drop table t;
DROP TABLE
mydb=> \dn
  List of schemas
  Name  |  Owner
--------+----------
 Trash  | lottu
 public | postgres
(2 rows)

mydb=> \dt+ "Trash".t;
                    List of relations
 Schema | Name | Type  | Owner |    Size    | Description
--------+------+-------+-------+------------+-------------
 Trash  | t    | table | lottu | 8192 bytes |
(1 row)

mydb=> select * from "Trash".t;
 generate_series
-----------------
               1
               2
               3
               4
               5
               6
               7
               8
               9
              10
(10 rows)
可以看到;表T在被drop掉;postgres会新建一个Trash的模式;把表T移到这里。 假如环境配有hot standby;备库也会跟主库保持一致。
这样可以保证数据在被drop掉;在Trash下面有个复制。可以保证数据及时回复。
 
2. 清理回收站
   我们知道一个方案下;不能存放两个名字相同的表名;在确定里面其中表不需要恢复情况下。可以进行清理。

mydb=> \dt "Trash".*;
       List of relations
 Schema | Name | Type  | Owner
--------+------+-------+-------
 Trash  | t    | table | lottu
 Trash  | t8   | table | lottu
 Trash  | test | table | lottu
(3 rows)

--清理一个表;
mydb=> drop table "Trash".t;
DROP TABLE
mydb=> \dt "Trash".*;
       List of relations
 Schema | Name | Type  | Owner
--------+------+-------+-------
 Trash  | t8   | table | lottu
 Trash  | test | table | lottu
(2 rows)

--若确定所有表不需要恢复
mydb=> drop schema "Trash" cascade;
NOTICE:  drop cascades to 2 other objects
DETAIL:  drop cascades to table "Trash".t8
drop cascades to table "Trash".test
DROP SCHEMA

postgresql如何实现回收站机制的更多相关文章

  1. ORACLE回收站机制介绍

    回收站概念 从ORACLE 10g开始,引入了一个叫回收站(Recycle Bin)的概念.它的全称叫Tablespace Recycle Bin.回收站实际是一个逻辑容器(逻辑区域),原理有点类似于 ...

  2. Centos实现回收站机制

    作为一个运维人员,在服务器上删除文件时为了方便经常会直接使用rm *.txt这类通配符,甚至为了省事加-rf参数,如果是确定的话还好,要是在删除的时候一个不留神,那事可就大了. 俗话说常在河边站哪有不 ...

  3. 数据库并发事务控制四:postgresql数据库的锁机制二:表锁 <转>

    在博文<数据库并发事务控制四:postgresql数据库的锁机制 > http://blog.csdn.net/beiigang/article/details/43302947 中后面提 ...

  4. 系统优化——建立linux回收站机制

    前言: linux系统下的rm是不可挽回的,命令设计本身没有问题,问题在于我们通常非常的自信,执行的时候喜欢rm -rf,这样的话就非常危险了,在执行的时候如果执行命令不对,甚至是执行的目录不对,那么 ...

  5. PostgreSQL 预写日志机制(WAL)

    关于持久性 持久性是指,事务提交后,对系统的影响必须是永久的,即使系统意外宕机,也必须确保事务提交时的修改已真正永久写入到永久存储中. 最简单的实现方法,当然是在事务提交后立即刷新事务修改后的数据到磁 ...

  6. postgresql的日志实现机制

    1.事务的概念   事务是从实际生活中引入数据库的一个概念,即事务内的操作,要么全做,要么全不做.就像银行转账一样,当从一个帐户转出一部分钱之后,就必须在另一个帐户中存入相同数目的钱,若是转出钱之后, ...

  7. 1.10HDFS 回收站机制

  8. [转载]再谈PostgreSQL的膨胀和vacuum机制及最佳实践

    本文转载自 www.postgres.cn 下的文章: 再谈PostgreSQL的膨胀和vacuum机制及最佳实践http://www.postgres.cn/news/viewone/1/390 还 ...

  9. Sharepoint 2013 回收站知识整理

    回收站机制可有利于防止内容的永久删除与误删除. 一.SharePoint 2013 回收站包括两种:第一回收站(End user Recycle Bin items)与 第二回收站(Deleted f ...

随机推荐

  1. Hbuider 同步github

    别人的教程,仅作收藏. http://blog.csdn.net/u011871921/article/details/44238971

  2. jq最新前三篇文章高亮显示

    /*---------最新前三篇文章高亮显示-------------*/ function latest(){ var color_arr=new Array( "blue", ...

  3. webapp 公共样式

    html{ font-size: 62.5%;}@media only screen and (min-width: 481px) { html { font-size:94%!important } ...

  4. 安装repcached,并且测试其双向复制是否成功

    备注:本实验不仅包括了repcached,还包括了memcache的配置安装 1.1实验环境. 1.2环境准备. 1.3配置一个memcache. 1.3.1安装memcache. 1.3.2启动me ...

  5. zendFream 中的用到了Ajax(其中有搜索)分页

    最近在用ZendFreamwork开发一个后台,其中用到了分页,ZendFreamwork自带的分页挺好用的,可是我其中用到了Ajax的局部刷新,在加上一些搜索条件,所以分页有点无头绪了.下面我来介绍 ...

  6. Java面试题大全(三)

    81.如何设定的weblogic的热启动模式(开发模式)与产品发布模式? 可以在管理控制台中修改对应服务器的启动模式为开发或产品模式之一.或者修改服务的启动文件或者commenv文件,增加set PR ...

  7. C# 截取字符串

    1.根据单个分隔字符用split截取 例如 string st="GT123_1"; string[] sArray=st.split("_"); 即可得到sA ...

  8. Unity学习疑问记录之新GUI

    学习Unity 4.6新GUI系统 http://segmentfault.com/a/1190000000642686

  9. sqlplus 初始化文件(每一次打开sqlplus不用重新设置 linesize 和 pagesize)

    初始化文件目录  D:\oracle\product\11.2.0\dbhome_1\sqlplus\admin\glogin.sql 用记事本打开,添加 --SET linesize 150SET ...

  10. 【iCore3 双核心板_FPGA】实验二十:基于FIFO的ARM+FPGA数据存取实验

    实验指导书及代码包下载: http://pan.baidu.com/s/1cmisnO iCore3 购买链接: https://item.taobao.com/item.htm?id=5242294 ...