大佬教程收集整理的这篇文章主要介绍了oracle 备份与恢复学习总结,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Oracle数据库的备份与恢复
http://jingyan
.baIDu.com/article/b2c186c8eb7713c46ef6ff22.HTML
Oracle数据库有三种标准的备份方法,它们分别是导出/导入(
EXP/IM
p)、
热备份和
冷备份。导出备件是一种逻辑备份,
冷备份和
热备份是物理备份。
导出/导入(Export/import)
利用Export可将数据从数据库中提取出来,利用import则可将提取出来的数据送回到@R_
675_3608@去。
1、 简单导出数据(Export)和导入数据(import)
Oracle支持三种方式类型的输出:
(1)、表方式(T方式),将指定表的数据导出。
(2)、用户方式(U方式),将指定用户的所有对象及数据导出。
(3)、全库方式(Full方式),
瘵数据库中的所有对象导出。
数据导入(import)的过程是数据导出(Export)的逆过程,分别将数据文件导入数据库和将数据库数据导出到数据文件。
2、 增量导出/导入
增量导出是一种常用的数据备份方法,它只能对整个数据库来实施,并且必须作为SYstem来导出。在进行此种导出时,系统不要求回答任何问题。导出文件名
缺省为export.dmp,如果不希望自己的输出文件定名为export.dmp,必须在命令行中指出要用的文件名。
增量导出包括三种类型:
(1)、“完全”增量导出(Complet
E)
即备份三个数据库,比如:
exp system/manager inctype=complete file
=040731.dmp
(2)、“增量型”增量导出
备份上一次备份后改变的数据,比如:
exp system/manager inctype=incremental file
=040731.dmp
(3)、“累积型”增量导出
累计型导出方式是导出自上次“完全”导出之后数据库中变化了的信息。比如:
exp system/manager inctype=cumulative file
=040731.dmp
数据库管理员可以排定一个备份日程表,用数据导出的三个不同方式合理高效的完成。
比如数据库的被封任务可以做如下安排:
星期一:完全备份(A)
星期二:增量导出(B)
星期三:增量导出(
C)
星期四:增量导出(D)
星期五:累计导出(
E)
星期六:增量导出(F)
星期日:增量导出(G)
如果在星期日,数据库遭到意外破坏,数据库管理员可按一下步骤来回复数据库:
第一步:用命令CREATE DATABASE重新生成数据库结构;
第二步:创建一个足够大的附加回滚。
第三步:完全增量导入A:
imp system/manager inctype=RESTORE FulL=y file=A
第四步:累计增量导入E:
imp system/manager inctype=RESTORE FulL=Y file=E
第五步:最近增量导入F:
imp system/manager inctype=RESTORE FulL=Y file=F
冷备份
冷备份发生
在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。
冷备份时将关键性文件拷贝到另外的位置的一种说法。对于备份
Oracle信息而言,
冷备份时最快和最安全的方法。
冷备份的优点是:
1、 是非常快速的备份方法(只需拷文件)
2、 容易归档(简单拷贝即可)
3、 容易恢复到某个时间点上(只需将文件再拷贝回去)
4、 能与归档方法相结合,做数据库“最佳状态”的恢复。
5、 低度维护,高度安全。
但
冷备份也有如下不足:
1、 单独使用时,只能提供到“某一时间点上”的恢复。
2、 再实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷
备份过程中,数据库必须是关闭状态。
3、 若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。
4、 不能按表或按用户恢复。
如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。
冷备份中必须拷贝的文件包括:
1、 所有数据文件
2、 所有控制文件
3、所有联机REDO LOG文件
4、 Init
.ora文件(可选)
值得注意的使
冷备份必须
在数据库关闭的情况下进行,当数据库处于打开状态时,执行
数据库文件系统备份是无效的。
下面是作
冷备份的完整例子。
(1) 关闭数据库
sqlplus /nolog
sql>connect /as sysdba
sql>shutdown normal;
(2) 用拷贝命令备份全部的时间文件、
重做日志文件、控制文件、初始化
参数文件
sql>cp
(3) 重启
Oracle数据库
sql>startup
热备份
热备份是
在数据库运行的情况下,采用archivelog mode方式备份数据库的方法。所以,如果你有昨天夜里的一个
冷备份而且又有今天的
热备份文件,在发生问题时,就可以利用这些资料恢复更多的信息。
热备份要求数据库在Archivelog方式下操作,并需要大量的档案空间。一旦数据库运行在archivelog状态下,就可以做备份了。
热备份的命令文件由三部分组成:
1. 数据文件一个
表空间一个
表空间的备份。
(1) 设置
表空间为备份状态
(2) 备份
表空间的数据文件
(3) 回复
表空间为正常状态
2. 备份归档log文件
(1) 临时停止归档进程
(2) log下那些在archive rede log目标目录中的文件
(3) 重新启动archive进程
(4) 备份归档的redo log文件
3. 用alter database
BAChup
CONTROLFILE命令来备份控制文件
热备份的优点是:
1. 可在
表空间或
数据库文件级备份,备份的时间短。
2. 备份时数据库仍可使用。
3. 可达到秒级恢复(恢复到某一时间点上)。
4. 可对几乎所有数据库实体做恢复
5. 恢复是快速的,在大多数情况下爱数据库仍工作时恢复。
热备份的不足是:
1. 不能出错,否则后果严重
2. 若
热备份不成功,所得结果不可用于时间点的恢复
3. 因难于维护,所以要特别仔细小心,不允许“以失败告终”。
========
http://blog.csdn.net/rowisdom/article/details/8994318
简介:
数据泵使用指南
10g开始引入了最新的数据泵(Data Dum
p)技术,使DBA或开发人员可以将数据库元数据(对象定义)和数据快速移动到另一个@R_
675_3608@.
数据泵导出导入(EXPDP和IMPD
p)的作用
1,实现逻辑备份和逻辑恢复.
2,
在数据库用户之间移动对象.
3,
在数据库之间移动对象
4,实现
表空间搬移.
数据泵导出导入与传统导出导入的区别
在10g之前,
传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项;
EXP和IMP是客户段工具程序,它们既可以在可以客户端使用,也可以在服务端使用.
EXPDP和IMPDP是服务端的工具程序,他们只能
在OraCLE服务端使用,不能在客户端使用
IMP只适用于EXP导出文件,不适用于EXPDP导出文件;IMPDP只适用于EXPDP导出文件,而不适用于EXP导出文件.
数据泵导出包括
导出表,导出方案,
导出表空间,导出数据库4种方式.
导出功能
使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录.
因此,使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.
CREATE DIRECTORY dump dir AS '/home/
Oracle/dump_dir';
GRANT READ,WIRTE ON DIRECTORY dump_dir TO
PUBLIC;
注意:这个目录赋权限给
Oracle用户
1,
导出表
Expdp scott/tiger DIRECTORY=dump_dir DUMPfile=tab.dmp logfile=tab.log tableS=dept,emp
2,导出方案
Expdp scott/tiger DIRECTORY=dump_dir DUMPfile=
scheR_463_11845@a.dmp
scheR_463_11845@AS=system,scott
3.
导出表空间
Expdp system/manager DIRECTORY=dump_dir DUMPfile=tablespace.dmp tableSPACES=user01,user02
4,导出数据库
Expdp system/manager DIRECTORY=dump_dir DUMPfile=ful
l.dmp FulL=Y
我们经常用到的是第二种
expdp system/
**** directory=dump_dir dumpfile=ngboss_yueyang20130514.dmp logfile=expyueyang20130514.log
scheR_463_11845@as=ngboss_yueyang
对参数功能不了解请expdp -
Help查看
导入功能
和导出一样,先要建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.
CREATE DIRECTORY dump dir AS '/home/
Oracle/dump_dir';
GRANT READ,WIRTE ON DIRECTORY dump_dir TO
PUBLIC;
注意:这个目录赋权限给
Oracle用户
将dmp文件copy到对应的目录
同样有四种情况
1,导入表
Impdp scott/tiger DIRECTORY=dump_dir DUMPfile=tab.dmp tableS=dept,emp
Impdp system/manage DIRECTORY=dump_dir DUMPfile=tab.dmp tableS=scott.dept,scott.emp REMAP_
scheR_463_11845@A=SCott:SYstem
第一种方法表示将DEPT和EMP表导入到SCott方案中,第二种方法表示将DEPT和EMP表导入的SYstem方案中.
注意,如果要将表导入到其他方案中,必须指定REMAP
scheR_463_11845@A选项.
2,导入方案
Impdp scott/tiger DIRECTORY=dump_dir DUMPfile=
scheR_463_11845@a.dmp
scheR_463_11845@AS=scott
Impdp system/manager DIRECTORY=dump_dir DUMPfile=
scheR_463_11845@a.dmp
scheR_463_11845@AS=scott REMAP_
scheR_463_11845@A=scott:system
3,导入
表空间
Impdp system/manager DIRECTORY=dump_dir DUMPfile=tablespace.dmp tableSPACES=user01
4,导入数据库
Impdp system/manager DIRECTORY=dump_dir DUMPfile=ful
l.dmp FulL=y
针对我们系统的特点
有两种情况
1.导入库的用户名和
表空间跟导出的库一致,例如从201上的ngboss_yueyang导入到196上的ngboss_yueyang用户上,两边的
表空间名也一样
impdp system/
**** directory=dump_dir dumpfile=ngboss_yueyang20130514.dmp logfile=impngboss_yueyang20130514.log
scheR_463_11845@as=ngboss_yueyang
2.导入库的用户名和
表空间跟导出的库不一致
例如:从岳阳的生产库上导出的库导入到公司201上ngboss_yueyang用户上
用户名和
表空间名都不一样
impdp system/
**** directory=dump_dir dumpfile=ngboss20130513.dmp logfile=impyueyang20130514.log remap_
scheR_463_11845@a=ngboss:ngboss_yueyang remap_tablespace=ngboss_data:ngboss_yy_data,NGBOSS_DATA_CRM1:NGBOSS_YY_DATA_CRM1,NGBOSS_DATA_CRM2:NGBOSS_YY_DATA_CRM2,NGBOSS_DATA_HIST:NGBOSS_YY_DATA_HIST,NGBOSS_DATA_HIST_CRM:NGBOSS_YY_DATA_HIST_CRM,NGBOSS_INDX:NGBOSS_YY_INDX,NGBOSS_INDX_CRM:NGBOSS_YY_INDX_CRM,NGBOSS_WORK:NGBOSS_YY_WORK
对参数功能不了解请impdp -
Help查看
注意事项:用dba账户导出的dmp文件必须要用dba账户导入。
推荐文章:
OracLE数据库
备份与还原命令
http://www
.blogjava.net/paulwong/archive/2013/05/12/399172.HTML
========
http://www.cnblog
s.com/newlooker/p/3564939.HTML
Oracle数据库导出操作
导入导出都要进行目录创建与授权。
在
pl/sql里面编写也可以
SELEct * from dba_directorIEs(这个是查看创建的目录)
drop directory exp_dir(删除指定名称的目录)
create or
replace directory expdp_dir as ‘E:/exp’
grant read,
write on directory expdp_dir to public
如图(图片网上找的):
查询创建了那些子目录:
SELECT * FROM dba_directorIEs;
1.如下是bat命令导出
@echo off
echo 备份执行开始!
set fil
ename=%date:~8,2% ::设置获取当前系统日期
expdp gdxaorcl/gdxadb2013@ECAmpuS
scheR_463_11845@as=gdxaorcl dumpfile=%fil
ename%.dmp DIRECTORY=expdp_dir
::使用expdp导出,
scheR_463_11845@as指定用户名,dumpfile指定导出文件名称,DIRECTORY即指导到指定目录下
echo 备份执行完成!
2.
Oracle数据库导入操作
数据库导入bat命令:
@echo
set /a tui = %date:~8,2%-1 ::设置系统日期前一天的数据库备份文件
impdp gdxaorcl/gdxadb2013@localhost/ecampus file=%tui%.dmp log=%tui%.log full=y table_EXISTS_ACTION=
replace ::(file指定要导入的备份文件注意:已经把%tui%.dmp复制到F:\app\administrator\admin\ecampus\dpdump 下面了),log即日志文件,full=y ( 全库导出): 导出除ORDSYS,mdsYS,CTXSYS,ORdplUGINS,L
BACSYS 这些系统用户之外的所有用户的数据。
replace参数先drop表,然后创
建表,最后
插入数据。
========
Oracle数据库备份、恢复及常见问题
http://www.cnblog
s.com/Jo
Anna-Yan/p/5070658.HTML 通常我们都是使用
pl/sql Developer来对
Oracle中的数据对象和数据进行管理。如果我们想方
便快速还原或者部署
Oracle到新机器上,怎么进行数据库的备份、导入恢复呢? 这里我们必须要
考虑的:
如何创建Oracle
表空间、创建
Oracle数据库;如何把
Oracle对象、表数据导出到sql脚本中。 1、数据库备份 (1)导出数据库对象 Tools-->ExportUser Ob
jects,选择需要导出的数据库对象,包括:表、序列、存储过程、视图、函数等。 (2)
导出表数据 Tools-->Export tables,导出数据到
pl/sql数据库脚本中。 2、新建
表空间和Oracle数据库 file-->New-->sql Window,打开sql窗口输入:
表空间、用户名都为IGSC。
create tablespace IGSC
DATAFILE 'E:\IGS
Oracle\IGSC.dbf' size 10240M; --
drop tableSPACE IGSC INCLUDING CONTENTS AND
DATAFILES CASCADE CONS
TraiNTS; create user IGSC IDentifIEd by IGSC default tablespace IGS
c; grant connect,
resource to IGS
c; grant dba to IGS
c; --Revoke dba from IGS
c; 复制代码 点击
执行sql。此时,数据库
表空间、表结构、表数据齐全,可以开始迁移出一个完整的数据库了。 3、导入数据库及对象 Tools-->import tables,先导入数据库对象,
再导入表数据,此时,
你的表数据文件可以分几个文件导入也是不会报错的,因为表结构已经存在。 执行过程中
会出现如下界面: 到这,整个
Oracle数据库的迁移工作已完成。注意:我们导出的
Oracle对象和数据库默认还是原来
Oracle数据库的
表空间和数据库用户名。如果想在新的数据库服务器中指定不同的
表空间和数据库用户,则需要替换生成的sql脚本中的
表空间和用户名的设置,并且第二步指定合理的
表空间和数据库用户。 4、常见问题 (1)就是上面说的注意 我遇到的问题:新环境的数据库中存在IGS
表空间,我导出的
数据库文件IGS
Oracle.sql
表空间默认也为IGS,结果在导入数据库对象到新
表空间IGSC时,没有导入成功,却导入到了已存在的IGS
表空间中。查看IGS
Oracle.sql: 发现导出的
Oracle对象和数据库默认还是原来
Oracle数据库的
表空间和数据库用户名,我们要将
表空间和用户名都改为IGSC,
重新导入。 (2)
OracLE initialization or shutdown in progress 想删除不想要了的数据库和dbf文件,停掉服务后删除,重启服务启动数据库实例时报错。 解决: 开始-->输入,
sqlplus /nolog sql> connect system/hope; ERROR: ORA-01033:
OracLE initialization or shutdown in progress【就是这个错误】 sql> connect sys/hope as sysdba 已连接。 sql> shutdown normal ORA-01109: 数据库未打开 已经卸载数据库。
OracLE 例程已经关闭。 sql> start mount SP2-0310: 无法打开文件 "mount.sql" sql> startup mount
OracLE 例程已经启动。 @R_375_1
0586@l System Global Area 612368384 bytes Fixed Size 1332348 bytes Variable Size 183151492 bytes Database Buffers 423624704 bytes Redo Buffers 4259840 bytes 数据库装载完毕。 sql> alter database open; alter database open * 第 1 行出现错误: ORA-01157: 无法标识/锁定数据文件 8 - 请参阅 DBWR 跟踪文件 ORA-01110: 数据文件 8: 'C:\TYK
m.DBF' sql> alter database
DATAFILE 8 offline drop;【8是数据文件中的8】 数据库已更改。 sql> alter database open;【一直循环这个语句,直至不再提示错误】 数据库已更改。 sql> shutdown normal 数据库已经关闭。 已经卸载数据库。
OracLE 例程已经关闭。 sql> startup
OracLE 例程已经启动。 @R_375_1
0586@l System Global Area 612368384 bytes Fixed Size 1332348 bytes Variable Size 187345796 bytes Database Buffers 419430400 bytes Redo Buffers 4259840 bytes 数据库装载完毕。 数据库已经打开。 (3)ORA-1658 无法为
表空间的段创建initial区 原因:
表空间大小 解决:因为表数据比较大,我这里将步骤二中的size改为了10240M。 (4)
pl/sql导入表数据报错Error reading file 当表数据文件很大时,选择Use Command Window方式导入报错。对大量数据的导入选择Use sql*Plus,前者不能读取大文件,后者可以。 ========
大佬总结
以上是大佬教程为你收集整理的oracle 备份与恢复学习总结全部内容,希望文章能够帮你解决oracle 备份与恢复学习总结所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。