简述REDO操作

查看重做日志:
select  *from v$log;
select  *from v$logfile;
判断是否归档:
SQL>sqlplus sys as  sysdba
SQL>archive log list;
在10g,11g中设置成归档模式:
把数据库重启到mount状态,
alter  database archivelog;(同理设置成非归档模式就是alter database noarchivelog)
但是在9i中上一样,但任然要设置一个参数:
show  parameter db_recovery_dest;
把其中的参数设置成:log_archive_start=true;
重做日志的管理:
添加重做日志组的语法:alter database [database_name] ADD LOGFILE [GROP number] filename size n [ADD LOGFILE [GROP number]filename size n ]
alter database add logfile grop 4 
('\etc\temp\redo4a.log',
 'etc\temp\redo4b.log',
'etc\temp\redo4c.log',)
size 10m;
但是:
alter database add logfile 
('etc\temp\redoa.log',
 'etc\temp\redob.log',
'etc\temp\redoc.log',)
size 10m;
此时默认为重做日志组5

删除联机重做日志组:
alter database [database_name] 
drop logfile {group n|('filename'[,'filename']...)}
{group n|('filename'[,'filename']...)}....
|表示或,[]表示可选
alter  database  drop logfile group 4,group 5;
注意:若联机日志组处于active,则不可以删除。
要切换重做日志组:alter system switch logfile;
强制启动检查点:
alter database checkpoint;
此时会触发日志切换,oracle会寻找下一个可用的重做日志组,如果数据库处于归档模式,则在将当前写满的日志组归档完成前,不会使用新的重做日志组。检查点事件是oracle为了减少数据库实例恢复时间而设置的一个事件,该事件发生时,LGWR将重做日志缓冲区中的数据写入重做日志文件,而同时通知DBWR将数据库高速缓冲区中的已经提交的数据写入数据文件,所以检查点事件越频繁,则数据库恢复的重做数据就越少。此时,检查点事件也会修改数据文件头信息和控制文件信息,以记录检查点的SCN。
虽然删除了重做日志组的成员,但是残留了操作系统的垃圾文件,要彻底删除还要手动删除。
删除联机重做日志组的一个日志成员:
alter  database drop logfile member 'etc\temp\redob.log';
添加重做日志成员:
alter  database add logfile member
'etc\temp\redoa.log' to group 1,
'etc\temp\redob.log' to group 2,
'etc\temp\redoc.log' to group 3;
清除联机重做日志:
数据库服务器处于归档模式时,正在使用的重做日志组中的文件损坏,则该重做日志不能完成归档,使得数据库无法完成归档而挂起,要通过清除联机重做日志来重新初始化联机重做日志:
alter  database  clear  logfile  group  n;
这个一定要注意:
ORACLE只把重做日志中的数据迁移到磁盘上,而不能移动到磁带等存储介质上。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29876893/viewspace-1536382/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29876893/viewspace-1536382/

### Seata 分布式事务框架简介 Seata 是阿里巴巴开源的一款分布式事务解决方案,旨在提供高性能和简单易用的分布式事务服务。其愿景是让分布式事务的使用像本地事务一样简单高效,并逐步解决开发者在分布式事务领域遇到的各种难题[^3]。 Seata 提供了多种事务模式,包括 AT、TCC、SAGA 和 XA,为用户打造了一站式的分布式事务解决方案。其中,AT 模式是阿里巴巴首推的模式,并且在阿里云上有商用版本的 GTS(Global Transaction Service 全局事务服务)[^4]。 --- ### Seata 的功能 1. **支持多种事务模式** - **AT 模式**:基于代理数据源的无侵入式事务管理,适用于大多数业务场景,开发者无需额外编写补偿逻辑[^1]。 - **TCC 模式**:Try、Confirm、Cancel 三步操作,适合对性能要求较高的场景,需要开发者手动实现 Try、Confirm 和 Cancel 方法。 - **SAGA 模式**:长事务处理模式,通过状态机引擎驱动事务流程,适合跨多个服务的复杂业务场景。 - **XA 模式**:遵循 X/Open XA 标准的两阶段提交协议,兼容传统事务管理系统。 2. **三大核心角色** - **TC(Transaction Coordinator)**:事务协调者,负责维护全局和分支事务的状态,驱动全局事务提交或回滚。 - **TM(Transaction Manager)**:事务管理器,定义全局事务的范围,控制全局事务的开始、提交或回滚。 - **RM(Resource Manager)**:资源管理器,管理分支事务处理的资源,与 TC 协同工作以注册分支事务和报告状态[^4]。 3. **高可用性和一致性保障** Seata 通过合理配置和优化,能够有效解决分布式系统的事务一致性问题。它适用于电商、金融、物流等多种业务场景,配合完善的监控体系和运维方案,可以保证系统的高可用性和数据一致性[^5]。 --- ### Seata 的原理 1. **高性能核心原理** Seata 基于代理数据源实现了无侵入式的事务管理机制。在 AT 模式下,Seata 自动解析 SQL 并生成对应的Undo Log 和 Redo Log,从而在事务提交或回滚时完成数据的一致性操作[^1]。 2. **两阶段提交协议** - **第一阶段(准备阶段)**:所有分支事务向 TC 注册并执行预处理操作,生成 Undo Log。 - **第二阶段(提交/回滚阶段)**:根据 TM 的决策,TC 驱动分支事务提交或回滚。如果提交成功,则清理 Undo Log;如果回滚,则通过 Undo Log 还原数据状态。 3. **分布式事务协调** Seata 的 TC 负责协调全局事务和分支事务的状态转换,确保在分布式环境中事务的一致性。通过分阶段的提交和回滚机制,Seata 实现了高效的分布式事务管理[^5]。 --- ```python # 示例代码:Seata 在 Spring Boot 中的简单集成 # 引入依赖 <dependency> <groupId>io.seata</groupId> <artifactId>seata-spring-boot-starter</artifactId> <version>1.5.0</version> </dependency> # 配置文件 application.yml spring: cloud: alibaba: seata: tx-service-group: my_test_tx_group # 使用 @GlobalTransactional 注解开启全局事务 import io.seata.spring.annotation.GlobalTransactional; @Service public class OrderService { @Autowired private OrderRepository orderRepository; @GlobalTransactional public void createOrder(Order order) { // 创建订单逻辑 orderRepository.save(order); // 其他业务逻辑 } } ``` ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值