Mes: diciembre 2015
Configurar Database Mail en SQL Server 2008 R2
Continuando con la serie de artículos sobre Database Mail en SQL Server 2008 R2, en esta ocasión vamos a tratar la configuración de Database Mail, utilizando para ello una instalación en Cluster de SQL Server 2008 R2 sobre un Failover Cluster Windows Server 2008 R2. Empezamos.
Configurar Database Mail en SQL Server 2008 R2Es posible configurar Database Mail por comandos o con la interfaz gráfica (SSMS). En nuestro caso de ejemplo, vamos a realizar desde cero la configuración de Database Mail en un Cluster de SQL Server 2008 R2 utilizando SQL Server Management Studio (SSMS). Para empezar, utilizaremos la opción Configure Database Mail desde el menú contextual de Database Mail, como se muestra en la siguiente pantalla capturada. En la pantalla de bienvenida del asistente de configuración de Database Mail, click en Next para continuar. En la pantalla Select Configuration Task, seleccionaremos la opción Set up Database Mail by performing the following tasks. Click Next para continuar. Si aún no estaba habilitado el Database Mail en nuestra instancia de SQL Server (como es nuestro caso), se mostrará un diálogo como el siguiente, preguntando si deseamos habilitar Database Mail. Click Yes para continuar. En la pantalla New Profile, crearemos un nuevo perfil de Database Mail especificando un nombre y descripción. Seguidamente, click Add para añadir una cuenta de correo al perfil que estamos creando. Téngase en cuenta, que podemos crear múltiples cuentas de correo, y ordenarlas según deseemos que sean utilizadas. De este modo, si se produce un error al enviar un correo electrónico utilizando una cuenta, se podrá intentar automáticamente utilizando la siguiente cuenta de la lista. En la pantalla New Database Mail Account configuraremos una cuenta de correo electrónico para ser utilizada por Database Mail. En resumidas cuentas, se trata de indicar la cuenta de correo electrónico, el servidor SMTP, y la configuración de autenticación del servidor SMTP. Click OK para continuar. De nuevo en la pantalla New Profile, tenemos la oportunidad de añadir más cuentas de correo electrónico (si lo deseamos) al perfil que estamos configurando. En caso contrario, click Next para continuar. Llegamos a la pantalla Manage Profile Security. Cada perfil de Database Mail, puede ser configurado como público (puede ser utilizado por cualquier usuario) o como privado (sólo puede ser utilizado por el usuario designado). En ambos casos, el perfil puede configurarse como perfil por defecto, de tal modo que sea el perfil utilizado excepto que se indique lo contrario. En nuestro caso de ejemplo, marcamos el perfil que estamos creado, como público y como predeterminado, en la pestaña Public Profiles. Aprovechamos para mostrar la pestaña Private Profiles, aunque en nuestro caso, no realizaremos ninguna configuración aquí. Click Next para continuar. En la pantalla Configure System Parameters podemos configurar varias opciones de configuración globales de Database Mail que pueden resultarnos de gran utilidad (Account Retry Attempts, Account Retry Delay, Maximum File Size, Prohibited Attachment File Extensions, Database Mail Executable Minimum Lifetime, Logging Level). Click Next para continuar. En la pantalla Complete the Wizard, revisamos el resumen de la configuración que vamos a realizar, y si estamos de acuerdo click en Finish para continuar. En unos instantes la configuración de Database Mail habrá finalizado satisfactoriamente en nuestro Cluster de SQL Server 2008 R2. Click Close. Realizado esto, ya tendremos inicialmente configurado Database Mail. Sin embargo, lo más probable, es que necesitemos realizar alguna configuración adicional, como por ejemplo, crear perfiles de Database Mail adicionales. Modificar la configuración de Database Mail en SQL Server 2008 R2Una vez que hemos finalizado la configuración inicial de Database Mail, muy probablemente tendremos que realizar alguna configuración posterior, ya sea para configurar más perfiles de Database Mail, o bien más adelante para modificar los perfiles existente, cambiar las configuraciones globales de Database Mail, etc. A continuación, vamos a mostrar la forma de modificar la configuración de Database Mail en SQL Server 2008 R2 utilizando SQL Server Management Studio (también se podría realizar con TSQL). Para ello, utilizaremos la opciónConfigure Database Mail desde el menú contextual de Database Mail, como se muestra en la siguiente pantalla capturada. En la pantalla de bienvenida del asistente de configuración de Database Mail, click Next para continuar. En la pantalla Select Configuration Task, seleccionaremos la opción que necesitemos en función de la configuración que tengamos que realizar. Click Next para continuar. En función de la opción que hayamos seleccionado en la pantalla anterior, se mostrará una u otra pantalla. En todos los casos, se trata de pantallas similares a las que ya vimos en la configuración inicial del Database Mail, por lo que no perderemos tiempo en repetirlo (es más de lo mismo). Hasta aquí llega el presente artículo, sobre cómo configurar Database Mail sobre SQL Server 2008 R2 (en particular, sobre un Cluster de SQL Server 2008 R2). Próximamente, aprovecharemos para hablar sobre cómo utilizar Database Mail en SQL Server 2008 R2. Poco más por hoy. Como siempre, confío que la lectura resulte de interés.
|
ememail
[Fecha del Artículo (UTC): 04/12/2011]
[Autor: GuilleSQL]
Cómo configurar el servidor de Reporting Services en SQL Server 2008
Como primer paso vamos a abrir el Reporting Services Configuration Manager, ahí nos va a solicitar la información del servidor que queremos configurar. En este caso para efectos de este ejemplo nos conectamos a localhost, pero ahí le debes indicar el nombre de la terminal o ip y la instancia SQL en donde está instalado el servicio.
En el menú seleccionamos Database y ahí Change Database. Nos va a mostrar una pantalla donde le indicamos si se va a crear una nueva base de datos para reporting o se quiere conectar a una ya existente, en este caso vamos a crear una nueva para configurarla desde el inicio.
En la siguiente pantalla nos va a solicitar los credenciales para conectarnos a ese servidor, remoto o local. Este usuario es solamente para conectarse y configurar, no es con el que el servicio de reporting va a funcionar. En este caso como es en localhost y yo soy administrador, continuamos con seguridad integrada, pero ahí le indicas un usuario que tenga permisos para crear o modificar bases de datos.
En la siguiente pantalla le indicamos el nombre de la base de datos que vamos a crear para el manejo del Report Server.
En la siguiente pantalla se le indica las credenciales de la cuenta con la que el servicio se va a conectar a la base de datos ReportServer. Dependiendo de la configuración del servidor lo podemos dejar con el usuario del servicio o con otro usuario de base de datos previamente creado.
Finalmente en el último pase se verifican los datos ingresados y se procede con la configuración final (Next / Finish).
Luego de que se configura la base de datos vamos a la opción del menú que dice Web Service URL y le indicamos el IP y puerto donde se va a utilizar el servicio. Es probable que el puerto 80 no esté disponible por algun servicio del IIS, por lo que es recomendable utilizar algun otro disponible (ej. 82). Seleccionamos el botón de Aplicar o Apply que está abajo a la derecha.
Luego seleccionamos en el menú la opción de Report Manager URL y le indicamos el nombre del directorio virtual donde van a estar nuestros reportes y seleccionamos Apply.
Finalmente en el menú seleccionamos Service Account y verificamos que los datos del servicio sean correctos.
Luego en el Root del menú verificamos que el servicio esté ejecutándose.
En el menú de Web Service URL y Report Manager URL están los urls donde podemos ver nuestro servidor ejecutándose. En mi caso http://localhost/Reports es la ruta y ahí podemos configurar la seguridad de los reportes, para la primera vez debes ejecutar Internet Explorer como usuario Administrador “Run as Administrator”, para que te de permisos de entrar a la configuración y agregarte como usuario valido de los reportes y darte los permisos respectivos.
Listar todas las tablas de una BD con el recuento de filas
SELECT SCHEMA_NAME(A.schema_id) + ‘.’ +
A.NAME AS ‘Tabla’, SUM(B.rows) AS ‘RowCount’
FROM sys.objects A
INNER JOIN sys.partitions B ON A.object_id = B.object_id
WHERE A.type = ‘U’
GROUP BY A.schema_id, A.Name
GO
Estructura de columnas SQL por script
SELECT sysCol.Name, sysType.name, sysCol.length FROM syscolumns sysCol
INNER JOIN sysobjects sysObj ON
sysCol.id = sysObj.id INNER JOIN systypes sysType on
sysCol.xtype = sysType.xtype WHERE sysObj.name =’nombreTabla’
Cerrar conexiones SQL – Base de datos en uso
He encontrado varios metodos para aplicar, estos son:
1.- PROBADO
USE master GO ALTER DATABASE database_name SET OFFLINE WITH ROLLBACK IMMEDIATE GO
2.- SIN PROBAR
DECLARE @kill varchar(8000) = »; SELECT @kill = @kill + ‘kill ‘ + CONVERT(varchar(5), spid) + ‘;’ FROM master..sysprocesses WHERE dbid = db_id(‘MyDB’) EXEC(@kill);
3.- SIN PROBAR
CREATE PROCEDURE dbo.KillConexiones
@dbName SYSNAME
AS
BEGIN
SET NOCOUNT ON
DECLARE @spid INT,
@cnt INT,
@sql VARCHAR(255)
SELECT @spid = MIN(spid), @cnt = COUNT(*)
FROM master..sysprocesses
WHERE dbid = DB_ID(@dbname)
AND spid != @@SPID
PRINT ‘Eliminando ‘+RTRIM(@cnt)+’ procesos.’
WHILE @spid IS NOT NULL
BEGIN
PRINT ‘Eliminando Proceso ‘+RTRIM(@spid)
SET @sql = ‘KILL ‘+RTRIM(@spid)
EXEC(@sql)
SELECT @spid = MIN(spid), @cnt = COUNT(*)
FROM master..sysprocesses
WHERE dbid = DB_ID(@dbname)
AND spid != @@SPID
PRINT RTRIM(@cnt)+’ Procesos por eliminar.’
END
END
GO
4.- SIN PROBAR – PARECIDO AL 3 PERO SIN SER SP
USE MASTER GO DECLARE @spid SMALLINT DECLARE @KILL VARCHAR(16) DECLARE @dbname sysname SET @dbname = 'Suscripciones' dbid = db_id(@dbname) DECLARE kill_cursor CURSOR FOR select spid from master..sysprocesses where status = 'sleeping' AND dbid=57 OPEN kill_cursor FETCH NEXT FROM kill_cursor INTO @spid WHILE @@FETCH_STATUS = 0 BEGIN SET @KILL= 'kill '+cast(@spid as varchar(5)) print (@KILL)
FETCH NEXT FROM kill_cursor INTO @spid
END
5.- PROBADO OK
USE master
GO
SET NOCOUNT ON
DECLARE @DBName varchar(50)
DECLARE @spidstr varchar(8000)
DECLARE @ConnKilled smallint
SET @ConnKilled=0
SET @spidstr = ''
Set @DBName = 'NOMBRE_BASE_DE_DATOS'
IF db_id(@DBName) < 4 BEGIN PRINT 'Connections to system databases cannot be killed' RETURN END SELECT @spidstr=coalesce(@spidstr,',' )+'kill '+convert(varchar, spid)+ '; ' FROM master..sysprocesses WHERE dbid=db_id(@DBName) IF LEN(@spidstr) > 0
BEGIN
EXEC(@spidstr)
SELECT @ConnKilled = COUNT(1)
FROM master..sysprocesses WHERE dbid=db_id(@DBName)
END