适用场景:
某些表空间内数据已经过期,对该表空间内的数据没有修改操作,对这些数据可以进行数据的过期化处理,如转入历史数据库或者备份到介质中,但是,如果用户要求需要将这些数据留在生产数据库中,则将相应的表空间设置为只读,是一个比较好的解决方案。
优点:
1.减少数据库的备份和恢复工作。
2.加快数据库的关闭和启动时间。
3.防止数据被意外删除和修改。
4.方便进行表空间的管理。
分析如下:
1.减少数据库的备份和恢复工作。
由于表空间被设置成只读后,这些表空间内的数据已经不再改变,存储在表空间中的数据状态始终保持在表空间设置为READ-ONLY的那一刻,所以,对该表空间的备份操作只需要进行一次即可。在后续的备份工作中,不需要再考虑这些表空间的备份。
2.加快数据库的关闭和启动时间。
加快关闭时间:在正常关闭数据库时,需要将缓冲区中的脏数据写入到相应的数据文件中,因为数据库是不会对只读表空间对应的文件进行修改的,所以跳过对这些文件的判断和写入,可以加快数据库的关闭时间。
加快启动时间:如果数据库异常关闭,在数据库启动时,需要对相应的数据块进行异常恢复,恢复的过程中绕开了只读表空间,所以能够加快启动时间。
3.防止数据被意外删除和修改
由于只读表空间不允许被修改,所以只要是对表空间内数据块的操作,都不被允许,例如增、删、改和查等DML操作。
4.方便进行表空间的管理
主要在海量数据库的过期化处理中,在将过期的数据剥离出数据库之前,将过期的数据所在表空间设置成只读表空间。