O Datastream oferece suporte à arquitetura multilocatária do Oracle, em que um único banco de dados de contêineres (CDB) contém um ou mais bancos de dados conectáveis (PDBs). Cada banco de dados com plug-in é independente, tem um ID e um nome exclusivos e pode ser gerenciado de forma independente.
Para configurar um banco de dados plugável do Oracle auto-hospedado para uso com o Datastream, siga estas etapas:
Verifique se seu banco de dados está sendo executado no modo
ARCHIVELOG
. Para fazer isso, execute o seguinte comando no contêinerCDB$ROOT
:SELECT LOG_MODE FROM V$DATABASE;
- Se o resultado for
ARCHIVELOG
, avance para a etapa 2. - Se o resultado for
NOARCHIVELOG
, será necessário ativar o modoARCHIVELOG
para seu banco de dados. Execute os seguintes comandos quando conectado como
SYSDBA
:SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;
Como os arquivos de registro arquivados consomem espaço em disco, configure o parâmetro DB_RECOVERY_FILE_DEST_SIZE para seu banco de dados. Use esse parâmetro para especificar (em bytes) o limite absoluto no espaço total a ser usado pelos arquivos de recuperação do banco de dados de destino. Ao definir esse parâmetro, é possível gerenciar o equilíbrio entre proteger o banco de dados contra a falta de espaço em disco e a falha do stream devido à perda de posição do registro.
- Se o resultado for
Defina uma política de retenção de dados para seu banco de dados executando o seguinte comando do Oracle Recovery Manager (RMAN) no contêiner
CDB$ROOT
:CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;
O comando define a política de retenção de dados para todos os bancos de dados conectáveis no banco de dados de contêiner.
Recomendamos que você mantenha backups e arquive registros por no mínimo quatro dias. Recomendamos sete dias.
Volte para o prompt SQL da ferramenta de banco de dados que você está usando para configurar a política de rotação de arquivos de registros da Oracle. Recomendamos definir um tamanho máximo de 512 MB para o arquivo de registros.
Ative os dados de registro complementares. Para isso, primeiro ative a geração de registros complementar no banco de dados no nível do contêiner
CDB$ROOT
executando o seguinte comando:ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
Em seguida, escolha se você quer ativar a geração de registros para tabelas específicas ou para todo o banco de dados.
Para registrar alterações apenas em tabelas específicas, conecte-se ao contêiner de banco de dados com plug-in e execute o seguinte comando para cada tabela que você quer replicar:
ALTER TABLE SCHEMA.TABLE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS
Substitua:
- SCHEMA: o nome do esquema que contém a tabela.
- TABLE: o nome da tabela em que você quer registrar alterações.
Para replicar várias ou todas as tabelas do banco de dados, ative o registro para todo o banco de dados.
Execute o comando a seguir para ativar os dados de registro complementares em todo o banco de dados:
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
Crie um usuário comum. Um usuário comum tem a mesma identidade no contêiner
CDB$ROOT
e nos bancos de dados conectáveis. Um usuário comum pode se conectar e executar operações no contêinerCDB$ROOT
e em qualquer banco de dados conectável em que tenha privilégios. O nome de usuário comum precisa começar comC##
ouc##
.Conceda os privilégios apropriados ao usuário comum que será usado na conexão com o banco de dados. São necessárias permissões diferentes nos níveis do contêiner
CDB$ROOT
e do banco de dados com plug-in.- Conecte-se ao contêiner
CDB$ROOT
e execute os seguintes comandos:
GRANT CREATE SESSION TO USER_NAME; GRANT SET CONTAINER TO USER_NAME; GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME; GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO USER_NAME; GRANT EXECUTE ON DBMS_LOGMNR TO USER_NAME; GRANT EXECUTE ON DBMS_LOGMNR_D TO USER_NAME; GRANT LOGMINING TO USER_NAME; GRANT EXECUTE_CATALOG_ROLE TO USER_NAME;
- Conecte-se ao banco de dados conectável e execute os seguintes comandos:
GRANT CREATE SESSION TO USER_NAME; GRANT SET CONTAINER TO USER_NAME; GRANT SELECT ANY TABLE TO USER_NAME; GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME; GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO USER_NAME; GRANT SELECT ON DBA_SUPPLEMENTAL_LOGGING TO USER_NAME;
- Conecte-se ao contêiner
Conceda ao usuário comum
SELECT
acesso à visualizaçãoDBA_EXTENTS
no seu banco de dados. Este privilégio permite usar o preenchimento baseado emROWID
para sua origem do Oracle:GRANT SELECT ON DBA_EXTENTS TO USER_NAME;
A seguir
- Saiba mais sobre como o Datastream funciona com as fontes Oracle.