指定包含文件系统已满回调函数的 DLL(在 Unix 上为共享对象)的文件名。
{ dbsrv11 | dbeng11 } -fc filename ...
所有操作系统和数据库服务器。
此选项可用于在遇到文件系统已满的情况时通知用户并可能采取纠正操作。如果使用 -fc 选项,则数据库服务器在启动过程中会尝试装载指定的 DLL,并解析回调函数的入口点。如果 SQL Anywhere 数据库服务器找不到 DLL 和入口点,则数据库服务器返回一个错误并关闭。DLL 由用户提供,可以使用回调来实现包括调用您提供的用来诊断或纠正操作的批处理文件(在 Unix 上为 shell 脚本)等功能。另外,回调函数本身也可以执行这样的操作。
磁盘已满回调函数的示例位于 samples-dir\SQLAnywhere\DiskFull 中。
有关 samples-dir 的信息,请参见示例目录。
SQL Anywhere 在搜索其它 DLL 和文件的位置搜索回调函数 DLL。
有关 SQL Anywhere 在何处搜索文件的详细信息,请参见SQL Anywhere 如何定位文件。
当数据库服务器检测到磁盘已满情况时,它会调用回调函数(如果已提供了一个此类函数)并向它传递以下信息:
在其中触发了此条件的 dbspace 的名称
来自失败操作的操作系统特定的错误代码
调用 xp_out_of_disk 所返回的代码指示应中止还是重试导致出现此情况的操作。如果返回一个非零值,则中止操作,否则重试操作。只要它返回零并且文件系统操作失败,就会反复调用回调函数。
在 Microsoft Windows 平台上,如果数据库服务器已经启动并显示数据库服务器消息窗口(既未指定 -qi,也未指定 -qw),并且未提供回调 DLL,则当出现磁盘占满的情况时,会显示一个窗口。此窗口包含 dbspace 名称和错误代码,并允许用户选择是重试还是中止导致磁盘已满的操作。
在所有其它操作系统上,如果未指定 -fc 并且遇到磁盘已满的情况,则会发生致命错误。
您可以创建系统事件,监视用来保留数据库文件、日志文件或临时文件的设备的可用磁盘空间,并在磁盘空间不足时提醒管理员。
请参见CREATE EVENT 语句。
当数据库服务器启动时,它会尝试装载 diskfull.dll DLL。
dbeng11 -fc diskfull.dll |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |