Arquitetura OpenEdge - parte VII - Dissecando o arquivo de estrutura (.ST)

Escrito por Marcos Kirchner em 4 de fevereiro de 2011, 15:18h

Introdução e índice com os outros posts desta série.

 

Vimos no post sobre a Control Area que o arquivo de estrutura (arquivo .ST) não é utilizado durante a operação normal do banco de dados, apenas durante operações de manutenção. O principal utilitário que processa o arquivo .ST é o prostrct, mas há outros além dele.

O arquivo ST é um mapa que serve para definir a estrutura física do banco de dados, quais área e extensões farão parte do banco e algumas propriedades adicionais. Este é um arquivo texto e pode ser criado/alterado com qualquer editor, como o bloco de notas ou o vi.

No arquivo ST é possível ter linhas em branco, linhas de comentários, e linhas de definição das extensões. As linhas de comentários são linhas que iniciam com asterísco (*), dois pontos (:) ou símbolo de sustenido (#). As linhas de definição de extensões iniciam com uma letra minúscula, para indicar o tipo de extensão. Existem 4 opções de tipos de extensão:

  • b: indica uma extensão de BI, que sempre será adicionada à área 3, denominada Primary Recovery Area;
  • d: indica uma extensão de dados.
  • a: indica uma extensão de AI. Como já foi apresentando anteriormente nesta série, cada extensão de AI possui uma área própria;
  • t: indica um arquivo de log para o recurso de two-phase commit. Este recurso é utilizado para consistência de transações distribuídas e não será abordado nesta série.

A sintaxe varia um pouco de acordo com o tipo da extensão, mas em linhas gerais é:

tipo [areainfo] caminho [tamanho]

O elemento tipo é obrigatório e deve ser uma das 4 letras da lista acima (b | d | a | t).

O elemento areainfo é opcional e só pode ser utilizado com extensão de dados (tipo d). Detalharei este elemento no próximo post da série. Por enquanto vamos ignorá-lo.

O elemento caminho indica a localização e o nome da extensão. Tanto o diretório quanto o nome da extensão são opcionais. Se não for informado o diretório, o OpenEdge usa o diretório corrente no momento da criação do banco. Se  não for informado o nome da extensão o OpenEdge atribui o nome automaticamente. Se for informado um nome, no entanto, deve ser seguida a convenção de nomenclatura apresentada no post sobre extensões. Se não for seguida a convenção de nomes das extensões será gerado um erro no momento do processamento do arquivo de estrutura.

O elemento tamanho é opcional. Se não for informado, a extensão será considerada do tipo variável sem limite de tamanho. Se for informado, deve ser utilizado a letra f ou v, seguido de um tamanho de KBytes. A letra f indica uma extensão de tamanho fixo. Ela será criada com o tamanho informado e não poderá ter seu tamanho alterado posteriormente. A letra v indica uma extensão de tamanho variável com limite de tamanho. A extensão é variável, mas crescerá somente até o tamanho informado.

Abaixo um exemplo de um arquivo .st para criação de 3 extensões de BI, 3 extensões de AI e uma extensão de dados sem o elemento areainfo:

# arquivo blog.st

# extensões de BI
b c:\temp\progress\blog\blog.b1 f 2048
b c:\temp\progress\blog f 1024
b .

#extensões de AI
a blog.a1 v 2048
a c:\mount\disco2\blog.a2 v 2048
a d:\ai

#extensão de dados
d . v 102400

Para a primeira extensão de BI foi informado um caminho completo e um nome de extensão, e também foi informado que esta extensão deve ser de tamanho fixo de 2 MB (2048 KB). A segunda extensão também é fixa, mas com tamanho de 1 MB. Como não foi informado um nome, o OpenEdge atribuirá automaticamente o nome blog.b2. Para a terceira extensão não foi informado nem diretório nem nome. O OpenEdge utilizará o diretório corrente no momento que o banco for criado. Esta extensão terá o nome blog.b3. Também não foi informado um tamanho, o que significa que ela será do tipo variável sem limite de tamanho.

A duas primeiras extensões de AI foram definidas como variáveis e com limite de tamanho de 2MB. A primeira será criada no diretório corrente no momento da criação do banco, e a segunda será criada no local indicado (c:\mount\disco2). A terceira extensão será criada em outro volume, no local d:\ai. Não foi informado nenhum elemento de tamanho, então ela será variável sem limite.

Finalmente, foi informado um arquivo do tipo dados. Todo banco OpenEdge deve ter pelo menos uma extensão de dados na área 6, denominada Schema Area. Esta extensão será criada no diretório corrente com nome blog.d1 e será variável com limite de 100MB.

Depois de criado, o arquivo ST pode ser usado com os utilitários prostrct, procopy, prodb ou prorest para criação do banco. No próximo post veremos como criar novas áreas de dados e como informar parâmetros de configuração para estas áreas utilizando o elemento areainfo.

Categorias: Banco de dados | Progress

Comentar

biuquote
  • Comentário
  • Pré-visualização
Loading

Acesso LogMeIn

Informe o código PIN: