数据库(表)的逻辑备份与恢复 逻辑备份是指使用工具export将数据对象的结构和数据导出到文件的过程,逻辑恢复是指当数据库对象被破坏而使用工具import利用备份的文件把数据对象导入到数据库的过程,逻辑备份和恢复只能在open的情况下进行。 一、导出操作 1、导出 导出具体分为三种:导出表、导出方案、导出数据库三种方式 导出使用exp命令来完成的,该命令常用的选项有: userid:用于指定执行导出操作的用户名,口令,连接字符串 tables:用户指定执行导出操作的表 owner:用于指定执行导出操作的方案
C:\Documents and Settings\Administrator>exp [email protected]_db file=E:\lsxy.dmp owner=lsxy
C:\Documents and Settings\Administrator>explsxy/lsxy@lsxy_dbfile=E:\lsxy.dmp owner=lsxy
oracle导数据有很多方法, 官方推荐的是exp/imp和数据泵(expdp/impdp).
编辑手记:针对最近发生的炉石及GitLab事件,我们不得不再次强调备份的重要性。DBA的四大守则,第一条就是备份重于一切。年初做好备份,愿你的系统17无恙。 本文介绍三种常见的逻辑备份与恢复的方式。本文选自《循序渐进Oracle》 1、使用EXP进行逻辑备份 导入/导出(IMP/EXP)是Oracle最古老的两个命令行工具,通过导出(EXP)工具可以将Oracle数据库中的数据提取出来,在恢复时可以将数据导入(IMP)进行恢复。但是需要注意的是,使用EXP备份的数据进行全库恢复时,需要重新创建数据库,导入
做数据的导入导出操作,最常用的就是imp/exp和impdp/expdp,经常会碰见各种错误,之前总结过一些,《解决导入过程中出现的ORA-02289错误》、《生产数据导入测试环境碰见的一些问题》。
同事前几天问到exp/expdp根据条件导出一张/多张表数据的问题,借此机会,依次对这些需求做个实验,仅供参考。
大致意思是导出过程中,由于客户端字符集或NCHARSET参数和服务器端不一致,导致一些统计信息不可用。解决方案是可以导出不存在问题的统计信息,或者改变客户端字符集或NCHARSET参数。
导出sys用户下的HIST_HEAD$和WRI$_OPTSTAT_HISTHEAD_HISTORY两张表: 由于expdp尝试导出失败,改用传统exp导出,导出命令如下:
默认需要切 oracle 用户才可以用,命令su - oracle。 直接用 exp 命令会显示 command not found
在10g之前,传统的导出和导入分别使用EXP工具和IMP工具,从10g开始,不仅保留了原有的EXP和IMP工具,还提供了数据泵导出导入工具EXPDP和IMPDP.使用EXPDP和IMPDP时应该注意的事项:
本文对Oracle数据的导入导出 imp ,exp 两个命令进行了介绍, 并对其对应的參数进行了说明,然后通过一些演示样例进行演练,加深理解. 文章最后对运用这两个命令可能出现的问题(如权限不够,不同oracle版本号)进行了探讨,并提出了对应的解决方式; 本文部分内容摘录自网络,感谢网友的经验总结;
oracle导入导出不像mysql那么方便,这边记录下oracle本地/远程导入导出(imp/exp)实践过程
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用……
导入:imp ics/ics@localhost:1521/orcl file=F:\ics.dmp full = y
场景:imp导入数据时,最终触发器报错退出,并未导入存储过程、触发器、函数。 现在exp单独导出元数据,然后imp导入元数据,验证是否会影响已导入的表数据。
前段时间,需要从异地一个测试数据库中将测试数据(一张表)导入本地库,表数据量大约500万,字段160多个,开始用了exp/imp方式,速度奇慢,不能忍,于是转而使用expdp/impdp方式。
Oracle 传统的Export与Import依旧被保留到11g,而且9i与10g有很多依旧使用Export与Import方式进行备份与恢复的企业。从Oracle 7.3开始,传统的exp导出程序提供两种的导出路径方式,一个是传统路径导出(Conventional Path Export),一个是直接路径导出(Direct Path Export)。本文即是因最近客户的传统导入导出性能问题对此进行描述。
Oracle逻辑备份的核心就是复制数据;Oracle提供的逻辑备份与恢复的命令有exp/imp,expdp/impdp。当然像表级复制(create table table_back as select * from table)也算是一种逻辑备份。Oracle逻辑备份没有支持增量备份;对数据恢复也是非一致性的。所以一般都是用于数据迁移的工作。
最近负责搭建某系统的用户环境,其中涉及从测试环境导入数据,由于受客观因素制约,不能使用传输表空间方法同步,因此需要用imp/exp或数据泵的方法,这里采用的是imp/exp。下面记录操作过程中碰到的问题。
C:\Documents and Settings\noah>exp system/pd0000@orcl file=d:\data.dmp wner=dev log=d:\log.log
在使用exp/imp导出导入,经常会碰见各种的问题,前两天某公众号发了篇《IMP-00009:异常结束导出文件解决方案》,介绍了导入出现IMP-00009错误的解决方案,讲了各种场景,可以参考。
前几天有位同事问到exp/imp是否涉及到版本问题,我认为,只要是软件,都会涉及到高低版本的兼容性问题,Oracle也是软件,自然也是这样。 简单的实验: exp工具版本:10g 导出的source数据库版本:9i bash-4.1$ exp x/x@x tables=T file=/home/x/t.dmp Export: Release 10.2.0.4.0 - Production on Wed Dec 11 15:17:05 2013 Copyright (c) 1982, 2007, Oracle. All rights reserved. EXP-00056: ORACLE error 6550 encountered ORA-06550: line 1, column 41: PLS-00302: component 'SET_NO_OUTLINES' must be declared ORA-06550: line 1, column 15: PL/SQL: Statement ignored EXP-00000: Export terminated unsuccessfully 从报错看,好像是有个组件未定义,导致导出失败。 从MOS上看到一篇文章,有个介绍exp/imp版本兼容性问题的经典总结:
datapump是在10g之后推出的新特性,无论从功能还是性能上,都有一定的改进,可以说在功能上丰富了很多,在性能上也提升了很多。可以说exp/imp中能实现的功能,肯定在datapump里面都能实现,而且大多数情况下效果还要好一些。 当然datapump相比exp/imp推出的时间还是要短一些,所以在使用的过程中还是或多或少碰到一些问题,还是在不断改进,而exp/imp绝对算是一款成熟的工具,从早期版本到现在都在支持,而datapump相比于exp/imp的最大差别就在于datapump是属于服务端的程序
将数据库TEST完全导出,用户名system 密码manager 导出到D:\daochu.dmp中
Oracle的imp/exp组件是我们常用的工具,它的一个操作原则就是向下兼容。下面是据此总结的几个使用规则和相关测试: 规则1:低版本的exp/imp可以连接到高版本(或同版本)的数据库服务器,但高版本的exp/imp不能连接到低版本的数据库服务器 --1.1 使用9i客户端通过imp连接到10g数据库 C:\Documents and Settings\yuechaotian>exp userid=hdtest/test@s67 tables=(ab01) rows=n file=d:\x.dmp Export: Release 9.2.0.1.0 - Production on 星期三 2月 20 10:09:55 2008 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options 已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集 注: 将不会导出表数据(行) 即将导出指定的表通过常规路径 ... . . 正在导出表 AB01 在没有警告的情况下成功终止导出。 --1.2 使用10g客户端通过imp连接9i数据库:连接失败(而不是导出失败) C:\Documents and Settings\yuechaotian>exp userid=hbjb_kf_hd/test@s46 owner=hdtest file=d:\x.dmp Export: Release 10.2.0.1.0 - Production on 星期三 2月 20 09:57:22 2008 Copyright (c) 1982, 2005, Oracle. All rights reserved. EXP-00056: 遇到 ORACLE 错误 6550 ORA-06550: 第 1 行, 第 41 列: PLS-00302: 必须说明 'SET_NO_OUTLINES' 组件 ORA-06550: 第 1 行, 第 15 列: PL/SQL: Statement ignored EXP-00000: 导出终止失败 规则2:高版本exp出的dmp文件,低版本无法imp(无法识别dmp文件) --2.1 使用10g客户端exp出10g的数据 C:\Documents and Settings\yuechaotian>exp userid=test/test@orcl owner=test file=d:\10g.dmp Export: Release 10.2.0.1.0 - Production on 星期三 2月 20 11:16:39 2008 Copyright (c) 1982, 2005, Oracle. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options 已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集 服务器使用 AL32UTF8 字符集 (可能的字符集转换) 即将导出指定的用户... …… 导出成功终止, 但出现警告。 C:\Documents and Settings\yuechaotian> --2.2 使用9i客户端imp上面所导出的dmp文件到10g:可以连接到10g中,但无法识别文件 C:\Documents and Settings\yuechaotian>imp userid=test/test@s10g fromuser=test touser=test file=d:\10g.dmp Import: Release 9.2.0.1.0 - Production on 星期三 2月 20 11:20:33 2008 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With t
①:传统方式——exp(导出)和(imp)导入: ②:数据泵方式——expdp导出和(impdp)导入; ③:第三方工具——PL/sql Developer; 一、什么是数据库导入导出? oracle11g数据库的导入/导出,就是我们通常所说的oracle数据的还原/备份。 数据库导入:把.dmp 格式文件从本地导入到数据库服务器中(本地oracle测试数据库中); 数据库导出:把数据库服务器中的数据(本地oracle测试数据库中的数据),导出到本地生成.dmp格式文件。 .dmp 格式文件:就是oracle数据的文件格式(比如视频是.mp4 格式,音乐是.mp3 格式); 二、二者优缺点描述: 1.exp/imp: 优点:代码书写简单易懂,从本地即可直接导入,不用在服务器中操作,降低难度,减少服务器上的操作也就 保证了服务器上数据文件的安全性。 缺点:这种导入导出的速度相对较慢,合适数据库数据较少的时候。如果文件超过几个G,大众性能的电 脑,至少需要4~5个小时左右。 2.expdp/impdp: 优点:导入导出速度相对较快,几个G的数据文件一般在1~2小时左右。 缺点:代码相对不易理解,要想实现导入导出的操作,必须在服务器上创建逻辑目录(不是真正的目录)。我们 都知道数据库服务器的重要性,所以在上面的操作必须慎重。所以这种方式一般由专业的程序人员来完 成(不一定是DBA(数据库管理员)来干,中小公司可能没有DBA)。 3.PL/sql Develpoer: 优点:封装了导入导出命令,无需每次都手动输入命令。方便快捷,提高效率。 缺点:长时间应用会对其产生依赖,降低对代码执行原理的理解。 三、特别强调: 目标数据库:数据即将导入的数据库(一般是项目上正式数据库); 源数据库:数据导出的数据库(一般是项目上的测试数据库); 1.目标数据库要与源数据库有着名称相同的表空间。 2.目标数据在进行导入时,用户名尽量相同(这样保证用户的权限级别相同)。 3.目标数据库每次在进行数据导入前,应做好数据备份,以防数据丢失。 4.使用数据泵时,一定要现在服务器端建立可用的逻辑目录,并检查是否可用。 5.弄清是导入导出到相同版本还是不同版本(oracle10g版本与oracle11g版本)。 6.目标数据导入前,弄清楚是数据覆盖(替换),还是仅插入新数据或替换部分数据表。 7.确定目标数据库磁盘空间是否足够容纳新数据,是否需要扩充表空间。 8.导入导出时注意字符集是否相同,一般Oracle数据库的字符集只有一个,并且固定,一般不改变。 9.导出格式介绍: Dmp格式:.dmp是二进制文件,可跨平台,还能包含权限,效率好; Sql格式:.sql格式的文件,可用文本编辑器查看,通用性比较好,效率不如第一种, 适合小数据量导入导出。尤其注意的是表中不能有大字段 (blob,clob,long),如果有,会报错; Pde格式:.pde格式的文件,.pde为PL/SQL Developer自有的文件格式,只能用PL/SQL Developer工具 导入导出,不能用文本编辑器查看; 10.确定操作者的账号权限。 四、二者的导入导出方法: 1、传统方法: 通用命令:exp(imp) username/password@SERVICENAME:1521 file=”e:\temp.dmp” full = y; 数据库导出举例:
最近在测试环境的一个Oracle数据库上面,使用exp将表导出没有问题,而将导出的文件使用imp导入时却出现了如下错误。
作为DBA,经常需要在不同数据库环境间做数据的导入导出,exp/imp就是这样的轻便快捷的客户端工具,可以很方便的在不同数据库之间转移数据对象,即使数据库位于不同的硬件或者软件平台上。exp会转储产生对应的二进制文件,里面包含数据的定义信息,数据内容等,也就是我们通常所说的dump文件。 exp/imp是比较经典的数据导出导入工具,不过自expdp/impdp推出以来,exp/imp还是受到了不少的冷落,在新的数据库版本中,支持力度都集中在了expdp/impdp上面。Expdp/impdp是基于服务端的数
在任意可用exp/imp(导出/导入)命令的主机上,都可以通过exp/imp help=y查看所有的参数说明.
Oracle中的备份与恢复区分为:逻辑备份和物理备份。其中物理备份区分为两类:冷备份和热备份
以下这些东西是我的麦库上存的当时学Oracle的学习笔记今天拿出来和大家分享一下,转载请注明出处,下面用的Oracle的版本是10g,用的时WinServer2003的操作系统,可能有些命令和Oracle11g的有所不同,但大部分是一样的,接下来还会陆续的分享一下Oracle中对用户的管理,对表的管理,还有Oracle中的存储过程和PL/SQL编程。用到的Oracle的管理工具是PL/SQL Developerl和SQL PLUS,欢迎大家批评指正。 1.数据库管理员的职责: 1.安装和升级Ora
对于本机安装了oracle 客户端,下述命令都可以在 dos 执行,当然 dmp 文件导出在本地。
关于exp/imp,是很常用的数据导出导入工具,在10g开始推出的数据泵datapump相当于是exp/imp的补充和升级版本。在后续章节再做一个总结。 exp/imp的使用相对比较简单,通常用做在不同的数据库或者环境之间转移数据,即使数据库位于不同的平台,也可以通过统一的接口来做数据的导入导出工作。 使用方法可以通过exp -help,imp -help来得到一个简单的帮助说明。 USERID must be the first parameter on the command line. Keywor
通常进行了物理备份还不足够,因为在很多情况下使用物理备份进行恢复会相对复杂,比如误操作TRUNCATE了数据表,这样的恢复有时候使用逻辑备份来恢复会更迅速、更有效。所以通常将逻辑备份作为物理备份的辅助手段进行配置。 比如以下示例简单的按照用户模式的导出: expusername/password file=dumpfile.dmp expdpusername/password dumpfile=dumpfile.dmp directory=expdir 然而如果数据库的数据量较大,全部按用户导出就可能代价
在进行生产服务器升级、或更换数据库服务器、搭建测试环境时,需要对生产数据库进行备份以及将来可能的还原。
在开发中常常碰到,需要导入dmp文件到现有数据库。这里的dmp文件可能来自于其它系统,所以,一般情况下是不知道导出程序(exp)的版本、导出时间或者导出模式等信息的。那么如何从现有的dmp文件中获取到这些信息呢?下面作者将一一讲解。
在Oracle中,什么是延迟段创建(Deferred Segment Creation)?
很多时候我们需要备份Oracle的数据库,然后将数据导入其他数据库,因为有大文本字段会导致insert无法完全导出,只能导出为dmp文件,前提是windows必须安装Oracle客户端,有exp等命令支持
客户有个需求:某用户程序(含exp导出任务)报错EXP-00003,这个错误并不会影响整个导出任务的结束,但由于是晚上的定时任务,该错误会触发夜间告警。客户想通过数据库层面来规避掉此错误。 事实上,这个错误是比较普遍的,我们知道Oracle 11g有一个延迟段创建的特性,这个特性在最佳实践一般是建议关闭的,但由于默认是开启,大部分环境还是默认值。如果我们直接通过网络去搜索这个错误,也会得到一些答案,给出的解决方案有两种,一是关闭该特性(但是这对之前的空表无效),二是给空表主动插入一条数据(这在实际生产环境实际是不现实的)。 客户的数据库环境是11.2.0.4,我在自己测试环境顺手验证了下,结果发现并不会报错EXP-00003。 依次确认:
使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等。本文给出Linux 下使用 shell 脚本来实现自动FTP备份档案。
Which two can be exported by a non-administrative account by using Data Pump? A)directory objects B)
通过数据泵导出的时候,除了能导出表的数据,其实可以导出多张表关联的数据,这个确实之前没碰到过。
术语简介 GlusterFS是一个开源的分布式文件系统。更多特性介绍附录的参考文档。 Brick:GFS中的存储单元,通过是一个受信存储池中的服务器的一个导出目录。可以通过主机名和目录名来标识,如'SERVER:EXPORT' Client: 挂载了GFS卷的设备 Extended Attributes:xattr是一个文件系统的特性,其支持用户或程序关联文件/目录和元数据。 FUSE:Filesystem Userspace是一个可加载的内核模块,其支持非特权用户创建自己的文件系统而不需要修改内核代码。
可以看到,导出成功了,但是中间过程,提示了ORA-01455错误,如果用expdp,不会出现错误,
exp/imp 实例 exp help=y 查看帮助 exp 1、exp usr/pwd@sid file=c:\tb.dump tables=tb1 如果是导出多个表,tables=(tb1、tb2) 2、exp usr/pwd@sid file=c:\tb.dump –全部导出 3、exp usr/pwd@sid file=c:\tb.dump owner=(system,sys) 将用户system和sys用户下的表都导出 4、exp usr/pwd@sid file=c:\tb.dump tables=tb1 query=\”where name=’ha’\” 注意分号的位置
这节讲日常用到的一些exp/imp命令用法 1. 源库导出 1.1 导出全库 export NLS_LANG=american_america.al32utf8 exp \"sys/ase_sys
5. 用system管理员给你的指定用户(要导出的表所属用户)赋予在该目录的操作权限。
在 C++11 之前的版本(C++98 和 C++ 03)中,定义变量或者声明变量之前都必须指明它的类型,比如 int、char 等;但是在一些比较灵活的语言中,比如 C#、JavaScript、PHP、Python 等,程序员在定义变量时可以不指明具体的类型,而是让编译器(或者解释器)自己去推导,这就让代码的编写更加方便。
领取专属 10元无门槛券
手把手带您无忧上云