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

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

时间:2024-10-24 20:20:02浏览次数:10  
标签:闪回 恢复 数据库 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

相关文章

  • nbu下oracle11g异机迁移
    操作系统:centos7.6oracle版本:11.2.0.4一、源数据库操作1.源库备份情况:查看nbu备份文件/usr/openv/netbackup/bin/bplist-Cbomdb-SNBU-server-t4-R-l/ 2.创建pfile文件并传递到目标库createpfile='/home/oracle/initbom.ora'fromspfile;scp-rinitbom.o......
  • Oracle 12C 一步一步安装大全避免踩坑(精华)
    Centos7安装oracle12c杂记参考https://blog.csdn.net/liu918458630/article/details/107531253https://blog.51cto.com/gblfy/5656598在CentOS7上挂载光盘并配置YUM源通常是为了在没有互联网连接的情况下安装软件包。以下是步骤:步骤1:挂载光盘首先,你需要将C......
  • 【磐维数据库】Oracle(透明网关)访问磐维数据库(PanWeiDB)
    磐维数据库(PanWeiDB)是由中国移动基于中国本土开源数据库openGauss打造的自研数据库产品,主要面向ICT基础设施。它具有高性能、高可靠性、高安全性和高兼容性的特点,能够支持集中式、分布式、云原生、一体机等多种应用场景。目前,磐维数据库已在中国移动的多个省(区、市)公司及专业公司......
  • Oracle认证证书的考试费用是多少
    近期有学员咨询时问到:他大学学的是it和计算机方面的课程,在投简历时经常会看到Oracle认证优先,所以来问问Oracle证书的事情。新接触数据库行业的毕业生或者转行的人可能不清楚Oracle认证的含金量,Oracle是非常有名的数据库产品,在db-ranking统计中,Oracle数据库一直霸占第一的位置,Orac......
  • Oracle Spatial详解(空间数据库)
    OracleSpatial详解(空间数据库)完全转自:http://www.cnblogs.com/frogbag/archive/2007/10/17/926870.html Step1.创建一张表,其中shape用来存放空间数据 CREATETABLEmylake(   feature_idNUMBERPRIMARYKEY,   nameVARCHAR2(32),    shapeMDSYS.SDO_G......
  • Oracle Spatial基础
    OracleSpatial基础完全转自:http://blog.sina.com.cn/s/blog_439d2cef01009c4a.html 一、OracleSpatial简介    Oracle支持自定义的数据类型,可以用数组,结构体或者带有构造函数,功能函数的类来定义自己的对象类型。这样的对象类型可以用于属性列的数据类型,也可以用来......
  • Oracle-Spatial空间数据库基础
    Oracle-Spatial空间数据库基础完全转自:https://blog.csdn.net/wyp_666/article/details/72775714一、简介 oraclespatial是oracle公司推出的空间数据库组件,使oracle具备处理空间数据的能力。从9i开始对空间数据提供了比较完备的支持。OracleSpatial主要通过元数据表、空间......
  • Oracle11g一键巡检脚本(输出HTML格式)
    脚本内容:#!/bin/bash#设置Oracle环境变量exportORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1exportORACLE_SID=orcl11gexportPATH=$ORACLE_HOME/bin:$PATHfunctionseparator(){localLine=Title=Bytes=Xlength=Title="$*"Line='......
  • 简单的数据库备份脚本
    数据库备份脚本是一种用于定期将数据库中的数据导出到一个文件中的程序,通常用于数据恢复或迁移的目的。数据库备份脚本可以根据不同的数据库类型和需求,采用不同的语言和工具编写,例如Shell、Python、MySQLdump等。本文将介绍如何编写一个简单的数据库备份脚本,并给出一个示例。编写......
  • 生产数据恢复系列之使用闪回查询恢复Oracle delete误删数据
    一、背景在日常运维过程中,如果不小心使用高危命令删除了数据库的数据,如果没有数据备份,记住不要跑路噢,跟着我一起学习如何恢复数据。二、概念普及UNDO表的作用Undo表存储了已提交和未提交事务所产生的旧数据版本,在需要回滚事务或实现并发控制时使用。每当对数据库进行DM......