首页 > 数据库 >Oracle+11g+笔记(8)-备份与恢复机制

Oracle+11g+笔记(8)-备份与恢复机制

时间:2024-10-24 20:20:02浏览次数:18  
标签:闪回 恢复 数据库 11g 11.2 SQL Oracle 备份

Oracle+11g+笔记(8)-备份与恢复机制

8、备份与恢复机制

8.1 备份与恢复的方法

数据库的备份是对数据库信息的一种操作系统备份。这些信息可能是数据库的物理结构文件,也可能是某一部分数

据。在数据库正常运行时,就应该考虑到数据库可能出现故障,而对数据库实施有效的备份,保证可以对数据库进

行恢复。数据库恢复是基于数据库备份的。数据库恢复的方法取决于故障类型、备份方法。

在不同条件下需要使用不同的备份与恢复方法,某种条件下的备份信息只能由对应方法进行还原或恢复。备份与恢

复主要有三种方法:逻辑备份与恢复脱机备份与恢复联机备份与恢复

  • 逻辑备份与恢复:用Oracle 提供的实用工具软件,如导出/导入工具(exp,imp)、数据泵导入/导出工具

    (impdp,expdp)、装入器(SQL*Loader),将数据库中的数据进行卸出与装入。

  • 脱机备份与恢复:指在关闭数据库的情况下对数据库文件的物理备份与恢复,是最简单、最直接的方法。也称

    为冷备份与恢复。

  • 联机备份与恢复:指在数据库处于打开的状态下(归档模式)对数据库进行的备伤与恢复。只有能进行联机备份

    与恢复的数据库才能实现不停机地使用,也称为备份与恢复。

8.2 使用数据泵进行逻辑备份和恢复

逻辑备份与恢复具有多种方式(数据库级、表空间级、方案级和表级),可实现不同操作系统之间、不同Oracle 版本

之间的数据传输。在此介绍使用数据库泵进行逻辑备份与恢复的方法。

在以前的Oracle版本中,可以使用expimp程序进行导出/导入数据。在Oracle 11g中,又增加了expdp

impdp 程序来进行导出/导入数据,并且expdpimpdpexpimp 速度更快。导出数据是指将数据库中的数

据导出到一个导出文件中,导入数据是指将导出文件中的数据导入到数据库中。

使用expdpimpdp实用程序时,导出文件只能存放在目录对象指定的操作系统目录中。用CREATE DIRECTORY

语句创建目录对象,它指向操作系统中的某个目录。

格式为:

CREATE DIRECTORY OBJECT_NAME AS 'DIRECTORY_NAME'

其中,OBJECT_NAME为目录对象名,DIRECTORY NAME为操作系统目录名,目录对象指向后面的操作系统目录。

提示:数据泵除了可以进行数据库的备份与恢复外,还可以在数据库方案间、数据库间传输数据,实现数据库的升

级和减少磁盘碎片等作用。

# 下面举例创建目录对象并授予对象权限
SQL>CONNECT sys/sysroot;
SQL>create directory dir_obj1 as 'D:\app\zhangshixing\product\11.2.0\oradata\eygle\d1';
SQL>create directory dir_obj2 as 'D:\app\zhangshixing\product\11.2.0\oradata\eygle\d2';
SQL>grant read,write on directory dir_obj1 to scott;
SQL>grant read,write on directory dir_obj2 to scott;
SQL>select * from dba_directories where directory_name like'DIR%';
SQL> select * from dba_directories where directory_name like'DIR%';

OWNER                          DIRECTORY_NAME
------------------------------ ------------------------------
DIRECTORY_PATH
--------------------------------------------------------------------------------
SYS                            DIR_OBJ1
D:\app\zhangshixing\product\11.2.0\oradata\eygle\d1

SYS                            DIR_OBJ2
D:\app\zhangshixing\product\11.2.0\oradata\eygle\d2
8.2.1 使用 expdp 导出数据

expdp程序的所在路径为:D:\app\zhangshixing\product\11.2.0\dbhome_1\BIN

expdp语句的格式为:

expdp username/password parameter1[,parameter2,...]

其中,username为用户名,password为用户密码,parameter1parameter2 等参数的名称和功能如表所

示。

在这里插入图片描述

使用expdp程序,可以导出文件、导出表、导出方案、导出表空间等。

8.2.2 使用 impdp导入数据

impdp程序的所在路径为:D:\app\zhangshixing\product\11.2.0\dbhome_1\BIN

impdp 的语法格式为:

impdp username/password parameter1[,parameter2,...]

其中,username为用户名,password为用户密码,parameter1parameter2 等参数的名称和功能如表所

示。

在这里插入图片描述

在这里插入图片描述

使用impdp程序,可以导入数据、导入表、导入方案、导入表空间等。

8.3 脱机备份与恢复

脱机备份是在关闭数据库后进行的完全镜像备份,其中包括参数文件、网络连接文件、控制文件、数据文件和联机

重做日志文件。脱机恢复是用备份文件将数据库恢复到备份时的状态。

8.3.1 脱机备份

脱机备份是指在数据库处于干净关闭状态下进行的操作系统备份,是对于构成数据库的全部文件的备份。需要备份

的文件包括参数文件、所有控制文件、所有数据文件、所有联机重做日志文件。

脱机备份的具体操作过程如下:

# Step1 以SYS用户和SYSDBA身份,在SQL*Plus中,以IMMEDIATE方式关闭数据库
SQL>CONNECT sys/sysroot AS sysdba
SQL>shutdown immediate
# Step2 创建备份文件的目录,如:D:\app\zhangshixing\product\11.2.0\oradata\eygle
# Step3 使用操作系统命令或工具备份数据库所有文件,要备份的控制文件可以通过查询数据字典视图 
# v$controlfile看到,要备份的数据文件可以通过查询数据字典视图dba_data_files看到
# 要备份的联机重做日志文件可以通过查询数据字典视图 v$logfile
select * from v$controlfile;

STATUS|NAME                                                      |IS_RECOVERY_DEST_FILE|BLOCK_SIZE|FILE_SIZE_BLKS|
------+----------------------------------------------------------+---------------------+----------+--------------+
      |D:\APP\ZHANGSHIXING\ORADATA\ORCL\CONTROL01.CTL            |NO                   |     16384|           594|
      |D:\APP\ZHANGSHIXING\FLASH_RECOVERY_AREA\ORCL\CONTROL02.CTL|NO                   |     16384|           594|
select * from dba_data_files;

FILE_NAME                                                  |FILE_ID|TABLESPACE_NAME    |BYTES    |BLOCKS|STATUS   |RELATIVE_FNO|AUTOEXTENSIBLE|MAXBYTES   |MAXBLOCKS|INCREMENT_BY|USER_BYTES|USER_BLOCKS|ONLINE_STATUS|
-----------------------------------------------------------+-------+-------------------+---------+------+---------+------------+--------------+-----------+---------+------------+----------+-----------+-------------+
D:\APP\ZHANGSHIXING\ORADATA\ORCL\USERS01.DBF               |      4|USERS              |  6553600|   800|AVAILABLE|           4|YES           |34359721984|  4194302|         160|   5505024|        672|ONLINE       |
D:\APP\ZHANGSHIXING\ORADATA\ORCL\UNDOTBS01.DBF             |      3|UNDOTBS1           |104857600| 12800|AVAILABLE|           3|YES           |34359721984|  4194302|         640| 103809024|      12672|ONLINE       |
D:\APP\ZHANGSHIXING\ORADATA\ORCL\SYSAUX01.DBF              |      2|SYSAUX             |639631360| 78080|AVAILABLE|           2|YES           |34359721984|  4194302|        1280| 638582784|      77952|ONLINE       |
D:\APP\ZHANGSHIXING\ORADATA\ORCL\SYSTEM01.DBF              |      1|SYSTEM             |723517440| 88320|AVAILABLE|           1|YES           |34359721984|  4194302|        1280| 722468864|      88192|SYSTEM       |
D:\APP\ZHANGSHIXING\ORADATA\ORCL\EXAMPLE01.DBF             |      5|EXAMPLE            |104857600| 12800|AVAILABLE|           5|YES           |34359721984|  4194302|          80| 103809024|      12672|ONLINE       |
D:\APP\ZHANGSHIXING\PRODUCT\11.2.0\ORADATA\EYGLE\STUD01.DBF|      6|STUDENT_INFORMATION|104857600| 12800|AVAILABLE|           6|NO            |          0|        0|           0| 103809024|      12672|ONLINE       |
D:\APP\ZHANGSHIXING\PRODUCT\11.2.0\ORADATA\EYGLE\STUD02.DBF|      7|STUDENT_INFORMATION|104857600| 12800|AVAILABLE|           7|NO            |          0|        0|           0| 103809024|      12672|ONLINE       |
D:\APP\ZHANGSHIXING\PRODUCT\11.2.0\ORADATA\EYGLE\STUD03.DBF|      8|STUDENT_INFORMATION|  2097152|   256|AVAILABLE|           8|NO            |          0|        0|           0|   1048576|        128|ONLINE       |
D:\APP\ZHANGSHIXING\PRODUCT\11.2.0\ORADATA\EYGLE\TEST01.DBF|      9|TEST               |  5242880|   640|AVAILABLE|           9|NO            |          0|        0|           0|   4194304|        512|ONLINE       |
D:\APP\ZHANGSHIXING\PRODUCT\11.2.0\ORADATA\EYGLE\TEST02.DBF|     10|TEST               | 10485760|  1280|AVAILABLE|          10|NO            |          0|        0|           0|   9437184|       1152|ONLINE       |
D:\APP\ZHANGSHIXING\PRODUCT\11.2.0\ORADATA\EYGLE\TEST03.DBF|     11|TEST               | 10485760|  1280|AVAILABLE|          11|NO            |          0|        0|           0|   9437184|       1152|ONLINE       |
select * from v$logfile;

GROUP#|STATUS|TYPE  |MEMBER                                     |IS_RECOVERY_DEST_FILE|
------+------+------+-------------------------------------------+---------------------+
     3|      |ONLINE|D:\APP\ZHANGSHIXING\ORADATA\ORCL\REDO03.LOG|NO                   |
     2|      |ONLINE|D:\APP\ZHANGSHIXING\ORADATA\ORCL\REDO02.LOG|NO                   |
     1|      |ONLINE|D:\APP\ZHANGSHIXING\ORADATA\ORCL\REDO01.LOG|NO                   |

提示:要备份的参数文件存放在主目录中的database目录中

(D:\app\zhangshixing\product\11.2.0\dbhome_1\dbs)。

要备份的网络连接文件存放在主目录中的NETWORK\ADMIN

目录中(D:\app\zhangshixing\product\11.2.0\dbhome_1\NETWORK\ADMIN,如果定制了

SQL*Plus,还要备份 D:\app\zhangshixing\product\11.2.0\dbhome_1\sqlplus\admin 目录中的文件。

# Step4 备份完成后,如果继续让用户使用数据库,需要以OPEN方式启动数据库
startup open
8.3.2 脱机恢复

脱机恢复的具体操作步骤为:

Step1:以SYS用户和SYSDBA身份,在SQL*Plus中,以IMMEDIATE方式关闭数据库。

Step2:把所有备份文件全部拷贝到原来所在的位置。

Step3:恢复完成后,如果继续让用户使用数据库,需要以OPEN方式启动数据库。

8.4 联机备份与恢复

可以用恢复管理器(Recovery MANager,RMAN)来实现联机备份与恢复数据库文件、归档日志和控制文件。

RMAN程序的所在路径为:D:\app\zhangshixing\product\11.2.0\dbhome_1\BIN

RMAN命令的主要参数有:

  • target:后面跟目标数据库的连接字符串。

  • catalog:后面跟恢复目录。

  • nocatalog:指定没有恢复。

8.4.1 归档日志模式的设置

要使用RMAN,首先必须将数据库设置为归档日志(ARCHIVELOG)模式。其具体操作过程如下:

Step1:以SYS用户和SYSDBA身份登录到SQL*Plus

Step2:以IMMEDIATE 方式关闭数据库,同时也关闭了数据库实例,然后以mount方式启动数据库,此时并没打

开数据库实例。

SQL>CONNECT sys/sysroot AS sysdba

SQL>shutdown immediate

SQL>startup mount

Step3:把数据库实例从非归档日志模式(NOARCHIVELOG)切换为归档日志模式(ARCHIVELOG)。其语句为:

SQL>alter database archivelog;

Step4:查看数据库实例信息。

SQL>select dbid,name,log_mode,platform_name from v$database;

可以看到当前实例的当前日志模式已经修改为ARCHIVELOG

8.4.2 创建恢复目录所用的表空间

需要创建表空间存放与RMAN相关的数据。打开数据库实例,创建表空间。

SQL>CONNECT sys/sysroot AS sysdba

SQL>alter database open;

SQL>create tablespace rman_ts datafile 'D:\app\zhangshixing\product\11.2.0\oradata\eygle' size 200M;

其中,rman_ts为表空间名,数据文件为rman ts.dbf,表空间大小为200M

8.4.3 创建RMAN用户并授权

创建用户rman,密码为zzuli,默认表空间为rman_ts,临时表空间为temp,给rman用户授予connect

recovery_catalog_ownerresource 权限。其中,拥有connect 权限可以连接数据库,创建表、视图等数

据库对象;拥有recovery_catalog_owner 权限可以对恢复目录进行管理;拥有resource 权限可以创建表、视

图等数据库对象。

SQL>CONNECT sys/zzuli AS sysdba

SQL>create user rman identified by zzuli default tablespace rman_ts temporary tablespace temp;

SQL>grant connect,recovery_catalog_owner,resource to rman;
8.4.4 创建恢复目录

RMAN目录下先运行RMAN程序打开恢复管理器。

D:\app\zhangshixing\product\11.2.0\dbhome_1\BIN> RMAN catalog rman/zzuli target orc

再使用表空间创建恢复目录,恢复目录为rman ts

RMAN>create catalog tablespace rman_ts;
8.4.5 注册目标数据库

只有注册的数据库才可以进行备份和恢复,使用register database命令可以对数据库进行注册。

RMAN>register database;
8.4.6 使用 RMAN程序进行备份

使用 run 命令定义一组要执行的语句,进行完全数据库备份。

RMAN>run{ allocate channel dev1 type disk;
backup database;
release channel dev1;
}

也可以备份归档日志文件:

RMAN>run{
allocate channel dev1 type disk;
backup archivelog all
release channel dev1;
}

在备份后,可以使用list backup 命令查看备份信息。

RMAN>list backup;
8.4.7 使用RMAN程序进行恢复

要恢复备份信息,可以使用restore 命令还原数据库。如恢复归档日志:

RMAN>run{
allocate channel dev1 type disk;
restore archivelog all;
release channel dev1;
}

8.5 自动备份与恢复

使用闪回(Flashback)技术可以实现基于磁盘上闪回恢复区的自动备份与恢复。

闪回技术包括闪回数据库、闪回表、闪回回收站、闪回查询、闪回版本查询、闪回事务查询等。

8.5.1 闪回数据库

使用闪回数据库可以快速将Oracle数据库恢复到以前的某个时间。要使用闪回数据库,必须首先配置闪回恢复

区:

SYS用户以SYSDBA身份登录SQL*Plus,对db_recovery_file_dest进行恢复区位置配置:

D:\app\zhangshixing\product\11.2.0\oradata\eygle\flash_recovery_area

db_recovery_file_dest_size 进行恢复区大小配置:2G

接着在SQL*Plus中配置闪回数据库。

SQL>CONNECT sys/sysroot AS sysdba

SQL>shutdown immediate

SQL>startup mount

SQL>alter database flashback on;

SQL>alter database open;

设置日期时间显示方式:

SQL>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

从系统视图v$flashback_database_log中查看闪回数据库日志信息:

SQL>select * from v$flashback_database_log;

使用flashback database 语句闪回恢复的数据库:

SQL>flashback database to timestamp(to_date('2009-05-28 12:30:00','yyyy-mm-dd hh24:mi:ss'));

闪回恢复后,再打开数据库实例时,需要使用 resetlogsnoresetlogs 参数。

SQL>alter database open resetlogs;

SQL>select * from hr.mydep;
8.5.2 闪回表

使用 flashback table 语句可以闪回表。

【闪回表示例,以下语句将首先删除表hr.mydep1中的部分记录,然后使用flashback把删除的记录闪回】

SQL>set time on

SQL>create table hr.mydep1 as select * from hr.department;

SQL>delete from hr.mydep1 where department_id=10;

SQL>flashback table hr.mydep1 to timestamp(to_tate('2009-05-29 10:00:00','yyyy-mm-dd hh24:mi:ss'));
8.5.3 闪回回收站

Oracle中有一个回收站对象(recyclebin),类似于Windows的回收站,可以使用闪回回收站。

查看回收站中的数据:

SQL>select object_name,original_name,createtime,droptime from DBA_RECYCLEBIN;

从回收站中恢复数据:

SQL>flashback table hr.mydep2 to before drop;

删除回收站中的数据可以使用purge命令:

SQL>purge table hr.mydep1;

清空回收站,可以使用:

SQL>purge dba_recyclebin;
8.5.4 闪回查询

闪回查询可以查询指定时间点表中的数据。要使用闪回查询,必须将UNDO_MANAGEMENT 设置为AUTO

SQL>set time on

创建示例表:

SQL>create table hr.mydep4 as select * from hr.departments;

删除记录:

SQL>delete from hr.mydep4 where department_id=300;
SQL>commit;

使用 select 查询不到刚才删除的记录,但使用闪回查询可以找到:

SQL>select * from hr.mydep4 as of timestamp to timestamp(to_tate('2009-05-29 10:00:00','yyyy-mm-dd hh24:mi:ss')) where department_id=300;
8.5.5 闪回版本查询

闪回版本查询可以对查询提交后的数据进行审核。查询方法是在select 语句中使用versions between 子句。

创建一个学生成绩表:

SQL>create table student(name Varchar2(10),score Number);

插入一条记录:

SQL>insert into student values('zs',68);

更新表中数据:

SQL>update student set score=98 where name='zs';

提交:

SQL>commit;

使用闪回版本查询:

SQL>select versions_starttime,versions_operation,name,score from student versions between timestamp minvalue and maxvalue;
8.5.6 闪回事务查询

闪回事务保存在表 flashback_transaction_query中,对已经提交的事务,也可以通过闪回事务查询。

已经提交的事务,通过闪回事务查询。

SQL>CONNECT sys/sysroot AS sysdba

SQL>select table_name,undo_sql from flashback_transaction_query where rownum<5;

其中,table_name 表示事务涉及的表名,undo_sql 表示撤销事务所要执行的SQL语句。

8.6 几种备份与恢复方法的比较

逻辑备份与恢复是利用实用程序(数据泵)实现数据库、方案、表结构和数据的备份与恢复。有许多可选参数,比脱

机备份与恢复灵活,也能实现数据的传递和数据库的升级。

脱机备份是在关闭掉数据库状态下,把数据库文件拷贝到要备份的地方,脱机恢复是个逆过程。

联机备份与恢复是在数据库打开的状态下使用RMAN技术来备份与恢复。

自动备份与恢复是使用闪回技术实现基于磁盘的自动备份与恢复,大大减少了管理开销。

标签:闪回,恢复,数据库,11g,11.2,SQL,Oracle,备份
From: https://blog.csdn.net/qq_30614345/article/details/136985586

相关文章