oracle数据库备份exp命令

哎,说实话,这个Oracle数据库备份,尤其是exp命令,真是让我这个数据库老手都头疼了。
我记得有一次,2 01 8 年,我在一家公司担任数据库管理员。
那天老板突然来找我说有一个项目紧急上线,要赶紧备份数据库。
我一看,哎呀,没关系,用exp命令备份一下就可以了。

当时我们公司的数据库备份策略是备份到本地文件,然后复制到磁带。
我当时就写了一个脚本,用exp命令来备份。
请记住命令是这样的:
exp icdmain/icdrows=y 索引=n 压缩=n 缓冲区=6 5 5 3 6 反馈=1 00000 volsize=0 文件=exp_icdmain_csd_yyyymmdd.dmp 日志=exp_icdmain_csd_yyyymmdd.log 表=icdmain.commoninformation、icdmain.serviceinfo、icdmain.dealinfo
写命令花了很长时间,主要是要考虑备份效率和日志文件处理。
结果那天备份过程中,网络突然中断,整个备份过程就挂了。
我当时的心已经冷得拔不出来了。
后来只好重新开始,还好这次备份成功了。

后来又学习了用户模式和全模式备份,还有增量备份。
用户态备份是备份某个用户态下的所有对象。
这在我们的商业数据库中也很常见。
有一次,我需要备份一个用户的所有数据,所以我使用了这个命令:
exp icdmain/icdowner=icdmain 行=y 索引=n 压缩=n 缓冲区=6 5 5 3 6 反馈=1 00000 volsize=0 文件=exp_icdmain_yyyymmdd.dmp 日志=exp_icdmain_yyyymmdd.log
至于全模式备份,通常是备份整个数据库,但是这在我们公司的业务数据库中很少使用。
然而有一次,公司的一个旧系统要迁移,我不得不使用这个命令来备份整个数据库。

exp icdmain/icdrows=y 索引=n 压缩=n 缓冲区=6 5 5 3 6 反馈=1 00000 volsize=0 完整=y 文件=exp_fulldb_yyyymmdd.dmp log=exp_fulldb_yyyymmdd.log
至于增量备份,我是后来才知道的。
即只备份自上次备份以来发生变化的数据,这样可以提高备份效率。
不过,我从来没有遇到过这种情况,所以不敢乱说。
我得具体问题具体分析。

总之,在数据库备份方面,确实要小心,要有耐心。
请记住,在备份之前,请确认命令、网络环境和备份介质。
不要像我一样因为网络问题导致备份失败而感到尴尬。
😅

oracle怎么备份表

那天晚上晚些时候,我坐在办公室里,电脑屏幕打开,手指在键盘上输入代码。
突然,系统提示数据库备份失败。
我震惊了,立即检查日志,发现导出文件太大了,填满了我的临时目录。
这让我想起了我之前做过的一个项目。
此时我也在使用expdp导出数据,但是并行参数设置不仔细。
结果备份一个几百兆的表花了3 个小时。

expdp其实很强大,但是如果使用不当也很容易陷入陷阱。
例如,如果表名写错或者忘记指定目录对象,则导出文件将不会打印。
我曾经看到有同事把表名写成Emp,而不是EMP。
结果他导入了好久,终于发现是案件的问题。

我们来谈谈 RMAN。
这个工具真的很棒。
您可以非常快速地备份整个数据库。
我记得去年我的公司将数据库迁移到新服务器时,我们使用 RMAN 创建物理备份,一夜之间就完成了。
但是,恢复时请注意不要只恢复表空间。
否则,表中的原始数据将被覆盖。

SQLLoader比较简单,导出到CSV文件然后重新加载。
适合临时数据迁移。
上次我帮助客户构建报告系统时,我从旧系统导出数据并使用 SQLLoader 将其重新安装到新数据库中。
这是非常有效率的。
然而,格式化,尤其是日期和数字类型,有容易出错的缺点,应仔细检查。

等等,还有一件事。
我们建议在备份时使用压缩参数。
这节省了很多空间。
我们之前测试过,使用 COMPRESS=ALL 压缩几百G的导出文件可以将大小减半。
但是,压缩会消耗 CPU,并且取决于服务器性能。

最后,您需要测试您的恢复情况。
我见过团队导出备份文件没有任何问题,但在恢复时却发现控制文件不正确并且数据不正确。
因此,备份完成后,应该在测试环境中运行一下,以确保能够成功恢复。

顺便问一下,这个备份命令是不是有点过时了?如今云数据库如此之多,直接使用云工具备份数据库是不是更方便呢?