接下去我们来讲一下热备份:
热备份是我们最常用的一种备份,首先我们先来讲讲什么是热备份,说明如下:
在联机状态下执行备份,这时数据库必须运行在ARCHIVELOG模式下,因为在日志书写器进程重新使用它之前,副本是由每一个redo日志文件组成的,日志书写器在循环方式中通过redo日志文件进行循环,只要数据库正在运行,它就写入一个,然后是另一个,依此类推。在ARCHIVELOG模式下运行时,直到redo日志文件的永久拷贝被建立,Oracle才覆盖redo日志文件。在ARCHIVELOG模式中运行数据库时,可以选择当每个redo日志文件写满时手工地生成备份或者启动可选的归档进程进行自动备份。
又要提起老话了,数据库的归档(ARCHIVELOG)模式,关于归档模式,在这里我就不多说了,如果不了解的朋友可以自己去看看白皮书
步骤一:执行一个数据库的联机备份时,需要一次复制一个表空间的数据文件,在位一个表空间复制文件之前需要执行ALTER TABLESPACE tablespace_name BEGIN BACKUP
步骤二:为表空间复制完文件时,需要执行ALTER TABLESPACE tablespace_name END BACKUP
步骤三:
SQL> select TABLESPACE_NAME,STATUS from dba_tablespaces;
TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE
CWMLITE ONLINE
DRSYS ONLINE
EXAMPLE ONLINE
INDX ONLINE
ODM ONLINE
TOOLS ONLINE
USERS ONLINE
XDB ONLINE
TABLESPACE_NAME STATUS
------------------------------ ---------
KIDDCRM ONLINE
KIDDCRM_INDEX ONLINE
MRP ONLINE
USERDATA ONLINE
MRP_INDEX ONLINESQL> alter tablespace MRP begin backup;Tablespace altered.alter system archive log current;(转换到一个新的日志文件)
方法二:SQL> alter system switch logfile;(强制转换日志)
方法三:SQL> alter system archive log all;(所有已写满但仍未归档的redo日志文件归档)
SQL> alter tablespace MRP_INDEX begin backup;Tablespace altered.[oracle@kiddtest mrp]$ ls
mrpdata1.dbf mrpdata2.dbf mrpdata3.dbf
[oracle@kiddtest mrp]$ cp *.dbf /home/oracle/backup_kidd/backup_mrp
[oracle@kiddtest mrp_index]$ cp *.dbf /home/oracle/backup_kidd/backup_mrp_index
SQL> alter tablespace MRP end backup;Tablespace altered.
SQL> alter tablespace MRP_INDEX end backup;Tablespace altered.再接下去就是要归档当前的联机redo日志文件:SQL> alter system archive log current;System altered.
备份完所有的数据文件后,需要归档当前的联机redo日志文件,因为恢复时需要它们。归档她们时允许和所有其他的归档日志文件一起进行备份
方法一:SQL>
最后我们需要做的就是要备份所有归档日志文件到备份目录下,我就不写了,就是利用复制命令,如下:
[oracle@kiddtest kiddhome]$ cp arch_*.* 目录