jueves, 30 de abril de 2009

Paquete de Integration Services en x64

Si ejecutan en x64 y reciben este error

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered error

Para solucionar este error lo que tienen que hacer es lo siguiente

-Abren el paquete en BIDS (Business Intelligence Developement Studio)

-Hacen click en el Configuration Manager

-En la opción Active Solution Platform eligen New

-En tipo de plataforma eligen x86

-Cuando compilan asegúrense de que están escogiendo x86

 

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

Cómo transferir una BD en SQL 2008 hacia SQL 2005

Si se desea transferir una base de datos que está en SQL Server 2008 hacia SQL Server 2005 no existe una forma fácil y natural de hacerlo, por ejemplo no se puede restaurar un respaldo de SQL 2008 en SQL 2005. La opción que podemos seguir es la que sugiere Chris Goddard. La idea de Chris consiste en utilizar el Managemente Studio, en esta herramienta se elige el Wizard de Generación de Scripts y se le indica la versión de SQL Server 2005 y que incluya los datos. Puede ver los detalles en esta dirección http://www.devx.com/dbzone/Article/40531

image

image

 image

 image

 image

 image

Se debe tener cuidado con esta opción ya que si la BD tiene muchos datos se va requerir mucho espacio, si los datos son sensitivos hay que tomar en cuenta que estos no están encriptados.

En el script generado se debe comentar la siguiente línea:


--EXEC sys.sp_db_vardecimal_storage_format N'Northwind', N'ON'
--GO

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

miércoles, 29 de abril de 2009

SQL Server Working Set Trim Problems

En un artículo anterior se mención los problemas de rendimiento que se pueden presentar en SQL Server debido al manejo de memoria, o más bien cuando el sistema operativo no le asigna toda la memoria a SQL Server, para resolver estos problemas el CSS Team tiene una serie de reocmendaciones que incluyo a continuación:

Windows 2003

We can use a combination of memory sizing and locked pages to avoid the issue in the vast majority of cases.   What you want to do is monitor your memory counter a peak load.    Doing this with locked pages disabled will let you see all the counters in one place.   Using the values captured you can establish the max and min server memory settings of SQL Server to accommodate the peak work load.   Once you have these targets you can enabled locked pages again.

Take for example a 64GB machine and when run peak load the OS and other applications require 10GB.   You might configures SQL Server max server memory around 53GB (bit of overhead for thread stacks and memory outside buffer pool) to achieve steady server performance.

Windows 2008

Windows 2008 updated the working set policy decisions and avoids many of the significant working set trim.  These changes are designed to avoid significant trims and steady the performance of the server.   This allows SQL Server to adjust to memory notifications and avoid being pages.   Testing has shown that prior to these changes the SQL Server working set could be significantly trimmed.  After the changes the system maintains better working set balance and no longer trims the SQL Server working set aggressively.   Instead the memory notifications that SQL Server listens to can be fired and SQL Server will back-off when required.

The example used if peak memory requires 10GB but common load only 4GB you can keep max memory around 59GB and only when peak load on the system is occurring will SQL Server back off to accommodate the load.

Min Server Memory

Use the min server memory setting with care.   This is a floor to SQL Server.   Once committed memory to reach the min server memory setting SQL Server won't release memory below the mark.   If you set max server memory to 59GB and min server memory to 56GB, but the server needs to back SQL Server down to 53GB SQL Server won't drop below 56GB.    When you combine this setting with locked pages in memory the memory can't be paged.  This can lead to unwanted performance behaviors and allocation failures.

http://blogs.msdn.com/psssql/archive/2008/03/03/sql-server-working-set-trim-problems-consider.aspx

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

SQL Server y Locked Pages

Microsoft ha anunciado que la versión estándar de SQL Server va a soportar Locked Pages http://blogs.msdn.com/psssql/archive/2009/04/24/sql-server-locked-pages-and-standard-sku.aspx

Esta es una característica muy útil que estaba únicamente presente en la versión Enterprise, cuando se presentan problemas de rendimiento relacionados con el uso de memoria y la paginación. En inglés este problemas es conocido como "working set trim problems" unas formas de evitar este problema las pueden consultar en la siguiente dirección http://blogs.msdn.com/psssql/archive/2008/03/03/sql-server-working-set-trim-problems-consider.aspx

 

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

sábado, 25 de abril de 2009

Evento Windows Vista Adoption Day

Registrate en http://windowsvistaadoptionday.eventbrite.com/

Deseamos invitarlo a la sesión que tendremos sobre Windows Vista este mes de mayo.

En esta sesión veremos informacion acerca de las ventajas de Windows Vista desde la perspectiva de administración de TI.

Al final de la actividad entre los presentes se rifarán los siguientes premios: una notebook Toshiba con capacidad hasta 4GB de RAM, doble procesador, DVD writer, multilector de tarjeta, wireless.  Además un disco duro externo de 500GB, una impresora multifuncional EPSON (impresora, fax, fotocopiadora y escaner), licencias de Windows y más.

Cada asistente recibirá un DVD de la Comunidad Windows con recursos útiles en la administración de la infraestructura de TI.

El evento tiene un costo de $20, sin embargo hemos llegado a un acuerdo con los patrocinadores y contamos con una cantidad limitada de cupones de descuento para aquellas personas registradas como miembros de la comunidad, el cupón de descuento es de un 100%. Para obtener ese cupón de descuento deben enviar sus datos de miembro a la siguiente cuenta de correo eventos@mswindowscr.org.

Si no eres miembro puedes registrarte de forma gratuita en la siguiente dirección http://comunidadwindows.org/user/CreateUser.aspx?ReturnUrl=

El detalle de la invitación lo encontrarás a continuación.

Te invita,

Comunidad Windows

http://windowsvistaadoptionday.eventbrite.com/

Windows Windows Vista representa una mejora importante para los profesionales de TI que administran un entorno de equipos de escritorio, en esta sesión veremos información acerca de las ventajas de Windows Vista desde la perspectiva de administración de TI

  • Cómo y por qué cambiar a Windows Vista
  • Productividad y Administración de Windows Vista
  • Cómo Windows Vista aporta más control para mantener en funcionamiento equipos de escritorio
  • Implementación avanzada
  • Mejoras en SP1

Al final de la actividad entre los presentes se rifarán los siguientes premios: una notebook con Windows Vista, un disco duro externo, una impresora multifuncional EPSON, licencias de Windows y más.

Fecha:
14 de mayo del 2009

Hora:
8:00 a.m. - 12:30 p.m.

Lugar:
CinemarkMultiplaza del Este

Dirección:

Multiplaza del Este, Zapote

Información:
eventos@mswindowscr.org

Reserve su espacio a tiempo.
Cupo limitado.

viernes, 24 de abril de 2009

Cómo listar los trabajos (jobs) fallidos en SQL Server

Muchas veces es necesario determinar cuáles han sido los jobs cuya ejecución ha fallado en SQL Server, para hacer esto se pueden utilizar los scripts creados por Drew Salem, los cuales incluyo a continuación:

 

USE 

[DBA_Admin]

GO
/******

Part 3a: The Failed Jobs Report

Object Creation: Table Failed_Jobs

Purpose: To create the table Failed_Jobs

Date: 01/02/2009

Author: Drew Salem - www.thebuddingdba.com

For: SQLServerCentral.com

******/
CREATE TABLE [dbo].[Failed_Jobs]

(

[originating_server] [varchar](255) NULL,

[job_name] [varchar](255) NULL,

[job_description] [varchar](1023) NULL,

[last_outcome_message] [varchar](255) NULL,

[last_run_date] [varchar](63) NULL,

[job_id] [varchar](255) NULL

)




Después de creada esa tabla se debe crear  el procedimiento almancenado para llenar la tabla anterior:




USE [DBA_Admin]
GO
/******

Part 3a: The Failed Jobs Report

Object Creation: The usp_GetFailedJob stored procedure

Purpose: To retrieve failed jobs data from a single server

Date: 08/02/2009

Author: Drew Salem - www.thebuddingdba.com

For: SQLServerCentral.com
******/
CREATE PROC [dbo].[usp_GetFailedJob]

@servername SYSNAME
AS
SET NOCOUNT ON
DECLARE @sql1 VARCHAR (8000)
DECLARE @version VARCHAR (50)
--First check which version of SQL Server is running.

SELECT @version = serverversion

FROM Server_SQL_Details

WHERE servername = @servername
--If it's 2000 then execute this code
IF @version = '
8'

BEGIN

SELECT @sql1 = '


Select j.originating_server,

j.name, j.description, jh.last_outcome_message, substring(space(1),

33,33) +
-- Calculate and format fail datetime

-- Add Run Duration Seconds

cast(

-- Add Start Time Seconds

dateadd(ss, cast(substring(cast(last_run_time + 1000000 as char(7)),6,2) as int),
-- Add Start Time Minutes

dateadd(mi, cast(substring(cast(last_run_time + 1000000 as char(7)),4,2) as int),
-- Add Start Time Hours

dateadd(hh, cast(substring(cast(last_run_time + 1000000 as char(7)),2,2) as int),
convert(datetime,cast (last_run_date as char(8)))))) as char(19)) As Last_Run_Date, j.job_id
FROM [' + @servername + '].msdb.dbo.sysjobservers

jh join [' + @servername + '].msdb.dbo.sysjobs j ON jh.job_id=j.job_id

where last_run_outcome <> 1'
--Insert into a temp table before it gets its knickers in a twist

CREATE TABLE #t2 (

originating_server VARCHAR(255),

job_name VARCHAR(255),

job_desc VARCHAR(1023),

last_outcome_message VARCHAR(255),

last_run_date VARCHAR(63),

job_id VARCHAR(255))
INSERT INTO #t2 EXEC(@sql1)
--And insert the relevant info into our Failed Jobs table

INSERT INTO Failed_Jobs

(originating_Server, job_name, job_description, last_outcome_message, last_run_date, job_id)

SELECT originating_server, job_name, job_desc, last_outcome_message, last_run_date, job_id

FROM #t2
DROP TABLE #t2
END
ELSE
--If it'
s 2005 then execute this code

IF @version = '9'

BEGIN

SELECT @sql1 = '

Select id.originating_server,

j.name, j.description, jh.last_outcome_message, substring(space(1),

33,33) +

-- Calculate fail datetime

-- Add Run Duration Seconds

cast(

-- Add Start Time Seconds

dateadd(ss, cast(substring(cast(last_run_time + 1000000 as char(7)),6,2) as int),

-- Add Start Time Minutes

dateadd(mi, cast(substring(cast(last_run_time + 1000000 as char(7)),4,2) as int),

-- Add Start Time Hours

dateadd(hh, cast(substring(cast(last_run_time + 1000000 as char(7)),2,2) as int),

convert(datetime,cast (last_run_date as char(8)))))) as char(19)) As Last_Run_Date, j.job_id

FROM ['
+ @servername + '].msdb.dbo.sysjobservers

jh join ['
+ @servername + '].msdb.dbo.sysjobs j ON jh.job_id=j.job_id

join ['
+ @servername + '].msdb.dbo.sysoriginatingservers_view id

ON id.originating_server_id=j.originating_server_id

where last_run_outcome <> 1'


CREATE TABLE #t3 (

originating_server VARCHAR(255),

job_name VARCHAR (255),

job_desc VARCHAR (1023),

last_outcome_message VARCHAR (255),

last_run_date VARCHAR(63),

job_id VARCHAR (255))

INSERT INTO #t3 EXEC(@sql1)

INSERT INTO Failed_Jobs

(originating_Server, job_name, job_description, last_outcome_message, last_run_date, job_id)

SELECT originating_server, job_name, job_desc, last_outcome_message, last_run_date, job_id

FROM #t3

DROP TABLE #t3

END



Saludos,



Eduardo Castro – Microsoft SQL Server



http://comunidadwindows.org



Costa Rica



Technorati Tags: SQL Server



LiveJournal Tags: SQL Server



del.icio.us Tags: SQL Server

jueves, 23 de abril de 2009

Error en Reporting Server en SQL Server 2008

Cuando se configurar Reporting Services un website que no es default, o sea diferente al 80. Se puede presentar el siguiente error:

 

"An error occurred while parsing the configuration file. The ReportServerVirtualDirectory element is missing. "

 

Para resolverlo tienes que abrir el archivo de configuración RSWebApplication.config el cual se encuentra en el directorio virtual de Reports o en la siguiente ruta C:\Program Files\Microsoft SQL Server\MSSQL.3\Reporting Services\ReportManager. Tienes que buscar la siguiente entrada.

 

<UI>
<ReportServerUrl></ReportServerUrl>
<ReportServerVirtualDirectory></ReportServerVirtualDirectory>
<ReportBuilderTrustLevel>FullTrust</ReportBuilderTrustLevel>
</UI>




En la entrada ReportServerVirtualDirectory debes agregar el nombre del 


directorio virtual del report server.


 



<UI>
<ReportServerUrl></ReportServerUrl>
<ReportServerVirtualDirectory>ReportServer</ReportServerVirtualDirectory>
<ReportBuilderTrustLevel>FullTrust</ReportBuilderTrustLevel>
</UI>




Saludos,



Eduardo Castro – Microsoft SQL Server



http://comunidadwindows.org



Costa Rica



Technorati Tags: SQL Server



LiveJournal Tags: SQL Server



del.icio.us Tags: SQL Server

martes, 21 de abril de 2009

Consideraciones de SQL Server para instalar DPM 2007

Si se desea instalar el Data Protection Manager 2007 utilizando un repositorio remoto es necesario ejecutar el siguiente utilitario, de lo contrario la instalación podría generar errores.

sqlprep.msi

Este archivo lo pueden encontrar en el DVD de instalación del DPM en el directorio \DPM2007\MSI

 

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

Consideraciones de SQL Server para instalar DPM 2007

Si se desea instalar el Data Protection Manager 2007 utilizando un repositorio remoto es necesario ejecutar el siguiente utilitario, de lo contrario la instalación podría generar errores.

sqlprep.msi

Este archivo lo pueden encontrar en el DVD de instalación del DPM en el directorio \DPM2007\MSI

 

Saludos,

Eduardo Castro – Microsoft SQL Server

http://comunidadwindows.org

Costa Rica

Technorati Tags: SQL Server

LiveJournal Tags: SQL Server

del.icio.us Tags: SQL Server

lunes, 20 de abril de 2009

Monitorear el desempeño de SQL Server - 03

La optimización de las consultas puede influir en el desempeño del servidor, debido a que esta tarea consume mucho CPU, con el siguiente script se puede tener una idea global sobre cómo la optimización de consultas influye en el uso de CPU.

 

select *     
from sys.dm_exec_query_optimizer_info


 


Más información en http://www.microsoft.com/technet/prodtechnol/sql/2005/tsprfprb.mspx


Saludos,



Eduardo Castro – Microsoft SQL Server



http://comunidadwindows.org



Costa Rica



Technorati Tags: SQL Server



LiveJournal Tags: SQL Server



del.icio.us Tags: SQL Server