简述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/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于QTreeWidget的redo操作,如果insertChild方法没有更新,可能是因为你没有正确地实现redo操作。在实现redo操作时,你需要确保你重新应用了之前的操作,并且更新了模型和视图以反映新的更改。 你可以使用QUndoStack类来管理你的撤销和重做操作。当你执行插入新节点的操作时,将它们添加到QUndoStack对象中,以便可以撤销或重做它们。当你执行redo操作时,你需要重新插入之前插入的节点,并更新模型和视图以反映新的更改。 以下是一个示例代码片段,演示如何实现redo操作并更新QTreeWidget: ```python class MyUndoStack(QUndoStack): def __init__(self, tree_widget): super().__init__() self.tree_widget = tree_widget def redo(self): super().redo() # Get the last command and redo it command = self.command(self.index()) if isinstance(command, MyInsertCommand): # Insert the child item again item = command.item parent = command.parent index = command.index parent.insertChild(index, item) # Update the tree widget self.tree_widget.addTopLevelItem(item) ``` 在这个示例中,我们自定义了一个QUndoStack的子类MyUndoStack,并重写了redo方法。在redo方法中,我们首先调用父类的redo方法以重新应用之前的操作。然后,我们获取最后一个命令并检查它是否是我们自定义的插入命令MyInsertCommand。如果是,我们重新插入节点并更新QTreeWidget。 希望这能帮助你解决问题。如果你有任何其他问题,请随时问我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值