Этот сайт посвящается администрированию баз данных OpenEdge Progress.
Не корысти ради, а познания для!

С уважением,
Валерий Башкатов
Сайт разработан при участии компании Progress Technologies, официального дистрибьютора Progress Software Corp. на территории стран СНГ и Латвии.

RSS RSS подписка на обновления сайта

Поиск по сайту

Лучшие материалы

Orphus System
На сайте функционирует система коррекции ошибок. Обнаружив неточность в тексте, выделите её и нажмите Ctrl+Enter



Результаты опроса: Нужны ли книги по Progress OpenEdge на русском языке? (опрос проводился с мая 2009 по ноябрь 2010)

Да, нужны. Потому что будет легче понять материал - 268
Нет, не нужны. Достаточно материалов на английском языке - 10
Не знаю, мне всё равно - 6

А знаете ли вы что..



Приложение 1 Создание базы данных с добавлением AI-экстентов


<- Список приложений  

В этом практическом занятии рассмотрены два примера создания AI-экстентов. Первый, когда AI-экстенты добавляются в момент создания базы данных. Второй, когда AI-экстенты добавляются в уже существующую базу.

1.1 Создание новой базы данных с AI-экстентами


Перед созданием новой базы данных необходимо подготовить структурный файл, который будет содержать AI-экстенты. Для этого:

  • Перейдите в каталог, в котором хотите поместить будущую базу данных.

    Создайте в этом каталоге структурный файл с именем db-name.st, где db-name - это имя базы данных. Опишите в созданном файле все необходимые области хранения данных (если имеется готовый ST-файл, то перейдите к следующему шагу).

    Добавьте строки с описанием AI-экстентов как здесь показано:

  • a . f 2048
    #
    a . f 2048
    #
    a . f 2048

    Вместо точки можно указать конкретное местоположение AI-экстентов. В данном случае создаются AI-экстенты фиксированного размера (размер 2048 взят исключительно для демонстрационных целей). Если необходимо создать экстенты переменного размера, то нужно убрать параметры  <f  2048>.

  • Приступите к созданию базы. Для нашего примера воспользуйтесь базой $DLC/sports2000, скопированной в свой каталог:

    $ procopy $DLC/sports2000 ./sports

    На экран будут выведены следующие сообщения:

    Procopy session begin for valeriy on /dev/pts/40. (451)
    Formatting extents:
      size                area name   path name
         8    Primary Recovery Area /lecAI/db1/sports.b1 00:00:00
        16              Schema Area /lecAI/db1/sports.d1 00:00:00
        80                 Employee /lecAI/db1/sports_7.d1 00:00:00
        16                 Employee /lecAI/db1/sports_7.d2 00:00:00
       160                Inventory /lecAI/db1/sports_8.d1 00:00:00
        16                Inventory /lecAI/db1/sports_8.d2 00:00:00
        80                Cust_Data /lecAI/db1/sports_9.d1 00:00:00
        16                Cust_Data /lecAI/db1/sports_9.d2 00:00:00
        80               Cust_Index /lecAI/db1/sports_10.d1 00:00:00
        16               Cust_Index /lecAI/db1/sports_10.d2 00:00:00
       320                    Order /lecAI/db1/sports_11.d1 00:00:00
        16                    Order /lecAI/db1/sports_11.d2 00:00:00
        80                     Misc /lecAI/db1/sports_12.d1 00:00:00
        16                     Misc /lecAI/db1/sports_12.d2 00:00:00
       512       After Image Area 1 /lecAI/db1/sports.a1 00:00:00
       512       After Image Area 2 /lecAI/db1/sports.a2 00:00:00
       512       After Image Area 3 /lecAI/db1/sports.a3 00:00:00
    
    Copying /users/valeriy/101C/sports2000 to ./sports... (6715)
    
    Start writing data blocks. (6718)
    14:39:27 10 Percent complete.
    14:39:27 20 Percent complete.
    14:39:27 30 Percent complete.
    14:39:27 40 Percent complete.
    14:39:27 50 Percent complete.
    14:39:27 60 Percent complete.
    14:39:27 70 Percent complete.
    14:39:27 80 Percent complete.
    14:39:27 90 Percent complete.
    14:39:27 100 Percent complete.
    1347 blocks copied. (6720)
    ...Copy complete. (6722)
    Database copied from /users/valeriy/101C/sports2000. (1365)
    Procopy session end. (334)
  • После создания базы данных выполните обновление структурного файла командой PROSTRCT LIST:

    $ prostrct list sports
    Area Name: Control Area, Type 6, Block Size 4096, Extents 1, 
    Records/Block 32, Cluster Size 1
       Ext # 1, Type VARIABLE, Size 32 KByte, Name: /lecAI/db1/sports.db
    
    Area Name: Primary Recovery Area, Type 3, Block Size 8192, Extents 1
       Ext # 1, Type VARIABLE, Size 2176 KByte, Name: /lecAI/db1/sports.b1
    
    Area Name: Schema Area, Type 6, Block Size 4096, Extents 1, 
    Records/Block 32, Cluster Size 1
       Ext # 1, Type VARIABLE, Size 1216 KByte, Name: /lecAI/db1/sports.d1
    
    Area Name: Employee, Type 6, Block Size 4096, Extents 2, 
    Records/Block 32, Cluster Size 1
       Ext # 1, Type FIXED   , Size 320 KByte, Name: /lecAI/db1/sports_7.d1
       Ext # 2, Type VARIABLE, Size 64 KByte, Name: /lecAI/db1/sports_7.d2
    
    Area Name: Inventory, Type 6, Block Size 4096, Extents 2, 
    Records/Block 32, Cluster Size 1
       Ext # 1, Type FIXED   , Size 640 KByte, Name: /lecAI/db1/sports_8.d1
       Ext # 2, Type VARIABLE, Size 640 KByte, Name: /lecAI/db1/sports_8.d2
    
    Area Name: Cust_Data, Type 6, Block Size 4096, Extents 2, 
    Records/Block 32, Cluster Size 1
       Ext # 1, Type FIXED   , Size 320 KByte, Name: /lecAI/db1/sports_9.d1
       Ext # 2, Type VARIABLE, Size 64 KByte, Name: /lecAI/db1/sports_9.d2
    
    Area Name: Cust_Index, Type 6, Block Size 4096, Extents 2, 
    Records/Block 32, Cluster Size 1
       Ext # 1, Type FIXED   , Size 320 KByte, Name: /lecAI/db1/sports_10.d1
       Ext # 2, Type VARIABLE, Size 64 KByte, Name: /lecAI/db1/sports_10.d2
    
    Area Name: Order, Type 6, Block Size 4096, Extents 2, 
    Records/Block 32, Cluster Size 1
       Ext # 1, Type FIXED   , Size 1280 KByte, Name: /lecAI/db1/sports_11.d1
       Ext # 2, Type VARIABLE, Size 1344 KByte, Name: /lecAI/db1/sports_11.d2
    
    Area Name: Misc, Type 6, Block Size 4096, Extents 2, 
    Records/Block 32, Cluster Size 1
       Ext # 1, Type FIXED   , Size 320 KByte, Name: /lecAI/db1/sports_12.d1
       Ext # 2, Type VARIABLE, Size 64 KByte, Name: /lecAI/db1/sports_12.d2
    
    Area Name: After Image Area 1, Type 7, Block Size 8192, Extents 1
       Ext # 1, Type FIXED   , Size 2048 KByte , Name: /lecAI/db1/sports.a1
    
    Area Name: After Image Area 2, Type 7, Block Size 8192, Extents 1
       Ext # 1, Type FIXED   , Size 2048 KByte, Name: /lecAI/db1/sports.a2
    
    Area Name: After Image Area 3, Type 7, Block Size 8192, Extents 1
       Ext # 1, Type FIXED   , Size 2048 KByte, Name: /lecAI/db1/sports.a3

  • Обратите внимание на размер последних AI-экстентов, который равен двум мегабайтам (Size 2048 KByte), т.е. именно такой, каким мы его указали в ST-файле. Если бы мы использовали экстенты переменного размера, то мы бы увидели следующую картину:

    Area Name: After Image Area 1, Type 7, Block Size 8192, Extents 1
      Ext # 1, Type VARIABLE, Size 128 KByte, Name: /lecAI/db1/sports.a1
    Area Name: After Image Area 2, Type 7, Block Size 8192, Extents 1
      Ext # 1, Type VARIABLE, Size 128 KByte, Name: /lecAI/db1/sports.a2
    Area Name: After Image Area 3, Type 7, Block Size 8192, Extents 1
      Ext # 1, Type VARIABLE, Size 128 KByte, Name: /lecAI/db1/sports.a3

    Размер 128 килобайт (Size 128 Kbyte) - это стандартное начальное значение для экстентов переменного размера.

  • Удалите базу данных sports с помощью следующей команды:

    $ prodel ./sports

1.2 Добавление AI-экстентов к существующей базе данных


Для добавления AI-экстентов к существующей базе данных необходимо:

  • Очистите каталог от всего «мусора», оставшегося от предыдущего примера, включая ST-файл, командой:

    $ rm -f ./*.*
  • Скопируйте в этот каталог базу $DLC/sports2000:

    $ procopy $DLC/sports2000 ./sports

Теперь у нас есть новая база данных, готовая для эксперимента. Представим себе, что это промышленная база и нам нужно добавить в нее AI-экстенты. У нас есть два пути: сделать это в offline или в online. Рассмотрим оба варианта.

Для обоих вариантов создайте структурный файл, с именем add.st, и опишите в нем строки с информацией об AI-экстентах:

a . f 2048
#
a . f 2048
#
a . f 2048

Если добавление экстентов будет выполняться в offline, то выполните следующие команды:

  • проверьте правильность формата файла add.st:
  • prostrct add ./sports ./add.st -validate
  • если формат верный, то выполните:
  • prostrct add ./sports ./add.st
  • обновите структурный файл:
  • prostrct list sports

    Внимание! Всегда после изменения структуры базы данных выполняйте обновление структурного файла db-name.st с помощью команды PROSTRCT LIST.

Если добавление AI-экстентов нужно выполнить в online, то запустите базу данных sports, предположим, что она работает уже давно::

proserve ./sports

Воспользовавшись тем же структурным файлом add.st добавьте AI-экстенты в online следующими командами:

  • проверьте правильность формата файла add.st
  • prostrct addonline ./sports ./add.st -validate 
  • если формат верный, то выполните
  • prostrct addonline ./sports ./add.st 
  • обновите структурный файл
  • prostrct list sports

Теперь у вас есть база данных с шестью AI-экстентами фиксированного размера по два мегабайта каждый.



Previous pageReturn to chapter overviewNext page




Главная |  Статьи |  Книги |  Гостевая |  Ссылки |  От автора |  Download ProKb


������ ᠩ� pr Online ProKB Blogger Welcome to Russian Progress Users Group at Facebook Welcome to Russian Progress Users Group at LinkedIn
© 2009 - 2011 Все права на материалы, находящиеся на сайте www.openedge.ru, охраняются в соответствии с законодательством РФ, в том числе, об авторском праве и смежных правах.
При любом использовании материалов сайта ссылка на источник обязательна.