Actualmente tengo una base de datos llamada SSO, la cual deseo crear una
replica exacta en el mismo servidor (quisiera llamarla SSO_BK).
El caso es que utilizo las opciones de exportar datos, pero no me fuciona
con los procedimientos almacenados, vistas y diagramas.
Como puedo crear una copia de mi base de datos, con otro nombre o instancia?
Has un full backup de la db y luego haces restore usando la opcion "with
move".
Ejemplo:
use master
go
backup database northwind
to disk = 'c:\temp\northwind.bak'
go
restore database northwind_1
from disk = 'c:\temp\northwind.bak'
with
move 'Northwind' to 'c:\data\northwind_1\northwnd_1.mdf',
move 'Northwind_Log' to 'c:\data\northwind_1\northwnd_1.ldf'
go
use northwind_1
go
AMB
backup database ESOCA
to disk = 'c:\temp\ESOCA.bak'
go
create database ESOCA_1
restore database ESOCA_1
from disk = 'c:\temp\ESOCA.bak'
with
move 'ESOCA' to 'C:\archivos de programa\Microsoft SQL
Server\MSSQL\Data\ESOCA_1\ESOCA_1.mdf',
move 'ESOCA_Log' to 'C:\archivos de programa\Microsoft SQL
Server\MSSQL\Data\ESOCA_1\ESOCA_1.ldf'
go
----------------------------------------------
me da el siguiente resultado en el Analizador de Consulta SQL:
Procesadas 184 páginas de la base de datos 'ESOCA', archivo 'ESOCA_Data', en
el archivo 3.
Procesadas 1 páginas de la base de datos 'ESOCA', archivo 'ESOCA_Log', en el
archivo 3.
BACKUP DATABASE procesó correctamente 185 páginas en 0,304 segundos (4,961
MB/seg.).
El proceso CREATE DATABASE está asignando 0.75 MB en el disco 'ESOCA_1'.
El proceso CREATE DATABASE está asignando 0.49 MB en el disco 'ESOCA_1_log'.
Servidor: mensaje 3234, nivel 16, estado 2, línea 4
El archivo lógico 'ESOCA' no es parte de la base de datos 'ESOCA_1'. Use
RESTORE FILELISTONLY para enumerar los nombres de los archivos lógicos.
Servidor: mensaje 3013, nivel 16, estado 1, línea 4
Fin anómalo de RESTORE DATABASE.
Observa que me da un mensaje el servidor, que ESOCA no es parte de la base
de datos ESOCA_1
NOTA: Probe el ejemplo que tu me colocastes y tampoco me funciono, me da error
No hace falta crear la db, la operacion "restore" lo hara por ti. Asegurate
que estas referenciando el nombre logico de los archivos correctamente.
Utiliza el comando "restore filelistonly" y fijate en la columna LogicalName.
Para que te funcione el ejemplo que postee, debes haber creado el folder
"c:\data\northwind_1".
use master
go
backup database northwind
to disk = 'c:\temp\northwind.bak'
go
restore filelistonly
from disk = 'c:\temp\northwind.bak'
go
restore database northwind_1
from disk = 'c:\temp\northwind.bak'
with
move 'Northwind' to 'c:\data\northwind_1\northwnd_1.mdf',
move 'Northwind_Log' to 'c:\data\northwind_1\northwnd_1.ldf'
go
AMB
backup database northwind
to disk = 'c:\temp\northwind.bak'
go
restore database northwind_1
from disk = 'c:\temp\northwind.bak'
with
move 'Northwind' to 'C:\Archivos de programa\Microsoft SQL
Server\MSSQL\Data\northwnd_1.mdf',
move 'Northwind_Log' to 'C:\Archivos de programa\Microsoft SQL
Server\MSSQL\Data\northwnd_1.ldf'
go