ORACLE数据库的备份和恢复实验大全.docx

上传人:b****2 文档编号:701202 上传时间:2023-04-29 格式:DOCX 页数:79 大小:62.89KB
下载 相关 举报
ORACLE数据库的备份和恢复实验大全.docx_第1页
第1页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第2页
第2页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第3页
第3页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第4页
第4页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第5页
第5页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第6页
第6页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第7页
第7页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第8页
第8页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第9页
第9页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第10页
第10页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第11页
第11页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第12页
第12页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第13页
第13页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第14页
第14页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第15页
第15页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第16页
第16页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第17页
第17页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第18页
第18页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第19页
第19页 / 共79页
ORACLE数据库的备份和恢复实验大全.docx_第20页
第20页 / 共79页
亲,该文档总共79页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ORACLE数据库的备份和恢复实验大全.docx

《ORACLE数据库的备份和恢复实验大全.docx》由会员分享,可在线阅读,更多相关《ORACLE数据库的备份和恢复实验大全.docx(79页珍藏版)》请在冰点文库上搜索。

ORACLE数据库的备份和恢复实验大全.docx

ORACLE数据库的备份和恢复实验大全

ORACLE数据库的备份和恢复

Exp导出和imp导入

EXP的概念

1、EXP是ORACLE的小工具。

用来操作数据库中的数据。

2、EXP只备份数据,和物理结构无关。

3、数据库必须在OPEN下,才可以使用EXP和IMP。

4、导出的是一个二进制文件

使用EXP的目的

1、数据库的迁移

2、归档历史的数据

3、重新组织表

4、转移数据给其它数据库

5、物理备份的辅助

EXP和IMP的使用方式

1、交互模式

2、命令行模式

3、参数文件模式

4。

图形向导模式

交互模式导出和导入数据

该实验的目的是初步认识逻辑备份

交互模式

在操作系统下键入:

exp

然后在提示下完成导出

缺点:

参数提示不全

下次运行不能自动重复,必须手工输入

实验:

在交互模式下导出EMP表

C:

\bk>exp

Export:

Release9.2.0.8.0-ProductiononSatSep2209:

36:

282007

Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.

 

Username:

scott/tiger

Connectedto:

Oracle9iEnterpriseEditionRelease9.2.0.8.0-Production

WiththePartitioning,OLAPandOracleDataMiningoptions

JServerRelease9.2.0.8.0-Production

Enterarrayfetchbuffersize:

4096>8192

Exportfile:

EXPDAT.DMP>c:

\bk\1.dmp

(2)U(sers),or(3)T(ables):

(2)U>t

Exporttabledata(yes/no):

yes>

Compressextents(yes/no):

yes>

回车就是默认

ExportdoneinZHS16GBKcharactersetandAL16UTF16NCHARcharacterset

AbouttoexportspecifiedtablesviaConventionalPath...

Table(T)orPartition(T:

P)tobeexported:

(RETURNtoquit)>t1

..exportingtableT11rowsexported

Table(T)orPartition(T:

P)tobeexported:

(RETURNtoquit)>dept

..exportingtableDEPT4rowsexported

Table(T)orPartition(T:

P)tobeexported:

(RETURNtoquit)>emp

..exportingtableEMP14rowsexported

Table(T)orPartition(T:

P)tobeexported:

(RETURNtoquit)>

Exportterminatedsuccessfullywithoutwarnings.

命令行模式导出和导入数据

该实验的目的是使用命令行模式进行逻辑备份

命令行模式

用显式的模式书写所需要的参数值

缺点:

当参数太多的时候书写不便,可读性差。

特殊字符需要转义

实验:

用命令行模式导出EMP表

C:

\bk>expscott/tigerfile=c:

\bk\1.dmptables=emp,dept,t1log=c:

\bk\1.log

Export:

Release9.2.0.8.0-ProductiononSatSep2209:

50:

172007

Copyright(c)1982,2002,OracleCorporation.Allrightsreserved.

 

Connectedto:

Oracle9iEnterpriseEditionRelease9.2.0.8.0-Production

WiththePartitioning,OLAPandOracleDataMiningoptions

JServerRelease9.2.0.8.0-Production

ExportdoneinZHS16GBKcharactersetandAL16UTF16NCHARcharacterset

AbouttoexportspecifiedtablesviaConventionalPath...

..exportingtableEMP14rowsexported

..exportingtableDEPT4rowsexported

..exportingtableT11rowsexported

Exportterminatedsuccessfullywithoutwarnings.

参数文件模式导出和导入数据

该实验的目的是使用参数文件进行逻辑备份

参数文件模式

强烈推荐的模式

书写方便,可读性好,可以反复调用

Expparfile=d:

\bk\1.txt

实验:

用参数文件模式导出EMP表

参数文件中的注释是#

c:

\bk\e.txt文件的内容如下

userid=scott/tiger

buffer=100000

log=c:

\bk\exp.log

file=c:

\bk\exp_users.dmp

feedback=10000

tables=emp

C:

\bk>expparfile=c:

\bk\e.txt

图形模式

用OEM的图形向导来建立导出的参数文件,必须正确的配置首选项的参数。

主要有操作系统的密码和数据库的密码两个配置。

其中操作系统的帐号必须有批处理作业的权限。

导出的内容

1、导出表

2、导出用户

3、全数据库导出

4、导出表空间的定义

导出和导入表的操作

该实验的目的是通过对表的备份和恢复,掌握数据库的逻辑备份

1.表的备份和恢复

导出表t1,将t1表从数据库中删除droptablet1;导入表t1,验证表已经恢复

2.将scott用户的表导入到u1用户

建立u1用户,并赋予权限

conn/assysdba

dropuseru1cascade;

createuseru1identifiedbyu1;

grantconnect,resourcetou1;

alteruseru1defaulttablespaceusers;

在scott用户下建立实验表t81

connscott/tiger

droptablet81;

createtablet81asselect*fromemp;

updatet81setsal=81;

commit;

书写导出参数文件

c:

\bk\e81.txt文件的内容如下

userid=scott/tiger

buffer=100000

log=c:

\bk\exp.log

file=c:

\bk\t81.dmp

feedback=10000

tables=t81

导出t81表

expparfile=c:

\bk\e81.txt

书写导入参数文件

c:

\bk\i81.txt文件的内容如下

userid=system/manager

buffer=100000

log=c:

\bk\exp.log

file=c:

\bk\t81.dmp

feedback=10000

tables=t81

touser=u1

impparfile=c:

\bk\i81.txt

connu1/u1

select*fromt81;

3.将数据库一的scott用户的表导入到数据库二的u1用户

发生字符集的转换,先由数据库一的字符集转为导出客户端的字符集.

再由导出的字符集转换为导入的数据库二的字符集.最好都设置为相同的

字符集.如果一定要转换,请由小的字符集转到比它大的字符集.

userid=system/manager@remote_db

4.导出一张表的部分符合条件的行.用来备份历史数据和避开坏的数据块.

书写导出参数文件

c:

\bk\e81.txt文件的内容如下

userid=scott/tiger

buffer=100000

log=c:

\bk\exp.log

file=c:

\bk\t81.dmp

feedback=10000

tables=t81

query='wheredeptno=30'

建立大的表,导出一张表除了某个块的所有行.

connscott/tiger

droptablet1;

createtablet1asselect*fromall_objects;

selectdbms_rowid.rowid_block_number(rowid)block#,count(*)from

t1groupbydbms_rowid.rowid_block_number(rowid);

BLOCK#COUNT(*)

-----------------

6891

6986

7085

7188

假如我想导出除了71块以外的行.

书写导出参数文件

c:

\bk\e1.txt文件的内容如下

userid=scott/tiger

buffer=100000

log=c:

\bk\exp.log

file=c:

\bk\t1.dmp

feedback=10000

tables=t1

query='wheredbms_rowid.rowid_block_number(rowid)<>71'

5.追加导入数据

当建立表失败的时候,不终止导入,接着将数据追加到表中,当然表的结构要相同.如果

有约束的情况下不能违反约束

c:

\bk\i1.txt文件的内容如下

userid=scott/tiger

buffer=100000

log=c:

\bk\exp.log

file=c:

\bk\t1.dmp

feedback=10000

tables=t1

ignore=y

总结:

导出表的时候是将表的所有信息都导出,包含索引的定义,对象权限,约束等.

导入的时候会找原来的表空间建立表,如果原来的表空间不存在,就建立表在导入用户的

默认表空间.所以如果原来表在system就很难处理,因为每次都先回system表空间,每个数据库

都有system表空间.这时我们要先将表挪动到其他表空间后再导出和导入.

和导出导入速度最相关的参数是buffer,设置正确的大小.一般我们在内存大的情况下设置100m或者更大.

内存小的情况下设置为10m左右.feedback是进度条,一般设置为最大表的百分之一.千万不要

设置为1,比如feedback=10000的含义是完成10000行以一个点来显示.

导出和导入用户操作

该实验的目的是逻辑备份用户

导出用户

书写导出参数文件

c:

\bk\e1.txt文件的内容如下

userid=scott/tiger

buffer=100000

log=c:

\bk\exp.log

file=c:

\bk\t1.dmp

feedback=10000

参数文件中不说导出什么内容,默认的是导出当前用户的所有数据.

同时导出多个用户

c:

\bk\e1.txt文件的内容如下

userid=system/manager

buffer=100000

log=c:

\bk\exp.log

file=c:

\bk\t1.dmp

feedback=10000

owner=HR,scottsh

#owner列表可以是以空格分割,逗号分割,或者回车分割

 

导入用户,建立用户并赋予权限,再进行导入.

conn/assysdba

dropuserscottcascade;

grantconnect,resourcetoscottidentifiedbytiger;

alteruserscottdefaulttablespaceusers;

c:

\bk\i1.txt文件的内容如下

userid=system/manager

buffer=100000

log=c:

\bk\exp.log

file=c:

\bk\t1.dmp

feedback=10000

fromuser=scott

touser=scott

导出和导入全数据库操作

该实验的目的是逻辑备份全数据库

全库导出

userid=system/manager

buffer=100000

file=d:

\bk\1.dmp

log=d:

\bk\1.log

feedback=10000

Full=y

导出除SYS用户以外的所有其它用户的数据,以及索引,约束和同义词等。

导出和导入表空间操作

该实验的目的是逻辑备份表空间内的数据,不含有存储过程.

导出表空间

userid=system/manager

buffer=100000

file=d:

\bk\1.dmp

log=d:

\bk\1.log

feedback=1

Tablespaces=users

导出users表空间内的所有表,以及这些表的约束和触发器。

数据泵(datapump)10g新特性

只能将数据存储在服务器端

不支持物理路径

直接用api来加载和卸载数据

性能要比exp/imp快的多

导出的控制更强,如只导出函数,存储过程等

监控信息更加丰富

数据泵

该实验的目的是使用10g的新特性,数据泵.

导出t1

Sqlplus>

connsystem/manager

createdirectorydpdata1as'c:

\bk';

grantread,writeondirectorydpdata1toscott;

Dos>expdphelp=y

expdpscott/tigertables=t1directory=DPDATA1

dumpfile=pump_t1.dmpjob_name=CASES_EXPORT

导入t1

impdpscott/tigertables=t1directory=DPDATA1dumpfile=pump_t1.dmpjob_name=CASES_EXPORT

监控作业

DBA_DATAPUMP_JOBS

DBA_DATAPUMP_SESSIONS

V$SESSION

V$SESSION_LONGOPS

导入和导出过程中

Control-C进入交互模式

CONTINUE_CLIENT继续工作

冷备份

停止数据库后做的备份

所有的数据库都可以冷备份

冷备份不能备局部,必须备份整体

没有增量备份策略

需要的空间较大

概念简单,执行简单

冷备份的执行步骤

1。

一致性停止数据库(shutdownimmediate)

2。

备份数据文件,控制文件,日志文件

密码文件,参数文件,临时文件(可选)

3。

启动数据库

书写冷备份脚本

select'copy'||name||'d:

\bk'fromv$datafile

unionall

select'copy'||name||'d:

\bk'fromv$controlfile

unionall

select'copy'||name||'d:

\bk'fromv$tempfile

unionall

select'copy'||member||'d:

\bk'fromv$logfile;

 

copyD:

\ORACLE\ORADATA\ORA10\SYSTEM01.DBFd:

\bk

copyD:

\ORACLE\ORADATA\ORA10\UNDOTBS01.DBFd:

\bk

copyD:

\ORACLE\ORADATA\ORA10\SYSAUX01.DBFd:

\bk

copyD:

\ORACLE\ORADATA\ORA10\USERS01.DBFd:

\bk

copyD:

\ORACLE\ORADATA\ORA10\TL.DBFd:

\bk

copyD:

\ORACLE\ORADATA\ORA10\T2M.DBFd:

\bk

copyD:

\ORACLE\ORADATA\ORA10\BIGTS.BIGd:

\bk

copyD:

\ORACLE\ORADATA\ORA10\CONTROL01.CTLd:

\bk

copyD:

\ORACLE\ORADATA\ORA10\CONTROL02.CTLd:

\bk

copyD:

\ORACLE\ORADATA\ORA10\CONTROL03.CTLd:

\bk

copyD:

\ORACLE\ORADATA\ORA10\TEMP.TMPd:

\bk

copyD:

\ORACLE\ORADATA\ORA10\TEMP03.DBFd:

\bk

copyD:

\ORACLE\ORADATA\ORA10\REDO03.LOGd:

\bk

copyD:

\ORACLE\ORADATA\ORA10\REDO02.LOGd:

\bk

copyD:

\ORACLE\ORADATA\ORA10\REDO01.LOGd:

\bk

当然这是脚本的局部,前面得加停止数据库,后面加启动数据库,另外加上参数文件和密码文件得备份命令.

运行脚本

查看日志

1。

数据库停止了

2。

复制成功了

3。

数据库启动了

优点

冷备份是最可靠的备份

在不完全恢复前和后都最好做冷备份

缺点

必须停止数据库

空间占用大,冷备份是一个整体,不能备份局部.所以使用的时候有一定的局限性,当然你是归档数据库可以备份局部,但一般我们不这么做,因为归档数据库可以热备份,不必停止数据库.

冷备份的恢复

停止数据库,将备份复制回原来的目录就可以

将数据库带回到备份的时间点

如果想恢复全部的交易

请应用归档的日志

将冷备份恢复到其它目录

该实验的目的是理解什么是mount,如何修改文件的路径.

练习

将冷备份的数据库恢复到其它磁盘

1。

将冷备份的数据库恢复到不同的磁盘

2。

修改参数文件中control_files的值,指到新的文件

3。

启动数据库到mount状态

4。

改文件的名称到新位置

5。

Alterdatabaseopen;

修改实例的名称

该实验的目的是理解什么是nomount,注册表和服务的配置.

实例的名称可以更改

1。

修改instance_name参数的值,改为新的名称###

2。

建立新的服务项

oradim–new–sid###

3.修改注册表中oracle_sid=###

4.重新进入sqlplus

5.启动数据库

6。

验证selectinstance_namefromv$instance;

7.修改监听和网络服务名称的配置。

通过修改实例的名称

更加深入理解实例的概念

实例是访问数据库的方法

实例由内存加后台进程组成

条件

有冷备份

目的

将该备份恢复到其它主机上

实际应用

准备备用数据库

重大灾难导致主机不可再用

将冷备份恢复到其它主机

该实验的目的是彻底的理解冷备份,冷备份是放之四海皆准,可以跨越平台,但得重新建立控制文件.理解dump目录得重要性.

1。

新主机已经安装了同版本的数据库产品

2。

操作系统一致

3。

将备份恢复到任意目录

4。

将参数文件和密码文件恢复到oracle_home\database

建立参数文件中所描述的路径,或改为新路径

5。

修改注册表oracle_sid

6。

建立服务项oradim–new–sid###

7.修改参数文件的control_files到新的目标

8。

Startupmount

9.更改文件名称alterdatabaserenamefile‘…’to‘…’;

10.alterdatabaseopen;

实验目的

理解产品和数据库的关系

数据库的运行基本模式

非归档数据库(默认模式)

日志切换后不复制到其它位置,下次使用时将老信息覆盖。

如果日志被覆盖,以前的备份就只能恢复到日志被覆盖前的备份时间点。

归档模式

日志切换后要复制到其它位置。

数据库处于哪种模式由控制文件决定

将数据库改为归档数据库

该实验的目的是理解什么是归档,极其归档数据库得配置

改为归档数据库

修改参数

log_archive_format=ARC%S_%R.%T

log_archive_dest_1='location=c:

\arc'

停止数据库(一定要一致性停数据库)

启动到mount状态

Alterdatabasearchivelog;

Alterdatabaseopen;

验证archiveloglist;

归档数据库的维护

Altersystemswitchlogfile;

查看归档目录

select*fromv$archive_processes;

select*fromv$archived_log;

Select*fromv$log;

如果归档进程报错

archivelogstop;

archivelogstart;

热备份

数据库open下的备份

数据库必须处于归档状态

可以备份局部

没有增量备份策略

备份内容

数据文件

控制文件

归档日志文件

密码文件

参数文件

不能备份在线的日志文件

数据文件的备份

Altertablespaceusersbeginbackup;

Hostcopy#######********

Altertablespaceusersendbackup;

除了临时表空间外,所有表空间都要做一遍。

Select*fromv$backup;

交易一直存在,当你复制的时候,文件已经变化了

Altertablespaceusersbeginbackup;

1.将该表空间的文件单独存盘。

2。

将该表空间的文件头冷冻

3。

日志的产生加入了变化块的原来拷贝

4.数据文件体不影响,因为文件头中没有我们的数据,所以交易可以继续

5。

恢复的时候需要归档文件的支持

Altertablespaceusersendbackup;

将文件头解冻

将控制文件中最新的存盘时间SCN写入文件头

一句话,热备份的文件是一个无效的垃圾文件,需要日志的配合才能恢复,所以归档数据库是热备份的前提条件.热备份的文件中只有一个数据块是保真的,就是被冷冻的数据文件头的第一个块,文件头有8个块,数据库只会冷冻一个,因为数据库只是需要一个scn坐标而已.其余的7个数据块含有范围的信息,是会改变的,不能冷冻.我们备份的垃圾文件的数据块有两类,一是scn小于头的

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2