oracle stream同步

合集下载

Oracle数据库同步技术

Oracle数据库同步技术

基于Oracle数据库的数据同步技术大体上可分为两类:Oracle自己提供的数据同步技术和第三方厂商提供的数据同步技术。

Oracle自己的同步技术有DataGuard,Streams,Advanced Replication和今年刚收购的一款叫做GoldenGate的数据同步软件。

第三方厂商的数据同步技术有Quest公司的SharePlex和DSG的RealSync。

下面对这些技术逐一进行介绍。

一、DataGuard数据同步技术DataGuard是Oracle数据库自带的数据同步功能,基本原理是将日志文件从原数据库传输到目标数据库,然后在目标数据库上应用(Apply)这些日志文件,从而使目标数据库与源数据库保持同步。

DataGuard 提供了三种日志传输(Redo Transport)方式,分别是ARCH传输、LGWR同步传输和LGWR异步传输。

在上述三种日志传输方式的基础上,提供了三种数据保护模式,即最大性能(Maximum Performance Mode)、最大保护(Maximum Protection Mode)和最大可用(Maximum Availability Mode),其中最大保护模式和最大可用模式要求日志传输必须用LGWR同步传输方式,最大性能模式下可用任何一种日志传输方式。

最大性能模式:这种模式是默认的数据保护模式,在不影响源数据库性能的条件下提供尽可能高的数据保护等级。

在该种模式下,一旦日志数据写到源数据库的联机日志文件,事务即可提交,不必等待日志写到目标数据库,如果网络带宽充足,该种模式可提供类似于最大可用模式的数据保护等级。

最大保护模式:在这种模式下,日志数据必须同时写到源数据库的联机日志文件和至少一个目标库的备用日志文件(standby redo log),事务才能提交。

这种模式可确保数据零丢失,但代价是源数据库的可用性,一旦日志数据不能写到至少一个目标库的备用日志文件(standby redo log),源数据库将会被关闭。

使用Stream复制实现Oracle读写分离

使用Stream复制实现Oracle读写分离
二 、 作 流 程 工
e d n;
创 建 传播 规 则 :
bg en i
d ms sr am b te
_

_
a m.d _ a l_ r p g t n r ls d a d t b e p o a ai _ ue o
当 远端 的 客 户 机访 问数 据 库 时 , 间件 服 务 器 进 行 判 断 。 中 如 ( b _ a e = " o . r n , sem _ a e = "r ml , t l_ a en m > s tp s c te o t a sn r m > se ta 果进 行 写 操作 , 连 接 到 主数 据 库 上 , 主 数 据 库 进 行 写 操 作 ; sou rce qu u _n me => "ta mi .te ms q e e 。 d si a 就 对 ee a sr d n s a r uu et - n
14 7




21 0 0年第 5期
使 用 Sra 复 制实 现 0 al 读 写分 离 t m e rc e
王 二 暖
(河 南工 业 大 学 信 息科 学与 工 程 学 院 河 南 郑 州 40 0 ) 50 1
【 要 】 为 了实现 大量用户对数据库服务器的并发范围, 以采 用读写分 离的方式。本文主要计论基 于 O al 摘 : 可 r e中的 c

d n me d d man b a + b o i。
_
_
读 写 分离 。 : edWreS lt g 基 本 的 原 理 是 让 主数 据 即 R a/ i pii 。 t tn n, A权 限 。 库 处 理 事务 性 查 询 . 从 数 据库 处 理 S L C 而 E E T查 询 。 同时 为 了 mi 赋 予 了 DB 而 保 证 主 、 库 的数 据一 致 性 。 要 使 用 数 据 库 复 制 技 术 , 主 库 从 需 把 e查 看 双 方数 据 库 的 g b lnm , 例 中 O C ) l a a e本 o _ R L端 的 g b l- o 中的变 更 实 时 同 步到 从 数 据 库 中 a a 是 : ln me ORC . LREG S 。 DBMSDE US0 RE SR . V. 。RAC .0M: I C 本 文 主 要 讨 论 基 于 O aI 的 S em 复 制 来 实 现 读 写 分 T S 端 的 go a n m rc e中 ta r ET lb l a e是 : E T R G E SR B SD V U .. T S .E R S . D M . E . SO 离 的功 能 , 示 意 图 如 下 : 其 RACLE. C0M 。

Oracle主从同步、双向同步的配置

Oracle主从同步、双向同步的配置

Oracle主从同步、双向同步的配置(本教程展⽰了Windows环境的oracle数据库主从同步,Linux环境⼀样也可以)(把主数据库obpm 和从数据库orcl ⽤实际的数据库名给替换掉)(配置主从同步后,再配置双向同步,可能会有表数据重叠,建议在配置双向同完成后,再导⼊表数据!)备注:主、从数据库都⽤淡蓝⾊标记了,⽅便查找替换。

1.环境介绍主数据库SID : obpm操作系统 : win 2003IP地址 : 192.168.0.1Global_name :oracle version: 10.2.0.1从数据库SID: orcl操作系统 : win 2003IP地址 : 192.168.0.2Global_name :oracle version: 10.2.0.12.在主/从数据库设置初始化参数(在主从数据库都执⾏以下操作)(以as sysdba⾝份,可在sqlplus中执⾏)1) 以dba⾝份登录sqlplus / as sysdba2) 设置参数alter system set aq_tm_processes=2 scope=both; ---启⽤对队列消息的时间监视alter system set global_names=true scope=both; ---设置全局名称为truealter system set undo_retention=3600 scope=both; --设置回滚段时间,默认是900alter system set streams_pool_size=25M scope=spfile; --sga设置为⾃动调整情况下不需设置该参数3)重启动两个数据库,重启⽅式:1.shutdown immediate2.startup3.$lsnrctl start(⼀般都会提⽰监听已经启动)(windows服务中也可⼿动启动监听)3.设置主数据库(obpm)为归档mode (以as sysdba⾝份,可在sqlplus中执⾏)1) --查是否归档,如是归档,请忽略第3点archive log list;2) 归档设置shutdown immediate;startup mount;alter database archivelog;alter system set LOG_ARCHIVE_DEST_1='LOCATION=C:\Ora\arc\'; ---设置归档⽬录(执⾏此句后,在Windows系统⽂件夹中看看arc⽂件夹有没有创建成功,如果没有,则⼿动创建,在执⾏此语句) alter database open;alter system switch logfile; --相应⽬录检查是否⽣成arc⽂件(如果提⽰数据库没开启,则先执⾏alter database open;)4.主/从数据新建stream管理⽤户(在主从数据库都执⾏以下操作)sqlplus / as sysdba;create tablespace tbs_stream datafile 'C:\Ora\tbs_stream01.dbf' size 2000m autoextend on maxsize unlimited segment space management auto; ---创建主环境的Stream专⽤表空间execute dbms_logmnr_d.set_tablespace('tbs_stream'); --将logminer的数据字典从system表空间转移到新建的表空间,防⽌撑满system表空间create user strmadmin identified by strmadmin default tablespace tbs_stream temporary tablespace temp; --创建⽤户grant dba to strmadmin; --直接给dba权限.(Drop旧的表空间⽅法:drop tablespace tbs_stream including contents;)5.主数据库⽹络环境设置 (就是在主数据库中增加⼀个从数据库的连接服务)1)主数据库中添加从数据库的配置。

oracle主从同步原理

oracle主从同步原理

oracle主从同步原理Oracle主从同步是企业级数据同步中最常用的方法之一,它可以保证跨地域或跨数据中心的数据一致性,应用于数据库热备份、大数据分析等场景。

本文将介绍oracle主从同步的原理、实现方式、优势和注意事项。

1.主从同步原理在oracle主从同步中,将有多个数据库实例作为参与者,其中一个数据库实例作为主数据库,其余的数据库实例都是从数据库。

主数据库负责所有的更新操作,从数据库通过重复主数据库的操作来保持数据同步。

当主数据库上数据发生变化,就会通过日志文件传到从数据库中,使从数据库与主数据库达成最新一致性。

2.实现方式Oracle主从同步可以通过多种方式实现,包括物理备份、数据复制、数据提取等多种方式。

其中,数据复制是其中一种使用最为广泛的方式。

数据复制是指在多个Oracle数据库之间复制表中的数据的过程。

它通过在主库上创建某种类型的复制方案来实现,将具有共同被复制的表的初始数据从源库传送到一个或多个目标库,然后根据需要实时或定期地传送源库的所有更改。

在数据复制同步进程中,要通过启用多种选项来保证和控制数据的复制过程,从而确保同步的一致性和完整性。

例如,每种复制方式都有不同的复制参数和选项,如同步或异步复制、实时或定期复制、保留或丢弃冲突数据等。

可以根据业务需求来选择一种或多种复制方案,以适应不同的同步策略和应用场景。

3.优势Oracle主从同步有以下优势:(1)数据的高可用性。

当主数据库出现故障时,从数据库可以顶替主数据库的工作,保证业务的正常运行。

(2)数据的分布性。

可以将数据在不同的机器上分布存储,提高了内存的利用率,缓解了单台机器压力,提高系统的可扩展性。

(3)数据的备份性。

同步复制可以建立和更新多个备份,保证数据完整和安全性,增强系统的数据保护能力。

(4)数据的读写分离性。

可以将主数据库用于写操作,从数据库用于读操作,提高数据库的性能和并发度。

4.注意事项Oracle主从同步也有其注意事项:(1)同步延迟。

Oracle Streams简介

Oracle Streams简介

Oracle Streams简介Oracle Stream功能是为提高数据库的高可用性而设计的,在Oracle 9i及之前的版本这个功能被称为Advance Replication。

Oracle Stream利用高级队列技术,通过解析归档日志,将归档日志解析成DDL及DML语句,从而实现数据库之间的同步。

这种技术可以将整个数据库、数据库中的对象复制到另一数据库中,通过使用Stream的技术,对归档日志的挖掘,可以在对主系统没有任何压力的情况下,实现对数据库对象级甚至整个数据库的同步。

解析归档日志这种技术现在应用的比较广泛,Quest公司的shareplex软件及DSG公司的realsync都是这样的产品,一些公司利用这样的产品做应用级的容灾。

但shareplex或是realsync都是十分昂贵的,因此你可以尝试用Stream这个Oracle提供的不用额外花钱的功能。

Oracle Stream对生产库的影响是非常小的,从库可以是与主库不同的操作系统平台,你可以利用Oracle Stream复制几个从库,从库可用于查询、报表、容灾等不同的功能。

Oracle流可以使一个数据库中的数据,事物处理和事件在本数据库内部传递,也可以使它们从一个数据库传递到另一个数据库中。

流可以将被发布的信息传递到订阅它的目的地。

因此这是一个全新的特性,与传统解决方案相比,它在捕获和管理事件、与其他数据库和应用共享事件等方面提供了更卓越的功能性。

它可以使IT部门打破各解决方案之间交互使用的循环。

Oracle流为建立和运转分布式企业和应用,数据仓库,和高可用性解决方案提供了必要的能力。

开发人员和数据库管理员可以同时使用Oracle流的所有能力。

如果他们的要求发生了变化,他们可以简单地启用Oracle流的一个新功能,而不必放弃现有的功能。

Oracle流提供了一系列的元素。

通过利用这些元素,用户可以控制哪些信息可以放入流中,流应如何流动或通过哪些途径从一个节点流向另一个节点,当流中的事件流向每个节点时它们发生了哪些变化,以及流如何终止等问题。

dds介绍

dds介绍

Istream DDS软件技术详解[详细讲解Isteam DDS 软件的实现原理与技术细节解析]九桥软件2010/8/3Istream DDS软件技术详解目录前言 (3)一.DDS的应用领域 (3)1.1 生产系统的热容灾 (3)1.2 分担业务 (5)1.3 数据分发与集中 (6)1.4 数据迁移 (8)1.5 双向同步 (8)二.DDS支持的同步特性 (9)2.1 支持的同步对象 (9)2.2 支持的同步模式 (10)2.3 数据同步方式 (12)2.4 数据定位方式 (12)2.5 分区表特殊处理 (13)三.DDS的同步原理 (13)3.1 历史数据同步原理 (14)3.2 增量数据同步原理 (15)四.DDS同步的性能 (16)4.1 读取在线日志 (17)4.2 内存中完成交易解析 (17)4.3 只合成已经提交的交易 (17)4.4 实时压缩传输 (17)4.5 通过rowid寻址 (17)4.6 合成交易文件大小 (18)4.7 首次同步的性能 (18)4.8 增量同步的性能 (18)五.DDS的目标端数据库可复用 (19)5.1 目标端数据库始终处于打开状态 (19)5.2 交易数据准确 (19)5.3 新产生的数据对于同步无影响 (19)六.DDS的高可用性 (19)6.1 采用缓存机制 (19)6.2 跟踪日志 (20)七.DDS的特性 (21)7.1 在线部署简单、占用资源少 (21)7.2 异构跨平台的支持 (21)7.3 一对多和多对一 (21)7.4 对部分表重新进行单独全同步 (22)7.5 定时同步 (22)7.6 实时显示交易的统计 (22)7.7 字符操作和web操作模式 (22)7.8 数据验证 (23)Istream DDS软件技术详解7.9 支持oracle自带数据导入工具 (23)八.DDS的健壮性 (23)8.1 网络中断 (23)8.2 源端数据库重新启动 (24)8.3 源端DDS重新启动 (24)8.4 目标端DDS重新启动 (24)8.5 目标数据库重新启动 (24)九.DDS的软件体系架构 (24)9.1 源端体系架构 (25)9.2 目标端体系架构 (26)附录、DDS支持内容汇总 (27)Istream DDS软件技术详解前言IStream DDS(以下简称DDS),是基于交易的逻辑级oracle数据同步软件。

基于Oracle流复制技术的高性能数据同步接口实现

基于Oracle流复制技术的高性能数据同步接口实现

图1 流复制双向实时数据同步接口架构主要配置步骤)数据库环境预设:开启归档模式;创建流管理员并做相应授权;创建数据库链接。

调用DBMS_STREAMS_ADM.SET_UP_QUEUE 过程在源库与目标库创建队列。

在源库上调用ADD_SCHEMA_RULES或ADD_ TABLE_RULES过程创建捕获进程;在源库上调用DBMS_ STREAMS_ADM.ADD_SCHEMA_PROPAGATION_RULES 过程创建传播进程。

使用数据泵工具或DBMS_APPLY_ADM.SET_ SCHEMA_INSTANTIATION_SCN过程对源库与目标库中待同步的数据库对象进行初始化,保证SCN一致。

在目标库上调用DBMS_STREAMS_ADM.ADD_ SCHEMA_RULES过程创建应用进程。

在目标库上调用DBMS_APPLY_ADM.SET_ UPDATE_CONFLICT_HANDLER过程设置冲突解决方案(可以选择默认的解决方案,也可使用自定义开发的解决方案)。

正式开启数据复制进程:在源库调用DBMS_ CAPTURE_ADM.START_CAPTURE过程启动变更数据捕获,DBMS_PROPAGATION_ADM.START_PROPAGATION 启动LCR传送;在目标库调用DBMS_APPLY_ADM.START_ APPLY启动对接收到的LCR进行应用更新。

3.3 监控机制要保证流复制接口顺畅运作,还需要建立控机制,预防可能发生的问题,并在问题发生时,能快速定位并解决问题。

流复制提供了一系列视图工具(APPLY、DBA_APPLY_ERROR、DBA_CAPTURE PROPAGATION等),可供用户实时监控流复制环境的工作状态,并在发生异常时记录异常信息。

利用这些视图,开发出接口监控工具,能实时查看流复制接口的工作状态,并对发生的异常尝试进行自动修正(如自动清除异常并自动重启相关进程等),对于无法自动修复的异常则通过多种手段短信、邮件等)及时通知监控人员。

ORACLE数据库HA架构方案

ORACLE数据库HA架构方案

摘要:0^。

位数据库在各类应用系统中负责存储平台所有的用户数据,数据库的可靠性及安全性直接影响平台的安全运行,目前采用的Oracle Replication方式来实现的数据库高可靠性已经显示出了弊端,本文介绍并分析了目前比较流行的几种数据库高可用性的架构:Oracle Replication、Oracle Rac、Oracle主机HA等,希望给大家一个参考。

1什么是高可用性(High Availability高可用(HA)性有两种不同的含义,在广义环境中是指整个系统的高可用性,在狭义方面一般指主机、服务的冗余,如主机HA、应用程序的HA等,无论那种情况,高可用性都可以包含如下一些方面:0系统失败或崩溃0应用层或者中间层错误0 网络失败0 介质失败:指一些存放数据的媒体介质故障0 人为错误0 系统的容灾备份0 计划内的维护或者重启可见,高可用性不仅包含了系统本身故障、应用层的故障、网络故障、认为操作的错误等,还包含数据的冗余、容灾及计划的维护时间等,也就是说一个真正的高可用环境,不仅能避免系统本身的问题,还应该能防止天灾、人祸,并且有一个可靠的系统升级及计划维护操作。

本文探讨的Oracle数据库层面的高可用性,不可避免也会涉及到一些主机、存储、操作系统方面的高可用性,因为要实现Oracle服务的连续性保障是离不开硬件层面的支持的。

随着Oracle技术的发展(Oralce 8i/9i/10g/11g),高可用性越来越完善、越来越可靠,本文介绍了四种Oracle高可用性的相关产品,并通过其实现方式和性能的比较得到在现在和未来的Vas2000系统中更适合的数据库高可用性方案:0 Oracle Parallel Server/Oracle Real Application Cluster (Oracle Rac ) 0 Oracle Standby Database/Oracle Data Guard0 Oracle Advanced Replication/Oracle Stream0 Oracle Server HA2 Oracle 并行数据库OPS/RACOPS 从Oracle 8i 开始提供,从Oracle 9i 开始成为RAC ,并且随着高性能PC SERVER 的普 及,Oracle Rac 也成为Oracle 高可用性产品最流行的一种架构,Oracle Rac 通过组织多个服 务器的Cluster 来获得更大的计算处理能力和故障处理能力的集群。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle Stream配置详细步骤1 引言Oracle Stream功能是为提高数据库的高可用性而设计的,在Oracle 9i及之前的版本这个功能被称为Advance Replication。

Oracle Stream利用高级队列技术,通过解析归档日志,将归档日志解析成DDL及DML语句,从而实现1 引言Oracle Stream功能是为提高数据库的高可用性而设计的,在Oracle 9i及之前的版本这个功能被称为Advance Replication。

Oracle Stream利用高级队列技术,通过解析归档日志,将归档日志解析成DDL及DML语句,从而实现数据库之间的同步。

这种技术可以将整个数据库、数据库中的对象复制到另一数据库中,通过使用Stream的技术,对归档日志的挖掘,可以在对主系统没有任何压力的情况下,实现对数据库对象级甚至整个数据库的同步。

解析归档日志这种技术现在应用的比较广泛,Quest公司的shareplex软件及DSG公司的realsync都是这样的产品,一些公司利用这样的产品做应用级的容灾。

但shareplex或是realsync都是十分昂贵的,因此你可以尝试用Stream这个Oracle提供的不用额外花钱的功能。

Oracle Stream对生产库的影响是非常小的,从库可以是与主库不同的操作系统平台,你可以利用Oracle Stream复制几个从库,从库可用于查询、报表、容灾等不同的功能。

本文不谈技术细节,只是以手把手的方式一步一步的带你把Stream的环境搭建起来,细节内容可以查联机文档。

2 概述主数据库:操作系统:Solaris 9IP地址:192.168.10.35数据库:Oracle 10.2.0.2ORACLE_SID:prodGlobal_name:prod从数据库:操作系统:AIX 5.2IP地址:192.168.10.43数据库:Oracle 10.2.0.3ORACLE_SID:h10gGlobal_name:h10g3 环境准备3.1 设定初始化参数使用pfile的修改init.ora文件,使用spfile的通过alter system命令修改spile文件。

主、从数据库分别执行如下的语句:以下是引用片段:Sqlplus ‘/ as sysdba’alter system set aq_tm_processes=2 scope=both;alter system set global_names=true scope=both;alter system set job_queue_processes=10 scope=both;alter system set parallel_max_servers=20 scope=both;alter system set undo_retention=3600 scope=both;alter system set nls_date_format='YYYY-MM-DD HH24:MI:SS' scope=spfile;alter system set streams_pool_size=25M scope=spfile;alter system set utl_file_dir='*' scope=spfile;alter system set open_links=4 scope=spfile;执行完毕后重启数据库。

3.2 将数据库置为归档模式设置log_archive_dest_1到相应的位置;设定log_archive_start为TRUE,即启用自动归档功能;设定log_archive_format指定归档日志的命令格式。

举例:以下是引用片段:sqlplus ‘/ as sysdba’alter system set log_archive_dest_1=’location=/yang/arch’ scope=spfile;alter system set log_archive_start=TRUE scope=spfile;alter system set log_archive_format=’ arch%t_%s_%r.arc’ scope=spfile;shutdown immediate;startup mount;alter database archivelog;alter database open;数据库置为归档模式后,可以按如下方式检验一下:以下是引用片段:SQL> archive log listDatabase log mode Archive ModeAutomatic archival EnabledArchive destination /yang/archOldest online log sequence 534Next log sequence to archive 536Current log sequence 5363.3 创建stream 管理用户3.3.1 创建主环境stream管理用户以下是引用片段:#以sysdba身份登录connect / as sysdba#创建主环境的Stream专用表空间create tablespace tbs_stream datafile '/yang/oradata/prod/tbs_stream01.dbf'size 100m autoextend on maxsize unlimited segment space management auto;#将logminer的数据字典从system表空间转移到新建的表空间,防止撑满system表空间execute dbms_logmnr_d.set_tablespace('tbs_stream');#创建Stream管理用户create user strmadmin identified by strmadmindefault tablespace tbs_stream temporary tablespace temp;#授权Stream管理用户grant connect,resource,dba,aq_administrator_role to strmadmin;begindbms_streams_auth.grant_admin_privilege(grantee => 'strmadmin',grant_privileges => true);end;/3.3.2 创建从环境stream管理用户以下是引用片段:#以sysdba身份登录connect / as sysdba#创建Stream专用表空间,我的从库用了ASM,这一步也可以参见3.3.1create tablespace tbs_stream datafile '+VGDATA/h10g/datafile/tbs_stream01.dbf'size 100m autoextend on maxsize unlimited segment space management auto;#同样,将logminer的数据字典从system表空间转移到新建的表空间,防止撑满system表空间execute dbms_logmnr_d.set_tablespace('tbs_stream');#创建Stream管理用户create user strmadmin identified by strmadmindefault tablespace tbs_stream temporary tablespace temp;#授权Stream管理用户grant connect,resource,dba,aq_administrator_role to strmadmin;begindbms_streams_auth.grant_admin_privilege(grantee => 'strmadmin',grant_privileges => true);end;/3.4 配置网络连接3.4.1配置主环境tnsnames.ora主数据库(tnsnames.ora)中添加从数据库的配置。

以下是引用片段:H10G =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.43)(PORT = 1521)))(CONNECT_DATA =(SID = h10g)(SERVER = DEDICATED)))3.4.2配置从环境tnsnames.ora以下是引用片段:从数据库(tnsnames.ora)中添加主数据库的配置。

PROD =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.35)(PORT = 1521)))(CONNECT_DATA =(SID = prod)(SERVER = DEDICATED)))3.5 启用追加日志可以基于Database级别或Table级别,启用追加日志(Supplemental Log)。

在建立根据Schema粒度进行复制的Oracle Stream环境中,如果确认Schema下所有Table都有合理的主键(Primary Key),则不再需要启用追加日志。

以下是引用片段:#启用Database 追加日志alter database add supplemental log data;#启用Table追加日志alter table add supplement log group log_group_name(table_column_name) always;3.6 创建DBlink根据Oracle 10gR2 Stream官方文档,针对主数据库建立的数据库链的名字必须和从数据库的global_name相同。

如果需要修改global_name,执行“alter database rename global_name to xxx”。

3.6.1创建主数据库数据库链#以strmadmin身份,登录主数据库。

connect strmadmin/strmadmin#建立数据库链create database link h10g connect to strmadmin identified by strmadmin using 'h10g';3.6.2创建从数据库数据库链#以strmadmin身份,登录从数据库。

相关文档
最新文档