Linked Server Como Utilizar?

Bom galera,

Esses tempos precisei alterar um banco MySQL para o SQL Server e dai pensei como fazer isso de forma rápida?

Lembrei do Linked Server quando fiz curso de Adm. SQL Server. Na época não tinha visto como esse recurso pode facilitar nossa vida quando a necessidade é migração de dados entre bancos.

No curso admito que o instrutor somente mostrou conexão com outro banco SQL Server, onde até questionei se era para permitir a criação da replicação… o que não foi respondido corretamente e a dúvida persistiu.

Bom, vou escrever esse post em parte porque quero deixa-lo bem completo. Vou dividir nas seguintes partes:

  1. Para que server o Linked Server
  2. Link para downloads das ferramentas
  3. Como criar um LS para conectar em bancos MSSQL
  4. Como criar um LS para conectar em bancos MYSQL
  5. Como crar um LS via linha de comando (para os amantes de linha de comando = eu :D)
  6. Importado os dados

Para que server o Linked Server?

R= Cria-se uma camada de conexão com qualquer outro banco  que tenha o padrão SQL, permitindo gerar select/insert/update/delete nesse banco. Outra coisa que é possivel, repassar esses dados para um banco dentro do Sql server onde encontra-se o LS, ou seja importar tanto a tabela quando os dados.

Link para downloads das ferramentas

SQL Server

SQL Server 2005 Express – Serviço do Banco de Dados

SQL Server Management Studio Express – Gerenciamento do Banco de Dados

MySQL

MySQL Community Server – Serviço do Banco de Dados

MySQL Workbench (GUI Tool) – Gerenciamento do Banco de Dados

Conector/ODBC MySQL – Driver de conexão ODBC do Banco de Dados

Como crar um LS via linha de comando

Irei colocar a parte de linha de comando e depois colocou as utilizando a interface grafica ok!

MySQL

Galera antes de fazer isso certifique que você tenha o Driver ODBC do MySQL instalado na maquina onde você irá fazer a modificação


EXEC
master.dbo.sp_addlinkedserver @server = N‘MYSQL’, @srvproduct=N’MySQL’, @provider=N’MSDASQL’, @provstr=N’DRIVER={MySQL ODBC XXX Driver}; SERVER=HOST_DO_SERVIDOR; DATABASE=NOME_BANCO_DADOS; USER=USUARIO; PASSWORD=SENHA; OPTION=3′

onde:

sp_addlinkedserver é uma store procedure dentro do SQL Server que permite a conexão com outros bancos.

@server = Tipo do servidor: MYSQL, MSSQL

@srvproduct = Nome da conexão.

@provider = Tipo de conexão. MSDASQL é um conector padrão para acesso por Drivers

@provstr = String de conexão com os driver e seus parametros

No caso do MySQL os parametros são:

  • DRIVER = {MySQL ODBC XXX Driver}, onde XXX é a versão instalado
  • SERVER = Ip do servidor ou nome para conexão. Ex: mysql.seudominio.com.br
  • DATABASE = nome do banco de dados no MySQL
  • USER = usuario para conexão com permissão para acessar o banco externamente
  • PASSWORD = senha do usuario.
  • OPTION = Padrão 3

Importando os Dados

Bom agora que você criou a conexão pode testar importar os dados com a seguinte instrução SQL.

SELECT * INTO NOME_TABELA_LOCAL FROM OPENQUERY(NOME_DA_CONEXAO, ‘SELECT * FROM NOME_TABELA_REMOTA’)

onde:

NOME_TABELA_LOCAL = nome da tabela a ser criada no SQL Server e que irá armazenar os dados

NOME_DA_CONEXAO = Nome da conexão do Linked Server

NOME_TABELA_REMOTA = Nome da tabela do banco conectado pelo Linked Server