oracle数据库备份还原(本地及远程操作)_第1页
oracle数据库备份还原(本地及远程操作)_第2页
oracle数据库备份还原(本地及远程操作)_第3页
oracle数据库备份还原(本地及远程操作)_第4页
oracle数据库备份还原(本地及远程操作)_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、oracle数据库备份还原(本地及远程操作)执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于在oracle8i中安装目录ora81BIN被设置为全局路径,该目录下有EXP.EXE与IMP.EXE文件被用来执行导入导出。oracle用java编写,我想SQLPLUS.EXE、EXP.EXE、IMP.EXE这俩个文件是被包装后的类文件。SQLPLUS.EXE调用EXP.EXE,IMP.EXE他们所包裹的类,完成导入导出功能。用IMP和EXP处理的:EXPuserid=/file=IMPuserid=/file=fromuser=touser=实例:数据的导出

2、expqhmis/qhmisqhmisfile=d:backupqhmisqhmis20060526.dmpgrants=yfull=n1将数据库TEST完全导出,用户名system密码manager导出到D:daochu.dmp中expsystem/managerTESTfile=d:daochu.dmpfull=y2将数据库中system用户与sys用户的表导出expsystem/managerTESTfile=d:daochu.dmpowner=(system,sys)3将数据库中的表table1、table2导出expsystem/managerTESTfile=d:daochu.dm

3、ptables=(table1,table2)4将数据库中的表table1中的字段filed1以”00”打头的数据导出expsystem/managerTESTfile=d:daochu.dmptables=(table1)query=wherefiled1like00%”上面是常用的导出,对于压缩我不太在意,用winzip把dmp文件可以很好的压缩。不过在上面命令后面加上compress=y就可以了。数据的导入1将D:daochu.dmp中的数据导入TEST数据库中。impsystem/managerTESTfile=d:daochu.dmp上面可能有点问题,因为有的表已经存在,然后它就报错

4、,对该表就不进行导入。在后面加上ignore=y就可以了。2将d:daochu.dmp中的表table1导入impsystem/managerTESTfile=d:daochu.dmptables=(table1)下面这句是执行将c盘的oracle的备份的用户qhmis导入到用户qhmis的数据库impqhmis/qhmisqhmisfile=c:qhmis20060224.dmpignore=ngrants=yfull=y远程备份的时候只要将mailto:“%3Cservice_name”后的部分改成连接数据库的方式就可以了,女口:LSD_3这是我在.ora92networkadmintns

5、names.ora中自己设置的,代码如下:LSD_2=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=2)(PORT=1521)(CONNECT_DATA=(SID=ora9i)(SERVER=DEDICATED)注:其中红色部分是要自己改写的TxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTxTx进阶:将一个数据库的某用户的

6、所有表导到另外数据库的一个用户下面的例子expuserid=system/managerowner=username1file=expfile.dmpimpuserid=system/managerfromuser=username1touser=username2ignore=yfile=expfile.dmpORACLE数据库有两类备份方法。第一类为物理备份,该方法实现数据库的完整恢复,但数据库必须运行在归挡模式下(业务数据库在非归挡模式下运行),且需要极大的外部存储设备,例如磁带库;第二类备份方式为逻辑备份,业务数据库采用此种方式,此方法不需要数据库运行在归挡模式下,不但备份简单,而且可

7、以不需要外部存储设备。数据库逻辑备份方法ORACLE数据库的逻辑备份分为三种模式:表备份、用户备份和完全备份。表模式备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式。若备份到本地文件,使用如下命令:expicdmain/icdrows=yindexes=ncompress=nbuffer=65536feedback=100000volsize=0file=exp_icdmain_csd_yyyymmdd.dmplog=exp_icdmain_csd_yyyymmdd.logtables=moninformation,icdmain.serviceinfo,icdmain.de

8、alinfo若直接备份到磁带设备,使用如下命令:expicdmain/icdrows=yindexes=ncompress=nbuffer=65536feedback=100000volsize=0file=/dev/rmt0log=exp_icdmain_csd_yyyymmdd.logtables=moninformation,icdmain.serviceinfo,icdmain.dealinfo注:在磁盘空间允许的情况下,应先备份到本地服务器,然后再拷贝到磁带。出于速度方面的考虑,尽量不要直接备份到磁带设备。用户模式备份某个用户模式下的所有对象。业务数据库通常采用这种备份方式。若备份到

9、本地文件,使用如下命令:expicdmain/icdowner=icdmainrows=yindexes=ncompress=nbuffer=65536feedback=100000volsize=0file=exp_icdmain_yyyymmdd.dmplog=exp_icdmain_yyyymmdd.log若直接备份到磁带设备,使用如下命令:expicdmain/icdowner=icdmainrows=yindexes=ncompress=nbuffer=65536feedback=100000volsize=0file=/dev/rmt0log=exp_icdmain_yyyymmd

10、d.log注:如果磁盘有空间,建议备份到磁盘,然后再拷贝到磁带。如果数据库数据量较小,可采用这种办法备份。完全模式备份完整的数据库。业务数据库不采用这种备份方式。备份命令为:expicdmain/icdrows=yindexes=ncompress=nbuffer=65536feedback=100000volsize=0full=yfile=exp_fulldb_yyyymmdd.dmp(磁带设备则为/dev/rmtO)log=exp_fulldb_yyyymmdd.log对于数据库备份,建议采用增量备份,即只备份上一次备份以来更改的数据。增量备份命令:expicdmain/icdrows=

11、yindexes=ncompress=nbuffer=65536feedback=100000volsize=0full=yinctype=incrementalfile=exp_fulldb_yyyymmdd.dmp(磁带设备则为/dev/rmt0)log=exp_fulldb_yyyymmdd.log注:关于增量备份必须满足下列条件:只对完整数据库备份有效,且第一次需要full=y参数,以后需要inctype=incremental参数。用户必须有EXP_FULL_DATABASE的系统角色。话务量较小时方可采用数据库备份。如果磁盘有空间,建议备份到磁盘,然后再备份到磁带。业务数据库备份方

12、法及周期用EXP进行备份前,先在SYS用户下运行CATEXP.SQL文件(如果以前已运行该文件,贝怀要执行这个脚本)。没有特殊说明,不允许在客户端执行备份命令。备份命令参照表模式下的备份命令。从磁盘文件备份到磁带如果首先备份到本地磁盘文件,则需要转储到磁带设备上。若需查看主机上配置的磁带设备,使用如下命令:lsdev-Cctape显示的结果如下例所示:rmt0Available30-58-00-2,0SCSI4mmTapeDrivermt1Defined30-58-00-0,0SCSI4mmTapeDrive标明Available的设备是可用的磁带设备。若需查看磁带存储的内容,使用如下命令:t

13、ar-tvf/dev/rmt0显示的结果如下例所示:-rw-r-r-3004008089600Jan1114:33:572001exp_icdmain_20010111.dmp如果显示类似如下内容,则表示该磁带存储的备份数据是从数据库直接备份到磁带上,而非从本地磁盘转储到磁带的备份文件,因此操作系统无法识别。tar:0511-193Anerroroccurredwhilereadingfromthemedia.Thereisaninputoroutputerror.或tar:0511-169Adirectorychecksumerroronmedia;-267331077notequalto2

14、5626.对于新磁带或无需保留现存数据的磁带,使用如下命令:tar-cvf/dev/rmt0exp_icdmain_yyyymmdd.dmp注:A.该命令将无条件覆盖磁带上的现存数据。B.文件名不允许包含路径信息,如:/backup/exp_icdmain_yyyymmdd.dmp。对于需要保留现存数据的磁带,使用如下命令:tar-rvf/dev/rmt0exp_icdmain_yyyymmdd.dmp注:该命令将文件exp_icdmain_yyyymmdd.dmp追加到磁带的末端,不会覆盖现存的数据。特别强调:如果备份时是从数据库直接备份到磁带上,则不可再向该磁带上追加复制任何其他文件,否则

15、该备份数据失效。若需将转储到磁带上的备份文件复制到本地硬盘,使用如下命令:将磁带上的全部文件复制到本地硬盘的当前目录tar-xvf/dev/rmt0将磁带上的指定文件复制到本地硬盘的当前目录tar-xvf/dev/rmt0exp_icdmain_yyyymmdd.dmp备份时间安排由于备份时对系统I/O有较大影响,所以,建议在晚上11点以后进行备份工作。业务数据库Oracle版本的恢复,恢复方案需根据备份方案确定。由于业务数据库采用表备份和用户备份相结合的方案,所以业务数据库的恢复需根据实际情况采用表恢复和用户恢复相结合的方案。恢复方案数据库的逻辑恢复分为表恢复、用户恢复、完全恢复三种模式。表

16、模式此方式将根据按照表模式备份的数据进行恢复。A.恢复备份数据的全部内容若从本地文件恢复,使用如下命令:impicdmain/icdfromuser=icdmaintouser=icdmainrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=nvolsize=0file=exp_icdmain_csd_yyyymmdd.dmplog=imp_icdmain_csd_yyyymmdd.log若从磁带设备恢复,使用如下命令:impicdmain/icdfromuser=icdmaintouser=icdmainrows=yindexe

17、s=ncommit=ybuffer=65536feedback=100000ignore=nvolsize=0file=/dev/rmt0log=imp_icdmain_csd_yyyymmdd.logB.恢复备份数据中的指定表若从本地文件恢复,使用如下命令:impicdmain/icdfromuser=icdmaintouser=icdmainrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=nvolsize=0file=exp_icdmain_csd_yyyymmdd.dmplog=imp_icdmain_csd_yyyymm

18、dd.logtables=commoninformation,serviceinfo若从磁带设备恢复,使用如下命令:impicdmain/icdfromuser=icdmaintouser=icdmainrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=nvolsize=0file=/dev/rmt0log=imp_icdmain_csd_yyyymmdd.logtables=commoninformation,serviceinfo用户模式此方式将根据按照用户模式备份的数据进行恢复。A.恢复备份数据的全部内容若从本地文件恢复,使

19、用如下命令:impicdmain/icdfromuser=icdmaintouser=icdmainrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=nvolsize=0file=exp_icdmain_yyyymmdd.dmplog=imp_icdmain_yyyymmdd.log若从磁带设备恢复,使用如下命令:impicdmain/icdfromuser=icdmaintouser=icdmainrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=nvolsize=

20、0file=/dev/rmt0log=imp_icdmain_yyyymmdd.logB.恢复备份数据中的指定表若从本地文件恢复,使用如下命令:impicdmain/icdfromuser=icdmaintouser=icdmainrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=nvolsize=0file=exp_icdmain_yyyymmdd.dmplog=imp_icdmain_yyyymmdd.logtables=commoninformation,serviceinfo若从磁带设备恢复,使用如下命令:impicdma

21、in/icdfromuser=icdmaintouser=icdmainrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=nvolsize=0file=/dev/rmt0log=imp_icdmain_yyyymmdd.logtables=commoninformation,serviceinfo完全模式如果备份方式为完全模式,采用下列恢复方法:若从本地文件恢复,使用如下命令:impsystem/managerrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=yvol

22、size=0full=yfile=exp_icdmain_yyyymmdd.dmplog=imp_icdmain_yyyymmdd.log若从磁带设备恢复,使用如下命令:impsystem/managerrows=yindexes=ncommit=ybuffer=65536feedback=100000ignore=yvolsize=0full=yfile=/dev/rmt0log=imp_icdmain_yyyymmdd.log参数说明1.ignore参数Oracle在恢复数据的过程中,当恢复某个表时,该表已经存在,就要根据ignore参数的设置来决定如何操作。若ignore=y,Oracl

23、e不执行CREATETABLE语句,直接将数据插入到表中,如果插入的记录违背了约束条件,比如主键约束,则出错的记录不会插入,但合法的记录会添加到表中。若ignore=n,Oracle不执行CREATETABLE语句,同时也不会将数据插入到表中,而是忽略该表的错误,继续恢复下一个表。2.indexes参数在恢复数据的过程中,若indexes=n,则表上的索引不会被恢复,但是主键对应的唯一索引将无条件恢复,这是为了保证数据的完整性。字符集转换对于单字节字符集(例如US7ASCII),恢复时,数据库自动转换为该会话的字符集(NLS_LANG参数);对于多字节字符集(例如ZHS16CGB231280)

24、,恢复时,应尽量使字符集相同(避免转换),如果要转换,目标数据库的字符集应是输出数据库字符集的超集。恢复方法业务数据库采用表恢复方案。在用IMP进行恢复前,先在SYS用户下运行CATEXP.SQL文件(如果以前已运行该文件,则不要执行这个脚本),然后执行下列命令:IMPICDMAIN/ICDFILE=文件名LOG=LOG文件名ROWS=YCOMMIT=YBUFFER=YIGNORE=YTABLES=表名注:要恢复的表名参照备份的表名。恢复是在原表基础上累加数据。没有特殊说明,不允许在客户端执行恢复命令附录一:给用户增加导入数据权限的操作第一,启动sql*puls第二,以system/manag

25、er登陆第三,createuser用户名IDENTIFIEDBY密码(如果已经创建过用户,这步可以省略)第四,GRANTCREATEUSER,DROPUSER,ALTERUSER,CREATEANYVIEW,DROPANYVIEW,EXP_FULL_DATABASE,IMP_FULL_DATABASE,DBA,CONNECT,RESOURCE,CREATESESSIONTO用户名字第五,运行-cmd-进入dmp文件所在的目录,impuserid=system/managerfull=yfile=*.dmp或者impuserid=system/managerfull=yfile=filename

26、.dmp执行示例:F:WorkOracle_Databackupimpuserid=test/testfull=yfile=inner_notify.dmp屏幕显示Import:Release.0-Productionon星期四2月1616:50:052006(c)Copyright2000OracleCorporation.Allrightsreserved.连接到:Oracle8iEnterpriseEditionRelease.0-ProductionWiththePartitioningoptionJServerRelease.0-Production经由常规路径导出由EXPORT:V

27、08.01.07创建的文件已经完成ZHS16GBK字符集和ZHS16GBKNCHAR字符集中的导入导出服务器使用UTF8NCHAR字符集(可能的ncharset转换).正在将AICHANNEL的对象导入到AICHANNEL.正在导入表INNER_NOTIFY4行被导入准备启用约束条件.成功终止导入,但出现警告。附录二:Oracle不允许直接改变表的拥有者,利用Export/Import可以达到这一目的.先建立import9.par,然后,使用时命令如下:impparfile=/filepath/import9.par例import9.par内容如下:FROMUSER=TGPMSTOUSER=T

28、GPMS2(注:把表的拥有者由FROMUSER改为TOUSER,FROMUSER和TOUSER的用户可以不同)ROWS=YINDEXES=YGRANTS=YCONSTRAINTS=YBUFFER=409600file=/backup/ctgpc_20030623.dmplog=/backup/import_20030623.logwindows环境下的oracle服务注:SID-数据库标识HOME_NAME-OracleHome名称,如OraHome92、OraHome81(1)OracleServiceSID数据库服务,这个服务会自动地启动和停止数据库。如果安装了一个数据库,它的缺省启动类型

29、为自动。服务进程为ORACLE.EXE,参数文件initSID.ora,日志文件SIDALRT.log,控制台SVRMGRL.EXE、SQLPLUS.EXE。(2)OracleHOME_NAMETNSListener监听器服务,服务只有在数据库需要远程访问时才需要(无论是通过另外一台主机还是在本地通过SQL*Net网络协议都属于远程访问),不用这个服务就可以访问本地数据库,它的缺省启动类型为自动。服务进程为TNSLSNR.EXE,参数文件Listener.ora,日志文件listener.log,控制台LSNRCTL.EXE,默认端口1521、1526。(3)OracleHOME_NAMEAg

30、entOEM代理服务,接收和响应来自OEM控制台的任务和事件请求,只有使用OEM管理数据库时才需要,它的缺省启动类型为自动。服务进程为DBSNMP.EXE,参数文件snmp_rw.ora,日志文件nmi.log,控制台LSNRCTL.EXE,默认端口1748。(4)OracleHOME_NAMEClientCache名字缓存服务,服务缓存用于连接远程数据库的OracleNames数据。它的缺省启动类型是手动。然而,除非有一台OracleNames服务器,否则没有必要运行这个服务。服务进程为ONRSD.EXE,参数文件NAMES.ORA,日志文件ONRSD.LOG,控制台NAMESCTL.EXEo(5)OracleHOME_NAMECMAdmin连接管理服务,是构建ConnectionManager服务器所用,只有服务器作为ConnectionManager才需要,它的缺省启动类型是手动。服务进程为CMADMIN.EXE,参数文件CMAN.ORA,日志文件CMADM_PID.TRC,控制台CMCTL.EXE,默认端口1830。(6)OracleHOME_NAMECMan连接网关服务,是构建ConnectionManager服务器所用,只有服务器作为ConnectionM

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论