Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A partir do SQL Server 2005, o SQL Server dá suporte a assinaturas push para a Oracle por meio do provedor Oracle OLE DB fornecido pela Oracle.
Configurando um Assinante de Sistema Oracle
Para configurar um Assinante Oracle, siga estas etapas:
Instale e configure o software de rede do cliente Oracle e o provedor Oracle OLE DB no Distribuidor do SQL Server, para que o Distribuidor possa fazer conexões com o Assinante Oracle. O software de rede do cliente Oracle deve ser a versão mais recente disponível. A Oracle recomenda que os usuários instalem as versões mais recentes do software cliente. O software cliente geralmente é uma versão mais recente do que o software de banco de dados. A maneira mais simples de instalar o software é usar o Instalador Universal oracle no disco do Cliente Oracle. No Oracle Universal Installer, você fornecerá as seguintes informações:
Informação Descrição Oracle Home Esse é o caminho para o diretório de instalação do software Oracle. Aceite o padrão (C:\oracle\ora90 ou similar) ou insira outro caminho. Para obter mais informações sobre o Oracle Home, consulte a seção "Considerações para Oracle Home" mais adiante neste tópico. Nome da página inicial do Oracle Um apelido para o caminho do Oracle Home. Tipo de instalação No Oracle 10g, selecione a opção de instalação runtime ou administrador . Crie um nome TNS para o Assinante. O TNS (Transparent Network Substrate) é uma camada de comunicação usada pelos bancos de dados Oracle. O Nome do Serviço TNS é o nome pelo qual uma instância de banco de dados Oracle é conhecida em uma rede. Você atribui um Nome de Serviço TNS ao configurar a conectividade com o banco de dados Oracle. A replicação usa o nome do serviço TNS para identificar o assinante e estabelecer conexões.
Depois que o Instalador Universal do Oracle for concluído, use o Assistente de Configuração da Rede para configurar a conectividade de rede. Você deve fornecer quatro informações para configurar a conectividade de rede. O administrador do banco de dados Oracle configura a configuração de rede ao configurar o banco de dados e o ouvinte e deve ser capaz de fornecer essas informações se você não tiver. Faça o seguinte:
Ação Descrição Identificar o banco de dados Há dois métodos para identificar o banco de dados. O primeiro método usa o SID (Oracle System Identifier) e está disponível em todas as versões do Oracle. O segundo método usa o Nome do Serviço, que está disponível a partir da versão 8.0 do Oracle. Ambos os métodos usam um valor configurado quando o banco de dados é criado e é importante que a configuração de rede do cliente use o mesmo método de nomenclatura usado pelo administrador ao configurar o ouvinte para o banco de dados. Identificar um alias de rede para o banco de dados Você deve especificar um alias de rede, que é usado para acessar o banco de dados Oracle. O alias de rede é essencialmente um ponteiro para o SID remoto ou o Nome do Serviço que foi configurado quando o banco de dados foi criado; ele foi referenciado por vários nomes em diferentes versões e produtos Oracle, incluindo Nome do Serviço de Rede e Alias de TNS. SQL*Plus solicita esse aliás como o parâmetro "Cadeia de Caracteres de Host" ao fazer login. Selecione o protocolo de rede Selecione os protocolos apropriados que você deseja dar suporte. A maioria dos aplicativos usa TCP. Especifique as informações do host para identificar o ouvinte de banco de dados O host é o nome ou alias DNS do computador no qual o ouvinte Oracle está em execução, que normalmente é o mesmo computador no qual o banco de dados reside. Para alguns protocolos, você deve fornecer informações adicionais. Por exemplo, se você selecionar TCP, deverá fornecer a porta na qual o listener está escutando solicitações de conexão para o banco de dados de destino. A configuração TCP padrão usa a porta 1521. Crie um instantâneo ou uma publicação transacional, habilite-o para assinantes que não sejam do SQL Server e, em seguida, crie uma assinatura push para o assinante. Para obter mais informações, consulte Criar uma assinatura para um assinante que não seja do SQL Server.
Definindo permissões de diretório
A conta na qual o serviço SQL Server no Distribuidor é executado deve receber permissões de leitura e execução para o diretório (e todos os subdiretórios) em que o software de rede do cliente Oracle está instalado.
Testando a conectividade entre o Distribuidor do SQL Server e o Publicador Oracle
Perto do final do Assistente de Configuração da Rede, pode haver uma opção para testar a conexão com o Assinante Oracle. Antes de testar a conexão, verifique se a instância do banco de dados Oracle está online e se o Ouvinte Oracle está em execução. Se o teste não for bem-sucedido, entre em contato com o Oracle DBA responsável pelo banco de dados ao qual você está tentando se conectar.
Depois de fazer uma conexão bem-sucedida com o Assinante Oracle, tente iniciar sessão no banco de dados usando a mesma conta e senha que você configurou para o Agente de Distribuição da assinatura:
Clique em Iniciar e em Executar.
Digite
cmde clique em OK.No prompt de comando, digite:
sqlplus <UserSchemaLogin>/<UserSchemaPassword>@<NetServiceName>Por exemplo:
sqlplus replication/$tr0ngPasswerd@Oracle90ServerSe a configuração de rede tiver sido bem-sucedida, o logon terá êxito e você verá um
SQLprompt.
Considerações sobre o Oracle Home
O Oracle dá suporte à instalação lado a lado de binários de aplicativos, mas apenas um conjunto de binários pode ser usado pela replicação em um determinado momento. Cada conjunto de binários está associado a um Oracle Home; os binários estão no diretório %ORACLE_HOME%\bin. Você deve garantir que o conjunto apropriado de arquivos binários (especificamente a versão mais recente do software cliente de rede) seja usado quando a replicação fizer conexões com o "Oracle Subscriber".
Faça logon no Distribuidor com as contas usadas pelo serviço SQL Server e pelo serviço SQL Server Agent e defina as variáveis de ambiente apropriadas. A variável %ORACLE_HOME% deve ser definida para se referir ao ponto de instalação especificado quando você instalou o software de rede do cliente. O %PATH% deve incluir o diretório \bin %ORACLE_HOME% como a primeira entrada oracle encontrada. Para obter informações sobre como definir variáveis de ambiente, consulte a documentação do Windows.
Observação
Se você tiver mais de um Oracle home no Distribuidor do SQL Server, verifique se o Distribution Agent está usando o provedor Oracle OLE DB mais recente. Em alguns casos, a Oracle não atualiza o provedor OLE DB por padrão quando você atualiza os componentes do cliente no Distribuidor do SQL Server. Desinstale o antigo provedor OLE DB e instale o provedor OLE DB mais recente. Para obter mais informações sobre como instalar e desinstalar o provedor, consulte a documentação do Oracle.
Considerações para assinantes oracle
Além das considerações abordadas no tópico Assinantes que não são do SQL Server, considere os seguintes problemas ao replicar para Assinantes Oracle:
O Oracle trata as cadeias de caracteres vazias e os valores NULL como NULL. Isso é importante se você definir uma coluna do SQL Server como NOT NULL e estiver replicando a coluna para um assinante Oracle. Para evitar falhas ao aplicar alterações ao Assinante Oracle, você deve fazer um dos seguintes procedimentos:
Verifique se as cadeias de caracteres vazias não são inseridas na tabela publicada como valores de coluna.
Use o parâmetro -SkipErrors para o Distribution Agent se for aceitável ser notificado sobre falhas no log de histórico do Distribution Agent e continuar o processamento. Especifique o código de erro Oracle 1400 (-SkipErrors1400).
Modifique o script de tabela de criação gerado, removendo o atributo NOT NULL de qualquer coluna de caractere que possa ter cadeias de caracteres vazias associadas e forneça o script modificado como um script de criação personalizado para o artigo usando o @creation_script parâmetro de sp_addarticle.
Os Assinantes Oracle dão suporte a uma opção de esquema de 0x4071. Para obter mais informações sobre opções de esquema, consulte sp_addarticle (Transact-SQL).
Mapeando tipos de dados do SQL Server para o Oracle
A tabela a seguir mostra os mapeamentos de tipo de dados usados quando os dados são replicados para um Assinante executando o Oracle.
| Tipo de dados do SQL Server | Tipo de dados Oracle |
|---|---|
bigint |
NÚMERO(19,0) |
binary(1-2000) |
RAW(1-2000) |
binary(2001-8000) |
BLOB |
bit |
NÚMERO(1) |
char(1-2000) |
CHAR(1-2000) |
char(2001-4000) |
VARCHAR2(2001-4000) |
char(4001-8000) |
CLOB |
date |
DATA |
datetime |
DATA |
datetime2(0-7) |
TIMESTAMP(7) para Oracle 9 e Oracle 10; VARCHAR(27) para Oracle 8 |
datetimeoffset(0-7) |
TIMESTAMP(7) WITH TIME ZONE para Oracle 9 e Oracle 10; VARCHAR(34) para Oracle 8 |
decimal(1-38, 0-38) |
NÚMERO(1-38, 0-38) |
float(53) |
FLUTUAR |
float |
FLUTUAR |
geography |
BLOB |
geometry |
BLOB |
hierarchyid |
BLOB |
image |
BLOB |
int |
NUMBER(10,0) |
money |
NÚMERO(19,4) |
nchar(1-1000) |
CHAR(1-1000) |
nchar(1001-4000) |
NCLOB |
ntext |
NCLOB |
numeric(1-38, 0-38) |
NUMBER(1-38, 0-38) |
nvarchar(1-1000) |
VARCHAR2(1-2000) |
nvarchar(1001-4000) |
NCLOB |
nvarchar(max) |
NCLOB |
real |
REAL |
smalldatetime |
DATA |
smallint |
NÚMERO(5,0) |
smallmoney |
NÚMERO(10,4) |
sql_variant |
Não aplicável |
sysname |
VARCHAR2(128) |
text |
CLOB |
time(0-7) |
VARCHAR(16) |
timestamp |
RAW(8) |
tinyint |
NÚMERO(3,0) |
uniqueidentifier |
CHAR(38) |
varbinary(1-2000) |
RAW(1-2000) |
varbinary(2001-8000) |
BLOB |
varchar(1-4000) |
VARCHAR2(1-4000) |
varchar(4001-8000) |
CLOB |
varbinary(max) |
BLOB |
varchar(max) |
CLOB |
xml |
NCLOB |