Focus On Oracle

Installing, Backup & Recovery, Performance Tuning,
Troubleshooting, Upgrading, Patching

Oracle Engineered System


当前位置: 首页 » 技术文章 » 备份恢复

expdp on physical standby

Oracle ADG(Active Data Guard)是一个很出色的功能,也是用的最广泛的技术之一。通过ADG可以实现主库和备库的数据实时同步,除了可以实现读写分离,我们还可以通过在Physical Standby上导出数据来减轻对主库的影响。在用expdp逻辑导出时,要创建和维护Master表,这个表用于记录导出的表的信息,比如数据量,是否已完成导出等。由于Physical Standby处于Read Only状态,我们不能直接在备库上直接导出,需要通过在第三方库上(不建议用主库)创建一个到备库的database link,然后通过expdp的network_link来导出。

下面是要做的步骤
1.确保备库处于READ ONLY状态
2.在其它第三方库上创建到备库的dblink
SQL> create database link dblink_dpump connect to system identified by password using 'standby';
SQL> select db_unique_name from v$database;
SQL> select db_unique_name from v$database@dblink_dpump;
SQL> create directory dpump as '/opt/dpump';
3.在第三方库上执行导出即可
expdp system/password directory=dpump network_link=dblink_dpump dumpfile=racdb.dmp logfile=expdp_racdb.log schemas=abc parallel=10 filesize=10G cluster=n

如果碰到过类似下面的错误,说明备库的状态不对
UDE-01033: operation generated ORACLE error 1033
ORA-01033: ORACLE initialization or shutdown in progress
UDE-00003: all allowable logon attempts failed

ORA-39006: internal error
ORA-39065: unexpected master process exception in DISPATCH
ORA-01033: ORACLE initialization or shutdown in progress
ORA-02063: preceding line from {database link}
ORA-39097: Data Pump job encountered unexpected error -1033

还有一种方式就是,通过把physical standby暂时转化为snapshot standby,然后导出,最后再把snapshot standby转化为physical standby。这种方式不建议。


Reference

https://docs.oracle.com/en/database/oracle/oracle-database/18/sutil/datapump-import-utility.html

https://docs.oracle.com/en/database/oracle/oracle-database/18/sutil/release-changes.html


关键词:adg oracle expdp 

相关文章

基于PDB的Active Data Guard(Oracle 21.7+)
在Oracle数据库中使用REST
OGG from MySQL to Oracle
Oracle数据库容灾之两地三中心实践
低代码开发用Oracle Apex,看这篇就够了
Oracle Database 20c之SQL宏
Java beginner for Oracle DBA
Oracle Database 20c之区块链表
Oracle Database 20c的一些微妙变化
关于Oracle的Sequence,你需要知道的
Oracle数据库优化方面资料
Oracle Database 19c在优化方面有哪些新特性
Top