千家信息网

Oracle 之数据库备份与恢复

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,Oracle数据库备份与恢复下面通过一些简单的例子来了解一下:Oracle数据库各种物理备份的方法。利用RMAN工具进行数据库的备份与恢复。数据的导出与导入操作。(1)关闭BOOKSALES数据库,进
千家信息网最后更新 2026年11月01日Oracle 之数据库备份与恢复

  Oracle数据库备份与恢复

  下面通过一些简单的例子来了解一下:

  Oracle数据库各种物理备份的方法。

  利用RMAN工具进行数据库的备份与恢复。

  数据的导出与导入操作。

  (1)关闭BOOKSALES数据库,进行一次完全冷备份。

  select file_name from dba_data_files;

  select member from v$logfile;

  select value from v$parameter where name='control_files';

  shutdown immediate

  //复制所有的数据文件、联机重做日志文件以及控制文件到备份磁盘

  startup

  (2)启动数据库后,在数据中创建一个名为cold表,并插入数据,以改变数据库的状态。

  create table cold (id number(5,0) primary key);

  Table COLD 已创建。

  insert into cold values(1);

  1行已插入。

  select * from cold;

  (3)利用数据库冷备份恢复BOOKSALES数据库到备份时刻的状态,并查看恢复后是否存在cold表。

  //关闭数据库

  shutdown immediate

  //将备份的所有数据文件、控制文件、联机重做日志文件还原到原来所在的位置。

  //重新启动数据库

  startup

  (4)将BOOKSALES数据库设置为归档模式。

  //关闭数据库

  shutdown immediate

  //设置归档目的地

  select name,value from v$parameter where name='db_recovery_file_dest';

  alter system set log_archive_dest='D:\Oracle\backup\archive';

  alter system set log_archive_duplex='D:\Oracle\backup\archive';

  //将数据库启动到加载状态

  startup mount

  //改变数据库为归档模式

  alter database archivelog;

  //打开数据库

  alter database open;

  (5)对BOOKSALES数据库进行一次热备份。

  select tablespace_name,file_name from dba_data_files order by tablespace_name;

  alter tablespace users begin backup;

  Tablespace USERS已变更。

  //将表空间中所有的数据文件复制到备份磁盘

  alter tablespace users end backup;

  Tablespace USERS已变更。

  (6) 在数据库中创建一个名为hot表,并插入数据,以改变数据库的状态。

  create table hot (id number primary key, name varchar2(25)) tablespace users;

  Table HOT 已创建。

  insert into hot values(33, 'xushicheng');

  1行已插入。

  (7) 假设保存hot表的数据文件损坏,利用热备份进行数据库恢复。

  shutdown abort

  startup mount

  recover datafile 'D:\Oracle\app\administrators\oradata\BOOKSALES\users002.dbf';

  alter database datafile 'D:\Oracle\app\administrators\oradata\BOOKSALES\users002.dbf' online;

  alter database open;

  (8) 数据库恢复后,验证hot表的状态及其数据情况。

  select * from hot;

  (9) 利用数据库的热备份,分别进行基于时间,基于SCN和基于CANCEL的不完全恢复。

  shutdown abort;

  startup mount;

  recover database until time '2019-6-1';

  set time on

  alter system switch logfile;

  System SWITCH已变更。

  alter session set nls_date_format='YYYY-MM-DD HH24:MI:SS';

  Session已变更。

  select recid,stamp,sequence#,first_change#,first_time,next_change# from v$log_history;

  shutdown abort;

  startup mount;

  recover database until change 1344396;

  (10) 为了使用RMAN工具备份与恢复BOOKSALES数据库,配置RMAN的自动通道分配。

  RMAN target sys/admin@BOOKSALES

  RMAN> configure default device type to sbt;

  使用目标数据库控制文件替代恢复目录

  新的 RMAN 配置参数:

  CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';

  已成功存储新的 RMAN 配置参数

  RMAN> configure device type disk parallelism 2;

  新的 RMAN 配置参数:

  CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;

  已成功存储新的 RMAN 配置参数

  RMAN> configure device type disk parallelism 3;

  旧的 RMAN 配置参数:

  CONFIGURE DEVICE TYPE DISK PARALLELISM 2 BACKUP TYPE TO BACKUPSET;

  新的 RMAN 配置参数:

  CONFIGURE DEVICE TYPE DISK PARALLELISM 3 BACKUP TYPE TO BACKUPSET;

  已成功存储新的 RMAN 配置参数

  RMAN> configure channel 3 device type disk maxpiecesize=50m;

  新的 RMAN 配置参数:

  CONFIGURE CHANNEL 3 DEVICE TYPE DISK MAXPIECESIZE 50 M;

  已成功存储新的 RMAN 配置参数

  (11)利用RMAN工具完全备份BOOKSALES数据库。

  shutdown immediate

  alter system set log_archive_dest_1='location=D:\Oracle\backup\ARCHIVE MANDATORY';

  System SET已变更。

  startup mount

  alter database archivelog;

  RMAN> backup database format 'D:\Oracle\backup\%U.BKP';

  启动 backup 于 03-6月 -19

  使用目标数据库控制文件替代恢复目录

  RMAN-00571: ===========================================================

  RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

  RMAN-00571: ===========================================================

  RMAN-03002: backup 命令 (在 06/03/2019 00:21:49 上) 失败

  ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:

  ORA-27211: 未能加载介质管理库

  (12) 利用RMAN工具备份BOOKSALES数据库的初始化参数文件和控制文件。

  RMAN> backup spfile format 'D:\Oracle\app\administrators\oradata\BOOKSALES\%U';

  启动 backup 于 03-6月 -19

  RMAN-00571: ===========================================================

  RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

  RMAN-00571: ===========================================================

  RMAN-03002: backup 命令 (在 06/03/2019 00:23:19 上) 失败

  ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:

  ORA-27211: 未能加载介质管理库

  RMAN> backup current controlfile format 'D:\Oracle\app\administrators\oradata\BOOKSALES\%U.CTL';

  启动 backup 于 03-6月 -19

  RMAN-00571: ===========================================================

  RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

  RMAN-00571: ===========================================================

  RMAN-03002: backup 命令 (在 06/03/2019 00:24:58 上) 失败

  ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:

  ORA-27211: 未能加载介质管理库

  (13)利用RMAN工具对USERS表空间、BOOKTBS1表空间进行备份。

  RMAN> backup tablespace users,booktbs1 format 'D:\Oracle\app\administrators\oradata\BOOKSALES\%U.BKP';

  启动 backup 于 03-6月 -19

  RMAN-00571: ===========================================================

  RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

  RMAN-00571: ===========================================================

  RMAN-03002: backup 命令 (在 06/03/2019 00:26:39 上) 失败

  ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:

  ORA-27211: 未能加载介质管理库

  (14) 利用RMAN工具备份BOOKSALES数据库的数据文件users01.dbf、users02.dbf进行备份。

  RMAN> backup datafile 'D:\Oracle\app\administrators\oradata\BOOKSALES\users01.dbf' format 'D:\Oracle\app\administrators\oradata\BOOKSALES\%u';

  启动 backup 于 03-6月 -19

  RMAN-00571: ===========================================================

  RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

  RMAN-00571: ===========================================================

  RMAN-03002: backup 命令 (在 06/03/2019 00:29:14 上) 失败

  ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:

  ORA-27211: 未能加载介质管理库

  RMAN> backup datafile 'D:\Oracle\app\administrators\oradata\BOOKSALES\users02.dbf' format 'D:\Oracle\app\administrators\oradata\BOOKSALES\%u';

  启动 backup 于 03-6月 -19

  RMAN-00571: ===========================================================

  RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

  RMAN-00571: ===========================================================

  RMAN-03002: backup 命令 (在 06/03/2019 00:30:49 上) 失败

  ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:

  ORA-27211: 未能加载介质管理库

  (15) 利用RMAN工具备份BOOKSALES数据库的控制文件。

  RMAN> backup current controlfile format 'D:\Oracle\app\administrators\oradata\BOOKSALES\%U.ctl';

  启动 backup 于 03-6月 -19

  RMAN-00571: ===========================================================

  RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

  RMAN-00571: ===========================================================

  RMAN-03002: backup 命令 (在 06/03/2019 00:31:50 上) 失败

  ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:

  ORA-27211: 未能加载介质管理库

  (16) 利用RMAN工具备份BOOKSALES数据库的归档文件。

  RMAN> backup archivelog all;

  启动 backup 于 03-6月 -19

  当前日志已存档

  RMAN-00571: ===========================================================

  RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

  RMAN-00571: ===========================================================

  RMAN-03002: backup 命令 (在 06/03/2019 00:32:37 上) 失败

  ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:

  ORA-27211: 未能加载介质管理库

  RMAN> backup database plus archivelog format 'D:\Oracle\app\administrators\oradata\BOOKSALES\%u';

  启动 backup 于 03-6月 -19

  当前日志已存档

  RMAN-00571: ===========================================================

  RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

  RMAN-00571: ===========================================================

  RMAN-03002: backup plus archivelog 命令 (在 06/03/2019 00:33:14 上) 失败

  ORA-19554: 配置设备时出错, 设备类型: SBT_TAPE, 设备名称:

  ORA-27211: 未能加载介质管理库

  (17) 利用RMAN工具备份BOOKSALES数据库形成的备份集,恢复数据库。

  RMAN> shutdown immediate;

  数据库已关闭

  数据库已卸装

  Oracle 实例已关闭

  RMAN> startup mount;

  已连接到目标数据库 (未启动)

  Oracle 实例已启动

  数据库已装载

  系统全局区域总计 3373858816 字节

  Fixed Size 2180424 字节

  Variable Size 1845496504 字节

  Database Buffers 1509949440 字节

  Redo Buffers 16232448 字节

  RMAN> restore database;

  启动 restore 于 03-6月 -19

  分配的通道: ORA_DISK_1

  通道 ORA_DISK_1: SID=191 设备类型=DISK

  分配的通道: ORA_DISK_2

  通道 ORA_DISK_2: SID=129 设备类型=DISK

  分配的通道: ORA_DISK_3

  通道 ORA_DISK_3: SID=192 设备类型=DISK

  RMAN-00571: ===========================================================

  RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

  RMAN-00571: ===========================================================

  RMAN-03002: restore 命令 (在 06/03/2019 00:34:44 上) 失败

  RMAN-06026: 有些目标没有找到 - 终止还原

  RMAN-06023: 没有找到数据文件4的副本来还原

  RMAN-06023: 没有找到数据文件3的副本来还原

  RMAN-06023: 没有找到数据文件2的副本来还原

  RMAN-06023: 没有找到数据文件1的副本来还原

  RMAN> recover database;

  启动 recover 于 03-6月 -19

  使用通道 ORA_DISK_1

  使用通道 ORA_DISK_2

  使用通道 ORA_DISK_3

  RMAN-00571: ===========================================================

  RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

  RMAN-00571: ===========================================================

  RMAN-03002: recover 命令 (在 06/03/2019 00:35:37 上) 失败

  RMAN-06094: 数据文件4必须重新存储

  RMAN> alter database open;

  数据库已打开

  RMAN> alter database open resetlogs;

  RMAN-00571: ===========================================================

  RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

  RMAN-00571: ===========================================================

  RMAN-03002: alter db 命令 (在 06/03/2019 00:36:19 上) 失败

  ORA-01531: 实例已打开数据库

  (18) 利用EXPDP工具导出BOOKSALES数据库的整个数据库。

  create or replace directory dumpdir as 'D:\Oracle\backup';

  Directory DUMPDIR 已创建。

  grant read,write on directory dumpdir to system;

  Grant 成功。无锡×××医院 http://mobile.zzchnk.com/

  grant exp_full_database, imp_full_database to system;

  Grant 成功。

  expdp system/admin directory=dum_dir dumpfile=expfull.dmp full=yes nologfile=yes;

  (19)利用EXPDP工具导出EXPDP数据库的USERS表空间。

  C:\Users

  Export: Release 11.2.0.1.0 - Production on 星期一 6月 3 00:49:22 2019

  Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

  连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

  With the Partitioning, OLAP, Data Mining and Real Application Testing options

  ORA-39001: 参数值无效

  ORA-39000: 转储文件说明错误

  ORA-39087: 目录名 DUM_DIR 无效

  (20)利用EXPDP工具导出BOOKSALES数据库publisher表和books表。

  C:\Users\

  Export: Release 11.2.0.1.0 - Production on 星期一 6月 3 00:50:14 2019

  Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

  连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

  With the Partitioning, OLAP, Data Mining and Real Application Testing options

  ORA-39002: 操作无效

  ORA-39070: 无法打开日志文件。

  ORA-39087: 目录名 DUMP_DIR 无效

  (21)利用EXPDP工具导出BOOKSALES数据库中bs模式下的所有数据库对象及数据。

  C:\Users\

  Export: Release 11.2.0.1.0 - Production on 星期一 6月 3 00:51:05 2019

  Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

  连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

  With the Partitioning, OLAP, Data Mining and Real Application Testing options

  ORA-39006: 内部错误

  ORA-39068: 在 PROCESS_ORDER=-3 的行中主表数据无效

  ORA-01658: 无法为表空间 USERS 中的段创建 INITIAL 区

  ORA-39097: 数据泵作业出现意外的错误 -1658

  (22)删除BOOKSALES数据库中的orderitem表和order表,使用转储文件,利用IMPDP工具进行恢复。

  drop table orderitem;

  drop table order;

  C:\Users\

  Import: Release 11.2.0.1.0 - Production on 星期一 6月 3 00:54:29 2019

  Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

  UDI-28000: 操作产生了 ORACLE 错误 28000

  ORA-28000: the account is locked

  用户名: sys as sysdba

  口令:

  连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

  With the Partitioning, OLAP, Data Mining and Real Application Testing options

  ORA-39001: 参数值无效

  ORA-39000: 转储文件说明错误

  ORA-39087: 目录名 DPUMP_DIR 无效

  (23)删除BOOKSALES数据库中的USERS表空间,使用转储文件,利用IMPDP工具进行恢复。

  drop users;

  C:\Users\

  Import: Release 11.2.0.1.0 - Production on 星期一 6月 3 00:56:42 2019

  Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved.

  UDI-28000: 操作产生了 ORACLE 错误 28000

  ORA-28000: the account is locked

  用户名: sys as sysdba

  口令:

  连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production

  With the Partitioning, OLAP, Data Mining and Real Application Testing options

  ORA-39001: 参数值无效

  ORA-39000: 转储文件说明错误

  ORA-39087: 目录名 DPUMP_DIR 无效

  上面有很多操作其实都失败了,具体原因我也不清楚,也一直没有解决,但是相关的命令应该都是正确的。


数据 数据库 设备 文件 备份 配置 工具 参数 命令 类型 通道 介质 名称 管理 错误 成功 目录 空间 控制 字节 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 河南真二互联网科技有限公司 互联网科技金融 平安科技 互联网 互联网科技公司电话 紫鲸互联网科技 易通互联网络科技有限公司 有木互联网科技 郑州华宇互联网科技 互联网巨头投资的硬核科技 承德科技产业互联网发展 茂名市互联网科技产业园 福建科技产业互联网发展 新兴科技互联网创新大赛颁奖典礼 明优互联网科技有限公司 万物互联网智能科技 互联网时代高科技布局 青岛易易互联网科技 亚光科技低轨卫星互联网 承德科技产业互联网平台 现代科技的标志之一的互联网 广州大一互联网络科技有限公司 科技股互联网 金融科技 互联网金融 互联网科技作文 上海电发互联网科技有限公司 青岛科技大学互联网大赛研究生 洛阳昕诺飞互联网科技有限公司 特约风豹互联网科技为什么扣费 云南省自由互联网科技有限公司 互联网 科技节活动 微视频大赛
0