3_progress na prática
TRANSCRIPT
Progress na práticaMigrando V8/V9 para OpenEdge® 10
Regis Martins EzipatoPre Sales Manager
© 2008 Progress Software Corporation2 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
O que há de novo no RDBMS?
• BLOB, CLOB• Datetime, Datetime-TZ• INT64 (no conversion)
• Type II Storage Areas• Fast Drop & Temp tables• Increased shmem –B 1 billion• Internal algorithmic enhancements
• Buffers, Locks, Indexing• Improved APW scanning
• Auto Record Defrag• Enhanced Txn Backout• New Defaults
• Log File• New format• Significant events• Improved management
• Db I/O by User by Object• Database Describe
• 64 bit Rowids• 64 bit Sequences• 64 bit Integer Datatype• Large Index Key Entries (1970)• 32,000 areas• 8 TB Shmem
Performance Visibilidade
Suporte a Grandes Bases
Suporte a Tipo de Dados
© 2008 Progress Software Corporation3 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
O que há de novo no RDBMS?
• Online Schema adds• Sequences• Tables• Fields• Indexes w/fast fill
• Online space management• Enabled/Disable AI online• Enable AI Mgmt online• HA Clusters Bundled
• Index Rebuild• By area, table, active status
•.st file syntax checker• AI Management• Multi threaded utilities
• idxbuild, binary dump• Binary Dump without index• Binary Load Performance• Index Fix with NO-LOCK
• SSL• Auditing
Alta Disponibilidade
Segurança
Manutenção
© 2008 Progress Software Corporation4 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
� Estratégia Geral de Migração� Upgrade rápido e fácil� Upgrade Físico� Oportunidade de Tuning
Agenda
© 2008 Progress Software Corporation5 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Passos Básicos
� Preparação• BI truncado, Desabilitar AI, 2PC, e Replication (V9)• Backup (V8/9)
� Instalação• Instalar OpenEdge• Não precisa desintalar V8/9• *Não sobrescrever seu diretório Progress
� Upgrade• Upgrade DB para OpenEdge 10• Faça backups !!!!• Recompile/Redistribua seu código ABL se o cliente é
OpenEdge� Execute a aplicação e teste, teste…teste
Primeiro detalhe o planejamento, revise, teste e ENTÃO execute
© 2008 Progress Software Corporation6 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
A Aplicação
� Seguro� Instale OpenEdge em sua máquina de teste existente� proutil <test db> -C conv910*� Recompile sua aplicação* e teste
� Rápido� Upgrade do site cliente remoto ou local� Recompile sua aplicação* e teste
� Apresentação• Upgrade de sistemas remoto com OpenEdge� Servidor remoto do cliente, Servidor de aplicações remoto� “retire” a aplicação recentemente construída (PROPATH) e
teste* O código ABL precisa ser reompilado somente para promover o cliente V10. Na
codificação em 3 camadas (com AppServer™) o cliente ainda pode ser V9. Nãoé possível através do SQL ou V8.
* Você terá que converter um DB de V8 para V9 antes de converter para OpenEdge
© 2008 Progress Software Corporation7 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
� Estratégia Geral de Migração� Upgrade rápido e fácil� Upgrade Físico� Oportunidade de Tuning
Agenda
© 2008 Progress Software Corporation8 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Distribuição
� Preparação• BI truncado• Desabilitar AI, 2PC, Replication (V9)• Backup das bases de dados (V8/9)• Validar backup
� Instalar OpenEdge 10 no servidor• E todas as outras partes!! (Clientes devem fazer o
upgrade antes do servidor)� Recompile e re-distribua a aplicação (se necessário)
• Client/Server V9 para OpenEdge 10• Clientes V9 para V10, AppServer para V10, base de
dados está habilitada
© 2008 Progress Software Corporation9
Conectividade: Progress® V9 e OpenEdge 10� Mix de configuração ABL : Progress V9 e OpenEdge 10
são suportados• Uma versão (clientes para servidores)• Uma versão encaminhada (clientes para Application
Server)� Combinar o SQL
Refere-se de produto por produto para detalhes adicionais
ClienteCliente ServidorServidor Base de dadosBase de dados
910910109991091010101010
Novo no
OpenEdge 10
© 2008 Progress Software Corporation10 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Conversão da base de dados
� Executar utilitário de conversão_proutil <db> -C conv910 –B 512
� Conversão executa em 5 minutos ou menos� Basicamente um upgrade no schema
• Sem mudanças de registros ou indices • Sem mudanças na estrutura física
� Backup da base de dados� Reiniciar base de dados e aplicação
© 2008 Progress Software Corporation11 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
� Estratégia Geral de Migração� Upgrade rápido e fácil� Upgrade Físico� Oportunidade de Tuning
Agenda
© 2008 Progress Software Corporation12 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Áreas de armazenamento?
� Performance, escalabilidade e manutenção� Vantagens nas novas características� Nenhum efeito adverso na aplicação
• Reorganização física não muda a aplicação• A posição dos objetos é abstraída da
linguagem pela camada de mapeamento• Diferentes distribuições físicas podem ser
executadas com o mesmo .r compilado
© 2008 Progress Software Corporation13 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Como chegar lá
� Preparação (o mesmo de antes)• Truncar BI, desabilitar AI, backup, validar, instalar…
� Reorganização física• Upgrade da base de dados para OpenEdge 10
– Utilitário de conversão– prostrct create (obrigatório mudar o tamanho do bloco)
� Mudanças físicas (não requer mudanças no .r)• Dados de usuário separados do schema• Criação de novas áreas de armazenamento
– Especificar registros por blocos– Especificar o tamanho do cluster para área tipo II
© 2008 Progress Software Corporation14 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Como chegar lá
� Reorganização Física• Espalhe os dados pelas novas áreas• Mova os indices
� Opções Online vs Opções offline • As mudanças do tamanho de bloco da base
de dados são Offline� Depois da reorganização
• Espaço utilizado na recuperação– Truncar area de dados velha– Deletar area de dados velha
© 2008 Progress Software Corporation15 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Mudanças Físicas:Localização, Localização, Localização
� Criar arquivo .st com novo layout• Configurar os registros por blocos
� Usar Areas de Armazenamento tipo II• Tabelas 64 ou 512 clusters por bloco• Indices 8 ou 64 blocos por cluster
d “Cust/Bill Indexes“:7,1;8 /d_array2/myDB_7.d1 f 512000
d “Cust/Bill Indexes“:7,1;8 /d_array2/myDB_7.d2
#
d “Customer Data“:8,16;64 /d_array2/myDB_8.d1 f 1024000
d “Customer Data“:8,16;64 /d_array2/myDB_8.d2#d “Billing Data“:9,32;512 /d_array2/myDB_9.d1 f 1024000 d “Billing Data“:9,32;512 /d_array2/myDB_9.d2
© 2008 Progress Software Corporation16 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Mudanças Físicas
� Primeiro validarprostrct add <db> new.st -validate
� Depois mudarprostrct add <db> new.st
OU:prostrct addonline <db> new.st
The Structure file format is valid. (12619)
© 2008 Progress Software Corporation17 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Movendo Tabelas e Índices
1. Mover Tabela e Índice• Online (através do primeiro índice)
2. Dump e Load (D&L)• Com ou sem reconstrução de índices• Aplicação deve estar offline
� Sugestão: Mix da opção #1 e #2• 1º remover/arquivar dados desnecessários• Mover as tabelas pequenas (número de blocos)• D&L e mais
3 opções de movimento de dados
© 2008 Progress Software Corporation18 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Dump e Load
� Dados Textuais• ASCII dump• ASCII load• A maior parte da carga segue a partir da reconstrução do
índice� Binário
• Dump Binário• Load Binário
– Com índice reconstruído– A partir da reconstrução do índice
� (Texto ou raw)• D&L com triggers• Buffer-Copy / Raw-data-transfer / Export/Import• Pode ser difícil, provavelmente você pedirá ajuda
3 Dump e Load
© 2008 Progress Software Corporation19 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Estratégia Geral de Dump e Load
� Criar uma nova estrutura da base de dados• Adicionar a um DB existente• Nova base de dados
� Executar tabanalys� Dump de dados, sequências e usuários� Definições de Dados
• Definições de Dump• Modificar as áreas de armazenamento• Definições de Load
� Carregar os dados na tabela� Configuração de índices (se necessário) [10.1C pode
especificar o pacote]� Executar tabanalys� Backup
© 2008 Progress Software Corporation20 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Dump de dados pelo Dicionário
� Ferramentas do Banco de Dados� OU: run prodict/dump_d.p(<table>, <dir>,<codepage>).
� Vantagens:• Rápido e Fácil• Paralelo• Nenhuma edição…
� Desvantagens:• Arquivo com limite de tamanho de 2 GB ** Pré 10.1C• Não pode escolher• Tem que exportar toda a tabela• Deve garantir que não haja mudanças nas tabelas entre D&L
© 2008 Progress Software Corporation21 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Usando Dump Binário
� Vantagens:• Rápido e fácil• Sem o limite de 2 GB • Pode escolher a ordem de dump (pelo índice)• Pode exportar porções de dados da tabela• Multi tarefa (10.1B)• Pode exportar múltiplas tabelas em paralelo
� Desvantagens:• Não pode mudar nada entre o Dump e Load
© 2008 Progress Software Corporation22 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Dump Binário especificado
proutil <db> -C dumpspecified <table.field> <operator> ‘field-value1 AND operator value2’ <dir> -preferidx <idx-name>
� 10.1B03 permite múltiplos valores� Trocas
• Campo da tabela DEVE ser primeiro participante no índice• Operadores Válidos: LT, GE, LE, GT, EQ• -preferidx determina índice específico a usar• -index, -thread são ignorados
� Performance• Threaded é preferido• Pode rodar em paralelo com muitos valores únicos
� Precauções• Cuidado com índices descendentes
© 2008 Progress Software Corporation23 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Tarefa do Dump Binário
proutil <db> -C dump <table> <dir> -index <index #>-thread 1 -threadnum <n>-dumpfile <filelist> -Bp 64
� -index <n>• Escolhe o índice a ser usado na leitura• -index 0
– Rápido dump, leitura lenta– Assume vindo de área do Tipo II
� -thread indica dump multi tarefa• # threads automático (# CPUs) • –threadnum máx de # CPUs * 2• Threads somente disponível em multi usuário• Workgroup suporta somente 1 thread
� -dumpfile usado como input para o load
© 2008 Progress Software Corporation24 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Dump de Dados Completo.
Reorganize a Configuração de Área/Objeto
© 2008 Progress Software Corporation25 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Dump & Modificação de definição de dados
� Use Data administration � OU:
run prodict/dump_df.p(‘ALL’, ‘<mydb>.df’, ‘ ’).
Se usando bulk load:run prodict/dump_fd.p(‘ALL’, ‘<mydb>.fd’).
© 2008 Progress Software Corporation26 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Dump & Modificação de definição de dados
� Altere arquivos .df• Opcionalmente delete tabelas velhas• Altere Áreas das Tabelas
� Delete/Drop tabelas� Leitura da Definição de Tabelas
• Data administration• OU: run prodict/load_df.p(“<mytable>.df").
ADD TABLE "mytable2"AREA “Old Default Area"
DROP Table “mytable2”
ADD TABLE "mytable2"AREA “New Data Area"
© 2008 Progress Software Corporation27 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Alternativa para Modificação da Definição de Dados
� Truncar objetos é mais rápido do que mover/deletarproutil <db> -C truncate area “Old Default Area”
Cuidado quando deletar dados (mas não o schema)
� Reindexar/ativar índices vazios (se movendo)proutil <db> -C idxbuild inactiveindexes
Pode ser feito ONLINE, não apenas a indexação mas a ativação
� Mova tabelas/índices vazios para nova áreaproutil <db> -C tablemove <table> <area> [ index-area ]
Se todos os dados estão na área exportada
© 2008 Progress Software Corporation28 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Lendo
Coisas a considerar...
� Habilite suporte a large files• No Sistema Operacional (ulimit)• No Filesystem / volume groups• No Banco de Dados
© 2008 Progress Software Corporation29 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Bulkload
proutil <db> -C bulkload <fd-file> -B 1000 –i –Mf 10
� Entrada de dados do dicionário ou exportação customizada• Mencionado aqui para tabelas completas
� Lembretes:• Limite de 2 GB (pré 10.1C)• Leitura de uma tabela por vez (mono usuário)• Não usa índice na entrada
– Requer indexação separada
• Nenhuma vantagem sobre outros métodos• Mais lento do que outros métodos
© 2008 Progress Software Corporation30 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Load pelo Dicionário
� Data Administration Tool� OU:
run prodict/load_d.p(‘table1’, ‘table1.d’).
� Entrada de dados pelo dicionário ou exportação de dados customizados• Limite de 2 GB por leitura (pré 10.1C)
� Leitura de Dados em paralelo (para tabelasseparadas)• Inclui entrada nos índices• Árvore de índices imperfeita
� Performance perto do load binário + reindexação• (quando lendo múltiplas tabelas)
© 2008 Progress Software Corporation31 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Load Binário
proutil <db> -C load <table>.bd [build]
� Leitura para áreas novas ou truncadas• Truncada ao invés de “esvaziada”
� Leitura paralela para tabelas diferentes• Áreas iguais ou diferentes sem distanciamento!
Usando Área do Tipo II� Opcionalmente leitura com criação de índices
• Pode ter melhor performance
© 2008 Progress Software Corporation32 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Load Binário
proutil <db> -C load <table>.bd-dumplist <filename>
� Arquivo Dump List:/usr1/db/mytable.bd/usr1/db/mytable2.bd/usr1/db/mytable3.bd
� Deve ler todos os dumps (.db, db2, .db3, …)
À partir da exportação com multi tarefa
© 2008 Progress Software Corporation33 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Ajustando o Processo
� Dump com• –RO, aumente –B e/ou -Bp• Dump com índice com menos # blocos (se possível)
� Load com• Maior –B, –r** or –i**• BIW, 1.5 APW’s por CPU,• Cluster de BI bem grande com blocos de 16K • Sem AI/2PC
� Espalhe dados, BI e arquivos temporários atravésdos discos / controladoras
Ajustando as atividades para cima
© 2008 Progress Software Corporation34 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Depois da Leitura
proutil <db> -C idxbuild [ all |table <table> | area <area> schema <owner> | activeindexes | inactiveindexes] [-thread n] [-threadnum n] [-T <dir>] [-TM n] [–TB <blocksize>] [-B n] [-SG n] [-SS <file>] [-pfactor n]
� Vários índices novos escolhidos� Parâmetros para auxílio
• -SG 64 (sort groups)• -SS filename (arq. que contém arquivos de sort)• -TM 32 (buffers de merge)• -TB 31 (buffers de sort)• -B 1000
� Rode um tabanalys• valida # registros
� Backup de sua base de dados
Recontrução de Índices (onde aplicável)
© 2008 Progress Software Corporation35 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Agenda
� Estratégia Geral de Migração� Upgrade rápido e fácil� Upgrade Físico� Oportunidade de Tuning
© 2008 Progress Software Corporation36 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Oportunidade para tuning
� -Bt (temp tables são armazenadas em áreas do tipoII) – parâmetro de cliente
� 10.1B+ altera o tamanho do bloco da Temp table• De 1K para 4K• –tmpbsize 1 restaura o antigo padrão – parâmetro de
cliente� Monitore o Tamanho do Cluster de BI
• Notas de BI são maiores na OpenEdge 10� BI cresce mais
© 2008 Progress Software Corporation37 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Resumo
� Conversão é rápida• Atualização física garante seu
sossego• Muitas opções de reorganização
física� Mudança pode ser simples� 10,000+ clientes no OpenEdge
© 2008 Progress Software Corporation38 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Perguntas
© 2008 Progress Software Corporation39 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10
Obrigado
© 2008 Progress Software Corporation40 OPS-10: Moving V8/V9 RDBMS to OpenEdge 10