043-112

112. Because of hardware failure, you decided to drop a redo log memb
er from the database.
Which condition should be met to drop a redo log file?
A. The redo log file should belong to an active group.
B. The redo log file should belong to an inactive group.
C. The redo log file should belong to the current group.
D. The redo log file can be dropped only if all the transactions are
stopped.
E. Before a redo log file is dropped, it should be deleted from the o
perating system (OS).
Answer: B
日志最常见的状态有以下几种:CURRENT , ACTIVE , INACTIVE ,UNUSED
1.CURRENT 指当前的日志文件,该日志文件是活动的,当前正在被使用的,在进
行崩溃恢复时Current 的日志文件是必须的。
2. ACTIVE 日志是活动的非当前日志,该日志可能已经完成归档也可能没有归档,
活动的日志文件在Crash 恢复时会被用到。Active 状态意味着,检查点尚未完
成,如果日志文件循环使用再次到达该文件,数据库将处于等待的停顿状态,
当这种问题出现时,可以从数据库内部通过v$session_wait 来观察,该视图会
显示数据库当前哪些Sesssion 正处于这种等待。Checkpoint not complete 在
数据库中体现为等待事件log file switch(checkpoint incomplete):select
sid,event,state from v$session_wait;同时要注意DBWR 进程正在执行db file
parallel write,日志文件必须等待DBWR 完成检查点触发的写操作之后才能被
覆盖。如果设置了参数log_checkpoints_to_alter 为True 的话,还可以在alert
文件中清晰地看到检查点的增进和完成情况.
可以对这个问题做一下简单的分析,Checkpoint incomplete 有多种可能原因:
·日志文件过小,切换过于频繁;
·日志组太少,不能满足正常事务量的需要;
·日志文件所在磁盘I/O 存在瓶颈,导致写出缓慢,阻塞数据库正常运行;
·由于数据文件磁盘I/O 瓶颈,DBWR 写出过于缓慢;
·由于事务量巨大,DBWR 负荷过高,不堪重负。
针对不同的原因,又可以从不同角度着手解决问题:
·适当增加日志文件大小;
·适当增加日志组数;
·使用更快速磁盘存储日志文件(如:采用更高转速磁盘;使用RAID10 而不是
RAID5 等方式);
·改善磁盘I/O 性能;
·使用多个DBWR 进程或使用异步I/O 等。
3.INACTIVE 是非活动日志,该日志在实例恢复时不再需要,但是在介质恢复时
可能会用到。INACTIVE 状态的日志也可能没有被归档。如果数据库启动在归档
模式,在未完成归档之前,日志文件也不允许被覆盖,这时活动进程处于log file
switch(archiving needed)等待之中。日志是否完成归档,可以根据
V$LOG.ARCHIVED 字段进行判断,ARCHIVED 状态为NO,也就是尚未归档:所有DML
事务都将挂起,用户处于log file switch(archiving needed)等待,通常是由
数据库异常引起的,可能是因为I/O 缓慢,也可能是因为事务量过大,在特殊情
况下,有可能是因为日志损坏。
4.UNUSED 表示该日志从未被写入,这类日志可能是刚被添加到数据库或者在
RESETLOGS 之后被重置。被使用之后,该状态会被改变。

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

转载于:http://blog.itpub.net/11312660/viewspace-718028/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
题目描述 有 $n$ 个人要排队去打水,每个人需要一定的时间 $t_i$ 才能打完水离开。他们按照到达的时间先后排成一列,从前往后依次编号为 $1,2,\cdots,n$。一开始队伍为空。每个人依次进入队伍,如果队伍中有人正在打水,那么这个人就必须站在队伍的末尾等待。每个人打完水后会离开队伍,问每个人离开队伍的时间。 输入格式 第一行一个整数 $n$。 第二行 $n$ 个整数 $t_1,t_2,\cdots,t_n$,表示每个人打水所需的时间。 输出格式 输出 $n$ 行,第 $i$ 行表示第 $i$ 个人离开队伍的时间。 数据范围 $1\leq n\leq 1000,1\leq t_i\leq 1000$ 输入样例 5 3 6 2 4 3 输出样例 3 9 11 15 18 算法1 (模拟+队列) $O(n)$ 模拟整个排队打水的过程。用一个队列 $q$ 来维护当前队伍中等待的人,每当有一个人进入队伍时,先计算出他的离开时间 $t$,然后将他加入队尾。如果队伍中有人正在打水,那么这个人就必须在队伍中等待,所以 $t$ 的计算需要加上队伍中最后一个人的离开时间。 C++ 代码 算法2 (排序+贪心) $O(nlogn)$ 对每个人按照到达时间排序,然后依次计算他们的离开时间。用一个变量 $cur$ 来维护当前队伍中最后一个打完水的人的离开时间,每当有一个人进入队伍时,如果他到达的时间比 $cur$ 大,则他可以直接打水离开队伍。否则他必须等待,等待的时间就是 $cur-t_i$,然后再计算他的离开时间。 C++ 代码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值