您的位置:首页 > 其它

联机备份与恢复

2013-06-04 18:26 85 查看
热备份是当数据库已经启动并且运行的时候进行的一种备份。整个数据库可以被备份,表空间或者数据文件的子集可以在一次被备份,当执行热备份的时候,最终用户可以继续进行他们所有的正常操作。为此,数据库必须运行在归档日志模式。一旦备份完成,需要确认所有在备份操作期间被建立的日志记录在随后已经被归档。

联机备份一般备份数据文件、控制文件和日志文件。

联机备份优缺点:

优点:

– 可在表空间或数据文件级备份,备份时间短。

– 备份时数据库仍可使用。

– 可达到秒级恢复(恢复到某一时间点上)。

– 可对几乎所有数据库实体作恢复。

– 恢复快速,大多数情况下恢复不需要关闭数据库。

缺点:

– 不能出错,否则后果严重。

– 若联机备份不成功,所得结果不可用于时间点的恢复。

– 因难于维护,所以要特别小心,不允许“以失败而告终”。

实验案例:

1.联机备份的前提是数据库必须为归档模式

a.如何查看是否归档

SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 21
Next log sequence to archive 23
Current log sequence 23

b.如果为非归档模式,则需要开启

首先关闭数据库,SQL>shutdown immediate

a.装载但不打开数据库:startup mount;

b.修改为归档模式:alter database archivelog;

c.打开并访问数据库:alter database open;

开始实验:

1.创建表空间

SQL> create tablespace data01 datafile '/u01/app/oracle/oradata/orcl/data01.dbf' size 10m;

Tablespace created.

2.在该表空间上面创建表

SQL> create table score(name varchar2(20),id int) tablespace data01;

Table created.

3.确认是否在对应表空间创建表

SQL> select tablespace_name from tabs where table_name='SCORE';

TABLESPACE_NAME
------------------------------
DATA01

4.开始插入数据

SQL> insert into score values('chinese',50);

1 row created.

SQL> insert into score values('Math',60);

1 row created.

SQL> commit;

Commit complete.

5.开始联机备份

SQL> alter tablespace data01 begin backup;

Tablespace altered.

6.物理复制表空间文件

SQL> host cp '/u01/app/oracle/oradata/orcl/data01.dbf' '/u01/app/oracle/oradata/orcl/bak';

SQL> alter tablespace data01 end backup;

Tablespace altered.

7.使表空间脱机,然后删除数据文件

SQL> alter tablespace data01 offline;

Tablespace altered.

SQL> host rm -rf /u01/app/oracle/oradata/orcl/data01.dbf

8.尝试使表空间联机

SQL> alter tablespace data01 online;
alter tablespace data01 online
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 6 - see DBWR trace file
ORA-01110: data file 6: '/u01/app/oracle/oradata/orcl/data01.dbf'

9.物理拷贝表空间数据文件
SQL> host cp /u01/app/oracle/oradata/orcl/bak/data01.dbf /u01/app/oracle/oradata/orcl/

SQL> alter tablespace data01 online;
alter tablespace data01 online
*
ERROR at line 1:
ORA-01113: file 6 needs media recovery
ORA-01110: data file 6: '/u01/app/oracle/oradata/orcl/data01.dbf'

10.开始恢复
SQL> recover datafile 6;
Media recovery complete.

11.使表空间联机
SQL> alter tablespace data01 online;

Tablespace altered.

12.查询数据,恢复完成

SQL> select * from score;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: