oracle备份恢复案例,Oracle学习笔记十四:备份与恢复案例

获取命令帮助

exp -help

imp-help

expdp-help

impdp-help

rman target/?

测试数据准备

CREATE TABLESPACE test01 datafile 'C:APPADMINISTRATORORADATATESTtest01.dbf' SIZE 10M autoextend off;CREATE USER hello IDENTIFIED BY world DEFAULTTABLESPACE test01;grant dba tohello;

conn hello/world;create table emp01 (id number(3),name varchar2(10));insert into emp01 values(1,'hello01');insert into emp01 values(2,'hello02');insert into emp01 values(3,'hello03');

案例一

1.1、案例说明:在Oracle生产环境中,如何使用exp备份的整个数据库?

1)查看数据库字符集:

select * from nls_database_parameters where parameter='NLS_CHARACTERSET';--或者

select userenv('language') from dual;

本机数据库的字符集是:ZHS16GBK,若数据库与环境字符集不一样的话,请先设置字符集,如:

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

2)使用exp备份的整个数据库:

exp system/oracle buffer=65536 feedback=10000 full=y file=exp.dmp log=exp.log

ef076748565db8496bc2bc8547e4aa14.png

67368d8e59bf0f25a9c4c14b1deed708.png

案例二

2.1、案例说明:在Oracle生产环境中,如果某员工删库跑路,把hello整个用户全误删,请使用imp进行恢复。

1)模拟删除hello整个用户:

drop user hello cascade;DROP TABLESPACE test01 INCLUDING CONTENTS AND DATAFILES;

427ff24b7234d6f9a407a48b44260a87.png

efe3717abd4fdca5c432fdcb4743dc57.png

62266755bd0e5dfbaf778841f647dabe.png

2)先创建表空间,再创建用户授权:

CREATE TABLESPACE test01 datafile 'C:APPADMINISTRATORORADATATESTtest01.dbf' SIZE 10M autoextend off;CREATE USER hello IDENTIFIED BY world DEFAULTTABLESPACE test01;grant dba to hello;

6eb41c72144a2acc1517c9556a5086e4.png

3)恢复hello整个用户:

imp system/oracle fromuser=hello touser=hello commit=y buffer=65536 feedback=10000 ignore=y file=exp.dmp log=imp.log

b2d3044931919be40e69df8f95fb29a0.png

eed91491f4a1eeaccfa05bd84e46f5a5.png

案例三

3.1、案例说明:在Oracle生产环境中,如何使用expdp备份的整个数据库?

1)先建一个备份的文件夹:

cd c:usersadministrator

mkdirdump

24b100050c2f9525440e07b72ff9bcb1.png

2)创建一个Oralce内部用来识别OS文件系统路径目录并授权:

create directory dump_dir as 'C:UsersAdministratordump';grant read,write on directory dump_dir to system;

68ac20a9b5c991b97552878a9368dbf2.png

3)使用expdp备份的整个数据库:

expdp system/oracle directory=dump_dir dumpfile=full_expdp.dmp full=y logfile=expdp.log parallel=2

03ef57c22ca6143bb8bed05479206a55.png

3cd4c900bae0b712578b9ab0a33725b9.png

案例四

4.1、案例说明:在Oracle生产环境中,如果某员工删库跑路,把整个数据库误删,请使用impdp进行恢复。

1)这里就不删数据库了,只模拟删除hello整个用户来搞破坏:

drop user hello cascade;DROP TABLESPACE test01 INCLUDING CONTENTS AND DATAFILES;

2)创建数据库(此处略去),再创建表空间:

CREATE TABLESPACE test01 datafile 'C:APPADMINISTRATORORADATATESTtest01.dbf' SIZE 10M autoextend off;

3)配置directory(案例三2)已授权,此步可以省略):

create directory dump_dir as 'C:UsersAdministratordump';grant read,write on directory dump_dir to system;

4)使用impdp进行恢复:

impdp system/oracle directory=dump_dir dumpfile=full_expdp.dmp full=y logfile=impdb.log

ebba6b6c18208472a410bc1534e7823c.png

5)编译无效对象:

@?:@是sqlplus调用脚本的标识,?是指Oracle的安装路径(ORACLE_HOME)。

@?/rdbms/admin/utlrp.sql

e1d7a8b1e7bbaeaa2c8aca5eaeda68c7.png

6)结果验证:

63b3d8546dafd9ca2a0ae033ad64f7ab.png

案例五

5.1、案例说明:在Oracle中,机房需停电维修UPS,请备份整个Oracle环境。

1)停止监听:

lsnrctl stop

23087df33ed20abaa66c03ebd2692204.png

2)关闭数据库:

shutdown immediate;

cef268a69c36dbb3166cc1d03229e0fc.png

3)创建备份目录:

cd c:usersadministrator

mkdirbackup

de3ec0b399a9aae37db37e1799ced36b.png

4)使用WinRar备份整个Oracle环境:

cd C:Program FilesWinRAR

Rar a C:UsersAdministratorbackuporaclebak20201016.rar C:app

案例六

6.1、案例说明:在Oracle中,机房完成UPS维护后,启动系统,发现Oracle启动失败,数据文件损坏,为了快速恢复业务,你应该怎么处理?

1)删除数据库安装目录(仅为测试,请慎重):

rd /s /q c:app

2)目录恢复:

cd C:Program FilesWinRAR

Rar x-o+ C:UsersAdministratorbackuporaclebak20201016.rar C:

案例七

7.1、案例说明:在Oracle生产环境中,如何使用rman备份整个数据库?

1)创建备份目录:

cd c:usersadministrator

mkdir backup1

7badd527cdd33a70786ac14e3c1025a2.png

2)进入rman:

rman target /

9438dc4542fdbd8404cf6d2c58ba367a.png

3)使用rman备份整个数据库:

CONFIGURE CONTROLFILE AUTOBACKUP ON;

run{

allocate channel d1 typedisk;

sql'alter system archive log current';backup format 'C:UsersAdministratorbackup1testfull_%U' database include currentcontrolfile plus archivelog;

release channel d1;

}

596de0573a1e9beb71dfa1e49f611b6f.png

案例八

8.1、案例说明:在Oracle生产环境中,如果某员工删库跑路,把Oracle数据目录误删,请使用RMAN进行恢复。

1)模拟把数据文件删除:

关闭数据库:

shutdown immediate;

删除数据文件:

DEL /S /Q C:appAdministratororadatatest*.*

ee7627b0491c8fa248a9f0859a7672de.png

2)把数据库启动到nomount状态:

startup nomount;

599ae079f2dd116813a7f4165d41cfbd.png

3)进入rman:

rman target /

4fb21ce7b4a8170a82648fb99a1c50a1.png

4)恢复控制文件:

restore controlfile from 'C:UsersAdministratorbackup1TESTFULL_04VCQ4PG_1_1';

abe57201968dea1dda90bd316993ab78.png

5)将数据库启动到mount状态:

alter database mount;

f5b9141dfab1336fc47221d61900afaf.png

6)恢复数据库:

restore database;

recoverdatabase;alter database open resetlogs;

7)结果验证:

89e7d364ea4274208427b30c37af38f2.png

内容来源于网络如有侵权请私信删除

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值