在数据库运时,表空间的状态为Online,此时,是不能备份表空间的。因为在备份时,DB还是在向表空间的数据文件写数据,如果此时备份数据文件,最终使的备份的数据文件不统一,而不能在恢复时使用。
在备份表空间的数据文件,首先要使表空间在备份状态下,这时,数据库不能再向数据文件写入数据,备份的数据文件才能有一致性,才可以在恢复时应用。
SQL> select * from v$tablespace;
TS# NAME INC
---------- ------------------------------ ---
0 SYSTEM YES
1 UNDOTBS1 YES
2 TEMP YES
3 INDX YES
4 TOOLS YES
5 USERS YES
7 SP YES
已选择7行。
备份数据时,要:
SQL> alter tablespace users begin backup;
表空间已更改。
此时,在查询的时候:
SQL> select * from v$backup;
FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- ----------
1 NOT ACTIVE 0
2 NOT ACTIVE 0
3 NOT ACTIVE 0
4 NOT ACTIVE 0
5 ACTIVE 675944 21-11月-06
6 NOT ACTIVE 0
已选择6行。 状态为 ACTIVE 表示正在执行备份。
上面的5号表空间就是 USERS 表空间。
然后,再用操作系统的文件复制命令,复制文件。
最后,再:
SQL> alter tablespace users end backup;
表空间已更改。
SQL> select * from v$backup;
FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- ----------
1 NOT ACTIVE 0
2 NOT ACTIVE 0
3 NOT ACTIVE 0
4 NOT ACTIVE 0
5 NOT ACTIVE 675944 21-11月-06
6 NOT ACTIVE 0
已选择6行。
即完成了表空间数据文件的备份。