Migre de SQL Server 2000 a 2012 sin una instancia de 2005 o 2008

11

Me he encontrado con tres bases de datos antiguas ubicadas en SQL Server 2000 que necesito mover a 2012. Creo que el enfoque estándar es restaurar en una instancia de 2005 o 2008, actualizar, reexportar y finalmente restaurar en 2012.

Bien, excepto que no tenemos instancias 2005 o 2008 disponibles.

¿Hay alguna solución u otro método que valga la pena probar?

Para información, las bases de datos solo contienen 15-20 tablas y algunas vistas, parecen muy simples y las copias de seguridad tienen un tamaño de solo 100-200MB.

Lunatik
fuente
1
es perfectamente legal y está cubierto por la licencia de sql para instalar una instancia intermedia como un "puente" para actualizar. ningún usuario debería conectarse a él. ...
Rostol

Respuestas:

21

No, no hay una solución alternativa para actualizar una base de datos directamente de 2000 a 2012.

Como no tiene un montón de datos, puede hacer todo tipo de cosas para mover los datos (pero no la base de datos en su conjunto), que incluyen:

  • Asistente de importación / exportación
  • SSIS
  • BCP
  • Consultas manuales utilizando un servidor vinculado desde 2012 o una aplicación

Sin embargo, estos no necesariamente traerán otras cosas como usuarios, permisos, roles, etc. Y no todo creará sus objetos en el orden de dependencia correcto. Por lo tanto, son más propensos al trabajo y a los errores. En mi experiencia, valdría la pena poner temporalmente una instancia intermedia y luego hacer dos operaciones de copia de seguridad + restauración, lo que será más fácil, más rápido y menos propenso a errores que cualquiera de los métodos anteriores.

Si sus bases de datos son más pequeñas que 10 GB, puede instalar una copia de Express (gratis) en unos minutos y usarla. Puede descargar 2008 R2 Express aquí . No creo que haya ninguna función Enterprise en 2000 en torno a la estructura de la base de datos, etc., que bloquee esa actualización (una preocupación mayor para las versiones más modernas).

Si su base de datos es demasiado grande para Express, debería poder encontrar Developer Edition por $ 49 más o menos (o incluso más barato, encontré 2005 en eBay por $ 37 ), o si tiene una suscripción a MSDN, debería poder obtener cualquier SKU a partir de ahí.

O puede salirse con la suya utilizando una Edición de Evaluación, que sorprendentemente todavía se ofrece para descargar para versiones anteriores (por ejemplo , encontré 2008 aquí ), sin embargo, estoy en un teléfono, así que no pude confirmar que la descarga para esa versión todavía funciona .

Aaron Bertrand
fuente
Gracias. Como la velocidad de Internet aquí es pobre, estaba tratando de evitar las descargas, pero encontré los binarios de instalación de 2005, así que supongo que será el método más rápido.
Lunatik
no, el único realmente útil es 2008, de lo contrario también necesitarás 2010 de 2005
Rostol
¿Estás seguro @Rostol? sqlskills.com/blogs/paul/…
Adam Nofsinger
@ AdamNofsinger, iba a decir 100% seguro, lo hice mil millones de veces (tenemos un antiguo SQL 2000 utilizado por un sistema antiguo) y tengo un propósito de 2008 vm para restaurar los datos primero y luego hacer una copia de seguridad y restaurar a SQL 2016 ... Pero si Paul Randal dice lo contrario ... pero tenga en cuenta que el método directo funciona desde 2005+. no para 2000 y 2003 consecutivos.
Rostol
6

Afirmar que no hay una solución alternativa parece un poco prematuro.

Usted dice que su base de datos solo contiene algunas tablas y vistas. ¿Por qué no exportar las tablas y el esquema de vistas cuando SQL crea declaraciones y las ejecuta en su base de datos de destino? Luego, también podría exportar los datos reales a algo como el formato CSV e importarlos a la base de datos de destino, o tal vez incluso escribir algo en C # / C ++ / etc. para exportar / importar los datos reales.

No necesitaría gastar un centavo en nuevas instancias de SQL Server que finalmente no necesita.

Nicholas Hill
fuente
3
E incluya todos los demás objetos, procedimientos almacenados, disparadores, funciones, etc. por supuesto. Del mismo modo, existe la utilidad BCP para copiar datos desde y hacia una base de datos.
RLF
1
Gracias. Ese es el tipo de cosas que tal vez esperaba, pero la disputa de DB no es mi trabajo diario y no estoy muy seguro de si hay otras dependencias o configuraciones (permisos de usuario, etc.) que no se copiarían si yo acabo de exportar las tablas, etc.
Lunatik
44
Muy bien, actualicé mi respuesta. Todavía creo que una solución alternativa es mucho más trabajo que simplemente poner una instancia temporalmente, y hacer dos operaciones de copia de seguridad + restauración confiables y no propensas a errores. (Además, esto no parece ser sobre dinero , ya que el OP ya tiene binarios de 2005, y una base de datos tan pequeña debería poder migrarse usando SQL Express de todos modos.)
Aaron Bertrand
3

No, no puede migrarlo directamente de 2000 a 2012.

Lo que puede hacer es instalar una instancia temporal de 2005 O 2008 o 2008R2, restaurar la base de datos 2000 aquí. Una vez hecho esto, ahora puede actualizar desde la instancia instalada haciendo una copia de seguridad de la base de datos de esa instancia y restaurando en el servidor SQL 2012.

Deberá realizar la migración en dos pasos:

  • Paso 1: haga una primera migración de SQL 2000 a SQL 2008, por ejemplo. Debe ser SQL 2000 SP4, luego siga este paso: Migración de SQL Server 2000 a SQL Server 2008

  • Paso 2: realice una segunda migración de SQL Server 2008 a 2012.

KASQLDBA
fuente
0

Dice que "ha encontrado tres bases de datos antiguas en SQL Server 2000", lo que me hace creer que solo necesita los datos. Supongo que si se estuvieran ejecutando con un propósito, lo sabrías. Si este es el caso, ignore todas las preguntas de los usuarios, seguridad, etc.

Asistente de importación / exportación de todas las tablas Realice una secuencia de comandos de los procedimientos almacenados y las vistas Compruebe los planes de mantenimiento y los trabajos del agente simplemente para documentar los procesos que desee ver más adelante.

Mitch Stein
fuente
0

No puede migrar directamente de SQL Server 2000 a SQL Server 2012, y si intenta hacerlo, obtendrá el siguiente número de error 3169, que está relacionado con problemas de compatibilidad.

La migración a SQL Server 2012 se puede realizar desde una de las siguientes versiones (versiones mínimas) SQL Server 2005 SP4 o SQL Server 2008 SP2 o SQL Server 2008 R2 SP1.

Entonces, el primer paso para migrar de SQL Server 2000 a una de esas versiones, encontré uno de los Asesores de actualizaciones para SQL Server 2008 en el siguiente enlace . Para asegurarse de que todo funcionará sin problemas antes de comenzar el proceso de restauración, debe ejecutar la aplicación. Luego "Inicie el Asistente de análisis del Asesor de actualizaciones" y siga los pasos del asistente.

Después de recibir el informe, debe restaurar la base de datos en el SQL Server 2005 SP4 de destino o SQL Server 2008 SP2 o SQL Server 2008 R2 SP1 y ejecutar el nivel de compatibilidad (puede encontrarlo en la opción de base de datos). Para los inicios de sesión de SQL Server, siga las instrucciones en el siguiente enlace .

Cuando eso esté completo, ahora necesita migrar a SQL Server 2012 repitiendo los mismos pasos desde el servidor al que realizó la primera migración.

Ahmad Abuhasna
fuente
0

Primero, estoy de acuerdo en que no debe migrar de 2000 a 2012 directamente. Creo que ese proceso se ha cubierto bien. Quería sugerirle que averigüe con certeza si alguien está usando las bases de datos y para qué las están usando. Puede ser que no se estén utilizando. Sucede y si ese es el caso, entonces no tienes preocupaciones. Puede ser que agregar 2 o 3 tablas y los datos (para el año 2000 use bcp si desea obtener los datos de una tabla individual, es simple y confiable) a una base de datos 2012 existente para satisfacer las necesidades de los usuarios. Si lo hace, cree las nuevas tablas en una base de datos de 2012 y extraiga los datos que necesita para csv, puede volver a incorporarlos si lo desea. Si tiene que migrar más de una o dos tablas, la forma más simple, segura y mejor es realizar la migración en dos pasos. Don'

dkh63493
fuente
Debe saber que la secuencia de comandos de esquema en 2000 no era 100% precisa. Recuerdo que siempre tuve que editar el guión.
dkh63493