Desenvolver um Banco de Dados usando um VAP para PureApplication System

Explorar o Custom Workload Standard, uma função para configuração de banco de dados flexível

Saiba algumas melhores práticas que são úteis para desenvolver padrões para IBM® PureApplication™ System. Neste artigo, o autor apresenta como configurar e usar o Custom Workload Standard, uma nova função para desenvolver bancos de dados com um padrão de aplicativo virtual.

Yuki Miyata, IDR Technology Executive, IBM

Yuki Miyata é technology executive de Relações de ISV e Desenvolvedores no Japão, especializado em soluções e plataformas com produtos WebSphere e PureApplication System. Possui mais de 12 anos de experiência em suporte técnico do WebSphere, incluindo projetos beta do WebSphere e projetos relacionados à nuvem. Desde o ano passado, tem como projeto estabelecer soluções de ISVs no IBM PureApplication System.



30/Out/2012

Nas versões anteriores do IBM Workload Deployer, a configuração do banco de dados suportada pelos padrões de aplicativo virtual foi restrita. No IBM PureApplication System, o padrão de aplicativo virtual fornece suporte para configuração de banco de dados mais flexível usando um recurso conhecido como o Custom Workload Standard que ativa o suporte para um conjunto mais amplo de casos de uso do banco de dados.

Vamos examinar como o componente responsável por desenvolver um gerenciamento de padrões virtuais manipulou tradicionalmente o desenvolvimento de banco de dados.

Desenvolvendo um Banco de Dados com um Padrão de Aplicativo Virtual

O IBM PureApplication System inclui tecnologia padrão avançada originalmente introduzida no IBM Workload Deployer. Essa tecnologia padrão avançada fornece a capacidade de criar, implementar e gerenciar facilmente padrões de conhecimento. Padrões de conhecimento incorporam implementação, configuração, gerenciamento e monitoramento de recursos das melhores práticas para soluções de software específicas com base em anos de experiência. Esses padrões são fornecidos pelos fornecedores de software independentes e IBM em um catálogo online. Os padrões de conhecimento são simplificados para fornecer valor rapidamente, ao mesmo tempo que garantem resultados previsíveis e consistentes. Os clientes também podem criar padrões customizados de conhecimento usando o conjunto de ferramentas integrado com o IBM PureApplication System e compartilhar esses padrões na organização inteira.

Originalmente, o componente para desenvolvimento e gerenciamento de padrões virtuais transportava restrições para desenvolver bancos de dados com um padrão de aplicativo virtual. Mas não é factível que todas as soluções sejam desenvolvidas como aplicativos virtuais. Por exemplo, para desenvolver banco de dados de aplicativos virtuais, as opções CREATE do DB2 devem ser padrão e as operações de criação de tabelas até o fim por meio do carregamento de dados devem ser descritas como um arquivo SQL simples.

Estes são exemplos em que o banco de dados foi desenvolvido como um padrão de sistema virtual em vez de um padrão de aplicativo virtual; isso ocorrerá se o banco de dados:

  • Precisar especificar as opções CREATE do DB2 como TERRITORY, CODESET, COLLATE e PAGESIZE.
  • Precisar criar TABLESPACEs e BUFFERPOOLs diferentes.
  • Usar DB2MOVE ou algumas ferramentas com arquivos de dados externos para carregar dados iniciais.
  • Precisar de ajustes específicos do banco de dados.

No PureApplication System, com o benefício da manipulação padrão virtual aprimorada, bancos de dados como os recém-mencionados são agora suportados como um padrão de aplicativo virtual ou um padrão de banco de dados (DBaaS). A função para ativar isso é denominada Custom Workload Standard.

Em seguida, saiba como configurar um banco de dados com Custom Workload Standard.


Criar Shell Scripts para Custom Workload Standard

No Custom Workload Standard, é necessário criar os shell scripts nas pastas listadas na Tabela 1 e empacotá-los em um arquivo ZIP. Os shell scripts são executados pelo db2inst1, o proprietário da instância, na ordem do número na Tabela 1.

Entre os shell scripts, apenas create_db.sh na pasta create_db é obrigatório e os outros são opções.

Tablela 1. Shell scripts para Custom Workload Standard
Nº.FolderShell scriptDescription
1tune_insttune_inst.shExecutado apenas depois da criação da instância do DB2. Descreva aqui os ajustes da instância.
2create_dbcreate_db.shExecutado na criação do banco de dados (obrigatório). Descreva aqui o comando Create DB.
3tune_dbtune_db.shExecutado imediatamente depois da criação de DB. Descreva aqui os ajustes de DB.
4init_dbinit_db.shExecutado depois de ajustar o DB. Descreva aqui a criação TABLE/VIEW/INDEX e os comandos INSERT/LOAD/IMPORT dos dados.
5post_start_instpost_start_inst.shExecutado toda vez depois de iniciar a instância do DB2. Descreva aqui o que deve ser feito depois de iniciar a instância, por exemplo, iniciar os processos necessários.

As seguintes seções explicam como descrever os shell scripts.

tune_inst.sh

tune_inst.sh é executado depois da criação de uma instância do DB2. Ele primeiro descreve os comandos de ajuste da instância, por exemplo, DB2 UPDATE DBM CFG. O seguinte parâmetro está disponível no shell script:

  • Primeiro parâmetro: nome da instância

Observe que o nome da instância é sempre db2inst1 e não pode ser alterado.

Lista 1. Exemplo de tune_inst.sh
#!/bin/sh
inst_name=$1
echo "========== tune_inst.sh start =========="
echo "inst_name: " ${inst_name}
## Tuning Instance
db2 "UPDATE DBM CFG USING JAVA_HEAP_SZ 1024 DEFERRED"
echo "========== tune_inst.sh end =========="

create_db.sh

create_db.sh é executado ao criar um banco de dados. Ele descreve o comando de criação do banco de dados DB2 CREATE. Quaisquer opções para DB2 CREATE pode ser incluído. Os seguintes parâmetros estão disponíveis no shell script:

  • Primeiro parâmetro: nome da instância
  • Segundo parâmetro: nome do banco de dados
Lista 2. Exemplo de create_db.sh
#!/bin/sh
inst_name=$1
db_name=$2
echo "========== create_db.sh start =========="
db2 "CREATE DATABASE $db_name USING CODESET UTF-8 TERRITORY Ja_JP COLLATE
  USING IDENTITY"
rc=$?
if [ $rc -ne 0 ]
then
  echo "Failed to create DB"
fi
echo "========== create_db.sh end =========="

tune_db.sh

tune_db.sh é executado depois de criar o banco de dados. Ele descreve os comandos para criações BUFFERPOOL , TABLESPACE e ajuste de banco de dados usando DB2 UPDATE DB CFG. DB2 GRANT também deve ser descrito se o usuário do aplicativo precisar ter autorizações específicas.

Os seguintes parâmetros estão disponíveis no shell script:

  • Primeiro parâmetro: nome da instância
  • Segundo parâmetro: nome do DB
  • Terceiro parâmetro: nome do usuário do aplicativo
  • Quarto parâmetro: senha do usuário do aplicativo
  • Quinto parâmetro: administrador de DB do aplicativo
  • Sexto parâmetro: senha do administrador de DB do aplicativo

Observe que o nome de usuário do aplicativo é sempre appuser. O administrador DB do aplicativo é sempre appdba. Ambos os nomes de usuário não podem ser alterados.

Lista 3. Exemplo de tune_db.sh
#!/bin/sh
inst_name=$1
db_name=$2
app_user=$3
app_password=$4
appdba=$5
appdba_password=$6
echo "========== tune_db.sh start =========="
db2 "connect to $db_name"
## Create BUFFERPOOLs
db2 "CREATE BUFFERPOOL ADD_SYSB1 IMMEDIATE SIZE 250 PAGESIZE 16K"
## Create TABLESPACEs
db2 "CREATE SYSTEM TEMPORARY TABLESPACE ADD_SYSTMP1 PAGESIZE 16K \
  MANAGED BY SYSTEM USING ('xxxsys00') EXTENTSIZE 16 OVERHEAD 10.5 \
  PREFETCHSIZE 16 TRANSFERRATE 0.14 BUFFERPOOL ADD_SYSB1"
## Tune DB
db2 "UPDATE DB CFG USING LOGFILSIZ 5000 DEFERRED"
db2 "UPDATE DB CFG USING APPLHEAPSZ 512 DEFERRED"
## If the application user needs to have specific authorizations, describe them here
db2 "GRANT DBADM ON DATABASE TO USER $app_user"
db2 "connect reset"
db2 "terminate"
echo "========== tune_db.sh end =========="

init_db.sh

init_db.sh é executado depois de ativar o banco de dados. Ele descreve comandos de criação para TABLE, VIEW, INDEXetc., e comandos de importação de dados como INSERT, LOADe DB2MOVE.

Os arquivos DDL necessários devem ser substituídos na pasta init_db. Se LOAD ou DB2MOVE for usado, os arquivos de dados necessários (IXF, XML, LOB etc.) também deverão ser colocados na pasta init_db.

Observe que os arquivos init_db devem se conectar ao banco de dados todas as vezes que um usuário de aplicativo deseja criar tabelas e outros objetos, visto que o aplicativo obtém acesso ao banco de dados por meio do usuário de aplicativo. Como mencionado anteriormente, o nome de usuário do aplicativo é sempre appuser, assim tome cuidado ao usar appuser como nome de esquema se você importar tabelas usando DB2MOVE ou ferramentas similares.

Os seguintes parâmetros estão disponíveis no shell script:

  • Primeiro parâmetro: nome da instância
  • Segundo parâmetro: nome do DB
  • Terceiro parâmetro: nome do usuário do aplicativo
  • Quarto parâmetro: senha do usuário do aplicativo
  • Quinto parâmetro: administrador de DB do aplicativo
  • Sexto parâmetro: senha do administrador de DB do aplicativo
Lista 4. Exemplo de init_db.sh
#!/bin/sh
inst_name=$1
db_name=$2
app_user=$3
app_password=$4
appdba=$5
appdba_password=$6
echo "========== init_db.sh start =========="
## Connect to DB by the application user
db2 "CONNECT TO ${db_name} USER ${app_user} USING ${app_password}"
## Execute the DDL
db2 +p -s -v -f xxx.ddl
# In case of loading the initial data by db2move (Package the data files
  in the same folder)
db2move ${db_name} import -io insert
db2 commit work
db2 connect reset
db2 terminate
echo "========== init_db.sh end =========="

post_start_inst.sh

post_start_inst.sh é executado toda vez depois do início de uma instância DB2. Ele descreve, por exemplo, os comandos de início dos processos que precisam ser executados toda vez depois do início de uma instância DB2 (por exemplo, DB2 Text Search). Os seguintes parâmetros estão disponíveis no shell script:

  • Primeiro parâmetro: nome da instância
  • Segundo parâmetro: nome do DB
Lista 5. Exemplo de post_start_inst.sh
#!/bin/sh
inst_name=$1
db_name=$2
echo "========== post_start_inst.sh start =========="
## Start DB2 Text Search
db2ts "ENABLE DATABASE FOR TEXT CONNECT TO ${db_name}"
/home/db2inst1/sqllib/db2tss/bin/startup.sh
db2ts "START FOR TEXT"
rc=$?
if [[ ${rc} -ne 0 ]] ; then
   echo "Failed to post start the database."
   exit ${rc}
fi
echo "========== post_start_inst.sh end =========="

Em seguida, crie o arquivo ZIP do recurso.


Criar um Arquivo ZIP para Custom Workload Standard

Ao ter terminado de criar os shell scripts, empacote todas as pastas em um arquivo ZIP. A Figura 1 mostra o arquivo ZIP que empacota os cinco shell scripts.

Figura 1. Arquivo ZIP para Custom Workload Standard
Arquivo ZIP para Custom Workload Standard

Em seguida, registre o arquivo ZIP.


Registre o arquivo ZIP para Custom Workload Standard

  1. Selecione Catalog > Database Workload Standards no menu PureApplication System.
  2. Clique no botão New . A janela Database Workload Standards é aberta, veja a Figura 2.
    Figura 2. Registro do Custom Workload Standard
    Registro do Custom Workload Standard
  3. Faça upload do arquivo ZIP criado e salve o novo padrão de carga de trabalho customizado (o CWS de amostra na Figura 2).

Usando o Recurso Custom Workload Standard

Agora que ele está configurado, é possível usar o recurso Custom Workload Standard.

  1. Arraste e solte um componente do banco de dado na tela do Virtual Application Builder.
  2. Apply a default database workload standard está selecionado por padrão na seção Source do quadro Property à direita. Altere-o para Apply a database workload standard.
  3. Uma lista de padrões de carga de trabalho customizados definidos é exibida como mostrado na Figura 3. Selecione um padrão de carga de trabalho customizado que você deseja usar.
    Figura 3. Propriedade de origem do componente DB
    Propriedade de origem do componente DB
  4. Complete o padrão de aplicativo virtual e implemente-o como usual. O banco de dados é criado e configurado como definido no padrão de carga de trabalho customizado.
  5. É possível usar um padrão de carga de trabalho customizado em um padrão de banco de dados (DBaaS) de um modo similar. No menu PureApplication System, selecione Patterns > Database Patterns.
  6. Clique no botão New . A janela Database Pattern é aberta.
    Figura 4. Janela de definição Database Pattern
    Janela de definição Database Pattern
  7. Altere o campo Source para Apply a database workload standard e selecione um padrão de carga de trabalho customizado que você deseja usar.
  8. Salve e implemente o padrão de banco de dados. O banco de dados é criado e configurado como definido no padrão de carga de trabalho customizado.

Conclusão

Este artigo apresentou o Custom Workload Standard como um método de configuração de banco de dados flexível no PureApplication System. Por usar o Custom Workload Standard, é possível desenvolver seu aplicativo com um padrão de aplicativo virtual mesmo se ele tiver um banco de dados que era anteriormente suportado por um padrão de sistema virtual. Seguindo as etapas neste artigo, você deve ser capaz de desenvolver seu padrão de aplicativo virtual com maior flexibilidade do banco de dados.

Recursos

Aprender

Obter produtos e tecnologias

Discutir

  • Participe da comunidade do developerWorks. Entre em contato com outros usuários do developerWorks e explore os blogs, fóruns, grupos e wikis voltados para desenvolvedores.

Comentários

developerWorks: Conecte-se

Los campos obligatorios están marcados con un asterisco (*).


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


A primeira vez que você entrar no developerWorks, um perfil é criado para você. Informações no seu perfil (seu nome, país / região, e nome da empresa) é apresentado ao público e vai acompanhar qualquer conteúdo que você postar, a menos que você opte por esconder o nome da empresa. Você pode atualizar sua conta IBM a qualquer momento.

Todas as informações enviadas são seguras.

Elija su nombre para mostrar



Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Los campos obligatorios están marcados con un asterisco (*).

(Escolha um nome de exibição de 3 - 31 caracteres.)

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

 


Todas as informações enviadas são seguras.


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Cloud computing, Information Management
ArticleID=843339
ArticleTitle=Desenvolver um Banco de Dados usando um VAP para PureApplication System
publish-date=10302012