二、热备份:
热备份是在数据库运行的情况下,采用archive log mode方式备份数据库的方法。热备份要求数据库处于archive log模式下操作,并需要大量的档案空间。一旦数据库处于archive loh
模式,就可以进行备份了,当执行备份时,只能在数据文件级或表空间进行。
1、优点:
<1>可在表空间或数据文件级备份,备份时间短。
<2>可达到秒级恢复(恢复到某一时间点上)。
<3>可对几乎所有数据库实体作恢复。
<4>恢复是快速的,在大多数情况下在数据库仍工作时恢复。
<5>备份时数据库仍可用。
2、缺点:
<1>因难以维护,所以要特别仔细小心,不允许“以失败而告终”。
<2>若热备份不成功,所得结果不可用于时间点的恢复。
<3>不能出错,否则后果严重。
3、设置初始归档模式:
设置归档模式数据库必须处在mount而非open状态下:
<1>首先查看数据库是否处在archive log模式下:
SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 1 Current log sequence 2
<2>在mount状态下启动数据库:
SQL> startup mount; ORACLE instance started.
Total System Global Area 285212672 bytes Fixed Size 1218992 bytes Variable Size 83887696 bytes Database Buffers 197132288 bytes Redo Buffers 2973696 bytes Database mounted.
<3>设置数据库为归档模式:
SQL> alter database archivelog;
Database altered.
<4>打开数据库:
SQL> alter database open;
Database altered.
<5>将数据库设置成自动归档,使用以下命令:
SQL> alter system set log_archive_start=true scope=spfile;
System altered.
<6>确定数据库处于归档模式下,并且设置自动存档:
SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination USE_DB_RECOVERY_FILE_DEST Oldest online log sequence 1 Next log sequence to archive 2 Current log sequence 2
上面的Archive destination所定义的具体位置,可以查看$ORACLE_HOME/dbs/spfile<dbname>.ora文件中的db_recovery_file_dest参数的值。
4、联机备份:
联机备份是热备份的一种备份方法,是指当表空间处于ONLINE状态时,备份表空间的所有数据文件和单个数据文件的过程。使用联机备份的优点是不影响用户在表空间上的所有访问操作,但联机备份的缺点可能生产更多的重做日志文件和归档日志文件。以下是联机备份的具体步骤:
<1>以DBA用户或特权用户登录,确定表空间所包含的数据文件。通过查询数据字典DBA_DATA_FILES,可以得到数据文件和表空间的对应关系:
SQL> select file_name from dba_data_files where tablespace_name='USERS';
FILE_NAME -------------------------------------------------------------------------------- /u02/oradata/db01/users01.dbf
<2>设置表空间为备份模式,在复制表空间的数据文件之前必须将表空间设置成为备份模式:
SQL> alter tablespace users begin backup;
Tablespace altered.
<3>复制users数据文件到备份目录:
[oracle@server1 bak]$ cp /u02/oradata/db01/users01.dbf /bak
<4>复制后表空间就不需要设置成为备份模式了,因此可以将其返回正常模式:
SQL> alter tablespace users end backup;
Tablespace altered.
5、脱机备份:
脱机备份也是热备份的一种方法,是指当表空间处于offline时,备份表空间的所有数据文件以及单个数据文件的过程。它的优点是会生产较少的重做日志文件,缺点是当用户正在进行脱机备份时所备份的表空间将不能访问,由于SYSTEM系统表空间和正在使用的UNDO表空间不能被脱机,因此脱机备份不适用于SYSTEM表空间和正在使用的UNDO表空间。
<1>使用DBA用户或特权用户登录,确定表空间所包含的数据文件。这个和联机备份的第一步相同:
SQL> select file_name from dba_data_files where tablespace_name='USERS';
FILE_NAME -------------------------------------------------------------------------------- /u02/oradata/db01/users01.dbf
<2>设置表空间为脱机状态,将表空间设置为脱机状态后用户将不能访问该表空间上的任何对象,因此也可以确保OFFLINE的表空间的数据文件不会发生改变。
SQL> alter tablespace users offline;
Tablespace altered.
SQL> select tablespace_name,online_status from dba_data_files;
TABLESPACE_NAME ONLINE_ ------------------------------ ------- USERS OFFLINE SYSAUX ONLINE UNDOTBS1 ONLINE SYSTEM SYSTEM
<3>复制users数据文件到备份目录:
[oracle@server1 bak]$ cp /u02/oradata/db01/users01.dbf /bak
<4>复制完后将表空间置于online状态:
SQL> alter tablespace users online;
Tablespace altered.
SQL> select tablespace_name,online_status from dba_data_files;
TABLESPACE_NAME ONLINE_ ------------------------------ ------- USERS ONLINE SYSAUX ONLINE UNDOTBS1 ONLINE SYSTEM SYSTEM