Usando Redefinição Baseada em Edição

O Oracle GoldenGate suporta o uso de Redefinição Baseada em Edição (EBR) com Bancos de Dados Oracle, permitindo que você faça upgrade do componente de banco de dados de um aplicativo enquanto ele estiver em uso, minimizando ou eliminando assim o tempo de inatividade.

Edições são objetos não-esquema aos quais os objetos Editados pertencem. Edições podem ser consideradas como propriedade de objetos editados ou como um namespace. Cada banco de dados começa com uma edição chamada ORA$BASE; isso inclui bancos de dados atualizados. Mais de uma edição pode existir em um banco de dados e cada uma pode ter apenas um filho. Por exemplo, se você criar três edições em sucessão, edition1, edition2, edition3, edition1 será o pai de edition2 que é o pai de edition3. Isso é independente do usuário ou da sessão do banco de dados que os cria ou qual edição era atual quando a nova foi criada. Quando você cria uma edição, ela herda todos os objetos editados de seu pai. Para usar edições com o Oracle GoldenGate, você deve criá-las.

Um objeto será considerado editado se for um tipo editável, for criado com o atributo EDITIONABLE e o esquema for ativado para edição desse tipo de objeto. Quando você cria, altera ou elimina um objeto editado, o redo log conterá o nome da edição à qual ele pertence. Em um banco de dados contêiner, as edições pertencem ao contêiner e cada contêiner tem sua própria edição padrão.

As CREATE | DROP EDITION DDLs são capturadas para todas as configurações de Extract. Eles se enquadram na categoria OTHER e atribuem um valor de opção OBJTYPE de EDITION. A opção OBJTYPE pode ser usada para filtragem, por exemplo:

DDL EXCLUDE OBJTYPE EDITION
DDL EXCLUDE OBJTYPE EDITION OPTYPE CREATE
DDL EXCLUDE OBJTYPE EDITION OPTYPE DROP
DDL EXCLUDE OBJTYPE EDITION OPTYPE DROP ALLOWEMPTYOWNER OBJNAME *edition_name*

Você deve usar a seguinte sintaxe para excluir uma edição do Extract ou do Replicat:

EXCLUDE OBJTYPE EDITION, ALLOWEMPTYOWNER OBJNAME *edition_name*

As edições se enquadram na categoria OTHER, portanto, nenhum mapeamento é executado no nome da edição. Quando aplicada, a permissão USE é concedida automaticamente ao usuário Replicat. O Replicat também executará um grant use on edition nome with grant option para o usuário de criação original se esse usuário existir no banco de dados de destino. Como as edições não são operações mapeáveis, elas não têm proprietários, então a instrução EXCLUDE padrão não funciona.

As DDLs usadas para criar ou alterar edições não ativam o usuário para edições, em vez disso, ativam o esquema para edições. Essa é uma distinção importante porque significa que o usuário do Replicat não precisa ser ativado para que as edições apliquem DDLs a objetos editados. Quando o Replicat aplica uma DDL CREATE EDITION, ele concede a permissão original de criação do usuário para USE, se o usuário original existir no banco de dados de destino. Para qualquer instrução CREATE EDITION não replicada, você deve emitir uma concessão USE WITH GRANT OPTION para o usuário Replicat.

Se um objeto editável se torna editado ou não é controlado pelo esquema no qual ele é aplicado. O Replicat alterna sua Edição de sessão atual antes de aplicar um DDL se o atributo de nome da edição existir no arquivo de trilha e ele não estiver vazio.

Ambientes de banco de dados contêiner são suportados para Extract e Replicat. Não é necessário configurar mais. O esquema do usuário do processo Replicat não poderá ser ativado para edições se for um usuário comum. O esquema do usuário do Replicat não precisa ser ativado para edições ao aplicar DDLs a objetos editados em outros esquemas.

A partir do Oracle Database 23ai, é possível executar operações DDL on-line que foram bloqueadas anteriormente. Isso fornece flexibilidade adicional para Oracle Application Upgrades que são feitos com Edition Based Redefinition (EBR). Consulte Usando a Redefinição Baseada em Edição no Oracle AI Database Development Guide para obter detalhes.

O Extract e o Replicat do Oracle GoldenGate também podem gerenciar a replicação dessas operações DDL para que as alterações dos Upgrades de Aplicativos Oracle sejam replicadas corretamente. Além disso, você poderá eliminar colunas não usadas on-line de tabelas onde o ACDR é removido.