在学习备份与恢复这块内容的时候,常见这种理解:表空间如果处于热备份模式,比如说:
alter tablespace sun begin backup;
那么,表空间拥有的数据文件则不会被写入数据。
其实,这是一种错误的理解。
真实情况是什么样子的呢?下面的试验就是答案!
SQL> conn sun/sun
已连接。
SQL> create table test_backup
2 (name varchar2(10) )
3 tablespace sun;
表已创建。
SQL> insert into test_backup
2 values ('nicetomeetu');
values ('nicetomeetu')
*
ERROR 位于第 2 行:
ORA-01401: 插入的值对于列过大
SQL> insert into test_backup
2 values ('nicetoseeu');
已创建 1 行。
SQL> commit;
提交完成。
SQL> select dbms_rowid.rowid_block_number(rowid) blk,name from test_backup;
BLK NAME
---------- ----------
10 nicetoseeu
SQL> alter system checkpoint;
alter system checkpoint
*
ERROR 位于第 1 行:
ORA-01031: 权限不足
SQL> alter tablespace sun begin backup;
alter tablespace sun begin backup
*
ERROR 位于第 1 行:
ORA-01031: 权限不足
SQL> conn / as sysdba
已连接。
SQL> grant dba to sun
2 /
授权成功。
SQL> conn sun/sun
已连接。
SQL> alter tablespace sun begin backup;
表空间已更改。
SQL> select dbms_rowid.rowid_block_number(rowid) blk,name from test_backup;
BLK NAME
---------- ----------
10 nicetoseeu
SQL> update test_backup set name='toseeunice';
已更新 1 行。
SQL> commit;
提交完成。
SQL> select dbms_rowid.rowid_block_number(rowid) blk,name from test_backup;
BLK NAME
---------- ----------
10 toseeunice
SQL> alter tablespace sun end backup;
表空间已更改。
SQL> conn / as sysdba
已连接。
SQL> revoke dba from sun;
撤销成功。
SQL> alter system switch logfile;
系统已更改。
SQL> spool off
结论:表空间处于backup模式,它所拥有的数据文件仍然可以写入数据。
注意:end backup之后,执行switch logfile !
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/593324/viewspace-376193/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/593324/viewspace-376193/