各大数据库厂商对checkpoint的处理大致相同,但还是有一些区别。前不久和某位oracle的售前聊天,他说oracle的checkpoint不会影响任何数据库操作,
checkpoint不会锁表,我不相信,他也说不出怎么实现的。
我个人认为这是数据库理论一直以来的难题,oracle什么时候解决了?
本人不太熟悉oracle的checkpoint内部机制。请教高手指点一二。
checkpoint不会锁表,我不相信,他也说不出怎么实现的。
我个人认为这是数据库理论一直以来的难题,oracle什么时候解决了?
本人不太熟悉oracle的checkpoint内部机制。请教高手指点一二。
oracle的锁本来就不耗费资源,CKPT后台进程只不过把内存数据写到磁盘,然后同步数据文件,控制文件与联机日志,没有发生普通锁,但有内部锁(latch)。
每个数据库对锁与checkpoint的处理还是有很大差别的。
他说oracle的checkpoint不会影响任何数据库操作这个是错误的。CKPT如果不好好控制,就会引起数据库的等待,数据库性能变差
checkpoint不会影响任何数据库操作是不影响数据库的操作,但oracle售先的说法也有一些问题,因为过于频繁的checkpoint会出现磁盘竞争,因为它促使dbwr频繁的写,同时它又要更新数据文件的头部。
对数据库是有影响的,我曾遇到过这样的情况:
有防火墙(把所有端口都放开):不能连接数据库
没有防火墙(不通过防火墙):可以连接数据库------------------------
| |
| 相逢何必曾相识 |
| |
------------------------
--------------------
oracle数据库的安全是LGWR保证的。
CKPT仅仅是一个底层的后台进程,促使DBWR写内存数据并同步数据文件与控制文件而已。