首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    【DB笔试面试532】在Oracle中,什么是检查点?如何调优检查点?

    在Oracle数据库系统中,写日志和写数据文件是数据库中消耗I/O较大的两种操作。在这两种操作中,写数据文件属于分散写,写日志文件是顺序写,因此为了保证数据库的性能和数据的安全,通常数据库都是在提交(COMMIT)完成之前要先保证Redo日志条目都被写入到日志文件中,才会给用户反馈提交完成的通知(Commit complete.),而保存在Buffer Cache中的脏块会不定期地、分批地写入到数据文件中。也就是说,日志写入和提交操作是同步的,而数据写入和提交操作是不同步的,修改的数据并不是在用户提交后就立马写入数据文件中。这样就存在一个问题,当数据库崩溃的时候并不能保证Buffer Cache里面的脏数据全部写入到数据文件中,那么在实例启动的时候就要使用日志文件进行恢复操作,将数据库恢复到崩溃之前的状态,从而保证数据的一致性。那怎么确定该从何时、从哪里开始恢复呢,Oracle使用了检查点(Checkpoint)来进行确定。

    02

    在Oracle中,什么是检查点?如何调优检查点?

    在Oracle数据库系统中,写日志和写数据文件是数据库中消耗I/O较大的两种操作。在这两种操作中,写数据文件属于分散写,写日志文件是顺序写,因此为了保证数据库的性能和数据的安全,通常数据库都是在提交(COMMIT)完成之前要先保证Redo日志条目都被写入到日志文件中,才会给用户反馈提交完成的通知(Commit complete.),而保存在Buffer Cache中的脏块会不定期地、分批地写入到数据文件中。也就是说,日志写入和提交操作是同步的,而数据写入和提交操作是不同步的,修改的数据并不是在用户提交后就立马写入数据文件中。这样就存在一个问题,当数据库崩溃的时候并不能保证Buffer Cache里面的脏数据全部写入到数据文件中,那么在实例启动的时候就要使用日志文件进行恢复操作,将数据库恢复到崩溃之前的状态,从而保证数据的一致性。那怎么确定该从何时、从哪里开始恢复呢,Oracle使用了检查点(Checkpoint)来进行确定。

    05
    领券