Oracle-数据库备份与恢复

数据库备份与恢复

实验目的

掌握oracle数据库常用的备份方法。

实验内容

(1)数据备份的方法

实验步骤

1、数据库备份

1)Oracle物理备份与恢复

.0.准备工作:

(1) 查看数据库是否运行于归档模式下:

请给出查询的结果:

干净的关闭数据库,做一个完全的冷备份。

提示:a.使用showdown命令;  b.复制数据文件、日志文件和控制文件到安全地方

(2) 把数据库改为归档模式

SQL> startup mount

SQL> alter database archivelog;

SQL> alter database open;

设置成自动归档

SQL> alter system set log_archive_start = true scope=spfile;

1.数据库系统数据文件和回退段遭破坏的情况下的恢复。此时数据库的状态是关闭的。

(1) 先启动数据库,用scott用户建立test表,并插入两条数据。

SQL> create table scott.test (id int);

表已创建。

SQL> insert into scott.test values(1);

已创建 1 行。

SQL> insert into scott.test values(2);

已创建 1 行。

SQL> commit;

提交完成。

(2)模拟数据库遭意外被迫关闭,并且系统数据文件丢失。

SQL> shutdown abort

把oracle服务停掉,移除SYSTEM01.dbf和UNDOTBS01.DBF文件(即将这两个文件移到其他文件夹下)。

(3)启动服务,启动数据库, 提示如下错误

a. 启动服务

b. 启动数据库

SQL> startup

请给执行结果:

(4)把备份的SYSTEM01.dbf和UNDOTBS01.DBF文件复制回去

a. 执行以下命令:

请给执行结果:

然后就可以打开数据库,查看scott用户的test表。

SQL> alter database open;

SQL> select * from scott.test;

请给执行结果:

实2:

数据库是打开的,这时损坏的文件是用户的数据文件而不是system和undo文件。

(1)用scott用户在users表空间建立test1表

SQL> create table scott.test1(id int)

2  tablespace users;

表已创建。

(2) 插入两条数据

SQL> insert into scott.test1 values(1);

已创建 1 行。

SQL> insert into scott.test1 values(2);

已创建 1 行。

SQL> commit;

提交完成。

(3)当前日志归档

SQL> alter system archive log current;

系统已更改。

(4)现在破坏users表空间,使其离线,然后移除users01.dbf到一个指定文件夹(备份)

SQL> alter tablespace users offline;

表空间已更改。

执行:SQL> alter tablespace users online;

请给执行结果:

此时出现错误,users表空间不能在线了。这时把备份的users01.DBF还原回去。

然后,执行:SQL> recover tablespace users;

(5)完成介质恢复。

SQL> alter tablespace users online;

表空间已更改。

SQL> select * from scott.test1;

请给执行结果:

实3:数据文件没有备份(不能使system和undo文件)的恢复。

(1)创建表空间testspace

在SQL Plus中依次执行以下语句,给出最后的执行结果:

SQL>  create tablespace testspace  datafile ‘C:\oracle\product\10.1.0\db_1\TestDB\testspace.dbf‘ size 10m;

SQL> create table scott.test3(id int)

tablespace testspace;

SQL> commit;

SQL> alter system switch logfile;

SQL> insert into scott.test3 values(1);

SQL> commit;

SQL> alter tablespace testspace offline;

SQL> select * from scott.test3;

请给执行结果:

(2)由于没有备份数据文件,需重新创建一个

SQL> alter database create datafile

‘C:\oracle\product\10.1.0\db_1\TestDB\testspace.dbf‘;

SQL> recover tablespace testspace;

(3) 完成恢复

SQL> alter tablespace testspace online;

表空间已更改。

SQL> select * from scott.test3;

请给执行结果:

2)逻辑备份:导入导出实验

实4:模式的导入导出

案例:将scott/tiger用户对应的模式导出,通过导出文件将其导入到Test用户(为一个空用户)对应的模式中,包括该模式中的所有对象的定义和数据。

1.准备工作

(1)创建用户:

Create user test

Identified by test;

(2)授权:

注:这儿做了简化处理,实际工作中,尽量不要授DBA权限给一般用户。

2.数据的导出与导入

(1)数据准备

以scott身份登录: conn scott/tiger

①创建测试用表:

create table  jobs(

name  varchar2(20),

job    varchar2(40),

sales   number);

加入数据:

insert into jobs values(‘IT_Test‘,‘software testing‘,3000);

提交:

commit;

②创建测试用表scott_test

create table scott_test(

name  varchar2(10),

age    number);

加入数据:

insert into scott_test values(‘manager‘,‘40‘);

(2)以管理员身份登录:

conn as sysdba;

alter system enable restricted session;

(3)导出数据库:

在DOS提示符下执行:

exp system/ testdb full=y file=test.dmp

执行时,会要求输入system的口令,请根据实际情况输入。

(4)恢复数据库运行状态

conn as sysdba;

alter system disable restricted session;

(5)进行数据库的导入:

以下是一示例:

imp system/testdb fromuser=scott touser=test tables=(scott_test,jobs) file=test.dmp ignore=y;

请给执行结果:

3.结果检验

对导入的数据进行查询,以确定导入是否成功,给出结果截图:

(1)以test身份登录到数据库

(2)查询刚才导出(导入)表中的某个表(如Jobs):

请给执行结果:

实验小结:

1. 备份原则与策略:在刚建立数据库时,应该立即进行数据库的完全备份;

将所有的数据库备份保存在一个独立磁盘上(必须是与当前数据库系统正在使用的文件不同的磁盘);

应该保持控制文件的多路复用,且控制文件的副本应该存放在不同磁盘控制器下的不同磁盘设备上;

应该保持多个联机日志文件组,每个组中至少应该保持两个日志成员,同一日志组的多个成员应该分散存放在不同磁盘上;

至少保证两个归档重做日志文件的归档目标,不同归档目标应该分散于不同磁盘;

如果条件允许,尽量保证数据库运行于归档模式;

根据数据库数据变化的频率情况确定数据库备份规律;

在归档模式下,当数据库结构发生变化时,如创建或删除表空间、添加数据文件、重做日志文件等,应该备份数据库的控制文件;

在非归档模式下,当数据库结构发生变化时,应该进行数据库的完全备份;

在归档模式下,对于经常使用的表空间,可以采用表空间备份方法提高备份效率;

在归档模式下,通常不需要对联机重做日志文件进行备份;

使用RESETLOGS方式打开数据库后,应该进行一个数据库的完全备份;

对于重要的表中的数据,可以采用逻辑备份方式进行备份。

2.根据数据备份方式的不同,数据库备份分为:

物理备份:将组成数据库的数据文件、重做日志文件、控制文件、初始化参数文件等操作系统文件进行复制,将形成的副本保存到与当前系统独立的磁盘或磁带上。

逻辑备份是指利用Oracle提供的导出工具(如Expdp,Export)将数据库中的数据抽取出来存放到一个二进制文件中。

3. 根据数据库备份时是否关闭数据库服务器,物理备份分为:

冷备份又称停机备份,是指在关闭数据库的情况下将所有的数据库文件复制到另一个磁盘或磁带上去。

热备份又称联机备份,是指在数据库运行的情况下对数据库进行的备份。要进行热备份,数据库必须运行在归档日志模式下。

4. 根据数据库备份的规模不同,物理备份可分为:

完全备份:指对整个数据库进行备份,包括所有的物理文件。

部分备份 :对部分数据文件、表空间、控制文件、归档重做日志文件等进行备份。

5. 根据数据库是否运行在归档模式,物理备份可分为:归档备份,非归档备份

6. 如果没有启用归档模式,数据库不能恢复到备份完成后的任意时刻。如果启用归档模式,从冷备份结束后到出现故障这段时间的数据库恢复,可以利用联机日志文件和归档日志文件实现。

时间: 2024-10-18 03:39:59

Oracle-数据库备份与恢复的相关文章

Oracle数据库备份与恢复的三种方法

转自blueskys567原文Oracle数据库备份与恢复的三种方法, 2006-10. 有删改 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP).热备份和冷备份. 导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一. 导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去. 1. 简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的

ORACLE数据库备份与恢复详解

ORACLE数据库备份与恢复详解 学习过程中的总结,有兴趣不妨看看,如果有不对的地方,高手不要留情!! Oracle的备份与恢复有三种标准的模式,大致分为两 大类,备份恢复(物理上的)以及导入导出(逻辑上的),而备份恢复又可以根据数据库的工作模式分为非归档模式(Nonarchivelog-style) 和归档模式(Archivelog-style),通常,我们把非归档模式称为冷备份,而相应的把归档模式称为热备份,他们的关系如下所示 三种方式各有优点,我们做个比较(这个是用Fireworks画的,

Oracle数据库备份与恢复

oracle数据库导出 su - oracle exp 用户名/密码@SID file=backup.dmp 示例: [[email protected] ~]$ exp dtoa/[email protected] file=/u01/oracle/backup.dmp oracle数据库导入 imp 用户名/密码@SID file=backup.dmp full=y 示例: [[email protected] ~]$ imp dtoa/[email protected] file=/u01

如何Oracle 数据库备份与恢复

转自一位大神的笔记. 一. 理解什么是数据库恢复  当我们使用一个数据库时,总希望数据库的内容是可靠的.正确的,但由于计算机系统的故障(硬件故障.软件故障.网络故障.进程故障和系统故障)影响数据库系统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失.因此当发生上述故障后,希望能重构这个完整的数据库,该处理称为数据库恢复.恢复过程大致可以分为复原(Restore)与恢复(Recover)过程. 数据库恢复可以分为以下两类: 1.1实例故障的一致性恢复 当实例意外地(如

Oracle数据库备份和恢复的基本命令

Oracle数据库备份与恢复基本命令 1. 获取帮助 $ exp help=y $ imp help=y 2.三种工作方式 (1)交互式方式 $ exp 然后按提示输入所需要的参数 (2)命令行方式 $ exp user/[email protected] file=/oracle/test.dmp full=y 命令行中输入所需的参数 (3)Oracle数据库备份与恢复中我们要走涉及到参数文件方式 $ exp parfile=username.par 在参数文件中输入所需的参数 参数文件 us

Oracle数据库基础入门培训视频课程_Oracle视频教程培训

课程目标 Oracle视频教程,本套风哥oracle教程培训入门学习内容包括Oracle版本介绍,Oracle基本概念,Oracle物理结构,Oracle结构,Oracle数据文件,Oracle控制文件,Oracle参数文件,Oracle启动与停止,Oracle高用性架构,Oracle数据库备份与恢复,Oracle单机/OracleRAC/OracleDataGuard等相关基础等. 适用人群 IT相关从业人员,非IT相关人员 课程简介 视频学习地址:http://edu.51cto.com/c

Oracle数据库用户数据完整备份与恢复

使用PLSQL-Developer工具可以快速便捷地完成Oracle数据库用户.表的备份恢复. Oracle数据库用户数据完整备份与恢复 1. 备份 1.1   PL/SQL->工具->导出用户对象,选项如图 常用的用户对象包括: TABLE,SEQUENCE,VIEW,PACKAGE,TYPE,FUNCTION,PROCEDURE,PACKAGE BODY,TREGGER 选择需要导入的用户对象,导出.sql文件,此步骤导出的是建表语句,包括存储过程.触发器.视图等 . 1.2  PL/SQ

Oracle 10g数据库备份与恢复操作手册

Oracle 10g数据库备份与恢复操作手册 前言 文档目的 备份与恢复是数据库管理中最重要的方面之一.如果数据库崩溃却没有办法恢复它,那么对企业造成的毁灭性结果可能会是数据丢失.收入减少.客户不满等.不管公司是使用单个数据库还是多个数据库来存储数百  GB或    TB的数据,它们都有一个共同点,即需要制订一个备份与恢复方案来备份重要数据并使自身免于灾难.要制定一个适合自己公司情况的合理的备份与恢复方案,就必须熟悉备份与恢复的方法和操作. 为了给 Oracle DBA和相关技术人员提供一个参考

Oracle数据库泵的备份与恢复

Oracle数据库泵的备份与恢复 目录 一.数据库备份和恢复前的准备... 1 1.给数据库用户授权并创建DIRECTORY对象... 1_Toc388455817 二.数据泵的备份和恢复... 1 1.      数据库备份... 1 2.      数据库恢复... 2 三.进入交互模式... 4 一.数据库备份和恢复前的准备 1.给数据库用户授权并创建DIRECTORY对象 在SQL命令行下执行如下命令(执行sql的用户要有目录创建和授权的权限): grant create any dir

深入oracle 12c数据库备份与恢复(优化RMAN性能、Oracle flashback技术)

课程讲师:小流老师 课程分类:Oracle 适合人群:高级 课时数量:15课时 更新程度:完成 服务类型:C类(普通服务类课程) 用到技术:oracle 涉及项目:oracle 12c数据库备份与恢复 需要更多相关资料可以联系 Q2748165793 课程提纲 第一讲:介绍备份和恢复相关操作 备份和恢复的目标 备份和恢复的解决方案 Oracle flashback技术 第二讲:开始RMAN操作和RMAN体系架构 RMAN的环境 RMAN Channels RMAN Repository RMAN