Archive for SQL Server

Actualizamos bBackup

Volvemos con nuestra aplicación de gestión de copias de seguridad de SqlServer 2005.  Hemos limpiado un poquito su interfaz,  además de actualizar internamente las transacciones de restauración de base de datos y mejorar su rendimiento.

No obstante para mejorarla estáis vosotros con vuestras sugerencias y detección de errores. Aquí os dejamos un pequeño manual, que para los que ya estáis familiarizados con la aplicación es muy similar al anterior.

El inicio de la aplicación es el mismo de siempre

Os deberéis loguear con el usuario y contraseña de la base de datos que os creasteis en el plesk.

Hemos separado el repositorio de copias y la restauración de una copia local.

La funcionalidad de este apartado es exactamente el mismo que en la anterior entrega.

- Crear copia ahora

Genera una copia en el momento de nuestra BD.

- Descargar

Nos bajaremos la copia de la fecha seleccionada.

- Restaurar

Restauraremos la copia de la fecha seleccionada.

Restauración de una copia local.

Seleccionamos el fichero de nuestro PC y le damos a “Subir copia”.

Se nos mostraran los ficheros que contiene la copia por si no hubiéramos subido el back correcto, (más de una vez pasa). Si todo está correcto hacemos clic en “Continuar”.

Para comenzar con el proceso de restauración haremos clic en “Finalizar”

Como siempre esperamos que os sea de utilidad y esperamos seguir mejorando.

Saludos.

Comentarios

Eliminar contenido de todas las tablas de una Base de Datos SQL SERVER

Es común que para realizar algunas pruebas sobre Base de Datos hagamos una réplica de la misma y la vaciemos de datos.

El problema viene cuando tenemos una base de datos pesada, con muchas tablas y datos, y nos toca o bien lanzar un script de creación de tablas vacias (que en ocasiones no respeta claves ajenas, indices, etc...) o bien hacer truncates a mano.

Bien, pues me he puesto a investigar y... bualá! Un script en TSQL para SQL SERVER 2005 que recorre las tablas de una base de datos, elimina las restricciones (para que no falle al borrar datos de una tabla relacionada con otra), hace un truncate de la tabla y vuelve a reestablecer las restricciones tal cual estaban.

SQL:
  1. EXEC sp_MSForEachTable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
  2. GO
  3. EXEC sp_MSForEachTable 'ALTER TABLE ? DISABLE TRIGGER ALL'
  4. GO
  5.  
  6. EXEC sp_MSForEachTable
  7. 'BEGIN TRY
  8. TRUNCATE TABLE ?
  9. END TRY
  10. BEGIN CATCH
  11. DELETE FROM ?
  12. END CATCH;'
  13.  
  14. EXEC sp_MSForEachTable 'ALTER TABLE ? CHECK CONSTRAINT ALL'
  15. GO
  16. EXEC sp_MSForEachTable 'ALTER TABLE ? ENABLE TRIGGER ALL'
  17. GO

De este modo tendríamos la tabla vacia de datos pero respetando su estructura, restricciones, relaciones, vistas, procedimientos almacenados... etc

Espero que os sea útil! Desde luego a mi me ha ahorrado unas horitas de trabajo ;-)

¡Saludos!

Comentarios (4)

Datasets ¿Sí o no?

Los Datasets forman parte de ADO.NET. Una librería de acceso a datos que se usa en el framework. Desde la versión 2.0 del framework tomaron si cabe más protagonismo debido al nuevo enfoque. Se completaron con los TableAdapters, clases concebidas para trabajar en conjunto y que exponen una serie de consultas de casi cualquier tipo que pueden ser diseñadas de manera muy cómoda a través del Visual Studio.

Los puntos a favor son muchísimos, seguro que muchos fuera de mi conocimiento por falta de uso. Nos limitamos a utilizarlos a través de un Access o SQL Server pero van más allá. Queda ya para la historia su capacidad de integrar mediante un mismo modelo de programación el acceso a tantos orígenes de datos distintos, además de permitirnos trabajar en nuestra aplicación directamente y de manera desconectada con variables debidamente tipadas. Esencial también y punto estrella para mí, el haber ofrecido de manera transparente y casi desconocida para muchos programadores la parametrización de las consultas SQL evitando de esta manera infinidad de errores de Inyección SQL y comodidad extrema a la hora de pasar parámetros a la query (¿acaso alguien recuerda ya pasar una fecha al formato SQL correcto?).

Hago incapié en la seguridad y en la inyección SQL por la peligrosidad de este tipo de fallos de los que tan solo el programador se puede proteger (no hay política directa de seguridad que tu compañía de hosting te pueda ofrecer). Especialmente peligroso en motores potentes como SQL Server, Oracle, etc. que son capaces de ejecutar varios comandos en una misma sentencia simplemente separando por punto y coma. Un atacante hábil en una consulta mal parametrizada puede manipular la SQL completándola y añadiendo detrás la query más dañina que se le ocurra. No os costará nada encontrar muchísima literatura sobre el tema y algunos casos famosos.

Por desgracia, todas estas ventajas no son gratis o baratas desde el punto de vista de la eficiencia. Los Datasets son objetos complejos que no solo representan tablas si no que además representan relaciones entre tablas. Esto que no deja de ser ideal en muchos escenarios supone que al realizar operaciones sobre el DataSet es necesario comprobar que las restricciones de integridad referencial se cumplen, con el coste computacional asociado.

He visto en muchos proyectos además, la manía de arrastrar tantas tablas como se pueda. En muchas ocasiones no hace más que provocar una caida de rendimiento en varios aspectos. En primer lugar en tiempo de ejecución. Un DataSet mal dimensionado es más lento al cargarse y mucho más lento al operar sobre él. Además, en el trabajo del día a día del programador, manejar uno de estos a través del Visual Studio puede ser una odisea.

Desde un punto de vista transaccional y si no proponemos una estructura mejor cada operación con un TableAdapter inicializa una nueva conexión. Ello nos limita a la hora de utilizar transacciones, ya sea a nivel del motor de base de datos, o a un nivel superior utilizando clases como TransactionScope del framework. Sobra decir que cada vez cuesta más encontrar aplicaciones donde se pueda pasar sin entender una infinidad de operaciones de manera atómica y más en un entorno tan distribuido como el actual.

Para terminar, desde el punto de vista de la interoperabilidad. Probablemente te interese esta parte si te estás iniciando en WCF o tecnologías similares. El hecho de que un Dataset se serialice automáticamente como XML no quiere decir que todas las aplicaciones sean capaces de interpretarlo. De hecho, será difícil de ver si la aplicación consumidora del servicio no es .NET. El schema del DataSet es complicado de procesar y en la mayoría de los casos tremendamente pesado en comparación con serializar una clase formada por tipos básicos, definidos por el programador o con una serialización personalizada.

Comentarios

Parada de bBackup por mantenimiento

EDITADO:

bBackup ya está de nuevo funcionando... ha sido rápido eh? :-)


Hola a todos!

Durante unos días la aplicación de gestión de copias de seguridad bBackup estará detenida.

Estamos haciendo ciertas modificaciones en el servidor lo que nos impide tener en funcionamiento la aplicación durante unos días.

Para los que no conozcan bBackup no está de más saber de que va para cuando vuelva a estar activa ;-)

Esperamos tenerlo listo cuanto antes.

Disculpad las molestias.

Dpto. Técnico

Comentarios (3)

Restauración Local desde BBackup

fotobbackup.png

Hola a todos!!Como alguno de vosotros no se aclara a la hora de hacer la restauración local desde Bbackup , explicaremos brevemente de que trata, como se hace y que resultado se obtiene.En primer lugar deberemos tener creada una base de datos en el Plesk . Con su usuario y contraseña.

Hay que recalcar que el usuario y contraseña que creemos en el plesk sera el que prevalezca después del restore.

Por ejemplo:

Nosotros nos creamos una Base de Datos en el Plesk a la que llamaremos <Prueba>, como usuario <prueba_usuario> y como contraseña <1234>.

Imaginemos que queremos hacer un restore de una base de datos que tenemos en nuestro equipo local llamada <Local>, como usuario <usuario_Local> y contraseña <4567> . En este caso la cadena de conexión de nuestra base de datos en local sera algo asi:

<data source=127.0.0.1;initial catalog=Local;password=4567;persist security info=False;user id=usuario_Local>

Pero esta ConnectionString no nos valdría, tendríamos que modificarla en nuestro web config y subirla por ftp a nuestro sitio.La ConnectionString quedaría así:

<data source=sql1.servidoreswindows.net;initial catalog=Prueba;password=1234;persist security info=False;user id=prueba_usuario>

Una vez cambiada la cadena de conexión ya podríamos acceder a nuestra base de datos desde nuestra aplicación, y para acceder a ella desde el sqlServer utilizaríamos el usuario y contraseña, prueba_usuario y 1234 respectivamente.

Seguiremos desarrollando Bbackup para que cada día sea más fácil de utilizar.

Un Saludo.

Dpto. de Desarrollo de Software.

Domitienda.com

Comentarios (1)

bBackup, gestiona tus copias de seguridad de Sql Server 2005

Hola, aquí os dejamos una aplicación marca de la casa para que podais, bajar, restaurar y crear copias de seguridad de vuestras bases de Datos SQL Server 2005 de domitienda.com

El funcionamiento de la aplicación es muy sencillo.El Login:

login.jpg

 

Os deberéis loguear con el usuario y contraseña de la base de datos que os creasteis en el plesk.

Al conectaros vereis un listado de las copias de seguridad automáticas que realizamos cada madrugada. En nuestros servidores guardamos las copias de seguridad de hasta una semana de antigüedad.

Tendréis la posibilidad de descargaros en vuestro Pc la copia que más os interese, así como crear una nueva copia de seguridad en tiempo real.

También podréis restaurar tu base de datos con una copia de seguridad que tengáis en vuestra maquina (subiéndola con el apartado de "Restauración Local" mostrado en la parte inferior) o restaurar una copia de nuestro repositorio.

 

panel1.png

 

Espero que le saquéis partido.

Si teneis alguna duda escribid un comentario u os esperamos en el soporte en vivo de domitienda.com

Nota: Los restores no se hacen automáticamente, un poquitin de paciencia que tarda unos segunditos.

 

La dirección de la aplicación es : http://bbackup.servidoreswindows.net

 

Un saludo.

Equipo Domitienda

 

Comentarios (12)

Conectar a una Base de Datos Sql Server 2005 desde Asp .Net

Conectarse a una base de datos Sql Server 2005 puede ser una pequeña aventura para los principiantes en asp .net

Para ellos hemos pensado este pequeño tutorial que esperamos que sirva de ayuda a la hora de conseguir conectarse a una base de datos en el hosting de domitienda.com

El primer paso es crearnos la base de datos Sql Server 2005 vacia desde el Panel de Control Plesk.

Para ello iremos a Inicio > [tu dominio.com] > Bases de Datos > Crear Nueva Base de datos y creamos una BD vacia tal y como se ve en la imagen:

crear_bd.png

Tras hacer esto necesitaremos crear un usuario para el acceso a la misma.

new_user.png

Por ejemplo creamos el usuario "prueba" con pass "123456".

¡Ya tenemos nuestra primera base de datos Sql Server 2005 lista para ser usada!

¿Como puedo crear tablas en esta base de datos? Eso ya lo contamos :-P echa un vistazo a este post. Lo que nos interesa ahora es como conectar desde una aplicación Asp .Net con la recién creada base de datos Sql Server.

Para ello tenemos que definirnos en nuestro web.config una "Cadena de Conexión" (o connectionstring).

Las connectionstrings indican a la aplicación web la ruta que debe seguir para conectarse a una base de datos, sea del tipo que sea. En este ejemplo vamos a explicar como conectarnos con Sql Server 2005.

Para ello abriremos nuestro Web.Config y dentro del tag <configuration> añadimos el siguiente código:

<connectionStrings>

<add name="MiConnectionString"
connectionString="Data Source=sql1.servidoreswindows.net;
Initial Catalog=pruebaDomitienda_BD;
Persist Security Info=True;User ID=Prueba;
Password=123456"providerName="System.Data.SqlClient" />

</connectionStrings>

Como podeis ver, los datos que hemos introducido son los siguientes:

Data Source: sql1.servidoreswindows.net -> El servidor dedicado de Sql Server 2005 de Domitienda.com

Initial Catalog: pruebaDomitienda_BD -> Nombre de la base de datos que hemos creado desde el Plesk

User ID: Prueba

Password: 123456 -> Usuario y Pass de acceso a la base de datos.

Una vez hecho esto ya podríamos conectarnos mediante ADO .NET y el SqlConnector de .Net a la BD usando la ConnectionString que acabamos de crear.

Ah! Y si necesitas crear una ConnectionString mediante ODBC, OleDb u otro estandar de conexión, visita www.connectionstrings.com, donde encontrarás información sobre como crear tus cadenas de conexion para todo tipo de bases de datos habidas y por haber!

¡Un saludo!

Comentarios (3)

Descargar Sql Server Management Studio Express 2005

Sql Server Management Studio es sin duda la mejor herramienta para manipular las bases de datos Sql Server 2005.

sql_server_mms.gif

Esta herramienta te ofrece un entorno sencillo y rápido desde el que puedes crear tablas, realizar consultas SQL, crear diagramas entidad-relación, procedimientos almacenados y vistas.

Primero, créate una base de datos SQL Server desde el Panel de Control Plesk. También es necesario crear un usuario (con su nombre y contraseña correspondiente).

Después, ejecuta el SQL Server Managent Studio y escribe lo siguiente:

  • Servidor: sql1.servidoreswindows.net -> El nombre de
    nuestro servidor dedicado de Sql Server 2005 exclusivo para clientes de domitienda.com
  • Login: Nombre del usuario de acceso a la base de datos.
  • Password: Contraseña de acceso a base de datos.

Tal y como se puede ver en la imagen siguiente:

login_sql.jpg

Puedes descargar esta estupenda aplicación de forma gratuita desde aquí.

Comentarios (12)

Configurar Application Services de ASP.NET 2.0 con SQL Server

Entre las novedades que ASP.NET 2.0 incluía respecto a su anterior versión es la gestión de usuarios, algo de lo más común en las mayoría de las webs. Normalmente utiliza una base de datos en local utilizando el SQL Server Express que trae el propio Visual Studio, pero si queremos aprovechar nuestro servidor de SQL Server 2005 tendremos que realizar algún paso para que todo funcione correctamente.

logo asp.net

En el propio servidor debemos utilizar la herramienta aspnet_regsql.exe que viene con el Framework 2.0 de .NET cuya utilidad es preparar nuestra base de datos con la estructura que necesita nuestra aplicación ASP.NET 2.0. Se encuentra en la carpeta C:\WINDOWS\Microsoft.NET\Framework\v2.0.xyz. Al ejecutarlo nos aparecerá un wizard desde el cual podremos elegir la base de datos alojada en nuestro servidor de SQL Server 2005 a la que se le añadirán las tablas necesarias.

logo sql server

Después simplemente hay que cambiar la cadena de conexión de nuestra aplicación para que apunte al servidor y ya está.

<configuration>

<connectionStrings>

<remove name=”LocalSqlServer”/>

<add name="LocalSqlServer" connectionString="Data Source=sql1.servidoreswindows.net;Initial Catalog=base_de_datos;User Id=usuario;Password=password;" providerName="System.Data.SqlClient"/>

</connectionStrings>

</configuration>


Éste será el único paso que deberás realizar, ya que del resto nos ocupamos nosotros.

Comentarios

Add to Technorati Favorites