-1: Multi-database query for OC and JC OpenEdge SQL em um Ambiente 10.1B multi-database para OC e JC Claudemiro Pacheco Technical Support Americas Objetivos Respostas para as seguintes perguntas: O que é uma query multi-database? O que acontece internamente? Como deve ser configurado? 2-1: OpenEdge SQL multi-database environment for OC and JC Agenda Visão Geral da configuração Conexões e como identificar-las Acesso à Dados single e multi-database Gerenciamento e Planejamento 3-1: OpenEdge SQL multi-database environment for OC and JC 1
-1: Multi-database query for OC and JC Multi-Database Query - client Permite realizar um JOIN entre tabelas de múltiplos bancos de dados ( cross database join) Join: customers from, Orders from Second, Inventory from Third SQL Client Navigator - JC URL Crystal Reports OC DSN Customers Orders Inventory Second Third 4-1: OpenEdge SQL multi-database environment for OC and JC 10.1B Multi-Database Query - server Cross database join SQL Client Navigator - JC URL Crystal Reports OC DSN Host OpenEdge SQL Server Second Third 5-1: OpenEdge SQL multi-database environment for OC and JC Terminologia Fields/Columns ( CustNum, CustName) Table ( Customer) - collection of columns Schema ( PUB, bwerne) - collection of tables Catalog (AuxCat1, mysports) - Alias for database 6-1: OpenEdge SQL multi-database environment for OC and JC 2
-1: Multi-database query for OC and JC Multi-Database Query Scope Mysports AuxCat1 PUB schema Customer PUB Inventory Roltman 7-1: OpenEdge SQL multi-database environment for OC and JC 3 part naming single database connection Sintaxe de 3 níveis (Já existente) schema.table.column-name Exemplo SELECT Pub.Customer.CustNum, Pub.Customer.Name, Pub.Order.OrderNum Se aplica à: schema, tables, columns, stored procedures 8-1: OpenEdge SQL multi-database environment for OC and JC 4 part naming multi-database query Sintaxe de 4 níveis catalog.schema.table.column-name Exemplo SELECT Pub.Customer.CustNum, Sports.Pub.Customer.Name, SportsAux1.Pub.Order.OrderNum Se aplica à: schema, tables, columns, stored procedures 9-1: OpenEdge SQL multi-database environment for OC and JC 3
-1: Multi-database query for OC and JC Crystal Reports cross database join Catalog SELECT "Customer1"."CustNum", "Customer1"."Name", "Order1"."OrderDate", "Order1"."Ordernum", "OrderLine1"."Itemnum", "OrderLine1"."Qty", "OrderLine1"."OrderLineStatus" FROM ("AuxCat2"."PUB"."OrderLine" "OrderLine1" INNER JOIN "AuxCat1"."PUB"."Order" "Order1" ON "OrderLine1"."Ordernum"="Order1"."Ordernum") INNER JOIN "SPORTS2000"."PUB"."Customer" "Customer1" ON "Order1"."CustNum"="Customer1"."CustNum" ORDER BY "Customer1"."CustNum" 10-1: OpenEdge SQL multi-database environment for OC and JC Single Database simple query SQL Client Navigator - JC URL Crystal Reports OC DSN Host OpenEdge SQL Server 11-1: OpenEdge SQL multi-database environment for OC and JC Suporte Multi-Database Define bancos de dados primários e auxiliares SQL Client Navigator - JC URL Crystal Reports OC DSN Host OpenEdge SQL Server Second Third 12-1: OpenEdge SQL multi-database environment for OC and JC Read Only Auxiliaries 4
-1: Multi-database query for OC and JC Agenda Visão Geral da configuração Conexões e como identificar-las Acesso à Dados single e multi-database Gerenciamento e Planejamento 13-1: OpenEdge SQL multi-database environment for OC and JC Conexões Multi-database 2 métodos: Conexões explícitas aos bancos de dados auxiliares com o comando sql CONNECT Modelo de conexão automática ( Automatic ) 14-1: OpenEdge SQL multi-database environment for OC and JC Conectando-se à um Banco de Dados Auxiliar Catalog - um alias para o banco de dados Conectando-se à um banco de dados auxiliar CONNECT /usr/wrk/sports2000 AS CATALOG mysports; Deve estar no mesmo servidor onde está o banco de dados primário Desconectando um catalog DISCONNECT CATALOG mysports; 15-1: OpenEdge SQL multi-database environment for OC and JC 5
-1: Multi-database query for OC and JC Detalhes do Banco de Dados Auxiliar Syntaxe Default catalog é o Banco de Dados Primário SET CATALOG mysports; Listagem dos catálogos conectados SHOW CATALOGS ALL { PRO_NAME PRO_TYPE PRO_STATUS } 16-1: OpenEdge SQL multi-database environment for OC and JC O que fazer?!?! Algumas aplicações, como por exemplo Crystal Reports, somente permitem que comandos SELECT sejam executados Não podemos utilizar o comando CONNECT: O que fazer agora? Utilize conexões automáticas 17-1: OpenEdge SQL multi-database environment for OC and JC Multi-Database : Conexões Automáticas SQL Client Navigator - JC URL Crystal Reports OC DSN dbname[-mdbq:config] Host OpenEdge SQL Server Second Properties [config] Read Only Third Auxiliaries 18-1: OpenEdge SQL multi-database environment for OC and JC 6
-1: Multi-database query for OC and JC Arquivo de Propriedades - Exemplo sports2000.oesql.properties [sql-configuration] configuration-names-list=config1 [configuration.config1] database-id-list=aux1, Aux2 configuration name [database.aux1] Name=SportsAux1 Full path to database Catalog=AuxCat1 Location=c:\openedge\WRK\db\SportsAux1 [database.aux2] Name=SportsAux2 Catalog=AuxCat2 Location=c:\openedge\WRK\db\SportsAux2 19-1: OpenEdge SQL multi-database environment for OC and JC Multi-Database : Conexões Automáticas SQL Client Navigator - JC URL Crystal Reports OC DSN dbname[-mdbq:config1] Host OpenEdge SQL Server Second Properties [config1] Read Only Third Auxiliaries 20-1: OpenEdge SQL multi-database environment for OC and JC Single connection : JC -Navigator jdbc:datadirect:openedge://localhost:6748;databasena me=sports2000 21-1: OpenEdge SQL multi-database environment for OC and JC 7
-1: Multi-database query for OC and JC Configuração Multi-:JC -Navigator jdbc:datadirect:openedge://localhost:6748;databasena me=sports2000[-mdbq:config1] 22-1: OpenEdge SQL multi-database environment for OC and JC Navigator Configuração MQ databases database 23-1: OpenEdge SQL multi-database environment for OC and JC OC single connection 24-1: OpenEdge SQL multi-database environment for OC and JC 8
-1: Multi-database query for OC and JC OC Configuração Multi- 25-1: OpenEdge SQL multi-database environment for OC and JC Exemplo do MQ no Crystal databases database 26-1: OpenEdge SQL multi-database environment for OC and JC Todo bom projeto de engenharia tem os seus acrônimos Conexões primárias ou single database SQSV (OpenEdge SQL Server ) É o processo servidor principal do OpenEdge SQL (Remote Client) É a thread cliente do OpenEdge SQL para cada conexão ao banco primário 27-1: OpenEdge SQL multi-database environment for OC and JC 9
-1: Multi-database query for OC and JC Acrônimos Conexões auxiliares SQFA (SQL Federated Agent) Conexão principal do SQL ao banco auxiliar (SQL Federated Client) Client thread para cada conexão que é feita ao banco auxiliar 28-1: OpenEdge SQL multi-database environment for OC and JC Tipos de Conexões OpenEdge SQL Server connection SQSV SQFA OpenEdge SQL Client connection 29-1: OpenEdge SQL multi-database environment for OC and JC Conexões usando MQ OpenEdge SQL Server Main SQFA SQSV Client 1 Client 2 30-1: OpenEdge SQL multi-database environment for OC and JC 10
-1: Multi-database query for OC and JC Promon Banco Primário Conexões ao Banco Primário 31-1: OpenEdge SQL multi-database environment for OC and JC Promon Banco Auxiliar Conexões aos Bancos Auxiliares 32-1: OpenEdge SQL multi-database environment for OC and JC OpenEdge Management User Activity View BancoPrimário Conexões ao Banco Primário 33-1: OpenEdge SQL multi-database environment for OC and JC 11
-1: Multi-database query for OC and JC OpenEdge Management User Activity View Bancos Auxiliares Conexões aos Bancos Auxiliares 34-1: OpenEdge SQL multi-database environment for OC and JC MQ Restrições, Dicas e Detalhes Restrição Os bancos de dados primário e auxiliares devem estar no mesmo servidor Autenticação da conexão Usuário deve ser o mesmo para o banco primário e para cada um dos auxiliares Código de página do banco de dados O Código de páginas dos bancos de dados deve ser o mesmo 35-1: OpenEdge SQL multi-database environment for OC and JC MQ Restrições, Dicas e Detalhes Conexões auxiliares são READ ONLY Nenhuma operação de update, seja ela à nível de esquema ou registro, pode ser realizada nos bancos auxiliares. Somente o banco primário aceitará comandos de update. Permissões de Granting / revoking - autorização Deve ser realizada no banco auxiliar independentemente Considerações de performance Update Statistics deve ser feito em cada um dos bancos auxiliares independentemente 36-1: OpenEdge SQL multi-database environment for OC and JC 12
-1: Multi-database query for OC and JC Suporte ao Multi-Database Query SQL Client Read Only dbname[-mdbq:config1] Host OpenEdge SQL Server Second Properties [config1] Third Auxiliaries 37-1: OpenEdge SQL multi-database environment for OC and JC Agenda Visão Geral da configuração Conexões e como identificar-las Acesso à Dados single e multi-database Gerenciamento e Planejamento 38-1: OpenEdge SQL multi-database environment for OC and JC Planejamento startup Efeito do MQ no banco primário: startup parameters Efetivamente nenhuma mudança, faz uso do Mi para controlar o número de conexões/threads por server. Ainda temos o SQSV (server slot (-Mi,Ma)) e o ( user slot (- n)) OpenEdge SQL tem uma melhor performance com threads (mais conexões por server) Efeito do MQ no banco auxiliar: startup parameters SQFA é self-service (adicione 1 ao n) Cada ocupa um user slot (Cada um deve ser adicionado ao n) SQFA, para cada SQSV, será servidor de múltiplos contextos 39-1: OpenEdge SQL multi-database environment for OC and JC 13
-1: Multi-database query for OC and JC Shutdown do banco auxiliar OpenEdge SQL Server Main SQFA SQSV Client 1 Client 2 O broker do banco primário não é afetado 40-1: OpenEdge SQL multi-database environment for OC and JC Shutdown do banco auxiliar OpenEdge SQL Server Main SQSV O broker primário não é afetado 41-1: OpenEdge SQL multi-database environment for OC and JC Shutdown do banco primário OpenEdge SQL Server Main SQFA SQSV Client 1 Client 2 O banco auxiliar não é afetado 42-1: OpenEdge SQL multi-database environment for OC and JC 14
-1: Multi-database query for OC and JC Shutdown of database O banco auxiliar não é afetado 43-1: OpenEdge SQL multi-database environment for OC and JC Promon Desconexão do SQFA OpenEdge SQL Server Main SQFA SQSV Client 1 Client 2 Os brokers do banco primário e auxiliar não são afetados 44-1: OpenEdge SQL multi-database environment for OC and JC Promon Desconexão of SQFA OpenEdge SQL Server Main SQSV Os brokers do banco primário e auxiliar não são afetados 45-1: OpenEdge SQL multi-database environment for OC and JC 15
-1: Multi-database query for OC and JC Promon Desconexão do ou OpenEdge SQL Server Main SQFA SQSV Client 1 Client 2 Os brokers do banco primário e auxiliar não são afetados 46-1: OpenEdge SQL multi-database environment for OC and JC Promon Desconexão do ou OpenEdge SQL Server Main SQFA SQSV Client 1 Os brokers do banco primário e auxiliar não são afetados 47-1: OpenEdge SQL multi-database environment for OC and JC Sumário Multi-database query Configuração e conexões Detalhes Internos 48-1: OpenEdge SQL multi-database environment for OC and JC 16
-1: Multi-database query for OC and JC Para mais informações PSDN Progress elearning Community Using OpenEdge SQL Documentation 10.1B OpenEdge Data Management: SQL Development OpenEdge Data Management: SQL Reference 49-1: OpenEdge SQL multi-database environment for OC and JC Perguntas? 50-1: OpenEdge SQL multi-database environment for OC and JC Obrigado pela atenção 51-1: OpenEdge SQL multi-database environment for OC and JC 17
-1: Multi-database query for OC and JC 52-1: OpenEdge SQL multi-database environment for OC and JC 18