Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
指定将所有数据库写入操作发送到其中的数据库镜像文件的名称(同时还会将这些写入操作发送到主数据库文件)。
MIRROR_FILE=path\mirrorfile-db
无。
UltraLite 提供基本的数据库文件镜像功能,来改进对潜在不可靠存储系统的容错能力。这一效果通过使用镜像文件来实现。所有数据库写入操作在发送到主数据库文件的同时也发送到镜像文件(写入开销因此加倍;读取开销不受影响)。如果从数据库文件中读取到某个损坏页,可通过从镜像文件中读取来恢复此损坏页。
使用基于文件的存储库的所有平台都支持镜像功能。
如果在启动数据库的同时指定了 mirror_file= 选项,那么 UltraLite 会首先打开指定的文件并验证该文件是否与主数据库文件匹配,然后再继续操作。如果镜像文件不存在,则会在复制主文件时创建它。如果镜像文件不是数据库文件或者已损坏,则会报告错误,并且直到删除该镜像文件或指定了另一个镜像文件时数据库才能启动。如果镜像文件与数据库文件不匹配,则会生成 SQLE_MIRROR_FILE_MISMATCH 并且数据库不会启动。当损坏页恢复时,将生成警告 SQLE_CORRUPT_PAGE_READ_RETRY。(如果未镜像,或者镜像文件也损坏了,将生成错误 SQLE_DEVICE_ERROR 并且数据库会暂停。)
要有效地防止介质故障,使用镜像文件时必须启用页校验和。(无论是否进行镜像,页校验和都使 UltraLite 可以在装载页面后立刻对页面损坏进行检测,从而避免引用损坏数据。)指定 checksum_level 数据库创建选项以启用校验和。如果在使用镜像文件时未启用校验和,UltraLite 将生成警告 SQLE_MIRROR_FILE_REQUIRES_CHECKSUMS。
因为镜像文件是数据库文件的精确副本,所以可直接将其作为数据库来启动。ulvalid 实用程序将报告损坏页。
以下示例将创建一个新的连接并创建一个镜像文件:
Connection = DatabaseMgr.OpenConnection("DBF=c:\Dbfile.udb; UID=JDoe;PWD=ULdb; MIRROR_FILE=c:\test\MyMirrorDB.udb")