请教关于DBWR进程的几个问题

e13653050049 2012-12-28 10:30:12
大家好:
我在书籍看到,DBWR进程在以下情况都会将数据高速缓存的脏数据写到数据文件的:
1、系统发出检查点(alter system checkpoint;)
2、表空间正常脱机(alter tablespace XXX offline normal;)
---
但我用sys用户登录数据库,向 users 表空间的 mytmp表插入数据:
insert into scott.temp values(1);
但没有commit;
之后,执行
alter system checkpoint;

alter tablespace users offline normal;
alter tablespace users offline online;
后,再 select * from scott.temp; 发现没有添加刚才的数据。
请问这是怎么回事?是不是书上说得有问题?为什么执行检查点和表空间脱机都没有将数据写到数据文件呢?
----
待复,谢谢!
...全文
454 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Samdy_Chan 2013-03-18
  • 打赏
  • 举报
回复
你insert了,但commit,虽然检查点会将数据写入到数据文件,但是写到数据文件的undo段的,所以其它用户是看不了的。 不知说得是否对呢?
linwaterbin 2012-12-28
  • 打赏
  • 举报
回复
我从检查点角度回复你: 1)alter system checkpoint 2)ALTER TABLESPACE OFFLINE normal 模式,对其下所有的datafile都作了checkpoint 你这里的两个操作其本质是一样的。都是检查点,而且是增量检查点。增量检查点的作用是为了均衡负载,由fast_start_mttr_target这个参数触发,增量渐进写出。可能你系统workload不大,CKPT没有去通知DBWn写

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧