闪回冲突怎么办?
从Oracle10开始就有闪回,这个功能多次起到力挽狂澜的作用。比如
有两个表,分别是sh1和sh2。
SQL> create table sh1 (a int,b int);
表已创建。
SQL> create table sh2 (a int,b int);
表已创建。
====================
分别向两个表中写入数据:
SQL> insert into sh1 values (1,1);
已创建 1 行。
SQL> insert into sh1 values (2,2);
已创建 1 行。
SQL> insert into sh2 values (3,3);
已创建 1 行。
SQL> commit;
提交完成。
++++++++
此时sh1中有2行数据,sh2中有1行数据。
SQL> select * from sh1;
A B
---------- ----------
1 1
2 2
SQL> select * from sh2;
A B
---------- ----------
3 3
+++++++++++++++++++++++++==
传统的误删除表后,执行闪回sh2表的数据被找回来了。
SQL> drop table sh2;
表已删除。
SQL> select * from sh2;
select * from sh2
*
第 1 行出现错误:
ORA-00942: 表或视图不存在
SQL> flashback table sh2 to before drop;
闪回完成。
SQL> select * from sh2;
A B
---------- ----------
3 3
+=============================
而如果被drop的表,重新建立了。那么在执行闪回时候就出错了。
SQL> drop table sh1;
表已删除。
SQL> create table sh1 (a int,b int);
表已创建。
SQL> insert into sh1 values (3,3);
已创建 1 行。
SQL> commit;
提交完成。
SQL> flashback table sh1 to before drop;
flashback table sh1 to before drop
*
第 1 行出现错误:
ORA-38312: 原始名称已被现有对象使用
遇到这个问题有如下解决方案。
方案1:把新建的sh1改个名字,改成sh3.再闪回sh1.
方案2:假设原始表是sh4,误删除以后。新建立了sh4,还写入了数据。那么闪回时候兼带改名字,一气呵成。
SQL> create table sh4 (a int,b int);
表已创建。
SQL> insert into sh4 values (1,1);
已创建 1 行。
SQL> commit;
提交完成。
SQL> drop table sh4;
表已删除。
SQL> create table sh4 (a int,b int);
表已创建。
SQL> insert into sh4 values (2,2);
已创建 1 行。
SQL> commit;
提交完成。
SQL> flashback table sh4 to before drop rename to sh5;
闪回完成。
SQL> select * from sh4;
A B
---------- ----------
2 2
SQL> select * from sh5;
A B
---------- ----------
1 1
方案2也是最近才在实际中用过。
上一篇: 什么是皇帝数据库?
推荐阅读
-
在windows 10下安装基于jdk8的weblogic12C,出现启动域config.cmd闪回问题
-
闪回冲突怎么办?
-
一个非常古老但非常有用的功能--闪回
-
Java 输入编号闪回输出
-
Rhythm Master flashback android,游戏动态:节奏大师闪回问题解决方案汇总
-
MySQL 事务隔离级别和实施原则 - I. MySQL 数据库中的事务隔离级别 在讲事务隔离级别之前,先了解几个数据一致性问题:1.脏读:a事务读取了b事务尚未提交更新的数据,然后b事务回滚,导致数据不一致。2. 重复读取:a 事务多次读取同一数据,b 事务在中间多次读取了 a 事务修改过的数据,反过来,a 事务多次读取的数据又不一致,出现不可还原读取的问题。3. a 事务多次读取同一数据,b 事务在 a 事务多次读取中间插入了一个数据,a 可能会突然出现。 4. a 事务多次读取同一数据,b 事务在 a 事务多次读取中间插入了一个数据,a 可能会突然读取新数据,也可能不读取,然后插入时出现冲突,出现幻读。 MySQL 数据库共提供了四种中间数据隔离级别,其中 RU 一般不使用,因为并发安全性太低。而 SER 则不适用于 MVCC,且退化为完全使用锁来控制并发,导致性能很差,一般不会使用。
-
ip冲突怎么办
-
IDEA 会报错,然后 pycharm 会闪回。
-
postgresql 数据库 pg_dirtyread 插件闪回技术 -- 梦想之路
-
对话NGC蔡岩:从机制创新到价值沉淀,解析DeFi产品开发逻辑 |链捕手 - 真正的DeFi产品首先要有足够的安全性和稳定性,如果能在此基础上有一些功能创新,那就非常好了。像 Uniswap 这样逐渐成为 DeFi 基础架构的产品,可遇而不可求。 链式捕手:固定利率协议之前关注度比较高,但观察下来发现,大部分协议还是类似于传统金融CDO(抵押债务凭证)的玩法,风险系数很高,您如何理解这块业务的价值和风险? 蔡岩:确实有些定息协议类似CDO玩法,背后绑定一个债券,但并不是所有的定息协议都是这样的玩法,像这种CDO玩法的主要代表项目是88mph,背后绑定的是Aave、Compoud这样的借贷协议,在此基础上做定息和浮息债券;像APWine,背后同样是Aave,它会发行期货收益代币来锁定你的收益;Notional本身是做借贷市场的,在此基础上做定息协议。 非 CDO 的玩法,比如 Horizon,更像是一个利率撮合器,背后需要用户通过拍卖产生更合适的目标收益率;像 Saffron、BarnBridge 等是通过风险分级来定义不同的收益率。总的来说,创新还是挺多的。 价值层面是创新和想象力,因为在传统金融领域,比如银行做固定收益证券,或者评级机构给风险分级,这些业务都非常大,利润也很丰厚。而 DeFi 的对口业务给了类似业务很大的想象空间。尤其是固定利率协议的成熟产品不多,尝试各种微创新是很有意义的。 风险程度还是要具体到不同的玩法,比如,在 Aave、Compoud 等借贷协议的固定利率协议背后,如果这些借贷协议受到攻击,与之绑定的固定利率协议也会受损。 同样,如果自己做借贷市场,可能更需要更强的开发能力。再有,如果该程序的机制或参数设计不当,同样会导致协议运行不稳定,并可能造成大量用户清盘。 总的来说,风险在于固定利率协议的设计,这是一个非常复杂的过程,需要不断地尝试和出错。 链式捕捉器:刚刚提到背后是Aave/Compound的固定费率协议风险较大,您认为Aave最大的不确定性和创新点分在哪里? 蔡岩:其实爱钱进一直被认为是走在行业前列的项目,他们的迭代速度非常快,比如率先尝试闪贷、推出新的经济激励模式、推出目前业内首个安全模块、尝试L2解决方案等等。 而在主要的借贷业务上,他们又十分谨慎,比如在抵押率、清算系数等风险参数的设计上相对于其他借贷协议较为保守,并不会存在为了吸引更多借贷资金而降低风险的要求。 与许多 DeFi 项目一样,即使 Aave 进行了多次审计,也无法保证不存在漏洞。前段时间,Aave 刚进入 V2 阶段时,白帽黑客就指出了某个漏洞。 之前的创新点可能是闪电借贷,这是当时业内独一无二的新产品功能,也为 Aave 带来了不少收益。当然,也有人批评闪电贷只能方便黑客实现资金效益的最大化,但工具本身并没有错,未来闪电贷肯定会有更多的应用场景。 其次是安全模块的设计,这有点像项目本身的储备金库,保障项目的安全性,这也是爱维开创的先河。说实话,目前大多数项目都没有做到代币模式的良性或正向运营,也做不到像Aave一样的安全模块,这是一个不小的门槛。 Chaincatcher从某种程度上来说,挖矿模式是DeFi财富效应的根本支撑,但Aave的CEO却说挖矿机制带来的动力是不可持续的,您怎么看这个观点? 蔡岩:"挖矿机制 "不可能失效,因为它是一种激励机制,或者说是项目冷启动的一种方式。但流动性开采亚博体育手机客户端不会一直高涨。比如去年11月的流行性挖矿高APY持续了一两个月就崩盘了,导致DeFi市场大幅回调。 Aave、Uniswap、Synthetix等项目真正爆发进入市值前15名也是在今年2月,我更倾向于这是头部DeFi长期价值的体现。虽然大家都喜欢抢高APY的矿机,但我个人很少参与挖矿,所以我并不觉得流动性挖矿是DeFi的基本面支撑。