Etapas para migrar todos os dados entre servidores no SQL Server

Data de criação de página :

ambiente

Servidor SQL
  • SQL Server 2019
  • SQL Server 2012

Como a migração de dados é migrada e as vantagens e desvantagens de cada

Existem várias maneiras de migrar dados de banco de dados do SQL Server para SQL Server em outros servidores em massa: Cada um tem suas vantagens e desvantagens durante a migração, então escolha o método que melhor se adapte ao seu ambiente.

servidoresA de
Método de migração Conectividade de rede entreautenticação síncroníncronia de layoutstabela de tamanho de arquivo durante a migração para versões passadas
Fazendo backup e restaurando bancos de dados Não é necessário (mover arquivos) mau ordinário Não é necessário (substituição completa automática) desnecessário
Dados de saída como SQL Não é necessário (mover arquivos) aceitável Grande Necessário ou excluído para tabela desnecessário
Use a ferramenta Dados de Importação e Exportação Indispensabilidade aceitável sem Dependendo das configurações de migração necessidade

pré-condição

  • Assuma que o sql server e o SQL Server Management Studio estão instalados em cada servidor.
  • Esta dica ousa tornar as versões do servidor sql diferentes.

Criar dados de amostra

Ao discutir a migração de dados, você o faz no banco de dados com a seguinte configuração de tabela:

Fonte de migração de dados

SQL Server 2012

  • Tabela 1 (Coluna:Chave, Valor)
  • Tabela 2 (Coluna:Chave, Valor, Observações)
  • Tabela 3 (Coluna:Chave, Valor)

A seguir, um script de criação de banco de dados. Mude o caminho em tempo hábil.

USE [master]
GO

CREATE DATABASE [SampleDatabase]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'SampleDatabase', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\SampleDatabase.mdf' , SIZE = 5120KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
 LOG ON 
( NAME = N'SampleDatabase_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\SampleDatabase_log.ldf' , SIZE = 2048KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO

Abaixo está um roteiro de criação de tabela.

USE [SampleDatabase]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[テーブル1](
	[キー] [int] NOT NULL,
	[値] [nvarchar](50) NULL,
 CONSTRAINT [PK_テーブル1] PRIMARY KEY CLUSTERED 
(
	[キー] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[テーブル2](
	[キー] [int] NOT NULL,
	[値] [nvarchar](50) NULL,
	[備考] [nvarchar](50) NULL,
 CONSTRAINT [PK_テーブル2] PRIMARY KEY CLUSTERED 
(
	[キー] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[テーブル3](
	[キー] [int] NOT NULL,
	[値] [nvarchar](50) NULL,
 CONSTRAINT [PK_テーブル3] PRIMARY KEY CLUSTERED 
(
	[キー] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]

GO

A seguir, um script de gravação adicional:

USE [SampleDatabase]
GO
INSERT [dbo].[テーブル1] ([キー], [値]) VALUES (1, N'1aaa')
GO
INSERT [dbo].[テーブル1] ([キー], [値]) VALUES (2, N'1bbb')
GO
INSERT [dbo].[テーブル2] ([キー], [値], [備考]) VALUES (1, N'2aaa', N'2remarks')
GO
INSERT [dbo].[テーブル2] ([キー], [値], [備考]) VALUES (2, N'2bbb', N'2remarks')
GO
INSERT [dbo].[テーブル3] ([キー], [値]) VALUES (1, N'3aaa')
GO
INSERT [dbo].[テーブル3] ([キー], [値]) VALUES (2, N'3bbb')
GO

Migração de dados para

SQL Server 2019

  • Tabela 1 (Coluna:Chave, Valor)
  • Tabela 2 (Coluna:Chave, Valor)

Os registros em cada mesa estão vazios.

A seguir, um script de criação de banco de dados. Mude o caminho em tempo hábil.

USE [master]
GO

CREATE DATABASE [SampleDatabase]
 CONTAINMENT = NONE
 ON  PRIMARY 
( NAME = N'SampleDatabase', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\DATA\SampleDatabase.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 65536KB )
 LOG ON 
( NAME = N'SampleDatabase_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\DATA\SampleDatabase_log.ldf' , SIZE = 8192KB , MAXSIZE = 2048GB , FILEGROWTH = 65536KB )
 WITH CATALOG_COLLATION = DATABASE_DEFAULT
GO

Abaixo está um roteiro de criação de tabela.

USE [SampleDatabase]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[テーブル1](
	[キー] [int] NOT NULL,
	[値] [nvarchar](50) NULL,
 CONSTRAINT [PK_テーブル1] PRIMARY KEY CLUSTERED 
(
	[キー] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[テーブル2](
	[キー] [int] NOT NULL,
	[値] [nvarchar](50) NULL,
 CONSTRAINT [PK_Table_1] PRIMARY KEY CLUSTERED 
(
	[キー] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
GO

Como backup e restauração do banco de dados

Este método é fazer backup de todo o banco de dados como um arquivo no servidor de origem, copiá-lo para o servidor de destino e ingeri-lo. Portanto, todas as configurações de tabela são definidas para o destino, todas as quais são as mesmas da fonte.

Além disso, este método não permite que você migrem de uma versão mais recente do SQL Server para uma versão mais antiga. (Se a diferença de versão for pequena, pode ser possível))

procedimento

Inicie o SQL Server Management Studio a partir da fonte. Escolha uma pasta que corresponda à sua versão SQL Server.

Faça login no servidor de destino. PCs que usam o SQL Server Management Studio são bons em outros PCs, mas esta Dica permite que todos vocês operem em seus próprios servidores.

Do Object Explorer, clique com o botão direito do mouse no banco de dados e selecione Backup para Tarefas.

Exclua o caminho inicial de backup na lista de destinos de backup no canto inferior direito.

Quando excluí-lo, clique no botão Adicionar.

Clique no botão alterar o caminho.

Acho que a pasta "Backup" é selecionada por padrão, então digite o nome do arquivo para fazer backup no nome do arquivo abaixo e clique no botão OK. O nome do arquivo é opcional, por isso facilite a compreensão.

Clique no botão OK.

Verifique se ele foi adicionado à lista e clique no botão OK.

Uma vez que o arquivo de backup foi criado na pasta a seguir, eu vou levar este arquivo para o servidor para o qual eu quero migrar. O caminho da pasta depende da versão do SQL Server e do nome da instância, então verifique-o em tempo hábil.

C:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\Backup

Status após cópia para o servidor de destino. Ele é colocado na pasta a seguir porque é mais fácil de carregar se você colocá-lo na pasta Backup do SQL Server. Isso também depende da versão do SQL Server e do nome da ocorrência, por isso, verifique-o em tempo hábil.

C:\Program Files\Microsoft SQL Server\MSSQL15.SQLEXPRESS\MSSQL\Backup

Inicie o SQL Server Management Studio no servidor para o usuário. Você está logado no seu servidor aqui.

Do Object Explorer, clique com o botão direito do mouse no banco de dados de destino e selecione Tarefas, Restauração e Banco de Dados.

Certifique-se de que o General está selecionado na seleção da página esquerda, selecione "Dispositivo" na "Fonte" à direita e clique no botão de navegação à direita.

Clique no botão Adicionar.

Selecione o arquivo que você trouxe.

Selecione "Opções" na seleção da página esquerda e verifique as duas seguintes. Se você verificar esses dois, você pode forçar algum outro sistema a trocar enquanto estiver conectado ao banco de dados.

  • Substitua um banco de dados existente
  • Feche uma conexão existente para o banco de dados de destino

No entanto, observe que se a restauração falhar com "Fechar a conexão existente para o banco de dados de destino" for verificado, o banco de dados original pode não estar disponível.

Quando você verificar, clique no botão OK.

Você pode verificar se a configuração da tabela e os registros foram totalmente migrados.

Aliás, se você tentar restaurar uma versão mais recente de um banco de dados SQL Server para uma versão mais antiga do SQL Server, você verá o seguinte erro: Este método de migração de dados é baseado na mesma versão entre si ou em uma versão mais recente.

Como: Dados de saída como SQL (Script) e executá-lo no banco de dados de destino

É assim que a produção de todos os registros em uma tabela como instruções de inserção. Como as declarações SQL são quase as mesmas, elas podem ser aplicadas a outros tipos de bancos de dados em alguns casos, independentemente da versão do SQL Server.

No entanto, uma vez que os registros são escritos para inserir frases um a um, o tamanho do arquivo aumenta. Portanto, à medida que o número de registros aumenta, é inútil, por isso é um método que pode ser usado quando o número é pequeno.

Ele também gera SQL para a tabela da qual foi migrado, por isso não está disponível se for diferente da configuração da tabela para a qual é migrada. Você também pode incluir a criação de uma tabela em SQL, mas você deve excluir a tabela uma vez no destino.

procedimento

Inicie o SQL Server Management Studio a partir da fonte. Escolha uma pasta que corresponda à sua versão SQL Server.

Faça login no servidor de destino. PCs que usam o SQL Server Management Studio são bons em outros PCs, mas esta Dica permite que todos vocês operem em seus próprios servidores.

Clique com o botão direito do mouse no banco de dados de destino e selecione "Tarefa" e "Gerar script".

Clique em Next.

Você pode escolher para quais tabelas migrar dados. Selecione tudo ou selecione uma tabela específica aqui.

Como a saída é SQL, você pode selecionar "Arquivo", "Área de transferência" ou "Mostrar na Janela". Uma vez selecionado, clique no botão "Avançado" no canto superior direito.

Selecione Dados somente de "Tipos de dados para gerar scripts" no grupo Geral.

Depois disso, selecione "Próximo" para confirmar. Você pode ver que o SQL é gerado. Tudo o que resta é executar este SQL no destino.

Como é apenas uma instrução de inserção, se você quiser que os dados sejam os mesmos, você precisa excluir todos os registros no destino com antecedência.

Migrar configurações de tabela também

Se você também quiser migrar as configurações da tabela, defina a seleção anterior de "Tipo de dados para gerar scripts" para o Esquema e dados.

Um script de criação de tabela também é gerado da seguinte forma: Se você quiser usar isso, ele será executado após a exclusão da tabela a ser migrada.

Ele também gera um script de criação de banco de dados se ele também estiver incluído.

Como migrar dados usando dados de importação e exportação

Ao instalar o SQL Server, você também instala uma ferramenta chamada Dados de Importação e Exportação. Você pode usá-lo para migrar dados de uma tabela para outro servidor.

A vantagem dessa migração de ferramenta é que os dados também podem ser migrados para versões mais antigas do SQL Server. É um pouco difícil de usar, mas pode ser migrado ao nível de vários minutos mesmo com cerca de 1 milhão de dados, por isso também é adequado para uma grande migração de dados. Observe, no entanto, que os servidores de origem e destino devem ser conectados em uma rede privada e não podem ser usados entre servidores com redes completamente diferentes.

pré-condição

Crie autenticação SQL Server ou autenticação do Windows para que você possa acessar cada SQL Server a partir de um PC que usa essa ferramenta.

Esta dica usa esta ferramenta a partir do servidor de onde foi migrado.

procedimento

Selecione Dados de importação e exportação no menu Iniciar. Ele está incluído em uma pasta no SQL Server, mas o nome da pasta varia dependendo da versão do SQL Server, então procure-o em tempo hábil.

Clique em Next.

Selecione o banco de dados do qual deseja migrar. Desta vez ele está sendo executado no servidor de origem, para que você possa passar pela autenticação do Windows.

Observações de valor de definição de nome do parâmetro
Fontes de dados Sql Server Native Client 11.0
Nome do servidor (local) Se for um servidor diferente ou um nome de instância for especificado, por favor, coloque seu valor
autenticação Autenticação do Windows
base de dados Amostradesbase Digite o nome do banco de dados do qual você deseja realmente migrar

Em seguida, defina as configurações de conexão para o banco de dados de destino. A autenticação do Sql Server está sendo usada porque está em um servidor diferente.

Observações de valor de definição de nome do parâmetro
Fontes de dados Sql Server Native Client 11.0
Nome do servidor Nome do servidor de destino (+ \nome de ocorrência)]
autenticação Autenticação do SQL Server
base de dados Amostradesbase Digite o nome do banco de dados para realmente migrar para

Verifique "Copiar dados de uma ou mais tabelas ou visualizações" e clique no próximo botão.

Selecione a tabela que deseja migrar. Esta lista também mostra a exibição, então não verifique.

Se os nomes da tabela de origem e destino forem os mesmos, a tabela a ser migrada será automaticamente selecionada. Ele também define automaticamente o mapeamento dos nomes das colunas se os nomes das colunas forem os mesmos.

Aqui estão algumas coisas para ter em mente:

  • Se a chave principal for automaticamente numerada, a migração falhará se você não verificar "Permitir a inserção de ID" do "Mapeamento editar"
  • Se não houver tabelas para migrar, uma tabela é criada
  • Se a tabela de destino não tiver o mesmo nome da coluna, ela não será migrada. Não continue migrando ou alterando a coluna de destino.
  • Os registros são adicionados por padrão. Se você quiser substituí-lo, exclua o registro no destino com antecedência ou verifique "Excluir linhas na tabela de destino" do "Mapeamento editar"

Na verdade, você tem que considerar o acima, mas nesta Dica, não há dados no destino e não há numeração automática, então você pode prosseguir sem definir nada.

Certifique-se de que "Run Now" está verificado e clique em "Next".

Clique em Feito.

Começa a migração de dados. Feche quando todas as migrações estiverem completas.

Se você olhar para o banco de dados de destino, você pode verificar se uma tabela que não existia foi criada. Você também pode ver que não há mais colunas para tabelas existentes.

Você pode verificar se os dados estão sendo migrados. As colunas de notas na tabela 2 não estão mapeadas e não migraram.