Oracle expdp导出会删除数据吗?Hadoop升级前Ambari元数据备份疑问
关于Oracle expdp备份Ambari Metastore是否会删除数据的解答
别担心,先给你吃个定心丸:expdp(Oracle Data Pump Export)完全不会删除你数据库中的原有数据!它文档里提到的"unload"只是把指定schema(或数据库对象)的数据和元数据读取出来,写入到dump备份文件里,整个过程是纯只读操作,对源数据库里的内容不会做任何修改、删除动作,用来备份Ambari的metastore schema完全安全。
为什么expdp不会删数据?
Oracle Data Pump Export的核心逻辑就是复制数据到备份文件,它只会读取源库的数据,不会执行任何DELETE、DROP这类破坏性语句。官方设计它的目的就是用于数据备份、迁移,本质是做数据的"导出复制",而非"移除",所以你完全不用怕备份过程中弄丢原有数据。
给你个现成的Ambari Metastore备份命令
根据你的场景,我整理了一个可以直接用的expdp备份命令,你只需要替换成自己环境的参数就行:
expdp ambari_user/your_password@oracle_sid schemas=AMBARI_METASTORE directory=BACKUP_DIR dumpfile=ambari_metastore_backup_$(date +%Y%m%d).dmp logfile=ambari_metastore_backup_$(date +%Y%m%d).log
参数说明:
ambari_user/your_password@oracle_sid:替换成你的Ambari metastore对应的Oracle用户名、密码和数据库SID/服务名schemas=AMBARI_METASTORE:指定要备份的Ambari元数据schema名称,根据你实际的schema名调整directory=BACKUP_DIR:这是Oracle的目录对象,需要提前创建并授权:- 先创建目录对象:
CREATE DIRECTORY BACKUP_DIR AS '/opt/oracle/backup';(路径换成你想存放备份文件的目录) - 给备份用户授权读写:
GRANT READ, WRITE ON DIRECTORY BACKUP_DIR TO ambari_user;
- 先创建目录对象:
dumpfile和logfile:带日期后缀的备份文件和日志文件名,方便区分不同时间的备份,也能快速定位备份记录
额外提醒几点
- 备份的时候尽量暂停Ambari的配置修改操作,避免备份过程中数据变化导致备份不一致
- 备份完成后一定要看一下log文件,确认没有报错信息,确保备份成功
- 备份文件最好拷贝到集群外的存储设备上,以防集群出问题连备份文件都拿不到
内容的提问来源于stack exchange,提问作者Josh
相关产品推荐
相关产品推荐

