flashback_scn导出
1.应用场景
2.oracle实现该技术的原理理论,及限制
3.实操及与scn时间相关的函数查询
一、flashback_scn导出
1) OGG同步,对表的数据进行同步,第一次可以完全导出,中途如果由于某些原因导致数据中断时间过长,可以根据OGG日志得到目标端最后应用同步成功的SCN,选择这个SCN前一点点在源端导出即可无需全部导出:
2)使用expdp进行数据迁移,在子表导入,报ORA-39083、ORA-02298,父表中不存在子表相关的记录,因此外建约束无法创建
解决方法:停应用重新导出导入、指定flashback_scn导出导入、使用如下SQL删除子表中不符合的行,进行删除,手工创建约束。
ORA-39083 And ORA-2298 Encountered During DataPump Import (Doc ID 462645.1) ORA-39083:
select <FK_column_name> from <child_table>
minus
select <PK_column_name> from <parent_table>;
如下链接,说明在导出的过程中,如果对表进行dml操作且成功,导出程序读取数据时将按照实际情况进行导出,因此数据与最初执行导出存在不一致。
Expdp Message "FLASHBACK automatically enabled" Does Not Guarantee Export Consistency (Doc ID 377218.1)
二、原理理论
通过Undo构建历史时间节点的blocks,达到在某个时间节点数据一致性的现象。
undo保留时间无法保留过长的数据,Undo空间不足信息被覆盖。
三、实操
数据库当前SCN查询
SQL> select dbms_flashback.get_system_change_number scn,current_scn from v$database;
SCN CURRENT_SCN
---------- -----------
1276822 1276822
SQL>select to_char(scn_to_timestamp(current_scn),'yyyy-mm-dd hh24:mi:ss') as "date" from v$database
date
-------------------
2019-04-21 19:00:28
select to_char(scn_to_timestamp(1276822),'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SCN_TO_TIME
-------------------
2019-04-21 19:04:01
SQL> create table a(id int);
SQL> insert into a values(1);
SQL> commit;
SQL> select dbms_flashback.get_system_change_number scn,current_scn from v$database;
SCN CURRENT_SCN
---------- -----------
1276903 1276903
SQL> insert into a values(2);
SQL> commit;
Starting "SYS"."SYS_EXPORT_TABLE_01": '/******** AS SYSDBA' directory=dump dumpfile=test1.dmp tables=a
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 0 KB
ORA-39166: Object A was not found.
ORA-31655: no data or metadata objects selected for job
DataPump Export (EXPDP) Fails With Error ORA-39165: Schema SYS Was Not Found (Doc ID 553402.1)
SQL> create table system.a as select * from a;
SQL> select dbms_flashback.get_system_change_number scn,current_scn from v$database;
SCN CURRENT_SCN
---------- -----------
1303531 1303531
delete system.a where id=2;
commit;
SQL> select dbms_flashback.get_system_change_number scn,current_scn from v$database;
SCN CURRENT_SCN
---------- -----------
1303545 1303545
[oracle@enmo ~]$ expdp system/oracle directory=dump dumpfile=test1.dmp tables=a
. . exported "SYSTEM"."A" 4.921 KB 1 rows
[oracle@enmo ~]$ expdp system/oracle directory=dump dumpfile=test3.dmp tables=a FLASHBACK_SCN=1303531
. . exported "SYSTEM"."A" 4.929 KB 2 rows
flashback_scn导出的更多相关文章
- 使用数据泵导入(impdp)和导出(expdp)
数据泵技术是Oracle Database 10g 中的新技术,它比原来导入/导出(imp,exp)技术快15-45倍.速度的提高源于使用了并行技术来读写导出转储文件. expdp使用 使用EXPDP ...
- EXP的flashback_scn和flashback_time
数据库设置 a. 设置UNDO_RETENTION的初始值(在短时间内)代表你想要查过去多远的时间. b. 设置初始化参数UNDO_MANAGEMENT=AUTO. c. 建立一个还原点空间,要有足够 ...
- PLSQL_数据泵导入导出数据Impdp/ Expdp(概念)
2014-08-31 Created By BaoXinjian
- Oracle基础 数据泵导出/导入Expdp/impdp(转)
一.EXPDP和IMPDP使用说明 Oracle Database 10g引入了最新的数据泵(Data Dump)技术,数据泵导出导入(EXPDP和IMPDP)的作用 1)实现逻辑备份和逻辑恢复. 2 ...
- Oracle基础 exp/imp 数据泵导入/导出 命令
一.导出方式: 使用exp/imp方式导出数据分为四种方式: 1.表方式导出:一个或多个指定的表,包括表的定义.表数据.表的所有者授权.表索引.表约束,以及创建在该表上的触发器.也可以只导出结构,不导 ...
- Oracle导入导出之dmp
Oracle导入导出有两种方式,分别是imp/exp与impdp/expdp. 1.imp/exp exp scott/tiger file=d:\test.dmp log=d:\test.log o ...
- (转载)Oracle10g 数据泵导出命令 expdp 使用总结(二)
原文链接:http://hi.baidu.com/edeed/item/2c454cff5c559f773d198b94 Oracle10g 数据泵导出命令 expdp 使用总结(一) 1.1.2 e ...
- imp、exp命令导出优化
本文对Oracle数据的导入导出 imp ,exp 两个命令进行了介绍, 并对其对应的參数进行了说明,然后通过一些演示样例进行演练,加深理解.文章最后对运用这两个命令可能出现的问题(如权限不够,不同o ...
- exp/expdp 与 imp/impdp命令导入导出数据库详解
一.exp命令导出数据库 如何使exp的帮助以不同的字符集显示:set nls_lang=simplified chinese_china.zhs16gbk,通过设置环境变量,可以让exp的帮助以中文 ...
随机推荐
- Gradient Boosting, Decision Trees and XGBoost with CUDA ——GPU加速5-6倍
xgboost的可以参考:https://xgboost.readthedocs.io/en/latest/gpu/index.html 整体看加速5-6倍的样子. Gradient Boosting ...
- python中os模块在windows下的使用
今天学习了一下Python的os模块,主要是针对文件夹和文件路径的一系列操作. 与Python内置函数相比这里这里的函数功能更多样化,功能也更强大.但是学习过程中我发现很多函数都是只适用于unix系统 ...
- 小白的python之路11/3总结
ln-s 指定源是谁 l是软连接,其中源文件相当于快捷方式 1.打包 归档命令 tar -cvzf test.tar a.txt b.txt c.txt其中c是创建,v是详细信息,f是打包后文件名,a ...
- Oracle 11g 单实例到单实例OGG同步实施文档-RMAN 初始化
Oracle 11g 单实例到单实例OGG同步实施文档-RMAN 初始化 2018-06-07 13:455170原创GoldenGate 作者: leo 本文链接:https://www.cndba ...
- 根据不同访问设备跳转到PC页面或手机页面
目前很多网站都是采用了响应式自适应页面的设计了,根据访问设备的不同,显示不同的内容.但是还是会有一些节奏比较慢的网站,还是PC页面和手机PAD页面不同的访问域名.正好我这里有个需要,同一个域名要根据不 ...
- 【webpack学习笔记】a06-生产环境和开发环境配置
生产环境和开发环境的配置目标不一样,生产环境主要是让文件压缩得更小,更优化资源,改善加载时间. 而开发环境,主要是要开发更方便,更节省时间,比如调试比如自动刷新. 所以可以分开配置不同的开发环境,然后 ...
- R语言预测实战(游浩麟)笔记2
特征构建技术 特征变换,对原始的某个特征通过一定的规则或映射得到新特征的方法,主要方法包括概念分层.标准化.离散化.函数变换以及深入表达.特征变换主要由人工完成,属于比较基础的特征构建方法. 概念分层 ...
- asp.net webAPI POST方法的CORS跨域问题
端口不同会判断为不同域 Method Not Allowed . web.config中设定·customHeaders 错误变化为 原因‘ post方法使用前会有一次OPTION方法的请求’ 解决: ...
- SolrCloud7.4(Jetty容器)+mysql oracle 部署与应用
SolrCloud7.4(Jetty容器)搭建 1.Zookeeper搭建 版本:zookeeper-3.4.10.tar.gz 1.把zookeeper安装包上传到服务器 2.zookeeper解压 ...
- List、Set和数组之间的转换(转载)
本文转自 http://blog.sina.com.cn/s/blog_52fea7b60100s0hl.html 今天做项目中正好遇到该问题,就在网上查了下,这篇有些细节问题还是讲得挺好的. ★ 数 ...