Cambiar Nombre Base

25/05/2005 - 16:35 por Carlo Sorrel | Informe spam
Hola estimados, me estan solicitando cambiar el nombre físico y lógico de
una base de datos, la cual tiene 4 archivos, el principal y tres NDF, con el
lógico no tengo problemas, pero no he encontrado el los BOL el cambio del
archivo físico. Si alguien me puede ayudar se lo agradeceria.
Gracias y saludos.

Atte.,
Carlo Sorrel

Preguntas similare

Leer las respuestas

#6 Alejandro Mesa
25/05/2005 - 18:36 | Informe spam
Carlo,

Para cambiar el nombre de la bd, sql server necesita un lock exclusivo de la
bd y si los usuarios estan conectados, te dara el suguiente error:

Server: Msg 5030, Level 16, State 2, Line 1
The database could not be exclusively locked to perform the operation.

Mi consejo es el siguiente, has un backup de la bd, ponla en modo
SINGLE_USER, has todos los cambios necesarios y atacha la bd. Recuerda
actualizar las cadenas de conexion desde las aplicaciones clientes.


AMB

"Carlo Sorrel" wrote:

Gracias Alejandro, ya tengo claro como realizarlo, me inclino por la opción
del sp_detach_db y sp_attach_db, ya que probe en ambiente de pruebas y
funciona impecable. Lo otro era el cambio del nombre lógico, tambien realice
las pruebas en ambiente de pruebas, y funciona impecable. Ahora tengo un
consulta con respecto a lo último, es necesario realizarlo sin usuarios
trabajando (lo del cambio de nombre lógico) o es por un tema de Seguridad,
ya que realice las pruebas y con usuarios conectados (en pruebas) igual me
lo permite. Te pregunto por un tema de evitar el trasnoche.
Gracias de nuevo por tu ayuda.
Saludos.

Atte.,
Carlo Sorrel

"Alejandro Mesa" escribió en el
mensaje news:
> Carlo,
>
> No existe una sentencia en t-sql para renombrar los archivos fisicos de la
> bd. Se puede hacer pero con el uso de sp_detach_db y sp_attach_db.
>
> Ejemplo:
>
> use master
> go
>
> CREATE DATABASE db1
> ON
> ( NAME = db1_dat,
> FILENAME = 'D:\Program Files\Microsoft SQL
Server\MSSQL\data\db1dat.mdf',
> SIZE = 1MB,
> MAXSIZE = 5MB,
> FILEGROWTH = 1MB)
> LOG ON
> ( NAME = 'db1_log',
> FILENAME = 'D:\Program Files\Microsoft SQL
Server\MSSQL\data\db1log.ldf',
> SIZE = 1MB,
> MAXSIZE = 5MB,
> FILEGROWTH = 1MB)
> GO
>
> alter database db1
> set single_user with ROLLBACK IMMEDIATE
> go
>
> exec sp_renamedb 'db1', 'db2'
> go
>
> alter database db2
> modify file (name = db1_dat, newname = db2_dat)
> go
>
> alter database db2
> modify file (name = db1_log, newname = db2_log)
> go
>
> exec sp_detach_db 'db2'
> go
>
> exec master..xp_cmdshell 'rename "D:\Program Files\Microsoft SQL
> Server\MSSQL\data\db1*.*" db2*.*'
> go
>
> exec sp_attach_db @dbname = N'db2',
> @filename1 = N'D:\Program Files\Microsoft SQL
> Server\MSSQL\Data\db2dat.mdf',
> @filename2 = N'D:\Program Files\Microsoft SQL
Server\MSSQL\Data\db2log.ldf'
> go
>
> exec sp_helpdb 'db2'
> go
>
> drop database db2
> go
>
>
> AMB
>
>
> "Carlo Sorrel" wrote:
>
> > Hola estimados, me estan solicitando cambiar el nombre físico y lógico
de
> > una base de datos, la cual tiene 4 archivos, el principal y tres NDF,
con el
> > lógico no tengo problemas, pero no he encontrado el los BOL el cambio
del
> > archivo físico. Si alguien me puede ayudar se lo agradeceria.
> > Gracias y saludos.
> >
> > Atte.,
> > Carlo Sorrel
> >
> >
> >



Respuesta Responder a este mensaje
#7 Carlo Sorrel
25/05/2005 - 19:01 | Informe spam
Vale, muchas gracias por tus comentarios. me aclaran sobremanera la
pelicula.
Saludos.

Atte.,
Carlo Sorrel

"Alejandro Mesa" escribió en el
mensaje news:
Carlo,

Para cambiar el nombre de la bd, sql server necesita un lock exclusivo de


la
bd y si los usuarios estan conectados, te dara el suguiente error:

Server: Msg 5030, Level 16, State 2, Line 1
The database could not be exclusively locked to perform the operation.

Mi consejo es el siguiente, has un backup de la bd, ponla en modo
SINGLE_USER, has todos los cambios necesarios y atacha la bd. Recuerda
actualizar las cadenas de conexion desde las aplicaciones clientes.


AMB

"Carlo Sorrel" wrote:

> Gracias Alejandro, ya tengo claro como realizarlo, me inclino por la


opción
> del sp_detach_db y sp_attach_db, ya que probe en ambiente de pruebas y
> funciona impecable. Lo otro era el cambio del nombre lógico, tambien


realice
> las pruebas en ambiente de pruebas, y funciona impecable. Ahora tengo un
> consulta con respecto a lo último, es necesario realizarlo sin usuarios
> trabajando (lo del cambio de nombre lógico) o es por un tema de


Seguridad,
> ya que realice las pruebas y con usuarios conectados (en pruebas) igual


me
> lo permite. Te pregunto por un tema de evitar el trasnoche.
> Gracias de nuevo por tu ayuda.
> Saludos.
>
> Atte.,
> Carlo Sorrel
>
> "Alejandro Mesa" escribió en


el
> mensaje news:
> > Carlo,
> >
> > No existe una sentencia en t-sql para renombrar los archivos fisicos


de la
> > bd. Se puede hacer pero con el uso de sp_detach_db y sp_attach_db.
> >
> > Ejemplo:
> >
> > use master
> > go
> >
> > CREATE DATABASE db1
> > ON
> > ( NAME = db1_dat,
> > FILENAME = 'D:\Program Files\Microsoft SQL
> Server\MSSQL\data\db1dat.mdf',
> > SIZE = 1MB,
> > MAXSIZE = 5MB,
> > FILEGROWTH = 1MB)
> > LOG ON
> > ( NAME = 'db1_log',
> > FILENAME = 'D:\Program Files\Microsoft SQL
> Server\MSSQL\data\db1log.ldf',
> > SIZE = 1MB,
> > MAXSIZE = 5MB,
> > FILEGROWTH = 1MB)
> > GO
> >
> > alter database db1
> > set single_user with ROLLBACK IMMEDIATE
> > go
> >
> > exec sp_renamedb 'db1', 'db2'
> > go
> >
> > alter database db2
> > modify file (name = db1_dat, newname = db2_dat)
> > go
> >
> > alter database db2
> > modify file (name = db1_log, newname = db2_log)
> > go
> >
> > exec sp_detach_db 'db2'
> > go
> >
> > exec master..xp_cmdshell 'rename "D:\Program Files\Microsoft SQL
> > Server\MSSQL\data\db1*.*" db2*.*'
> > go
> >
> > exec sp_attach_db @dbname = N'db2',
> > @filename1 = N'D:\Program Files\Microsoft SQL
> > Server\MSSQL\Data\db2dat.mdf',
> > @filename2 = N'D:\Program Files\Microsoft SQL
> Server\MSSQL\Data\db2log.ldf'
> > go
> >
> > exec sp_helpdb 'db2'
> > go
> >
> > drop database db2
> > go
> >
> >
> > AMB
> >
> >
> > "Carlo Sorrel" wrote:
> >
> > > Hola estimados, me estan solicitando cambiar el nombre físico y


lógico
> de
> > > una base de datos, la cual tiene 4 archivos, el principal y tres


NDF,
> con el
> > > lógico no tengo problemas, pero no he encontrado el los BOL el


cambio
> del
> > > archivo físico. Si alguien me puede ayudar se lo agradeceria.
> > > Gracias y saludos.
> > >
> > > Atte.,
> > > Carlo Sorrel
> > >
> > >
> > >
>
>
>
Respuesta Responder a este mensaje
#8 Isaias Islas
26/05/2005 - 02:21 | Informe spam
¿Y entonces lo que comenta el amigo RUBEN VIGON?
Respuesta Responder a este mensaje
#9 Alejandro Mesa
26/05/2005 - 15:38 | Informe spam
Isaias,

El procedimiento sp_renamedb es similar a usar "alter database db_name
MODIFY NAME = new_dbname ". No cambia mas que el nombre de la bd. El resto de
lo indicado por Ruben, se refiere al cambio de nombres logicos. No existe
ninguna contradiccion, solo que le agregue como cambiar el nombre fisico de
los archivos de data y log.


AMB

"Isaias Islas" wrote:

¿Y entonces lo que comenta el amigo RUBEN VIGON?



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida