944 063 154

Blog

Etiqueta: SQL

Clonar una base de datos

Publicado enSistemas TI

A fin de realizar pruebas, actualizaciones o cambios previamente es recomendable tener una copia o hacer las pruebas con dicha copia sin tocar la base de datos en producción. Para ello, podemos clonar nuestra base de datos de forma sencilla desde el panel de control. Esta técnica es válida para bases de datos mySQL cómo MSSQL. Además de clonar una base de datos, también es posible repararla; encontrarás información sobre ello en nuestros artículos de “Reparar bbdd parte 1” y “Reparar bbdd parte 2”, en el que te lo explicamos paso a paso.

Clonar una base de datos

1) Desde el panel de control Plesk > Sitios Web y Dominios > Bases de datos y pinchamos en Copiar.

2) – Suscripción de destino: Podremos escoger otro dominio/suscripción en el caso de que tengamos más alojamientos con la misma cuenta en el mismo servidor.

  • Base de datos de destino: Creamos una base de datos nueva con el nombre que le queramos dar.
  • Crear una copia completa: Seleccionamos esta opción si queremos traernos todos los registros de la base de datos de origen. En el caso de que sólo necesitemos la estructura dejaríamos la opción sin marcar.

3) Con esto se empezará a clonar la base de datos, dependiendo del tamaño de la misma te podrás tomar el café tranquilo o no ;). Fíjate en que no da la opción de Webadmin, sino existe un usuario con permisos.

4) En la pestaña Usuarios podemos crear el acceso correspondiente.

 

clonar una base de datos-linube

Con esto ya tenemos nuestra base de datos clonada, rápido y sencillo ¿verdad?.

clonar una base de datos-sql

Exportar/Importar una base de datos MySQL utilizando Plesk y phpMyAdmin

Publicado enSistemas TI

En este artículo explicaremos cómo mover el contenido de una base de datos MySQL a una nueva; para ello, utilizaremos Plesk y phpMyAdmin.

Exportar una base de datos MySQL

1) En el panel de control Plesk vamos a SITIOS WEB Y DOMINIOS > Bases de Datos.

2) Seleccionamos la opción Webadmin de la base de datos origen (la que queremos exportar).

3) Una vez en phpMyAdmin, vamos a la opción Exportar y le damos a Continuar.

Importar una base de datos MySQL

Una vez tenemos la base de datos, hay que ir al Webadmin de la base de datos de destino, si aún no tenemos una base de datos es el momento de crearla desde PLESK.

1) Antes de importa la base de datos tenemos que editar el archivo .sql que nos hemos descargado, para ello se puede usar cualquier editor de texto simple, en este ejemplo yo uso Sublime Text.

Tenemos 2 líneas importantes:

CREATE DATABASE -> La borramos entera. Ya que no es necesario crear la base de datos al haberlo hecho desde Plesk.
USE databasename -> El databasename debe coincidir con el nombre de la base de datos destino.

base de datos MySQL-mysqlsublime

 

 

 

 

 

 

 

 

 

 

 

 

2) Con nuestro .sql listo para el combate. Vamos a la opción Importar > Seleccionamos la base de datos a subir y le damos a Continuar.

base de datos MySQL-mysqlimport4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3) Si todo ha ido bien, veremos que se han creado las correspondientes tablas y sus registros.

base de datos MySQL-mysqlimport5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MySQL es la mayor fuente de bases de datos del mundo. Consulta su web, aquí. 

En cambio, si lo que deseas es clonar una base de datos, pincha aquí. Todo ello y mucho más en nuestro blog tecnológico.

Las 10 consultas que más CPU consumen en SQL Server

Publicado enSistemas TI

En ocasiones, es posible que nuestro SQL Server tenga un gran consumo de CPU. Una buena forma de saber de dónde viene ese consumo excesivo de CPU es realizar consultas. De esta forma podremos saber cuáles son las que más sobrecargan, de media, nuestro servidor. Este consumo elevado de CPU en el servidor puede deberse a diferentes motivos; desde fallos en la memoria del servidor a espacio insuficiente. También es posible que esto se deba a la presencia de algún elemento malicioso que ejecuta demasiada actividad aunque ésta no sea visible.

En cualquier caso, el consumo de CPU es un aspecto que no debe descuidarse en un servidor. Ya que esto podría afectar al rendimiento del servidor y provocar, incluso, problemas de operatividad.

Consultas con mayor consumo de CPU

Para conocer dónde se encuentra el problema, podemos recurrir a un script. De esta forma podremos saber cuáles son las consultas con un consumo más elevado de CPU; y que pueden sobrecargar la CPU de nuestro servidor SQL.

SELECT TOP 10
qs.total_worker_time/qs.execution_count as [Avg CPU Time],
SUBSTRING(qt.text,qs.statement_start_offset/2,
(case when qs.statement_end_offset = -1
then len(convert(nvarchar(max), qt.text)) * 2
else qs.statement_end_offset end -qs.statement_start_offset)/2)
as query_text,
qt.dbid, dbname=db_name(qt.dbid),
qt.objectid
FROM sys.dm_exec_query_stats qs
cross apply sys.dm_exec_sql_text(qs.sql_handle) as qt
ORDER BY
[Avg CPU Time] DESC

Para mejorar aún más el rendimiento de tu servidor, puedes consultar cuáles son las consultas SQL Server que más se ejecutan. De esta forma, optimizarás al máximo el rendimiento de tu servidor. Un cambio que se reflejará en el comportamiento de los sitios web alojados en él.

Las 10 consultas que más se ejecutan en Sql Server

Publicado enSistemas TI
¿Quieres conocer las consultas SQL Server que más ejecuta tu servidor? En las tareas de administración de SQL Server, es necesario recabar información. Especialmente, a fin de conocer las sentencias que más hacen trabajar al servidor. SQL Server es un sistema que ayuda a la gestión de las bases de datos. Un producto de Microsoft que está basado en el modelo relacional. Pero, además, se utiliza para el rendimiento de instancias en el motor de la base de datos, depurar procedimientos o llevar a cabo pruebas de esfuerzo.
Lo habitual es que, entre las consultas más ejecutadas en SQL Server, se encuentren consultas de selección o básicas. Pero también pueden darse cualquiera de los otros tipos de consultas, como consultas de descripción, con predicado o de acción.

Las consultas más ejecutadas

Para conocer cuáles son las consultas que con mayor frecuencia se realizan en SQL Server basta con un script. Estas líneas de texto mostrarán, entre otras cosas, el top ten de las consultas que más veces se repiten. Es posible que, en muchos casos, éstas se repitan. Para evitar las duplicidades en las consultas, puedes utilizar servicios de caché. De esta forma, se mostrarán las consultas más ejecutadas sin repeticiones.


SELECT TOP 10
qs.execution_count,
SUBSTRING(qt.text,qs.statement_start_offset/2,
(case when qs.statement_end_offset = -1
then len(convert(nvarchar(max), qt.text)) * 2
else qs.statement_end_offset end -qs.statement_start_offset)/2)
as query_text,
qt.dbid, dbname=db_name(qt.dbid),
qt.objectid
FROM sys.dm_exec_query_stats qs
cross apply sys.dm_exec_sql_text(qs.sql_handle) as qt
ORDER BY
qs.execution_count DESC

Activar el modo exclusivo en SQL Server

Publicado enSistemas TI

Cuando nos disponemos a realizar ciertas operaciones, es posible que se nos requiera un acceso en modo exclusivo a una determinada base de datos. En el caso de que haya conexiones abiertas contra la base de datos, obtendremos un error de aspecto similar a este:

Mens. 5030, Nivel 12, Estado 2, Línea 1
No se puede bloquear de forma exclusiva la base de datos para realizar la operación.

Para poder solucionarlo, debemos ir a las propiedades de la base de datos. Una vez allí, realizaremos el siguiente camino:  opciones > estado> restringir acceso. Una vez allí, seleccionamos single.

Modo exclusivo mediante consultas

Si lo prefieres, también puedes ejecutar la misma acción a través de una consulta a la base de datos:

ALTER DATABASE [nombre_bd] SET SINGLE_USER WITH ROLLBACK IMMEDIATE

GO

Es entonces cuando podemos proceder a realizar los cambios necesarios para otorgar a la aplicación un acceso exclusivo a la base de datos.

Si queremos volver al modo de múltiples usuarios, es necesario matar la conexión con la base de datos. Y, a continuación, cambiar de nuevo el modo de conexión. Es decir, deshacer los cambios para otorgar modo exclusivo. Algo que puedes hacer fácilmente mediante la siguiente consulta:

Kill [spid]
ALTER DATABASE [nombre_bd] SET MULTI USER

De esta forma, se evitará que aparezca el error si una aplicación requiere de acceso exclusivo a una base de datos. Además, podrás deshacer esta operación en cualquier momento con la misma facilidad.

Agregar o quitar una interfaz de red en SQL Server

Publicado enDesarrollo web Sistemas TI

Una interfaz de red es la encarga de posibilitar que una máquina virtual, en este caso de Azure, pueda comunicarse con otros recursos de la red. Por ejemplo, gracias a la interfaz de red se establece una conexión entre internet, Azure y otros recursos locales. Por ello, una única máquina puede contar con varias interfaces de red.

Cuando se instala SQL Server, el gestor de bases de datos se configura teniendo en cuenta las interfaces de red que están habilitadas en ese momento. Pero, si más tarde, queremos habilitar o deshabilitar una nueva intefaz tendremos que hacerlo manualmente; ya que ésta no aparecerá/desaparecerá de forma automática de la configuración de red.

Añadir interfaz de red desde el registro

Una de las mejores formas para agregar o quitar interfaces de red es editando el registro. Toda la información de este registro se guarda en la siguiente ubicación:

[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft SQL ServerMSSQL.1MSSQLServerSuperSocketNetLibTcp]

Por lo tanto, una forma de las formas existentes para quitar una interfaz de red es borrar su registro. Para luego volver a añadirla, lo que podemos hacer es exportar una clave que ya existía y editarla de la forma que prefiramos. Así, cuando más tarde se ejecute el .reg, se insertarán los cambios que hemos introducidos.

interfaz de red

Cómo cambiar formato de SQL Server (dateformat)

Publicado enSistemas TI

¿Tienes instalado por defecto otro idioma en SQL Server? Este es un problema que puede suceder al migrar una base de datos a otro entorno mssql que no comparta el mismo lenguaje de instalación que el que teníamos en un principio. Las ocasiones en las que hace falta cambiar el formato de sql server son bastante numerosas.

En este caso ha sido al restaurar una base de datos que se encontraba en un sql con lenguaje “español” a otro que habían instalado en “us_english”. Con el primero las fechas (campos de tipo datetime) se muestran en formato “dd/mm/yyy” pero en inglés las fechas tienen el formato “mm/dd/yyyy”.

Si mostramos la tabla desde el Microsoft Sql Server Managmentent Studio veremos que las fechas se muestran tal y como hemos importado. Pero el problema viene cuando queremos hacer una consulta. Por ejemplo, desde nuestra web, y Sql Server nos devuelve la fecha; entonces veremos que se produce un error que está relacionado con el formato de la fecha. Puestos en situación, vamos manos a la obra.

¿Como ver el lenguaje de Sql Server?

select @@language

Si mssql ha sido instalado en inglés seguramente obtendrás us_english como resultado.

Y, ¿cómo podemos ver todos los lenguajes disponibles y sus propiedades? 

  sp_helplanguage

sql server-lenguaje

¿Cómo establecer el lenguaje?

De esta manera establecemos el lenguaje español para todas las consultas que lancemos desde la sesión y con el usuario que estemos conectados:

SET LANGUAGE Español

También podemos, por ejemplo en el caso de nuestra web, antes de lanzar una consulta sql especificar el dateformat deseado en cada caso, indicando: 

set dateformat dmy

¿Cómo establecer el lenguaje predeterminado para TODAS las bases de datos del servidor?

De esta manera conseguimos que por defecto se devuelvan las fechas en formato dd/mm/yyyy. Lo que debemos hacer es abrir Microsoft Sql Server Managmentent Studio, ir a las propiedades del servidor SQL y en el apartado avanzado, modificar la opción idioma predeterminado por Español.

idioma-predeterminado-sql server

 

 

 

 

 

 

 

 

Además hay que tener en cuenta el lenguaje por defecto de los Inicios de sesión que existan en el servidor, ya que los que creemos nuevos a partir de ahora lo harán con lenguaje español. Para ello:

USE (master) 

GO

AFTER LOGIN (serversqlsergiosainz) WITH DEFAULT_DATABASE=(master) DEFAULT _LANGUAGE= (Spanish)

GO

Recuerda que también es posible modificar el idioma por el deseado desde las propiedades del usuario.

Si quieres saber más acerca de SQL Server, consulta nuestros artículos. 😉

Recuperar una BBDD sin archivo de log en Sql Server

Publicado enSistemas TI

Si por cualquier motivo no tienes el archivo de transacciones (.ldf) obtendrás un error de este tipo a la hora de intentar adjuntar una BD desde el Wizard de SQL. Si quieres recuperar una bbdd sin archivo de log en Sql Server tendrás que seguir los siguientes pasos.

recuperar una bbdd-sql

Recuperar una BBDD

Suponiendo que el .mdf esté en buenas condiciones puedes adjuntar la BD y forzando la reconstrucción del archivo de transacciones.

El siguiente ejemplo muestra como adjuntar la BD “sergiosainz” indicando el path a mí .mdf (sustituye esos valores por los que correspondan en tu caso):

USE [master]
GO
CREATE DATABASE [sergiosainz] ON
(FILENAME = N’C:Program FilesMicrosoft SQL ServerMSSQL10.MSSQLSERVERMSSQLDATAsergiosainz.mdf’)
FOR ATTACH_REBUILD_LOG
GO

Ya sabes que estamos a tu disposición para cualquier duda; ¡escríbenos para lo que sea!

Consulta nuestro sección de Sistemas TI para más información.

Copiar tablas de una bd SQL Server a otra

Publicado enSistemas TI

Si tenemos una base de datos en producción y queremos disponer de una copia de esos datos para desarrollo, sólo necesitamos algunas tablas.  El siguiente punto será copiar tablas de una bd SQL Server a otra.

Destacar que aunque existe la forma de hacerlo mediante script, en esta ocasión utilizaremos el Wizard.

Cómo copiar tablas de una bd SQL Server a otra

1) Seleccionamos la base de datos destino e importamos (Tasks > Import Data…)

Copiar tablas de una bd SQL Server a otra-I

2) Inicia el wizard.

Copiar tablas de una bd SQL Server a otra-II

3) Indicamos el nombre de servidor, en nuestro caso cómo es localhost podemos poner un punto. La autenticación mediante Windows o Sql y finalmente si los datos son correctos nos dejará seleccionar la base de datos de origen, en nuestro caso LINUBE_PROD.

Copiar tablas de una bd SQL Server a otra-III

4) De la misma forma, en este paso indicamos el destino. Para nosotros LINUBE_DEV. Si no tuviésemos la base de datos de destino ya creada, podemos darle a “”New…” para crearla.

Copiar tablas de una bd SQL Server a otra-IV

5) En el siguiente apartado dejamos la primera opción marcada.

Copiar tablas de una bd SQL Server a otra-V

6) Ahora nos mostrará las tablas y vistas que podemos importar, en nuestro caso sólo existe una tabla (T_Servidores_Cloud) que es la que hemos creado a modo de ejemplo. Cómo en el destino no existe la tabla, automáticamente nos la creará con el mismo nombre y los mismos campos.

Copiar tablas de una bd SQL Server a otra-VI

7) Si necesitamos que el nombre sea otro, también podemos editarlo. Si además queremos controlar los campos de destino podemos pinchar en el botón “Edit Mappings…” y nos mostrará todas las posibilidades.

Copiar tablas de una bd SQL Server a otra-VII

8) Finalmente tenemos un resumen de lo que se va a hacer y podemos darle a “Finish”.

Couchbase y el esfuerzo por la consolidación NoSQL

Publicado enDesarrollo web

CouchOne, la empresa creadora de CouchDB, y Membase, la empresa madre de Membase Server y Memcached, se han fusionado para crear una nueva iniciativa denominada Couchbase. Desde la fusión, cada una de ellas continuará asistiendo y apoyando sus respectivos proyectos CouchDB, Membase y Memcached, pero han querido crear este nuevo proyecto de código abierto que busca unir esfuerzos en la dirección de la normalización de las bases de datos no relacionales.

Ahora, la nueva compañía tendrá por CEO al ex-CEO de Membase, Bob Wiederhold. El cofundador y CEO de CouchOne, Damien Katz, será el CTO de la misma. Casualidades de la vida, antes de la fusión, Membase estaba buscando un CTO; mientras, CouchOne andaba detrás de incorporar un nuevo CEO. Todos contentos.

Nuevo panorama en las bases de datos

Esta operación se enmarca en el nuevo escenario que muchas empresas se están encontrando en Estados Unidos, donde ya se habla y se comenta acerca de un posible avance de las bases de datos NoSQL, basándose, en parte, en las decisiones a favor de aplicaciones como FourSquare (a pesar de los problemas que llegan a la hora de escalar) o Twitter.

Por el momento, hay una larga distancia de ventaja de las bases de datos relacionales. En el ámbito empresarial (sobretodo) SQL se encuentra por encima de las NoSQL. Y si esto es así en EEUU, en España, existen muchos consultores y técnicos de sistemas que ni siquiera saben en qué consiste o qué es NoSQL.

Es cuestión de tiempo comprobar si verdaderamente es el paso evolutivo natural de las bases de datos ¿Qué opináis?

Recuperar el último id insertado en SQL Server con mssql de php

Publicado enDesarrollo web

¿Eres uno de los que aún no utiliza el driver oficial de SQL Server? ¡Estás de enhorabuena! A continuación, te dejamos un pequeño tip para recuperar el último id insertado en una consulta de SQL Server con la obsoleta extensión mssql de php.

Cabe destacar que el proceso resulta muy sencillo y que no hacen falta conocimientos avanzados de programación.

Cómo recuperar el último ID insertado


$q = mssql_query("INSERT INTO TableName(...) VALUES(...); SELECT ; LAST_INSERT_ID=@@IDENTITY");
$r = mssql_fetch_assoc($q);

¡Y esto es todo! Cómo puedes comprobar, no entraña ninguna dificultad. Siguiendo este simple proceso, recuperaremos el último ID insertado en una consulta de SQL Server.

¡Visita nuestro blog si quieres mantenerte al día de todo lo relacionado con el desarrollo y la administración de sistemas!

PDO en la próxima versión del driver de SQL Server para PHP

Publicado enDesarrollo web

Hace unos días podíamos leer que por fin el driver de PHP para trabajar con SQL Server desde PHP contará con soporte para PDO en su versión 2.0.

PDO (PHP Data Objects) es una extensión que permite el acceso a los datos para PHP 5 a través de una capa de abstracción. Esto permite que puedan hacerse consultas a la base de datos de PHP utilizando funciones propias del lenguaje de programación. La extensión fue desarrollada en 2003, aunque no fue estable hasta PHP 5.0 publicado en 2004. Aún tendría que pasar otro año para considerar a PDO estable y que incluyera su primera interfaz por defecto.

Aunque PHP no sea un lenguaje de programación orientado a objetos por sí mismo, sí permite esta funcionalidad. Gracias a la extensión PDO es posible utilizar funciones de extensión regulares para acceder a los datos. Esto es posible debido a la implementación de tecnología orientada a objetos.

Porqué usar PDO

Esta versión del driver de SQL Server es compatible con la API de PDO, aunque se sigue manteniendo la API nativa de SQL Server que existía hasta el momento. De esta forma se ofrece una compatibilidad absoluta entre las dos API. Además de haberse creado una capa común a ambas que permite disponer de las funciones de ambas APIs, tal y como se indica en el gráfico inferior.

La incorporación de este controlador de SQL Server es un gran avance en el desarrollo de la aplicación.  Y también para los desarrolladores que trabajan con PHP bajo entornos Microsoft. Algunos de los ORM más importantes están escritos en PHP; al igual que muchos CMS, como Drupal. Con PDO es más fácil integrar aplicaciones y añadir más funcionalidades a los frameworks más utilizados.

PDO-php-sqlsrv

Por nuestra parte,este servicio aún no está disponible, ya que la versión estable todavía no se ha publicado. En cuanto esté disponible, procederemos a implantar este driver en nuestros servicios de hosting, para ofrecerte siempre el mejor servicio.

Importar una base de datos a SQL Azure (II de II)

Publicado enServidores Cloud Sistemas TI

Anteriormente veíamos cómo importar una base de datos a SQL Azure utilizando un Wizard para ello. En esta ocasión vamos a realizar la operación directamente a través de SQL Server Management Studio (SSMS) generando para ello un script.

Pero, primero deberemos saber si tenemos compatibilidad con Azure. Para ello, tenemos que tener instalada la versión R2 de SQL Server Management Studio.

De local a un script

Para exportar la base de datos en local y llevarla a un script en un formato que sea compatible con Azure, debemos conectarnos desde SSMS a nuestro server local. Una vez realizada la conexión, podremos realizar la exportación de la base de datos en formato Azure. Para ello, utilizaremos el asistente que permite la generación de scripts.

En primer lugar, y una vez dentro de Microsoft SQL Server Management Studio, debemos buscar la base de datos “eventos”. Haciendo click con el botón derecho del ratón, elegiremos tareas > generar scripts de entre las opciones que se despliegan en el menú.

importar una base de datos a sql azure-export

importar una base de datos a sql azure-script

En nuestro caso, vamos a exportar todas las tablas y los usuarios que se encuentran en la base de datos. Si solo necesitas unos datos concretos, este es momento de que lo indiques. De esperar, ya no será posible hacerlo más tarde.

importar una base de datos a sql azure-objetos

En este paso debemos indicar dónde queremos guardar el script que vamos a generar. Para ello, tenemos que acceder a Avanzadas para especificar que queremos exportar en formato para Azure. Así, podremos hacerle saber que queremos incluir tanto el esquema como los datos que se recogen en la base de datos.

importar una base de datos a sql azure-scripting

importar una base de datos a sql azure-opciones

Con esto, nuestro script ya está listo. Ahora, es el momento de iniciar la importación de la base de datos exportada en nuestro servidor SQL Azure.

importar una base de datos a sql azure-resumen

importar una base de datos a sql azure-guardar script

Importar una base de datos a SQL Azure

Una vez hemos descargado la base de datos, deberemos seguir los siguientes pasos para subirla a SQL Azure. Para ello, en primer lugar, debemos conectar nuestro servidor con el servicio SQL Azure iniciando sesión.

SQL Server 2008 R2-importar una base de datos a sql azure

Una vez dentro de nuestra suscripción, y al igual que cuando hemos realizado la importación a través de Wizard, necesitamos crear una nueva base de datos. Como en el anterior tutorial, hemos llamado a esta nueva base de datos “eventos”.

Crear base de datos-importar una base de datos a sql azure

Por último abrimos nuestro script y lo ejecutamos en el servidor SQL Azure. Cuando aparezca el mensaje de que los comandos han sido completados correctamente.

importar una base de datos a sql azure

De esta forma, nuestra base de datos local en SQL Server, ya estará importada en Azure.

importar una base de datos a sql azure-explorador

ASP.NET con IIS 7.5 y Plesk 9.3

Publicado enGeneral

Ya está disponible la nueva actualización de Plesk; y con ello hemos detectado el siguiente problema tras instalar Plesk 9.3 sobre Windows Server 2008 R2: “ASP.NET no está autorizado para acceder al recurso solicitado” (is not authorized to access the requested resource)


 Server Error in '/mssql' Application.
 --------------------------------------------------------------------------------

 Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
 Description: An unhandled exception occurred during the execution of
 the current web request. Please review the stack trace for more
 information about the error and where it originated in the code.

 Exception Details: System.UnauthorizedAccessException: Access is
 denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

 ASP.NET is not authorized to access the requested resource. Consider
 granting access rights to the resource to the ASP.NET request
 identity. ASP.NET has a base process identity (typically
 {MACHINE}ASPNET on IIS 5 or Network Service on IIS 6) that is used if
 the application is not impersonating. If the application is
 impersonating via , the identity will be
 the anonymous user (typically IUSR_MACHINENAME) or the authenticated
 request user.

 To grant ASP.NET access to a file, right-click the file in Explorer,
 choose "Properties" and select the Security tab. Click "Add" to add
 the appropriate user or group. Highlight the ASP.NET account, and
 check the boxes for the desired access.

 Source Error:

 An unhandled exception was generated during the execution of the
 current web request. Information regarding the origin and location of
 the exception can be identified using the exception stack trace below.

 Stack Trace:

 [UnauthorizedAccessException: Access is denied. (Exception from
 HRESULT: 0x80070005 (E_ACCESSDENIED))]

 [FileLoadException: Could not load file or assembly
 'System.ServiceModel, Version=3.0.0.0, Culture=neutral,
 PublicKeyToken=b77a5c561934e089' or one of its dependencies. Access is
 denied.]
 System.Reflection.Assembly._nLoad(AssemblyName fileName, String
 codeBase, Evidence assemblySecurity, Assembly locationHint,
 StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean
 forIntrospection) +0
 System.Reflection.Assembly.nLoad(AssemblyName fileName, String
 codeBase, Evidence assemblySecurity, Assembly locationHint,
 StackCrawlMark& stackMark, Boolean throwOnFileNotFound, Boolean
 forIntrospection) +43
 System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef,
 Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean
 forIntrospection) +127
 System.Reflection.Assembly.InternalLoad(String assemblyString,
 Evidence assemblySecurity, StackCrawlMark& stackMark, Boolean
 forIntrospection) +142
 System.Reflection.Assembly.Load(String assemblyString) +28

 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String
 assemblyName, Boolean starDirective) +46

 [ConfigurationErrorsException: Could not load file or assembly
 'System.ServiceModel, Version=3.0.0.0, Culture=neutral,
 PublicKeyToken=b77a5c561934e089' or one of its dependencies. Access is
 denied.]

 System.Web.Configuration.CompilationSection.LoadAssemblyHelper(String
 assemblyName, Boolean starDirective) +613

 System.Web.Configuration.CompilationSection.LoadAssembly(AssemblyInfo
 ai) +57

 System.Web.Compilation.BuildManager.GetReferencedAssemblies(CompilationSection
 compConfig) +178
 System.Web.Compilation.BuildProvidersCompiler..ctor(VirtualPath
 configPath, Boolean supportLocalization, String outputAssemblyName) +54

 System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean  isPrecompiledApp)
 +232
 System.Web.Compilation.BuildManager.CompileGlobalAsax() +51
 System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()  +337

 [HttpException (0x80004005): Could not load file or assembly
 'System.ServiceModel, Version=3.0.0.0, Culture=neutral,
 PublicKeyToken=b77a5c561934e089' or one of its dependencies. Access is
 denied.]

 System.Web.Compilation.BuildManager.ReportTopLevelCompilationException()
 +58
 System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()  +512

 System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager
 appManager, IApplicationHost appHost, IConfigMapPathFactory
 configMapPathFactory, HostingEnvironmentParameters hostingParameters)
 +729

 [HttpException (0x80004005): Could not load file or assembly
 'System.ServiceModel, Version=3.0.0.0, Culture=neutral,
 PublicKeyToken=b77a5c561934e089' or one of its dependencies. Access is
 denied.]
 System.Web.HttpRuntime.FirstRequestInit(HttpContext context)  +8897659
 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)  +85

 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest  wr,
 HttpContext context) +333

¿Cómo corregimos el error de ASP.NET?

El error se podía reproducir al tratar de ejecutar una aplicación desde Plesk, en nuestro caso al lanzar el administrador web para bases de datos SQL Server ASP.NET Enterprise Manager o MyLittleAdmin que se ejecutan desde Plesk.

Si tratamos de corregir el error desde la herramienta Plesk Reconfigurator no solucionaremos el problema debido a que los permisos necesarios no están añadidos. Por ello, tendremos que hacerlo a mano.

Lo único que tenemos que hacer es editar el archivo DiskSecurity.xml que encontraremos en la carpeta %PLESK_DIR%etcDiskSecurity y añadirle el siguiente contenido dentro del tag Entries:


<!-- Permisos a Assembly para ASP.NET Enterprise manager -->

<Entry AccounType="1" Account="Psacln" Path="C:Windowsassembly" AceFlags="FilesOnly" AccessMask="Read" EntryFlags="0x0" />

Finalmente hay que ejecutar el siguiente comando para que se apliquen los cambios en los permisos:


"%plesk_bin%applysecurity" --apply

¿Te ha quedado claro? Si lo deseas, puedes consultar más artículos sobre ASP.net pinchando aquí.

 

 

 

Importar una base de datos a SQL Azure (I de II)

Publicado enServidores Cloud Sistemas TI

En el siguiente post veremos como subir una base de datos local en SQL Server 2008 al servicio SQL Azure.

Existen varias maneras de importar una base de datos a SQL Azure.

  1. Mediante los servicios de integración de SQL Server 2008 (SSIS).
  2. Usando la utilidad BCP.
  3. Desde el código, usando la clase System.Data.SqlClient.SqlBulkCopy.
  4. Utilizando wizards o scripts para la carga de los datos.

En este artículo, utilizaremos la ultima opción para importar la base de datos.

El cloud de Microsoft

Azure, la nube de Microsoft, tiene algunas limitaciones. Por ejemplo, no permite la importación de bases de datos mediante un “restore” ni tampoco adjuntar una base de datos al servidor SQL de Azure.

Para poder realizar la importación de una base de datos, en primer lugar, es necesario crear un servidor SQL Azure. A continuación, habrá que copiar el nombre del servidor que hemos creado, ya que será necesario conocerlo para saber dónde tenemos que conectarnos.

En nuestro caso, hemos aprovechado para crear una nueva base de datos a la que hemos llamado “eventos”. Esto es un paso opcional, ya que como veremos más adelante es posible crear nuevas bases de datos desde el propio Wizard.  Este permite la creación de hasta 149 bases de datos por servidor SL Azure y con un tamaño máximo de 1 GB ó 10 GB.

Importando una base de datos con SQL Azure

En primer lugar, deberemos acudir a nuestra suscripción de Windows Azure Services. Una vez hayamos iniciado sesión, deberemos pinchar en SQL Azure > Database. Allí podremos ver cuántas bases de datos tenemos en el servidor, cuál es su tipo y qué tamaño ocupan.

 

SQL Azure

 

Al lado de la pestaña Databases, se encuentra la de Firewall Settings. Aquí tenemos que añadir al menos una regla que permita la conexión desde nuestro equipo al servidor, en nuestro caso contamos con 3 reglas diferentes.

Firewall

Ahora utilizaremos SQL Azure Migration Wizard para poder migrar la base de datos. La descarga de esta aplicación está disponible en CodePlesk. Para instalarla, sólo hay que seguir el asistente de instalación. Un proceso tan sencillo que no es necesaria la explicación. Pero por si acaso te surje alguna duda, adjuntamos los pantallazos del proceso.

SQL Migration Wizard 1SQL Azure Migration Manager 2SQL Azure Migration Manager 3SQL Azure Migration Manager 4SQL Azure Migration Manager 5SQL Azure Migration Manager 6SQL Azure Migration Manager 7SQL Azure Migration Manager 8SQL Azure Migration Manager 9

Si tienes instalado Microsoft SQL Server Management Studio R2, puedes conectarte a tu servidor SQL Azure. Y, si no cuentas con esta herramienta, te facilitamos un enlace para que puedas iniciar la descarga.

sql2008R2

En Microsoft SQL Server Management Studio, solo tienes que acudir al explorador de objetos y conectar el servidor. Una vez estés conectado al servidor, deberás abrir la carpeta que lleva el nombre del servidor al que quieres acceder. Y dentro de esta buscar la carpeta que has creado con anterioridad. Recordamos que nosotros le hemos dado el nombre de “eventos”.

SQL 2008 Management Studio R2

Si buscas otra forma diferente de realizar la importación de una base de datos a SQL Azure, puedes hacerlo aquí.