谁能解释一下在Oracle DB中exportimport和backuprestore之间有什么区别?我应该在什么时候使用它们中的每一个?还有为什么 "导入数据库转储 "过程需要很长时间才能执行?
RMAN备份是通过逐块复制数据文件来创建物理备份。它并不关心一个给定的块中到底有什么,不过它会只复制那些有数据或已经有数据的块,而忽略空的块。 它还保留了这些块的元数据,因此在RESTORE时,它可以从备份的块中正确地重建数据文件。 RMAN备份可以用来恢复器恢复一个已经完全消失的数据库。它还可以处理增量备份和archivelogs,完全恢复到这些增量和archivelogs所覆盖的任何时间点。
Export创建一个二进制文件,本质上是一堆CREATE和INSERT语句,以重现导出的内容。 随之而来的import将读取该dump文件,并重放其中包含的所有CREATE和INSERT语句。Import需要一个操作数据库来接收和处理这些语句。而且它是严格的 "单点时间--导出执行的时间。
RAMAN备份是为了灾难恢复。 Exportimport是为了保存给定时间点的选定数据对象。
你说的对,exportimport和backuprestore有相似之处,但也有很大的区别。
如果你想的不是数据库,而是你的笔记本电脑(或其他本地计算机),你会 "恢复 "数据,以防灾难发生时,从你希望已经做的 "备份"。你会将一些或更多的数据 "导出 "到U盘,"导入 "到其他电脑上,或者将其作为快照长期保存。
这两种工具都有专门的用途。例如,你可以说清楚应该导出哪些模式、用户、表、甚至行,以及将它们导入哪里agein。例如,备份通常分为通常每周一次的完整备份和通常每天一次的备份,只存储最新的变化,这使得备份和恢复数据的速度非常快。
说实话,我一直对导入的速度慢感到疑惑。基本上,它只比重放所有曾经发生过的插入数据稍快。不过,有一些技巧可以让它变得更快,可以研究一下并行加载、可传输表空间等。