设为首页 收藏本站
查看: 2152|回复: 0

[经验分享] Oracle数据库备份之exp/imp用法

[复制链接]

尚未签到

发表于 2018-9-23 06:55:36 | 显示全部楼层 |阅读模式
---------------------------------------------------------------------------------------  Oracle数据库备份
  ---------------------------------------------------------------------------------------
  ORACLE数据库的逻辑备份分为三种模式:表备份、用户备份和完全备份。
  1.表模式
  备份某个用户模式下指定的对象(表)。业务数据库通常采用这种备份方式。
  若备份到本地文件,使用如下命令:
  exp icdmain/icd rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0
  file=exp_icdmain_csd_yyyymmdd.dmp
  log=exp_icdmain_csd_yyyymmdd.log
  tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
  若直接备份到磁带设备,使用如下命令:
  exp icdmain/icd rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0
  file=/dev/rmt0
  log=exp_icdmain_csd_yyyymmdd.log
  tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
  注:在磁盘空间允许的情况下,应先备份到本地服务器,然后再拷贝到磁带。出于速度方面的考虑,尽量不要直接备份到磁带设备。
  2.用户模式
  备份某个用户模式下的所有对象。业务数据库通常采用这种备份方式。
  若备份到本地文件,使用如下命令:
  exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0
  file=exp_icdmain_yyyymmdd.dmp
  log=exp_icdmain_yyyymmdd.log
  若直接备份到磁带设备,使用如下命令:
  exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0
  file=/dev/rmt0
  log=exp_icdmain_yyyymmdd.log
  注:如果磁盘有空间,建议备份到磁盘,然后再拷贝到磁带。如果数据库数据量较小,可采用这种办法备份。
  3.完全模式
  备份完整的数据库。业务数据库不采用这种备份方式。备份命令为:
  exp icdmain/icd rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0 full=y
  file=exp_fulldb_yyyymmdd.dmp(磁带设备则为/dev/rmt0)
  log=exp_fulldb_yyyymmdd.log
  对于数据库备份,建议采用增量备份,即只备份上一次备份以来更改的数据。增量备份命令:
  exp icdmain/icd rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0 full=y inctype=incremental
  file=exp_fulldb_yyyymmdd.dmp(磁带设备则为/dev/rmt0)
  log=exp_fulldb_yyyymmdd.log
  注:关于增量备份必须满足下列条件:
  1.只对完整数据库备份有效,且第一次需要full=y参数,以后需要inctype=incremental参数。
  2. 用户必须有EXP_FULL_DATABASE的系统角色。
  3. 话务量较小时方可采用数据库备份。
  4. 如果磁盘有空间,建议备份到磁盘,然后再备份到磁带。
  
---------------------------------------------------------------------------------------  Oracle数据库恢复
  ---------------------------------------------------------------------------------------
  数据库的逻辑恢复分为表恢复、用户恢复、完全恢复三种模式。
  1.表模式
  此方式将根据按照表模式备份的数据进行恢复。
  A. 恢复备份数据的全部内容
  若从本地文件恢复,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0
  file=exp_icdmain_cs
  d_yyyymmdd.dmp
  log=imp_icdmain_csd_yyyymmdd.log
  若从磁带设备恢复,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0
  log=imp_icdmain_csd_yyyymmdd.log
  B. 恢复备份数据中的指定表
  若从本地文件恢复,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0
  file=exp_icdmain_cs
  d_yyyymmdd.dmp
  log=imp_icdmain_csd_yyyymmdd.log
  tables=commoninformation,serviceinfo
  若从磁带设备恢复,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0
  file=/dev/rmt0
  log=imp_icdmain_csd_yyyymmdd.log
  tables=commoninformation,serviceinfo
  2.用户模式
  此方式将根据按照用户模式备份的数据进行恢复。
  A. 恢复备份数据的全部内容
  若从本地文件恢复,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0
  file=exp_icdmain_yy
  yymmdd.dmp
  log=imp_icdmain_yyyymmdd.log
  若从磁带设备恢复,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0
  log=imp_icdmain_yyyymmdd.log
  B. 恢复备份数据中的指定表
  若从本地文件恢复,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0
  file=exp_icdmain_yy
  yymmdd.dmp
  log=imp_icdmain_yyyymmdd.log
  tables=commoninformation,serviceinfo
  若从磁带设备恢复,使用如下命令:
  imp icdmain/icd fromuser=icdmain touser=icdmain rows=y indexes=n
  commit=y buffer=65536 feedback=100000 ignore=n volsize=0 file=/dev/rmt0
  log=imp_icdmain_yyyymmdd.log
  tables=commoninformation,serviceinfo
  3.完全模式
  如果备份方式为完全模式,采用下列恢复方法:
  若从本地文件恢复,使用如下命令:
  imp system/manager rows=y indexes=n commit=y buffer=65536
  feedback=100000 ignore=y volsize=0 full=y
  file=exp_icdmain_yyyymmdd.dmp
  log=imp_icdmain_yyyymmdd.log
  若从磁带设备恢复,使用如下命令:
  imp system/manager rows=y indexes=n commit=y buffer=65536
  feedback=100000 ignore=y volsize=0 full=y
  file=/dev/rmt0
  log=imp_icdmain_yyyymmdd.log
==================================================================  Oracle EXP/IMP 参数详解
  ---------------------------------------------------------------------------------------
  EXP导出选项
  ---------------------------------------------------------------------------------------
  USERID
  运行导出命令的帐号的用户名/口令
  BUFFEER
  用来取数据行的缓冲区的大小
  FILE
  导出转储文件的名字
  COMPRESS
  导出是否应该压缩有碎片的段成一个范围,这将会影响STORAGE子句
  GRANTS
  导出时否要导出数据库对象上的授权
  INDEXES
  是否要导出表上的索引
  ROWS
  是否应导出行。如它为‘N’,那么在导出文件中仅生成数据库对象的DDL
  CONSSTRAINTS
  是否导出表旧的约定条件
  FULL
  如设为‘Y’,那么将执行一个整个数据库导出操作
  OWNER
  要导出的一系列数据库帐号,然后执行这些帐号的USER导出操作
  TABLES
  要导出的一系列表;执行这些表的TABLE导出操作
  RECORDLENGTH
  转储导出文件日志的长度(以字节为单位),通常都使用缺省,除非要在两个不同操作系统中传递导出文件
  INCTYPE
  正在执行的导出操作的类型(有效值有COMPLETE(缺省值),CUMULATIVE和IVCREMENTAL)
  RECORD
  在增量导出类型中的一个标记,标明是否将日志存储到数据字典中日志导出的表中
  PARFILE
  要传递给导出的参数文件的名字。这个文件将包含所有参数的入口项
  ANALYZE
  标明是否将移对象的统计信息写入导出转储文件中
  CONSISTENT
  标明是否保留所有导出对象的读取一致复制
  LOG
  导出日志将要写入的文件的名字
  MLS
  标明是否要导出MLS 标号
  MLS_LABEL
  规定了MLS标号的格式
---------------------------------------------------------------------------------------  IMP导入选项
  ---------------------------------------------------------------------------------------
  USERID
  运行导入命令的帐号的用户名/口令
  BUFFEER
  用来取数据行的缓冲区的大小
  FILE
  导入转储文件的名字
  SHOW
  规定文件内容是否被显示,而不是被执行
  EGNORE
  标明在执行‘CREATE’命令时,是否忽略遇到的错误。如果正在导入的对象已经存在时,应使用这个参数
  FULL
  如设为‘Y’,那么将执行一个整个数据库导入操作
  FROMUSER
  在FULL=N的情况下,才有参数。它是一系列的数据库帐号,其对象应从导出转储文件中读取
  TOUSER
  一系列数据库帐号,导出转储文件扣的对象将要导入这些帐号
  GRANTS
  导入时否要导入数据库对象上的授权
  INDEXES
  是否要导入表上的索引
  ROWS
  是否应导入行。如它为‘N’,那么在导入文件中执行数据库对象的DDL
  TABLES
  要导入的一系列表
  RECORDLENGTH
  转储导入文件日志的长度(以字节为单位),通常都使用缺省,除非要在两个不同操作系统中传递导入文件
  INCTYPE
  正在执行的导入操作的类型(有效值有COMPLETE(缺省值),CUMULATIVE和IVCREMENTAL)
  PARFILE
  要传递给导入的参数文件的名字。这个文件将包含所有参数的入口项
  ANALYZE
  标明是否将移对象的统计信息写入导入转储文件中
  LOG
  导入日志将要写入的文件的名字
  MLS
  标明是否要导入MLS 标号
  INDEXFILE
  不执行导入动作,只生成建索引的文本
  
==example==  将一个数据库的某用户的所有表导到另外数据库的一个用户下面的例子  
  exp userid=system/manager owner=username1 file=expfile.dmp
  imp userid=system/manager fromuser=username1 touser=username2 ignore=y file=expfile.dmp
  =============================================================================
  在导入导出前要先测试下对应的数据库是否是通的:tnsping test来测试,同样test是服务名
  所有命令可在cmd下执行
  用exp/imp远程操作数据库
  对ORACLE数据库进行远程操作,假设数据库在192.168.1.110上,具体方法如下:
  一、在客户端创建和服务端对应的服务名
  方法1:
  修改tnsnames.ora文件
  加入远程服务器的命名:
  Sql代码
  TEST_ORCL =
  (DESCRIPTION =
  (ADDRESS_LIST =
  (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.110)(PORT = 1521))
  )
  (CONNECT_DATA =
  (SERVICE_NAME = orcl)
  )
  )
  方法2:
  在oracle客户端,打开net manager。
  创建一个服务命名TEST_ORCL,主机IP为:192.168.1.110,服务名orcl,端口1521
  二、测试远程服务器是否畅通
  进入到cmd后,执行命令:tnsping TEST_ORCL。
  三、远程操作数据库
  导出:
  Sql代码
  1:exp username/password@TEST_ORCL file=bak_filepath
  2:exp username/password@TEST_ORCL full=y file=bak_filepath
  username 用户名,password 密码,TEST_ORCL 客服端服务名,bak_filepath 备份文件存放的路径
  导入:
  Sql代码
  1:imp username/password@TEST_ORCL file=bak_filepath full=y
  2:imp username/password@TEST_ORCL/database_name file=bak_filepath full=y
  3:imp username/password@TEST_ORCL file=bak_filepath fromuser=fromadmin touser=toadmin
  username 用户名,password 密码,TEST_ORCL 客服端服务名,bak_filepath 备份文件存放的路径
  fromadmin 备份数据的用户名,toadmin 还原数据库的用户名。database_name 还原到那个数据库上
  full=y 将数据库整体导出,包括表结构等。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-600044-1-1.html 上篇帖子: 如何从完好的数据文件恢复oracle数据库 下篇帖子: Oracle GoldenGate和Dataguard以及stream复制的区别
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表