Red de conocimiento informático - Material del sitio web - Cómo restaurar por lotes una copia de seguridad de la base de datos usando un script

Cómo restaurar por lotes una copia de seguridad de la base de datos usando un script

Recomendación de Frog: use el script WMI para restaurar la base de datos SQLSERVER en lotes

Preguntas frecuentes

Ayuda de Frog: restaure la base de datos SQLServer mediante programación

Tengo un directorio en el que se guarda todo Archivos de copia de seguridad de la base de datos SQLServer, como a.bak, b.bak, c.bak, etc. ¿Hay alguna manera de restaurarlos todos a la base de datos SQLSERVER local a la vez? El proceso de restauración consiste en crear automáticamente bases de datos como a, byc. ¿Hay alguna manera de restaurarlos todos a la base de datos SQLSERVER local? para crear automáticamente a, byc.c dicha base de datos y luego restaurar a.bak a a, b.bak a b, etc. Debido a que la ruta del archivo de copia de seguridad original es diferente de la ruta del nuevo. biblioteca, es necesario realizar algún procesamiento adicional. Quién Se puede resolver, porque todavía hay archivos de respaldo de bibliotecas en docenas de directorios, ¡porque los directorios! En cuanto a los archivos de respaldo de la base de datos, ahora tengo un nuevo SQLSERVER instalado en mi máquina y necesito restaurarlos todos. En ese momento, no había subbases de datos, por lo que no podía conectarlos directamente.

Diseño

Puede utilizar un script WMI para escanear el directorio donde se almacenan los archivos de copia de seguridad de la base de datos y luego generar un archivo de script T-sql de acuerdo con ciertas reglas para restaurar la base de datos. y luego use este script para ejecutar el programa osql. La ejecución de este script completará la recuperación de la base de datos. Aquí no se utiliza ningún código de transacción ni manejo de errores excesivo, por lo que la base de datos debe determinarse manualmente. La declaración T-SQL restaurada debería intentar no generar excepciones.

Solución

I. Echemos un vistazo al comando T-SQL para restaurar la base de datos para comprender el principio de creación de T-SQL a través de scripts en el futuro.

Uso maestro

GO

--Si la base de datos que se va a crear ya existe, elimínela

SI EXISTE (SELECCIONE el nombre DEL maestro. dbo.sysdatabases WHERE nombre = N'artículo')

DROP DATABASE [artículo]

GO

--Crea una nueva base de datos y especifica el archivo de datos y nombres de archivos de registro de la base de datos recién creada y posición, tamaño de inicialización

: tasa de crecimiento, valor máximo, etc.

CREAR artículo de BASE DE DATOS

ON

( NOMBRE = N'article_dat',

NOMBRE DE ARCHIVO = N'd:\sql2000\ MSSQL \data\article_Data.MDF',

TAMAÑO = 1,

MAXSIZE = 50,

FILEGROWTH = 5 )

INICIAR SESIÓN

( NOMBRE = N'article_log',

NOMBRE DE ARCHIVO = N'd:\sql2000\MSSQL\data\article_Log.LDF',

TAMAÑO = 1 MB ,

MAXSIZE = 25 MB,

FILEGROWTH = 5 MB )

GO

--Restaura el archivo de copia de seguridad de la base de datos especificada al que acaba de base de datos creada, aquí debe especificar la ubicación del archivo de respaldo de la base de datos

, así como la base de datos que se restaurará. Dado que el archivo de respaldo proviene de una máquina desconocida, las ubicaciones del archivo de datos y del archivo de registro. de la base de datos original y la nueva base de datos en el momento de la copia de seguridad no coinciden, por lo que se debe utilizar el comando CON MOVE para completar el movimiento forzado del archivo. Si

-- es un archivo de base de datos respaldado. a través del administrador, los nombres del archivo de base de datos y del archivo de registro son "_Data" después del nombre de la base de datos "o

--"_Log", esto es una suposición, si este no es el caso, el script puede estar incorrecto

RESTAURAR BASE DE DATOS [artículo]

DESDE DISCO = 'E.:\windowdatabase\article.bak'

CON

MOVER 'article_Data' A 'd:\sql2000\MSSQL\data\article_Data.MDF',

MOVER 'article_Log' A 'd:\sql2000\MSSQL\data\article_Log.LDF'

GO

Esto muestra el poder de T-SQL.