第九章 配置数据库(一)

第九章 配置数据库(一)

数据库是使用数据库向导创建的 IRIS.DAT 文件。 IRIS数据库保存称为全局变量的多维数组中的数据和称为例程的可执行内容,以及类和表定义。
全局变量和例程包括方法、类、网页、SQL、BASIC和JavaScript文件

注意:在 Windows 系统上,不要对 IRIS.DAT 数据库文件使用文件压缩。 (通过右键单击 Windows 资源管理器中的文件或文件夹并选择属性,然后选择高级,然后压缩内容以节省磁盘空间来压缩文件;压缩后,文件夹名称或文件名在 Windows 资源管理器中呈现为蓝色。)如果压缩IRIS.DAT 文件,它所属的实例将无法启动,并出现误导性错误。

IRIS 数据库根据需要动态扩展(假设有可用空间),但可以指定最大大小。如果使用默认的 8KB 块大小,数据库可以增长到 32 TB

可以动态更改大多数数据库配置;可以在系统运行时创建和删除数据库以及修改数据库属性。

注意:这些主题描述了使用管理门户手动配置数据库的过程。 IRIS 还包含可用于自动化数据库配置的编程工具。可以使用新选项卡类中的 Config.Databases 来创建和配置数据库;还可以使用 ^DATABASE 命令行实用程序配置数据库。

配置数据库的另一种方法是将 CreateDatabaseModifyDatabaseDeleteDatabase 操作与配置合并结合使用。配置合并允许通过应用声明性合并文件来自定义 IRIS 实例,该文件指定要应用于该实例的设置和操作。

Background

IRIS 将数据——持久多维数组(globals)以及可执行代码(例程)——存储在一个或多个称为数据库的物理结构中。数据库由存储在本地操作系统中的一个或多个物理文件组成。一个 IRIS 系统可能(并且通常确实)有多个数据库。

每个 IRIS 系统都维护一个数据库缓存——一个本地共享内存缓冲区,用于缓存从物理数据库中检索到的数据。这种高速缓存大大减少了访问数据所需的昂贵 I/O 操作的数量,并提供了 IRIS 的许多性能优势。

IRIS 应用程序通过命名空间访问数据。命名空间提供存储在一个或多个物理数据库中的数据(全局变量和例程)的逻辑视图。一个 IRIS 系统可能(并且通常确实)有多个命名空间。 IRIS 将逻辑命名空间中可见的数据映射到一个或多个物理数据库。这种映射为应用程序提供了一种强大的机制,可以在不更改应用程序逻辑的情况下更改应用程序的物理部署。

在最简单的情况下,命名空间和数据库之间存在一一对应关系,但许多系统利用定义命名空间的能力来提供对多个数据库中数据的访问。例如,一个系统可以有多个命名空间,每个命名空间提供存储在一个或多个物理数据库中的数据的不同逻辑视图。

数据库注意事项

数据库总限制

可以在单个 IRIS 实例中配置的数据库数量的绝对限制(如果有足够的存储空间)是 15,998。其他限制如下:

  • 数据库的目录信息不能超过 256 KB。这意味着,如果数据库目录名称的平均长度较长,则实例可以拥有较少的数据库总数。以下公式描述了这种关系:
maximum_DBs = 258048/ (avg_DB_path_length + 3)

例如,如果所有数据库目录路径的格式为 c:\InterSystems\IRIS\mgr\DBNNNN\,则平均长度为 33 个字节。因此,最大数据库数为 7,168,计算如下:258048/ (33 + 3) = 7168

  • 镜像数据库在 15,998 的绝对限制中计数两次。如果实例上的所有数据库都进行了镜像,则有效限制为 7,499 个数据库。这是因为 IRIS 为镜像数据库创建了两个数据库定义;一个用于目录路径 (c:\InterSystems\IRIS\mgr\DBNNNN\),另一个用于镜像定义 (:mirror:MIRRORNAME:MirrorDBName)。
  • 可以同时使用的数据库数量受操作系统对打开文件数量(每个进程或系统范围)的限制的限制。 IRIS 将大约一半的操作系统打开文件分配留给自己和设备使用。

数据库配置注意事项

以下是配置数据库时要考虑的提示:

  • IRIS 提供了一个无缝选项,可以在多个物理数据库 (IRIS.DAT) 文件中传播数据。因此,可以根据需要构建具有多个数据库的应用程序或通过全局或下标级映射拆分数据。
  • 根据可用于管理任务(如备份、恢复、完整性检查等)的基础设施,将数据库大小保持在可管理的范围内。
  • 建议将流全局变量(如果将流存储在 IRIS.DAT 数据库文件中)全局映射到单独的数据库,并且将流数据库配置为大 (64 KB) 块大小。
  • 根据工作负载,考虑替代(更大)块大小可能比默认的 8 KB 数据库块大小更有利。

大数据块大小注意事项

除了 IRIS 支持的 8 KB(默认)块大小(始终启用)之外,还可以启用以下块大小:

  • 16 KB (16384)
  • 32 KB (32768)
  • 64 KB (65536)

但是,在创建使用大块的数据库时应该谨慎,因为使用它们会影响系统的性能。
在启用和使用大的块大小之前,请考虑以下几点:

  • 如果应用程序工作负载主要由顺序插入或顺序读取/查询组成,那么大的块大小可以提高性能。
  • 如果应用程序工作负载主要由随机插入或随机读取/查询组成,那么大的块大小可能会降低性能。
    由于对于给定的数据库缓存总大小,较大的块大小会导致缓存更少的块,为了减少对随机数据库访问的影响,还应该考虑将更多的总内存用作数据库缓存。
  • 对于索引类型的数据库,默认的块大小(8 KB)确保最佳性能;
    较大的块大小可能会降低性能。
    如果正在考虑为数据设置更大的块大小,那么应该考虑将索引全局变量映射到一个单独的8 KB块大小的数据库。

要创建一个使用不支持的块大小的数据库,请执行以下操作:

  1. 使用启动设置页面(系统管理>附加设置>启动)的设置启用块大小,在配置参数文件引用的DBSizesAllowed条目中描述。
image.png
  1. 在启动设置页面(系统管理>附加设置>启动),按照内存和启动设置中的描述,为启用的块大小配置数据库缓存。
  2. 重新启动
  3. 按照创建本地数据库中的说明创建数据库。

数据库兼容性注意事项

如创建本地数据库过程中所述,可以通过复制或移动 IRIS.DAT 文件将 IRIS 数据库复制或移动到创建它的实例之外的实例,或临时装载在另一个实例中创建的数据库在同一个系统上。还可以将数据库的备份(请参阅数据完整性指南的“备份和恢复”一章)恢复到其原始实例以外的实例。但是,为避免数据不兼容,必须满足以下要求:

  • 目标(新)实例必须使用相同的字符宽度(8位或Unicode;
    请参阅安装指南中的新选项卡中的字符宽度设置),并使用相同的区域设置(请参阅使用管理门户的NLS设置页面)作为创建数据库的实例。

此要求的一个例外是使用基于 ISO 8859 Latin-1 字符集的区域设置的 8 位实例与使用相应宽字符区域设置的 Unicode 实例兼容。例如,使用 enu8 语言环境在 8 位实例中创建的数据库可以在使用 enuw 语言环境的 Unicode 实例中使用。

  • 如果源实例和目标实例位于不同字节序的系统上,则数据库必须转换为目标实例的字节序后才能使用。

根据平台的不同,多字节数据存储在最低内存地址(即首先)中的最高有效字节或最低有效字节:当最高有效字节首先存储时,称为“大端;”当首先存储最低有效字节时,它被称为“小端”。

当使用在不同端序的系统上创建的现有IRIS.DAT定义数据库时,请在使用数据库之前使用cvendian实用程。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容