Oracle-Oracle数据库备份与恢复

article/2025/9/28 22:08:33

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';启动 backup03-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';启动 backup03-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';启动 backup03-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';启动 backup03-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';启动 backup03-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';启动 backup03-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';启动 backup03-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;启动 backup03-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';启动 backup03-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;启动 restore03-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 设备类型=DISKRMAN-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 成功。
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\徐仕成>expdp system/admin directory=dum_dir dumpfile=expfull.dmp full=yes nologfile=yes;Export: Release 11.2.0.1.0 - Production on 星期一 63 00:49:22 2019Copyright (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\徐仕成>expdp system/admin directory=dump_dir dumpfile=publishers_books.dmp logfile=publishers_books.log tables=scott.emp, scott.dept parallel=3Export: Release 11.2.0.1.0 - Production on 星期一 63 00:50:14 2019Copyright (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\徐仕成>expdp bs/bs directory=dump_dir dumpfile=exfull.dmp full=yes nologfile=yesExport: Release 11.2.0.1.0 - Production on 星期一 63 00:51:05 2019Copyright (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\徐仕成>impdp scott/admin directory=dpump_dir dumpfile=emp_deptdmp tables=detp,emp nologfile=yesImport: Release 11.2.0.1.0 - Production on 星期一 63 00:54:29 2019Copyright (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\徐仕成>impdp scott/admin directory=dpump_dir dumpfile=emp_deptdmp tables=detp,emp nologfile=yesImport: Release 11.2.0.1.0 - Production on 星期一 63 00:56:42 2019Copyright (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 无效

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

创作不易,喜欢的话加个关注点个赞,蟹蟹蟹蟹


http://chatgpt.dhexx.cn/article/ur97V1wi.shtml

相关文章

Oracle—数据恢复

文档结构 1、恢复原理1.1、recyclebin(回收站)相关操作 1.2、archived redo(归档日志)1.3、supplemental log(补充日志) 2、恢复场景2.1、定义删除2.2、记录删除2.2.1、undo恢复2.2.2、redo恢复2.2.3、dbms…

Oracle数据库数据丢失恢复的几种方法总结

根据oracle数据库的特点和提供的工具,主要方法有以下几种方法: 利用逻辑备份使用import工具丢失数据的表 利用物理备份来通过还原数据文件并进行不完全恢复 利用dbms_logmnr包从redo log文件中恢复 利用flashback特性恢复数据 前提 为了方便…

QSS美化

摘自:https://qtdebug.com/qtbook-qss/ Qt 提供的 widget 的默认外观很多时候都不符合项目的界面需求,必须要改,修改一个 widget 的外观(Look and Feel)有以下的方法: 继承 Widget,然后在 pain…

Qss换肤设置

前言:本文大部分的内容来源于同类博客。章节1.1-1.3 摘自参考文档:http://www.th7.cn/web/html-css/201405/37286.shtml。1.4摘自参考文档。https://blog.csdn.net/Staranywhere/article/details/106967756。本文仅用作知识点整理。 目录: 1…

qss之QRadioButton

先来个示例 QRadioButton {font-family: "Microsoft YaHei";font-size: 14px;color: #BDC8E2;background-color: #2E3648; }效果图如下: 上面的例子是基本的样式设置,下面我们将探讨 QRadioButton 各种样式设置: 字体样式 font…

QSS的使用

QSS官方文档:https://doc.qt.io/qt-5/stylesheet-reference.html 图标制作例子: normal hover press disable 图标制作 按钮设计指南 按钮多态的几种方法 一、程序应用qss文件 QString qssPath QString("%1/stylesheet/style.qss").arg(a.applicationD…

QSS属性大全

1、选择器 1.1、通用选择器 /* 格式:* { 属性: 值; } 通用选择器一般用来给应用程序设置统一的字体,大小,颜色等 */ * {font-family: "Microsoft YaHei";outline: 0px;color: #DCDCDC; }1.2、类型选择器 /* 格式: 类…

Qt之QSS使用与基本语法

一、QSS介绍 QSS是一种从CSS借鉴过来的机制,用来实现对控件外观的自定义。但是它比CSS功能要弱化一些,有一些属性和选择器,QSS并没有。 Qt中的各个控件可以使用QSS来实现界面的个性化定制、美化,使用起来也是特别方便的。 二、Q…

QTreeWidget样式qss

文章目录 QTreeWidget/QTreeView样式QHeaderView背景属性alternate-background-color:交替背景色background:背景属性background-color:控件的背景色background-image:用于控件的背景图像。如果图像有透明部分则显示透明部分。bac…

qss文件使用

每个控件提供的样式太少?只能简单的设置颜色、字体颜色、字体大小?每次设置都要输入好长一串好麻烦? 现在你只要写一段qss就能满足你的一切需求,实现效果如下 本文将从下面三个方向慢慢阐述qss的使用 1、如何使用qss 2、如何修…

QSS 基础

如果你会 CSS,那么 QSS 对你来说将会非常简单,QSS 的语法和 CSS 的愈发非常相似,但也有些不同,有些 CSS 的东西在 QSS 里被去掉了,QSS 也加了些自己特有的东西,不过大多数还是差不多的,下面以修…

Qt QSS使用

一、选择器类型 Qt QSS选择器和CSS2、CSS3的选择器类似,建议先学习或者复习一下CSS选择器的语法。QSS虽然和CSS类型,但有也稍许不同,而且支持的语法也没那么多,具体讲解如下。 1.1 类选择器 /* 匹配QPushButton的实例及其子类 …

QSS 介绍

目录 一、自定义 widget 的两种方式二、一个简单示例三、QSS 比 QPalette 强大四、使用 Qt Designer 方便查看 qss 效果 一、自定义 widget 的两种方式 自定义 widget 外观的方式有两种: 子类化 QStyle;使用 Qt Style Sheets 机制; Qt Sty…

学习QSS样式表

文章目录 一、 什么是QSS二、辅助工具三、Qt样式表设置函数:setStyleSheet四、Qss选择器1、通用选择器2、类型选择器3、类选择器4、ID选择器5、后代选择器6、子元素选择器7、属性选择器8、并集选择器9、子控件选择器10、伪类选择器11、选择器的匹配规则 五、QSS常用…

QSS自定义属性

1.基本使用 &#xff08;参见 Qt 文档页章节 Setting QObject Properties&#xff1a;https://doc.qt.io/qt-5/stylesheet-syntax.html&#xff09; 从 Qt 4.3 及更高版本开始&#xff0c;可以使用 qproperty- <属性名称> 语法设置任何 designable 的 Q_PROPERTY &…

QSS

摘自&#xff1a;https://qtdebug.com/qtbook-qss/ Qt 提供的 widget 的默认外观很多时候都不符合项目的界面需求&#xff0c;必须要改&#xff0c;修改一个 widget 的外观&#xff08;Look and Feel&#xff09;有以下的方法&#xff1a; 继承 Widget&#xff0c;然后在 pai…

QSS 语法

目录 1. 基本语法1.1 样式规则1.2 选择器、声明1.3 大小写1.4 多个选择器 2. 选择器2.1 通用选择器&#xff1a;*2.2 类型选择器&#xff1a;QPushButton2.3 属性选择器&#xff1a;QPushButton[flat"false"]2.4 类选择器&#xff1a;.QPushButton2.5 ID 选择器&…

QSS(Qt样式表)概念

Qt样式表是一个可以自定义部件外观的十分强大的机制&#xff0c;除了QStyle更改的样式&#xff0c;其他的都可以由QSS修改。由于受到Html的CSS启发&#xff0c;所以叫QSS。 代码添加样式表ui界面上添加样式表 代码添加样式表&#xff1a; setStyleSheet&#xff08;&#xff0…

【QT】QSS使用总结

文章目录 主要流程&#xff1a;导入QSS文件&#xff1a;1. 添加Qt Resource File文件&#xff0c;输入名称2. 在工程文件目录下先建一个".txt"文件&#xff0c;重新命名后缀为".qss"3. 右键添加现有文件qss.qss4. 完成添加5. 将 qss样式应用到整个工程 QSS…

01_1_Qt工程实践_Qt样式表Qss(什么是QSS;基本语法;setStyleSheet函数;样式表的属性值;利用QtCreate实现样式切换;样式表实现皮肤改变实例)

本篇介绍什么是样式表&#xff0c;讨论如何使用Qt样式表Qss修改应用程序外观&#xff0c;并通过实例进行讲解。 了解HTML的同学都知道&#xff0c;一般在HTML中我们把样式表叫做CSS&#xff0c;在Qt中我们称之为QSS。QSS和CSS并不完全等同&#xff0c;语法完全类似&#xff0c…