当备份多个联机表空间时,可以顺序地进行,也可以并行地进行。
(1)并行备份联机表空间
可以对处于备份模式中需要备份的多个表空间并发地创建数据文件的拷贝。
然而需要注意的是,如果立即将所有表空间置于联机状态,如果对影响的表空间有大量的更新操作,则会产生大量的redo日志。
因为redo必须包含每个改变的数据文件中的每个改变的数据块的拷贝。
在采用下面的过程的时候,需要考虑可能产生的redo日志的大小。
练习:并行备份联机表空间
|
--1. 如果没有2个表空间可以进行备份,则创建一个新的表空间。 sys@TESTDB11>create tablespace application logging 2 datafile '/u01/app/oracle/oradata/TestDB11/application01.dbf' 3 size 100m reuse autoextend on next 10m maxsize 200m 4 extent management local;
Tablespace created. --2. 查看表空间和数据文件的信息 sys@TESTDB11>col file_name for a50; sys@TESTDB11>select tablespace_name, file_name 2 from dba_data_files;
TABLESPACE_NAME FILE_NAME ------------------------------ -------------------------------------------------- USERS /u01/app/oracle/oradata/TestDB11/users01.dbf UNDOTBS1 /u01/app/oracle/oradata/TestDB11/undotbs01.dbf SYSAUX /u01/app/oracle/oradata/TestDB11/sysaux01.dbf SYSTEM /u01/app/oracle/oradata/TestDB11/system01.dbf EXAMPLE /u01/app/oracle/oradata/TestDB11/example01.dbf APPLICATION /u01/app/oracle/oradata/TestDB11/application01.dbf
6 rows selected. --3. 标记联机表空间备份(如果是备份所有表空间,可以执行ALTER DATABASE BEGIN BACKUP; sys@TESTDB11>alter tablespace users begin backup;
Tablespace altered.
sys@TESTDB11>alter tablespace application begin backup;
Tablespace altered. --4. 备份数据文件 [oracle@S1011:/export/home/oracle]$ cp /u01/app/oracle/oradata/TestDB11/users01.dbf /disk01/TestDB11/users01_`date "+%m_%d_%y"`.dbf [oracle@S1011:/export/home/oracle]$ cp /u01/app/oracle/oradata/TestDB11/application01.dbf /disk01/TestDB11/application01_`date "+%m_%d_%y"`.dbf [oracle@S1011:/export/home/oracle]$ cd /disk01/TestDB11/ [oracle@S1011:/disk01/TestDB11]$ ls application01_06_28_13.dbf users01_06_27_13.dbf users01_06_28_13.dbf
--5. 结束表空间联机备份(如果前面是所有表空间,则可以执行ALTER DATABASE END BACKUP;) sys@TESTDB11>alter tablespace users end backup;
Tablespace altered.
sys@TESTDB11>alter tablespace application end backup;
Tablespace altered. --6 归档未归档的重做日志,这样恢复表空间备份所需要的redo信息就被归档了。 sys@TESTDB11>alter system archive log current;
System altered. |
(2)顺序备份联机表空间(即一次使一个表空间脱机进行备份)
可以一次使所有需要联机备份的表空间进入备份状态。
Oracle建议进行顺序的备份,因为这种形式最小化了ALTER TABLESPACE…BEGIN BACKUP和
ALTER TABLESPACE…END BAKCUP之间的时间。
在联机备份的过程中,所有的数据块都被拷贝到重做,所以表空间会产生大量的redo信息。
练习:顺序备份联机表空间
|
--1. 在备份表空间之前,查询DBA_DATA_FILES视图来确认表空间的数据文件. 假设想备份USERS表空间 sys@TESTDB11>col file_name for a50 sys@TESTDB11>select tablespace_name, file_name 2 from dba_data_files 3 where tablespace_name = 'USERS';
TABLESPACE_NAME FILE_NAME ------------------------------ -------------------------------------------------- USERS /u01/app/oracle/oradata/TestDB11/users01.dbf --2. 标记联机表空间备份开始 sys@TESTDB11>alter tablespace users begin backup;
Tablespace altered. --3. 备份数据文件 [oracle@S1011:/export/home/oracle]$ cp /u01/app/oracle/oradata/TestDB11/users01.dbf /disk01/TestDB11/users01_`date "+%m_%d_%y"`.dbf [oracle@S1011:/export/home/oracle]$ cd /disk01/TestDB11/ [oracle@S1011:/disk01/TestDB11]$ ls users01_06_27_13.dbf users01_06_28_13.dbf --4. 结束表空间的联机备份 sys@TESTDB11>alter tablespace users end backup;
Tablespace altered.
--5. 对其它表空间重复1-4 --6 归档未归档的重做日志,这样恢复表空间备份所需要的redo信息就被归档了。 sys@TESTDB11>alter system archive log current;
System altered. |
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1097975/ ,如需转载,请注明出处,否则将追究法律责任。