大家好:
我在书籍看到,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; 发现没有添加刚才的数据。
请问这是怎么回事?是不是书上说得有问题?为什么执行检查点和表空间脱机都没有将数据写到数据文件呢?
----
待复,谢谢!
我在书籍看到,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; 发现没有添加刚才的数据。
请问这是怎么回事?是不是书上说得有问题?为什么执行检查点和表空间脱机都没有将数据写到数据文件呢?
----
待复,谢谢!
1)alter system checkpoint
2)ALTER TABLESPACE OFFLINE normal 模式,对其下所有的datafile都作了checkpoint
你这里的两个操作其本质是一样的。都是检查点,而且是增量检查点。增量检查点的作用是为了均衡负载,由fast_start_mttr_target这个参数触发,增量渐进写出。可能你系统workload不大,CKPT没有去通知DBWn写
不知说得是否对呢?