什么是 dbtune 文件?
dbtune 配置文件为 DBTUNE 表提供初始值。
创建 DBTUNE 表以后,可使用 dbtune 文件将新的配置关键字添加到 DBTUNE 表。
dbtune 文件最初位于 SDEHOME 的 etc 目录中。在执行 sdesetup 命令时(或者在 Windows 系统中运行“ArcSDE 安装后配置”向导时),将从该文件中读取配置参数并将其写入 DBTUNE 表。如果 dbtune 文件不存在、为空或未指定,则 DBTUNE 表将通过表示 ArcSDE 最低配置的默认配置关键字进行创建和填充。在很多情况下,使用数据库的特定存储参数来填充 DBTUNE 表。
ArcSDE for Oracle Windows 安装包括多个版本的 dbtune 文件;每个文件指定 DEFAULTS 关键字中的一种不同几何存储类型。如果要执行新的 ArcSDE for Oracle 安装(不是升级数据库)并且希望默认几何存储是 ST_GEOMETRY 以外的其他类型,则可在安装后配置期间使用其中一个替换版本的文件来填充 DBTUNE 表。
如果使用的是 ArcSDE for Oracle、ArcSDE for DB2 或 ArcSDE for PostgreSQL,则应该取消 DATA_DICTIONARY 关键字下某些参数的注释并编辑关联的配置字符串,以便在创建地理数据库之前指定一个表空间名称。其他关键字下也都存在注释的参数,对于这些参数,您应该在开始将数据添加到地理数据库之前取消其注释并指定一个表空间名称。注释行以一个井号 (#) 开头。移除此井号并使用正确的表空间名称替换 <text>。
dbtune 文件的分解图
以下示例来自于 SQL Server dbtune.sde 文件。每个数字(如下所示)对应 dbtune 文件的一个组成部分。
- 配置关键字 - 关键字在 dbtune 文件中以两个井号 (##) 开头。这些井号实际上并不是关键字的一部分;不会存储在 DBTUNE 表中。dbtune.sde 文件中的这些井号可表示 dbtune 文件中包含配置关键字的行。ArcSDE 将为系统表中的每个图层记录配置关键字(如果未指定配置关键字,将记录 DEFAULTS)。还将为地理数据库中创建的非空间表记录关键字。每当为图层或注册的表创建新对象(如索引)时,ArcSDE 都将用 DBTUNE 表中的当前参数值作为创建表时使用的关键字。例如,如果使用 sdetable –o create_index 创建列索引,ArcSDE 将返回 DBTUNE 表查阅用于创建表的存储信息,并使用该信息来创建索引。因此,在删除 DBTUNE 条目时必须要格外小心。注意:
确保 dbtune 文件中的井号之间或井号和配置关键字之间没有空格。如果存在空格,ArcSDE 会将此关键字读取为上一个关键字的一部分。
- 参数名 - 参数有三种基本类型:元数据、表和索引。元数据参数定义某些类型数据的存储方式、配置关键字的环境或描述数据的注释。表参数定义数据库表的存储配置。在客户端应用程序发送 CREATE TABLE 语句时,ArcSDE 会在语句提交到数据库之前将与参数关联的配置字符串追加到 CREATE TABLE 语句。索引参数定义 DBMS 索引的存储配置。在客户端应用程序发送 CREATE INDEX 语句时,ArcSDE 会在语句提交到数据库之前将索引参数追加到该语句。
例如,如果在 SQL Server 或 Oracle 数据库中创建了一个新图层并选择 WKB_GEOMETRY 关键字,则 ArcSDE 会将 GEOMETRY_STORAGE="OGCWKB" 添加到要发送至数据库的 CREATE TABLE 语句。
有关关键字和参数的详细信息,请参阅什么是 DBTUNE 配置关键字和参数?。
- 配置字符串 - 配置字符串的值可能跨越多行。如果该值是一个实际字符串值,则必须在 dbtune 文件中用双引号括起来。布尔值或数值不需要引号。在某些数据库管理系统 (DBMS) 中,双引号之间不包含空格将表示值为空。双引号用于表示 dbtune.sde 文件中的文本值;并不是 DBTUNE 表中存储值的一部分。
配置字符串总是与参数名成对出现,并为如何在数据库中创建和存储对象提供具体的方法。
- End 关键字 - 每个参数组都必须以 END 关键字结尾。如果任何参数组的结尾缺失 END 关键字,该文件都无法加载到 DBTUNE 表。
在 dbtune 文件中可以指定任意数量的参数组。然而,组中需要存在某些特定组和特定参数名称,如果它们不存在于 dbtune.sde 文件中,则会在 DBTUNE 表中自动创建。
注释可以放置在 dbtune 文件中,并由单个井号 (#) 表示。ArcSDE 组件安装提供的默认版本 dbtune.sde 文件将包含被注释掉的行。这些行将用作某些存储参数的占位符,要使用这些行,可通过移除注释字符并对行进行编辑来实现。