1.数据库中未提交的数据是一定驻留在高速缓冲区中吧?是不是未提几点的数据都成为的数据缓冲区称为脏缓冲区?
2.数据库提交是不是在数据库写进程将数据从高速缓冲区写到外存之前完成的?
3.提交之后才能进行数据库的关闭?还是可以强行关闭,再次启动的时候提交没有提交的数据
4.数据库归档模式下的恢复也无法恢复未提交的数据,因为这个未提交的数据在系统内存(高速缓冲区),对不,就是上次故障停留高速缓冲区的数据都不能恢复,而写到外存上的数据一点可以通过一定办法恢复(再次提交)?
------解决方案--------------------------------------------------------
1、不一定,有可能已写入数据文件,已修改未写入数据文件的缓冲区称为脏缓冲区。
2、已提交的数据可能未写入外存,未提交的数据也可能写入外存。
3、可以强行关闭,重启后系统进行将对不一致的数据进行恢复。最好正常关闭,强行关闭可能导致问题。
4、未提交的数据,即使已写入数据文件,数据库被强制关闭。重启数据库也会被回滚。
对已提交的数据未写入数据文件(在缓冲区中),将依据重做日志进行前滚,不会丢失数据。
------解决方案--------------------------------------------------------
如果数据库不正确关闭,数据库处在一个不一致的状态,
在数据库启动时会进行实例恢复
实例恢复会经过两个阶段,一是前滚,二是回滚。
回滚将回滚掉异常关闭时未提交的事务。