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 无效

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


当前文章:Oracle之数据库备份与恢复
当前网址:http://scyanting.com/article/ghgchs.html