-
2019-03-09 15:42:37
- 数据备份市场需求分析
各种规模的企业都在经历着数据量的爆炸性增长。不论是由于互联网、电子邮件的出现,还是越来越庞大、需要大量介质的应用软件所致,数据量现已呈现出了巨大的增长态势。数据丢失或系统停运均会影响客户正常工作,数据遭到破坏,有可能是人为的因素,也可能是由于各种不可预测的因素,主要包括以下几个方面:
相对于客户公司损失:
有专业机构的研究数据表明:丢失500MB的生产业务数据对于市场营销部门就意味着13万元人民币的损失,对财务部门意味着16万的损失,对核心部门来说损失可达80万。而丢失的关键数据如果15天内仍得不到恢复,企业就有可能被淘汰出局。
相对于客户公司-技术人员:
客户技术人员(公司网管,网络工程师):主要负责公司服务器日常运维工作,负责服务器的稳定性,确保web等服务可以7*24H不间断地为用户提供服务,一般技术人员会在服务器设置本地备份或远程不定时备份,但服务器如果硬件故障,硬盘损坏,或入侵病毒等原因,导致公司主要业务数据丢失或不完整,同时技术人员也没有数据备份机制,没有最新备份数据,技术人员是第一负责人,主要问责人。
更多相关内容 -
警惕SQL安全 做好数据备份.pdf
2021-09-19 13:01:04警惕SQL安全 做好数据备份.pdf -
数据安全与数据备份 优质课件.ppt
2020-07-17 09:37:26但是对于重要数据还是应该防患于未然哪 就是做好数据备份 ? 数据备份简单说就是创建数据的副本如果 原是数据被删除覆盖或由于故障无法访问 可以使用副本恢复丢失或损坏的数据 备份的两个层次 一是重要系统数据的... -
从Google备份互联网看“数据安全”
2021-02-03 00:47:32数据安全不仅仅是一个技术问题,它还受到现实的种种限制,做好数据安全,是任何一个企业都要考虑的问题。RaymondBlum带领SiteReliabilityEngineers团队负责谷歌的数据保密和数据安全。当然Google从来都不会如 -
最全面的宝贵数据备份解决方案
2020-07-08 16:28:17备份并不是一个轻松的话题,也不是简单的方便拷贝。很多电脑用户只想享受电脑带来的种种便利,因为怕...随着我们处理数据的增多,宽带使用越来越频繁,感染病毒和被攻击的机会越来越多,做好数据的备份工作更有必要。 -
怎么备份手机数据 手机数据备份方法介绍
2021-06-03 07:38:30刷机中会将手机上的资料和文件全部清理,所以在刷机前做好备份是非常重要的,手机中重要的通讯录、短信、照片对每个人都非常重要,而备份这样资料并没有想象中那么困难,下面就介绍几种目前最常用的备份数据的方法。...如果你是一个喜欢刷机的机友,如果你是个经常换手机的主儿,那么备份手机数据是十分必要的一个步骤。就拿刷机来说吧,刷机中会将手机上的资料和文件全部清理,所以在刷机前做好备份是非常重要的,手机中重要的通讯录、短信、照片对每个人都非常重要,而备份这样资料并没有想象中那么困难,下面就介绍几种目前最常用的备份数据的方法。
一、使用手机助手进行备份
手机助手是我们经常使用的一种备份方法,简单易用是手机助手备份的好处,下面以豌豆荚为例,为大家详细介绍一下手机助手备份的步骤:
1:首先我们要先打开豌豆荚,然后点击备份与恢复选项。
2:打开备份与恢复后,我们将鼠标移到备份,这时会出现备份到云端和备份到电脑,这里小编选择备份到电脑。
3:点击备份到电脑后,界面会出现通讯录、短信、应用和应用数据等需要备份的选项的数量,在高级选项中,我们还可以选择文件存放的目录和备份的类型,根据需要选择后点击开始备份。
4:等待进度条完成后,点击完成即完成备份。
二、使用同步助手进行备份
我们还可以下载同步助手类的软件进行数据的备份,下面以360手机卫士为例,为大家介绍一下备份的步骤:
1:进入360手机卫士中,使用360帐号登录,然后选择手机备份。
2:进入后点击备份数据,这是会出现需要选择的列表,在需要备份的选择后面勾选即可,然后点击开始备份,等待完成即可。
三、使用网盘备份
除了上面所说的两种备份方法外,网盘也是我们常用的一个备份方法,下面就以百度云网盘为例,为大家介绍一下备份的步骤。
1:进入手机百度网盘,登录百度账号,然后选择发现,我们可以其中有个手机备份,点击进去。
2:在手机备份中,有多种备份选项可选择,小编以通讯录为例,点击通讯录同步。
3:点击立即同步,网盘就会自动将通讯录备份到云盘上了。
更多
0
-
Linux下Mysql定时任务备份数据的实现方法
2021-01-10 13:00:51备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。而对于一些网站、系统来说,数据库就是一切,所以做好数据库的... -
数据备份技术知识梳理(建议收藏)
2020-10-31 11:40:00所谓数据保护技术是指对当前时间点上的数据进行备份,如果说原始数据被误删除了,可以通过备份数据找回或恢复数据。从底层来分,数据保护可以分为文件级保护和块级保护。文件级备份文件级备份:将磁盘...所谓数据保护技术是指对当前时间点上的数据进行备份,如果说原始数据被误删除了,可以通过备份数据找回或恢复数据。从底层来分,数据保护可以分为文件级保护和块级保护。
文件级备份
文件级备份:将磁盘上所有文件通过调用文件系统接口备份到另一个介质上。也就是把数据以文件形式读出,然后存储在另一个介质上面。此时备份软件只能感知到文件这一层。
我们知道一般来说,文件在原来的介质上,可以是不连续存放的,通过文件系统来管理和访问。当备份到新的介质上以后,文件完全可以连续存放。正因为如此,没有必要备份元数据,因为利用新介质进行恢复的时候,反正会重构文件系统。
块级备份
块级备份:就是不管块上是否有数据,不考虑文件系统的逻辑,备份块设备上的每个块。
这样好处是不通过调用文件系统接口,速度更快,缺点的是备份的时候会把所有的块复制一遍,但是实际上很多扇区的数据是不对应真实文件的,也就是会备份很多僵尸扇区。而且备份之后,原来不连续的文件一样是不连续的文件,有很多的碎片。
远程文件复制
远程文件复制:通过网络传输到异地容灾点。典型的代表是rsync异步远程文件同步软件。可以监视文件系统的动作,将文件的变化,同步到异地站点。增量复制。
远程卷镜像
这是基于块的远程备份。与
远程文件复制
不同的地方在于,是把块数据备份到异地站点。又可以分为同步和异步复制。同步复制:必须等数据复制到异地站点以后,才通报上层IO成功消息
异步复制:写入成功即可回复成功,然后通过网络传输到异地。不能保证一致性,但是上层响应快。
基于块的备份措施,一般都是在底层设备上进行,不耗费主机资源。
快照技术
远程镜像确实是对生产数据一种非常好的保护,但是需要镜像卷一直在线,主卷有写IO,那么镜像卷也需要有写IO。
如果想对镜像卷进行备份,需要将停止主卷的读写,然后将两个卷的镜像关系分离。所以当恢复主卷的IO的时候,镜像卷不会再被读写。然后才可以备份镜像卷的数据。
这样会存在一个问题,主卷上还继续有IO,将会导致数据与备份的镜像不一致。所以主卷上所有的写IO动作,会以位图BitMap方式记录下来,BitMap上的每个位表示卷上的一个块,0表示未写入,1表示已写入,所以当拆分镜像以后,被写入了数据,程序将BitMap文件对应位从0变为1。备份完成以后,再做数据同步即可。
可以看出上述过程比较的繁琐,而且需要占用一块和主卷一样大小的镜像卷。
快照技术就是为了解决这种问题,其基本思想是抓取某一时间点磁盘卷上的所有数据。
快照分为:基于文件系统的快照和基于物理卷的快照,下面介绍一下快照的底层原理。
基于文件系统的快照
文件系统管理的精髓:链表、B树、位图,也就是元数据。
文件系统
将扇区组合成更大的逻辑块来降低管理规模。NTFS最大块可以到4KB,也就是8个扇区一组一个簇(Block),这样可以减少管理成本。
文件系统会创建所管理存储空间上所有簇的位图文件。每个位代表卷上的簇(或者物理扇区)是否被使用,如果被使用,则置1。
文件系统保存一份文件和其对应簇号的映射链。因为映射链本身和簇位图也是文件,也有自己的映射链,所以针对重要的元数据,有一个固定的入口: root inode
。
写入新数据
查找簇位图,找位值为0的簇号
计算所需空间, 分配簇号给文件
将数据写入簇,再去
文件——簇号映射图
更新将对应的簇映射关系记录下来,到簇位图将对应位置改为1。
删除数据
直接在簇号映射链中抹掉
簇位图对应簇改为0。
可以看出删除数据实际上不会抹掉实际的数据。所以,最重要的不是数据,而是文件——
簇号映射链和位图
等元数据。也就是说我们要做备份,只需要把某时刻的文件系统中的映射图表保存下来。但是必须保证卷上的数据不被IO写入了,同时又要不应用还不能中断。既然原来的空间不能再写了,我们可以写到其他的空闲区域。
思路一:Copy on First Write (CoFW),在覆盖数据块之前,需要将被覆盖的数据块内容复制出来,放到空闲的空间。
系统中将有两套元数据链,原来的元数据指向当前,快照的元数据链指向历史。原来的存储空间永远是最新的数据,历史数据会逐渐搬出到空闲空间里面。
思路二:Redirect on First Write (RoFW)。先复制元数据,然后将针对源文件的更改都重定向到空余空间,同时更新元数据。
与
CoFW
不同的是,原来的数据块不会被覆盖。同样的,系统也有两套元数据,一套是快照保存下来的,永远不更新,一套是源文件系统的,不断的更新。
其实只有首次覆盖的时候,才重定向,因为重定向以后的数据块,哪怕被覆盖了,也不影响之前快照保存的数据了。
到这一步,看上去挺完美,实际上存在一个问题: 如果
元数据
特别大怎么办?对于海量庞大的文件系统,元数据量可能到GB级别。如果复制的话,时间上仍然太多。我们可以回头想想,实际上元数据可以看做指针,指向具体存储的位置。我们复制到元数据,相当于复制了一堆指针。现在元数据太多了,我们能不能把这个元数据链的指针给复制了?当然可以,元数据有个
根入口块
,或者称为Super Block,这个块是固定不变的,里面存放有指向下一级元数据链块的指针。那么操作系统每次载入元数据的时候,都需要从这个地址读入Super Block,从而一层一层的遍历。
基于物理卷的快照
基于物理卷的快照比文件系统快照要简单得多。因为LUN一般在底层磁盘上是恒定的,不像文件系统一样可以随机细粒度的分布。所以可以认为LUN的元数据就是在底层磁盘的起始和结束地址。这样在快照的时候,需要复制的元数据就更少了,但是完成了以后,需要按照一定粒度来做CoFW或者RoFW,还需要记录更多数据映射指针,就比较难受了。
对于实现了块级虚拟化的系统如NetApp、XIV、3PAR等,它们的LUN在底层位置是不固定的,LUN就相当于一个文件,存在元数据链来进行映射管理的维护,所以这些系统实现快照的原理与文件系统快照类似。
基于物理卷的快照,相当于给物理卷增加了“卷扇区映射管理系统”。在底层卷实现快照,可以减轻文件系统的负担。
卷扇区方都是用LBA来编号的,实现快照的时候,程序首先保留一张初始LBA表,每当有新的写入请求的时候,重定向到另一个地方,并在初始的LBA表中做好记录,比如:
原始LBA:卷A的10000号,映射到LBA:卷B的100号。
值得说明的是,文件系统无法感知重定向,文件系统在它的映射图里面还是记录了原始的LBA地址。此时如果来了新的写IO,有两种方式一种是Write Redirect,另外一种是Copy on Write。
所谓Write Redirect就是将文件系统的读写请求,重定向到卷B,这样每次IO其实都会查找快照映射表,降低了性能。所以引入了Copy on Write。
所谓Copy on write,就是当写请求来的时候,先把原来的扇区的数据复制一份到空闲卷,然后将新数据写入原卷。不过这种复制操作只发生在原卷某个或者快照之后从未更新过的块上面,若是某个块在快照之后更新过了,说明之前的数据已经转移走了,可以放心的覆盖。
所以Copy on Write实际上是让旧数据先占着位置,等新数据来了以后先把原来的数据复制走,再更新,而且一旦更新了一次,可以直接覆盖。
带来的好处是 ,原卷上的数据随时是最新的状态,每个IO可以直接访问原卷的地址,而不需要遍历映射表。
RoFW方式与CoFW方式比较
不管是RoFW还是CoFW,只要上层向快照后没有更新过的数据块进行写,都需要占用一个新的块。所以如果将所有扇区块都更新了,新卷的容量和原来的容量应该一样大,但是通常不会覆盖百分之百,所以只要预设原容量的30%即可。
IO资源消耗:
CoFW方式下,如果要更新一个从未更新的块,需要复制出来,写到新卷,然后覆盖原来的块,需要一次读,2写。
RoFW方式下,只需要一次写即可,也就是直接重定向到新卷上,然后更新映射图中的指(在内存中进行)。
所以RoFW相对CoFW方式在IO资源消耗与IO延迟上有优势。
由于只有首次覆盖才会Copy或者Redirect,那么如何区分是否是首次覆盖呢?可以使用记录表(文件级快照)或者位图(卷快照)来记录每个块是否被覆盖过。
对于读IO:
CoFW:因为总是更新的源卷,所以源卷总是代表最新的状态,所以任何读IO都会发到源来执行。
RoFW:需要首先查询位图来确定目标地址是否被处理过,如果是,则转向重定向后的地址。
RoFW会影响读性能,因为重定向出去以后,数据块排布都是乱的,如果把快照删除后,不好清理战场,严重影响后续的读写性能。
综合来说,RoFW比较吃计算资源,而CoFW比较耗费IO资源。我们知道其实一般来说读比写多,当覆盖第二次以后:
CoFW不会发生IO惩罚,读IO一直没有惩罚
对于RoFW,就算完全被Redirect过了,对于读或者写IO,均需要遍历位图,永远无法摆脱对计算资源的消耗。
尤其在LUN卷级快照下,原本卷在底层磁盘分布式是定死的,寻址非常迅速。但是RoFW引入了,LUN的块随机定向到其他的空间的,所以需要记录新的指针链,而且被写出的块不是连续排列的。对性能影响非常明显的。
绝大多数的厂商使用的还是CoFW,但是一些本来就使用LUN随机分块分布模式的存储系统比如XIV、NetApp等,都使用RoFW,因为原本其LUN的元数据链就很复杂,而且原来就是随机分布的,RoFW的后遗症对它们反而是正常的。
快照的意义
快照所保存下来的卷数据,相当于一次意外掉电之后卷上的数据。怎么理解?
上层应用和文件系统都有缓存,文件系统缓存的是文件系统的元数据和文件的实体数据。每隔一段时间(Linux一般是30s)批量Flush到磁盘上。而且不是只做一次IO,有可能会对磁盘做多次IO。如果快照生成的时间恰恰在这连续的IO之间,那么此时卷上的数据实际上有可能不一致。
文件系统的机制是先写入数据到磁盘,元数据保存在缓存里面,最后再写元数据。因为如果先写元数据,突然断电了,那么元数据对应的僵尸扇区的数据会被认为是文件的,显然后果不堪设想。
总之,快照极可能生成不一致的数据。
那么为什么还要用快照呢?
因为快照可以任意生成,而且占用的空间又不大,更重要的是可以在线恢复,不用停机只需要在内存中做IO重定向,那么上层访问就变成以前时间点的数据了。
但是快照会存在不一致的问题,如何解决?既然快照无异于一次磁盘掉电,那么利用快照恢复数据之后,文件系统可以进行一致性检查,数据库也会利用日志来使数据文件处于一致。
另外,现在主流的快照解决方案是在主机上安装一个
代理
,执行快照前,先通知文件系统将缓存中的数据全部Flush到磁盘,然后立即生成快照。快照还可以预防数据逻辑损坏,也就是比如T1时刻,做了快照,T2时刻,因为管理员操作不当,误删了一个文件,T3的时候,进行了全备份操作。此时,这个文件看似永久丢失了,其实,此时还可以通过快照恢复这个文件。
快照还可以降低一致性备份的窗口。如果没有快照,要对某个卷进行一致性备份,需要暂停写IO,所以
备份窗口
比较长,需要等待备份停止以后才能继续写IO。使用快照的话,只需要复制元数据,然后在后台进行备份,降低了影响。备份完毕以后,如何能检测数据是否是真一致的?若没有快照,需要将备份数据恢复到独立的物理空间里面,挂载到另一台机器上。有了快照,可以将快照直接挂载到另一台主机,避免了数据物理恢复导入的过程。
卷Clone技术
快照类似于某时刻的影子,而克隆则是某时刻的实体。每时刻生成了一份可写的快照,就叫对卷某时刻的一份Clone。然后这份Clone内容每被修改的部分是与源卷共享的,所以源卷没了,则Clone就没了,所以叫
虚拟
Clone。如果把数据复制出来,生成一个独立的卷,则就叫Split Clone,也就是可以得到实Clone
。卷Clone最大的好处在于可以瞬间生成针对某个卷可写的镜像,而不管卷的数据量有多大。数据备份系统的基本要件:
备份对象:需要进行备份的备份源。
备份目的:磁盘、磁带等介质
备份通路:网络
备份执行引擎:备份软件
备份策略
下面重点介绍一下备份目的、备份通路、备份引擎等技术细节。
备份目的地
备份到本地磁盘
备份目的地是在本地的磁盘,则只需要将数据备份到本地磁盘的另外分区中或者目录中。这样不需要网络,缺点是对备份对象自己的性能影响大。还会对其他的IO密集型程序造成影响。
这种方式一般用于不关键的应用和非IO密集型应用。比如E-mail,对转发实时性要求不高。
备份到SAN上的磁盘
备份到SAN上的磁盘,就是将需要备份的数据,从本次磁盘读入内存,再写入HBA卡缓冲区,然后再通过线缆传送到磁盘阵列上。
优点:只耗费SAN公用网络带宽,对主体影响小。
缺点:对公共网络资源和出口带宽有影响。
备份到NAS目录
备份到NAS目录就是将数据备份到远程共享目录中。比如window中常用的文件夹共享。因为数据一般是通过以太网进行传递的,占用了前端的网络带宽,但是相对廉价,不需要部署SAN。
备份到磁带库
现在出现一种虚拟磁带库,即用磁盘来模拟磁带,对主机来说看到的是一台磁带库,实际上是一台磁盘阵列,主机照样使用磁带库一样来使用虚拟磁带库。要做到这点,就必须在磁盘阵列的控制器上做虚拟化操作,也就是实现协议转换器的作用。可以带来了的好处是:
速度提升
避免机械手这种复杂的机械装置
管理方便
信息生命周期管理
将使用不频繁的数据移动到低速、低成本的设备上。比如只给视频应用分配20GB的空间,但是报告有500GB的空间,剩下的空间是在在磁带库上。
分级存储
一线磁盘阵列
二线虚拟磁带库:近期不会被频繁调度。利用大容量SATA盘,性能适中的控制器。
带库或者光盘库:几年甚至几十年都不访问到。
备份通路
本地备份
数据流向:本地磁盘—>总线—>磁盘控制器—>总线—>内存—>总线—>磁盘控制器—>总线—>本地磁盘。
也即数据从本地磁盘出发,经过本地的总线 和内存,经过CPU少量控制逻辑代码之后,流回本地磁盘。
通过前端网络备份
经过前端网络备份的数据流向是:本地磁盘—>总线—>磁盘控制器—>总线—>内存—>总线—>以太网卡—>网线—>以太网—>网线—>目标计算机的网卡—>总线—>内存—>总线—>目标计算机的磁盘。
数据从本地磁盘出发,流经本地总线和内存,然后流到本地网卡,通过网络传送到目标计算机磁盘。
前端网络:服务器接受客户端连接的网络,也就是服务网络,是服务器和客户端连接的必经之路。
后端网络:对客户封闭,客户的连接不用经过这个网络,用与服务器和存储、应用服务器、数据库服务器的连接。可以是SAN,以太网
通过后端网络备份
通过后端网络备份的数据流向是:本地磁盘—>总线—>控制器—>总线—>内存—>总线—>后端HBA卡—>线缆—>后端交换设备—>线缆—>备份目的的后端网卡—>总线—>内存—>磁盘。
LAN Free备份
备份的时候不经过LAN,也就是不流经前端网络,也叫Frontend Free。这样的好处是不耗费前端网络的带宽,对客户终端接受服务器的数据不影响。
因为前端网络一般是是慢速网络 ,资源非常珍贵。无论是本地、还是网络,都需要待备份的服务器付出代价,即需要读取备份源数据到自身的内存,然后从内存写入备份的目的地。对主机CPU、内存都有浪费。能否不消耗服务器的性能呢?可以,使用Server Free备份。
Server Free备份
Server Free备份的时候,数据不用流经服务器的总线和内存,消耗极少,甚至不消耗主机资源。备份源和备份目标都不会在服务器上,因为如果在服务器上,数据从磁盘读出,要流将总线,然后到内存,这就不是Server Free?那怎么做呢?
用
SCSI
的扩展复制命令,将这些命令发送给支持Server Free的存储设备,然后这些设备会提取自身的数据写入备份目的设备,而不是发送给主机。使用另一台专门做数据移动的新服务器,来代替原来服务器移动备份数据。释放运算压力很大的生产服务器。
备份策略
备份引擎:决定整个数据备份系统应该怎么运作,备份那些内容,什么时候开始备份,备份时间有没有限制等的策略。
备份服务器
备份引擎以什么形式体现呢?当然是运行在主机上的程序,所以需要一台计算机来做引擎的执行者。
那么备份服务器的备份策略和规则,怎么传给整个数据备份系统中的服务器?通过以太网,因为以太网扩展性好,适合节点间通信。相对于以太网,SAN更适合传送大量的数据。所以常用前端网络来连接待备份的服务器和备份服务器,因为备份策略的数据包不多。
备份服务器如何与每个待备份的服务器建立通话?怎么通话?规则怎么定?需要待备份服务器上运行一个代理程序,专门解释备份服务器发来的命令,根据命令作出动作。
这个运行在待备份服务器上的程序,就叫备份代理,监听端口,接收备份服务器发来的命令。
介质服务器
若数据备份系统中有一台SCSI磁带机,且多台主机想备份到这台磁带机上。而SCSI磁带机只能同时接到一台主机上。
那么怎么办呢?可以引入一台专门的计算机,只能由这台计算机来操作磁带机。
需要备份的计算机通过以太网将数据发给这台掌管磁带机的计算机,然后写给磁带机。
这样磁带机成为了公用设备,而在整个系统中,只有一台计算机能掌管备份目标,它就类似于一个代理,代理其他服务器执行备份。我们把它称为
介质服务器。
还有一个问题,如果有多台服务器向介质服务器发出请求,怎么办?当然需要一个协调员
,也就是备份服务器,它可以指挥安装在待备份服务器的代理,让每台服务器按照顺序有条理的使用介质服务器提供的备份介质进行备份。三种备份方式
完全备份:不管文件多大,只要要备份,都需要将文件都备份下来。
差量备份:只备份从上次完全备份以来发生变化的数据。差量备份要求必须做一次完全备份,作为差量的基准点
增量备份:只备份从上次备份以来这份文件中变化过的数据。不管是全备、差备,还是增量备份。
对于数据库的备份,备份软件想知道每个数据文件的变化是不可能的,因为数据库文件内部格式非常复杂,只有自己才能分析和检测出来。所以数据库管理软件有自己的备份工具。第三方备份软件只能调用数据库软件自身提供的命令。
链接:
https://www.jianshu.com/p/b14ece444676
版权由原作者所有,转载请注明来源和出处
--end-- 扫描下方二维码 添加好友,备注【交流】 可私聊交流,也可进资源丰富学习群
-
数据备份(逻辑备份和数据泵备份)
2018-03-29 11:49:08oracle11g数据库导入导出: ①:传统方式——exp(导出)和... oracle11g数据库的导入/导出,就是我们通常所说的oracle数据的还原/备份。 数据库导入:把.dmp 格式文件从本地导入到数据库服务器中(本地oracle测试数...oracle11g数据库导入导出:
①:传统方式——exp(导出)和(imp)导入:
②:数据泵方式——expdp导出和(impdp)导入;
③:第三方工具——PL/sql Develpoer;
一、什么是数据库导入导出?
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;
数据库导出举例:
exp xinxiaoyong/123456@127.0.0.1:1521 file="e:\temp.dmp" full = y;
exp:导出命令,导出时必写。
imp:导入命令,导入时必写,每次操作,二者只能选择一个执行。
username:导出数据的用户名,必写;
password:导出数据的密码,必写;
@:地址符号,必写;
SERVICENAME:Oracle的服务名,必写;
1521:端口号,1521是默认的可以不写,非默认要写;
file="e:\temp.dmp" : 文件存放路径地址,必写;
full=y :表示全库导出。可以不写,则默认为no,则只导出用户下的对象;
方法细分:
1.完全导入导出:
exp(imp) username/password@SERVICENAME:1521 file="e:\temp.dmp" full = y;
2.部分用户表table导入导出:
exp(imp) username/password@SERVICENAME:1521 file="e:\temp.dmp" tabels= (table1,table2,table3,...);
3.表空间tablespaces导入导出:
//一个数据库实例可以有N个表空间(tablespace),一个表空间下可以有N张表(table)。
exp(imp) username/password@SERVICENAME:1521 file="e:\temp.dmp" tablespaces= (tablespace1,tablespace2,tablespace3,...);
4.用户名username对象导入导出:
exp(imp) username/password@SERVICENAME:1521 file="e:\temp.dmp" owner(username1,username2,username3);
2、数据泵方法:
创建directory:
expdp(impdp) username/password@SERVICENAME:1521 schemas=username dumpfile=file1.dmp logfile=file1.log directory=testdata1 remap_schema=test:test;
数据库导出举例:
expdp xinxiaoyong/123456@127.0.0.1:1521 schemas=xinxiaoyong dumpfile=test.dmp
logfile=test.log directory=testdata1;
exp:导出命令,导出时必写。
imp:导入命令,导入时必写,每次操作,二者只能选择一个执行。
username:导出数据的用户名,必写;
password:导出数据的密码,必写;
@:地址符号,必写;
SERVICENAME:Oracle的服务名,必写;
1521:端口号,1521是默认的可以不写,非默认要写;
schemas:导出操作的用户名;
dumpfile:导出的文件;
logfile:导出的日志文件,可以不写;
directory:创建的文件夹名称;
remap_schema=源数据库用户名:目标数据库用户名,二者不同时必写,相同可以省略;
1.查看表空间:
select * form dba_tablespaces;
2.查看管理理员目录(同时查看操作系统是否存在,因为Oracle并不关心该目录是否存在,如果不存 在,则出错)。
select * form dba_directories;
3.创建逻辑目录,该命令不会在操作系统创建真正的目录,最好以system等管理员创建。
create directory testdata1 as 'd:\test\dump';
4.给xinxiaoyong用户赋予在指定目录的操作权限,最好以system等管理员赋予。
//xinxiaoyong 是用户名(123456是用户密码)
grant read,write on directory testdata1 to xinxiaoyong;
5.导出数据
1)按用户导 expdp xinxiaoyong/123456@orcl schemas=xinxiaoyong dumpfile=expdp.dmp directory=testdata1;
2)并行进程parallel expdp xinxiaoyong/123456@orcl directory=testdata1 dumpfile=xinxiaoyong3.dmp parallel=40 job_name=xinxiaoyong3
3)按表名导 expdp xinxiaoyong/123456@orcl tables=emp,dept dumpfile=expdp.dmp directory=testdata1;
4)按查询条件导 expdp xinxiaoyong/123456@orcl directory=testdata1 dumpfile=expdp.dmp tables=emp query='WHERE deptno=20';
5)按表空间导 expdp system/manager directory=testdata1 dumpfile=tablespace.dmp tablespaces=temp,example;
6)导整个数据库 expdp system/manager directory=testdata1 dumpfile=full.dmp FULL=y;
6.还原数据
1)导到指定用户下 impdp xinxiaoyong/123456 directory=testdata1 dumpfile=expdp.dmp schemas=xinxiaoyong;
2)改变表的owner impdp system/manager directory=testdata1 dumpfile=expdp.dmp tables=xinxiaoyong.dept remap_schema =xinxiaoyong:system;
3)导入表空间 impdp system/manager directory=testdata1 dumpfile=tablespace.dmp tablespaces=example;
4)导入数据库 impdb system/manager directory=dump_dir dumpfile=full.dmp FULL=y;
5)追加数据 impdp system/manager directory=testdata1 dumpfile=expdp.dmp schemas=system table_exists_action;
3、PLSQL方法:
登录plsql工具,所使用用户为源数据库有导出权限(exp_full_database,dba等)的用户。
1.导出建表语句(包括存储结构)
导出步骤tools ->export user object,选择要导出的对象,导出.sql格式文件并等待导出完成,如 下图:
2.导出步骤tools ->export tables,选择要导出的表及导出的格式进行导出。
导出为dmp格式,如下图:
导出为sql格式,如下图:
导出为pde格式,如下图:
提示说明:采用第三方工具导出导入整个数据库的话,耗时较长,一定要有足够
的时间来操作(数据量大的话需要好几个小时)。
3.导入建表语句
导入步骤tools->import tables->SQL Inserts 导入.sql文件
4.导入数据;
tools->import talbes,然后再根据导出的数据格式选择导入dmp文件,或者sql文件,
或者pde文件。
提示说明:导入之前最好把以前的表删除,当然导入另外数据库除外。
另外导入时当发现进度条一直卡在一个点,而且导出的文件不再增大时,甚至是提示程序
未响应,千万不要以为程序卡死了,这个导入导出就是比较缓慢,只要没有提示报错,
或者导入完成就不要停止程序。
-
四种方法搞定电脑数据备份
2021-03-30 10:10:22电脑和手机上的数据你是否考虑过做好备份呢?如果丢失的话,你怎么办呢? 1、最简单的方法就是把文件拷贝下来,存在硬盘或者U盘中保存,只要复制粘贴过来就可以了,做个备份以后,如果意外丢失的话,把移动备份上面... -
数据备份的必要性!
2019-03-27 15:45:39跟佰佰安全网小编一起了解一下数据备份的必要性是什么吧。 为了保障生产、销售、开发的正常运行,企业用户应当采取先进、有效的措施,对数据进行备份、防范于未然。为了防止个人重要文件,信息,照片的丢失,个人... -
linux实现mysql数据库每天自动备份定时备份
2020-12-16 11:27:55备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。而对于一些网站、系统来说,数据库就是一切,所以做好数据库的... -
怎么备份C盘数据
2021-07-29 07:48:32这里先向你介绍一下Ghost的基本功能:(Ghost 不能在Windows me Windows 2000中运行.Windows me/2000的用户先做好启动盘附带DOS下的鼠标驱动程序,有软驱启动、运行鼠标驱动进入Ghost所在文件夹运行Ghost.exe 最好... -
数据备份解决方案
2019-06-22 15:15:32毫无疑问,数据安全是所有网络安全的核心,我们除了做好应有的安全防护措施,还应该从数据备份层面进一步加强数据安全。 数据备份有四种模式:本地备份、异地备份、数据热备和容灾备份。下面我们将分别讲述这些模式... -
网站数据需要备份吗?介绍数据备份的四种方法
2019-08-20 21:50:19数据备份显然是一项单调乏味的工作。企业每天在数据覆盖上花费大量资金,这是浪费和毫无意义的。这种想法对于许多中小型企业主来说是很常见的,但是经历过数据丢失的网站管理员将把备份视为吸引流量的同样重要的事情... -
程序猿的血泪史:一定要有数据备份的思想,不然死都不知道咋死的!!!
2018-11-03 21:02:20还好在问题还没那么严重之前我拷了一部分数据出来,痛定思痛后,决定一定要做好数据备份的工作!!!之前闲来无事自己买的2T的机械硬盘今天也赶紧拿出来把我的剩下几个盘上的数据全都备份了一下。在备份数据的过程中... -
3种iPhone手机数据备份,轻松备份和恢复数据
2021-10-29 18:03:30新买的iPhone,如何将老款iPhone里的资料恢复到新iPhone? 也有一些小伙伴提出万一苹果手机突然坏了,该如何恢复资料? 防患于未然,因而资料备份显得尤为重要。 谈及备份,首先要了解iOS ...下面教大家如何做好iPh. -
黑群晖5.2-5967 update 8 数据系统二合一分区备份
2018-07-03 22:47:08黑群晖5.2-5967 update 8 数据系统二合一分区备份 可以更新系统 只要不更新大版本 只更新重要更新 备份用DG分区恢复 先用U盘引导做好系统做好数据分区 然后在系统和数据分区中间有128mb的空白 用DG给空白区新建分区 ... -
硬盘有价,数据无价---实现对MySQL数据库完整备份,库备份,表备份,增量备份与断点恢复
2020-08-22 08:31:48硬盘有价,数据无价 在生产环境中,数据的安全性是至关重要的,任何数据的丢失都可能产生严重的后果 -
机房搬迁及搬迁前数据备份方案
2020-05-21 11:36:39为规范性、科学性指导企业自有机房服务器、网络等软硬件设备的搬迁工作,对关键性搬迁业务工作进行细化,优化和调整搬迁过程中的关键工作,保障机房搬迁工作合理、有序、高效实施,做好重要文件和数据的备份工作,... -
服务器上的数据需要多久备份一次
2021-04-29 17:25:35为了避免储存服务器上的数据丢失,通常我们会定期做好数据备份。因为一旦储存在服务器上的数据丢失,会对网站甚至是企业造成许多不必要的损失。那么问题来了,服务器上的数据应该多久备份一次合适呢?为了更好理解... -
wordpress网站数据怎么进行备份(详细步骤)
2021-02-25 19:28:12wordpress网站备份就是把wordpress的文件数据保存一份,保存到自己的电脑上或者网盘上等,就是说把网站复制一份的意思。相当于我们平时把文件复制粘贴,做一个备份,不过我们备份网站复制粘贴的是网站文件和数据库。... -
备份kudu表数据(Kudu导入导出)
2019-06-04 20:28:23由于kudu修改hostname导致数据raft无法自动刷新,无法写入和修改所以需要做好备份。 方法一:(在Hue中进行即可) 1,利用impala进行备份,将Kudu表结构转化为impala表结构(其数据存储在hdfs中) 提前建好impala表 ... -
大数据容灾备份技术挑战和增量备份解决方案
2021-01-20 04:45:32为此,在分析大数据容灾备份现状的基础上,结合行业对大数据容灾备份需求,讨论了几种典型的技术解决方案及其优缺点,提出了一种基于HDFS的增量数据备份恢复方案,具备分钟级RPO的系统远程备份特性,可以较好地解决... -
数据丢失的后悔药,群晖NAS备份方案详解
2021-05-12 07:41:05相比于机械硬盘,SSD固态硬盘开机快、关机快、打开软件快、载入数据快、拷贝快、删除也快——既快乐、又爽快,更是大块人心!然而,SSD固态硬盘已经可以完全取代机械硬盘了吗?从性能和效能上,SSD毋庸置疑拥有... -
如何长时间保存记忆,分享我的数据备份大法
2019-10-01 21:35:38如果你是通过搜索引擎找到的这篇文章,恭喜你,这是为你而写,你将通过十几分钟的阅读获得我六年半的数据备份经验。 如果你只是碰巧看到,同样恭喜你,从现在开始,你可以树立保存记忆数据的意识,然后按照我提供的... -
sqlserver2000数据备份和日志清理
2013-10-24 08:58:38sqlserver2000数据备份和日志清理,对日常使用做好备胎