1. Guía de instalación de SQL Server 2008 R2
paso a paso
Publicado el 17 diciembre, 2010 por Arka117
La instalación de SQL Server 2008 R2 es algo en lo que Microsoft como viene siendo
habitual, ha puesto un marcado énfasis para producir un sistema claro y sencillo que
nos lleve al éxito con un mínimo esfuerzo. Por otro lado, durante el proceso, quizás
sea bueno conocer algunos aspectos concretos del mismo para producir a la primera
una instalación limpia, correcta y alineada con la arquitectura de nuestro entorno
empresarial.
Esta guía de instalación está centrada en el proceso de instalación de nuevas
instancias del motor relacional de SQL Server 2008 R2 de una forma gráfica y rápida.
Para la realización de esta guía se ha contado con el siguiente software:
Windows Server 2008 R2 Enterprise Edition actualizado con Windows Update
SQL Server 2008 R2 Enterprise Edition x64 RTM
Articulo Original
http://msdn.microsoft.com/es-es/sqlserver/gg521092
2. Contenidos
Introducción.
Preparación del entorno.
Formateo de NTFS a bloques de 64kb.
Log on as a service.
Lockpages in memory.
Instant File Initialization.
Proceso de instalación.
APÉNDICE.
Configuración de seguridad básica.
Autores.
Enrique Catala Bañuls
Rubén Garrigos
Enrique Puig
Introducción
La instalación de SQL Server 2008 R2 es algo en lo que Microsoft como viene siendo
habitual, ha puesto un marcado énfasis para producir un sistema claro y sencillo que
nos lleve al éxito con un mínimo esfuerzo. Por otro lado, durante el proceso, quizás
sea bueno conocer algunos aspectos concretos del mismo para producir a la primera
una instalación limpia, correcta y alineada con la arquitectura de nuestro entorno
empresarial.
Esta guía de instalación está centrada en el proceso de instalación de nuevas
instancias del motor relacional de SQL Server 2008 R2 de una forma gráfica y rápida.
Si se desea una guía mucho más detallada y completa del proceso de instalación, se
recomienda seguir el artículo oficial de los libros en pantalla de SQL Server 2008 R2
que puede encontrar aquí: http://msdn.microsoft.com/en-us/library/ms143219.aspx
Para la realización de esta guía se ha contado con el siguiente software:
Windows Server 2008 R2 Enterprise Edition actualizado con Windows Update
SQL Server 2008 R2 Enterprise Edition x64 RTM
Preparación del entorno
Si el entorno de producción involucra un Windows Server 2008, y desde las
herramientas del propio sistema operativo se han creado las particiones, este
apartado no hace falta validarlo puesto que en forma predeterminada realiza un
alineamiento de particiones de 1Mb:
3. Referencia: http://download.microsoft.com/download/9/c/5/9c5b2167-8017-4bae-9fde-
d599bac8184a/Perf-tun-srv.docx (página 30, sección DISKPART)
Si por el contrario, el entorno de producción involucra un Windows Server 2000 o
2003, o el subsistema de discos ha sido particionado bajo las herramientas
administrativas de un Sistema Operativo previo, se recomienda realizar un
alineamiento de las particiones donde se albergarán los ficheros .mdf y .ldf de las
Bases de datos utilizando diskpart.
Nota: Este diagrama se corresponde con una unidad de almacenamiento en forma
predeterminada de NTFS (4kb). El diagrama no se encuentra a escala (ver que los
trozos 1 y 2 tienen el mismo tamaño a pesar de no serlo realmente)
Asumiendo un valor de 64kb por banda del disco, existen 8 sectores de 512B por cada
clúster de 4Kb NTFS y existen 16 clústeres de 4Kb por cada banda de 64Kb.
Nótese que existen sectores ocultos (63 en forma predeterminada en el ejemplo
desalineado y 64 en el ejemplo alineado)
En el ejemplo, la línea 3 se encuentra desalineada mientras que la 4 está alineada
Teniendo esto presente, se puede ver como cada lectura enésima, produce un salto en
la banda en el caso de los sectores desalineados, debido a que el último clúster de 4Kb
no ha cabido completamente en la misma y se encuentra en otra diferente. Esto
produce que al realizar la lectura, se tengan que realizar dos accesos a disco.
Con el valor en forma predeterminada de 4Kb por clúster, cada 16 lecturas, se tiene
que realizar una lectura extra.
Para conocer el estado del alineamiento de las particiones actualmente, podemos
lanzar la siguiente consulta WMI desde powershell:
gwmi –query “SELECT Name,Size,StartingOffset from Win32_DiskPartition”
4. Siendo Name, la ubicación proporcionada por el subsistema de disco para dicha
partición, Size el tamaño de la misma, y StartingOffset la posición de comienzo de la
misma, dentro del disco.
Para más información sobre alineamiento de particiones:
http://technet.microsoft.com/en-us/library/cc766465.aspx sección “alignment”
Formateo de NTFS a bloques de 64kb
Los discos que alberguen los ficheros de log y datos se han de formatear a 64kb por
bloque para mejorar el rendimiento de SQL Server.
Con ello favorecemos que se almacenen en un mismo bloque, lo que se denominan
“extensiones” (conjuntos de 8 páginas). De esta forma se mejorarán las lecturas en
los casos en los que SQL Server decida realizar operaciones de lectura adelantada.
5. Referencia: http://download.microsoft.com/download/d/9/4/d948f981-926e-40fa-a026-
5bfcf076d9b9/SAP_SQL2005_Best%20Practices.doc (página 67)
Log on as a service
Se recomienda definir un grupo de usuarios dentro del dominio que ejecute los
servicios de SQL Server. Estos usuarios más adelante los veremos reflejados en el
proceso de instalación (ver Figura 16). Si el servicio va a estar dentro de un entorno
clúster, para que no ocurra ningún problema al iniciar los servicios, se recomienda dar
a dichos usuarios el permiso de “log on as a service”.
Para ello podemos entrar en “Administrative Tools” -> “Local Security Policy” y
mediante botón derecho dentro de “Local Policies”->”UserRightsAssignment”->”Log on
as a service”, añadimos el grupo.
6. Lockpages in memory
Siempre es recomendable configurar “lockpages in memory” para SQL Server, sobre
todo en entornos actuales con más de 8 Gb de RAM.
Referencia: http://technet.microsoft.com/en-us/library/ms190730.aspx
Instant File Initialization
Para poder sacarle ventaja a las capacidades de inicialización instantánea de ficheros,
hemos de agregar el permiso SE_MANAGE_VOLUME_NAME a la cuenta del servicio
que levante SQL Server. Los usuarios de administración locales de Windows poseen
dicho permiso habilitado, pero dado que se presupone que un usuario con permisos
mínimos del dominio levante los servicios (ver figura 16), hemos de agregarle dichos
permisos.
Dicho permiso se concede cuando les añadimos la política de seguridad
“PerformVolumeMaintenanceTask”.
7. Referencia: http://msdn.microsoft.com/en-us/library/ms175935.aspx
Proceso de instalación
Una vez preparado el sistema para que SQL Server de partida ya posea una
configuración óptima, procedremos a seguir los pasos siguientes para instalar una
nueva instancia de SQL Server 2008 R2 sobre el mismo:
1. El primer paso es introducir el DVD o montar la imagen .iso de SQL Server 2008
R2.
Figura 1
8. Es muy probable que el propio instalador de SQL Server 2008 R2 nos pida actualizar
el sistema para poder proceder con la aplicación de instalación de SQL Server. En
ese caso nos saldrá una pantalla como esta donde se nos indicará que va a proceder
con la actualización del sistema.
Figura 2
Despues de dar a OK, se procederá con la instalación. Dependiendo de la
actualización a realizar sobre Windows Server, puede que nos parezca que el sistema
está inactivo o que el proceso instalador ha dado algún error puesto que
desaparecerá de la pantalla durante un par de minutos.
Si vamos al explorador de tareas, podemos ver como realmente está realizando la
istalación que previamente nos ha anunciado.
Figura 3
Después de esperar durante alrededor de 1-2 minutos (dependiendo del equipo), nos
aparecerá por fin el instalador de SQL Server (Ver figura 4).
NOTA: En ocasiones dependiendo del estado de actualización del sistema operativo
Windows puede que requiera aplicar actualizaciones de Windows Installer o incluso
.NET y que se pida reiniciar. Se hace hincapié de nuevo en que el entorno sobre el que
se ha elaborado dicho artículo se encuentra al dia en actualizaciones de Windows.
9. Figura 4
Llegados a este punto, dado que el artículo se centra exclusivamente en la instalación
de una instancia SQL Server 2008 R2, iremos directamente al apartado “Installation”.
En cualquier caso, en la primera pantalla denominada “Planning”, podremos encontrar
la documentación sobre instalación de SQL Server 2008 R2 así como la aplicación de
chequeo de sistema para validar instalaciones futuras de SQL Server 2008 R2 o el
SQL Server UpgradeAdvisor que queda fuera del ámbito de este artículo y es la
aplicación con la que podemos analizar migraciones de versiones inferiores hacia
SQL Server 2008 R2.
10. Figura 5
Una vez en la sección “Installation” (ver Figura 5) procederemos al apartado “New
installationoraddfeaturestoanexistinginstallation” con la que instalaremos una nueva
instancia de SQL Server 2008 R2 a nuestro equipo.
11. Una vez hecho click en dicha opción procederemos con la instalación siguiendo los
pasos de las imágenes que se pueden ver a continuación (ver Figura 6).
NOTA: En este artículo nos vamos a centrar en instalar instancias únicas de SQL
Server. Si lo que queremos es instalar SQL Server 2008 R2 en clúster para alta
disponibilidad, se recomienda al lector la lectura del siguiente post: “Como instalar
un clúster de SQL Server 2008 en Windows Server 2008”
Figura 6
12. Como vemos en la figura 6, antes de empezar el instalador realiza unos chequeos de
integridad del sistema para comprobar que está todo listo para la instalación. Si por
ejemplo tuviéramos el sistema esperando para ser reiniciado por cualquier otra
instalación previa anterior, no nos dejaría continuar.
Figura 7
Antes de comenzar, es mejor que tengamos el código de licencia preparado
(podríamos instalar si no fuera así en modo evaluación).
13. Figura 8
Una vez validado el código de licencia de SQL Server 2008 R2 se nos mostrarán los
términos de la licencia que tendremos que aceptar.
14. Figura 9
Una vez aceptados los términos, en la Figura 9 podemos observar como se realizan
de nuevo una serie de chequeos previos a la instalación, que debemos cumplir antes
de proseguir.
En este caso, comentar únicamente que siempre que tengamos activo el firewall de
Windows, el asistente nos dará un Warning el apartado “Windows Firewall” (Ver
figuras 9 y 10)
15. Figura 10
Esto no nos impedirá la instalación, simplemente se nos está informando que
tengamos cuidado de habilitar las reglas en el firewall de Windows necesarias para
permitir la conexión de clientes remotos hacia el servicio de SQL Server 2008 R2.
Entre otras cosas, conviene recordar que a menos que sea modificado (cosa que es
recomendable como buena práctica) el puerto por defecto que escucha SQL Server
2008 R2 es el 1433. Ver sección apéndice para más información sobre seguridad.
Una vez hecho clic sobre el botón siguiente, se nos pedirá qué Rol vamos a instalar
de SQL Server 2008 R2 (ver figura 11)
16. Figura 11
Puesto que lo que vamos a realizar es una instalación de instancia única de SQL
Server 2008 R2, nos quedaremos con la primera de las opciones que salen (SQL
Server FeatureInstallation).
Hecho esto, la siguiente pantalla que podemos ver en la Figura 12, nos va a requerir
qué servicios y características de SQL Server 2008 R2 vamos a desear instalar.
17. Figura 12
Puesto que este artículo está centrado en una instalación de motor relacional de SQL
Server 2008 R2, en la imagen de la Figura 12 se pueden observar qué características
y servicios se recomienda instalar.
1. DatabaseEngineServices
Se trata del motor relacional de SQL Server, justo lo que queremos instalar.
18. La instalación de SQL Server Replicación se recomienda instalar solo si la instancia
va a formar parte de alguna manera en algún rol de replicación. Lo mismo ocurre con
Full-Text Search.
Como Buena práctica, siempre es recomendable en cualquier instalación de
cualquier software, solo instalar aquellas características de las cuales se va a
hacer uso. Se deja de cualquier forma al lector que tome la decisión de instalar o no
dichas características.
En nuestro ejemplo, las hemos marcado porque de antemano sabemos que esta
instancia en un futuro hará uso de ambos servicios.
2. Business IntelligenceDevelopment Studio
Tambien conocido como BIDS, se trata de una versión de Visual Studio con soporte
para la creación de proyectos de inteligencia de negocio como IntegrationServices,
ReportingServices o AnalysisServices.
Puesto que como veremos más adelante, vamos a querer instalar el servicio de SQL
Server IntegragionServices, es recomendable marcar esta casilla.
3. Client Tools Connectivity
Librerias de acceso SQLNCLI para comunicación entre clientes y servidores SQL
Server
4. IntegrationServices
Pese a que este servicio no es puramente relacional, siempre es útil instalarlo junto al
motor relacional porque es habitual realizar procesos de carga y transformación de
datos utilizando SQL Server IntegrationServices.
5. Management Tools – Basic
En este caso, es buena idea tener instaladas las herramientas de administración de
SQL Server para emergencias (por si solo pudiéramos logear localmente por cualquier
motivo). Se instalarán: SQL Server Management Studio, SQLCMD y el
proveedorpowershellpara SQL Server (sqlps.exe)
6. Management Tools – Complete
Añadesoporte extra para SQL Server Management Studio con conexion a Reporting
Services, Analysis Services e Integration Services
19. Añadelasherramientas SQL Server Profiler, Database Tuning Advisors.
Al igual que el punto 5, se recomienda instalar para emergencias, no porque vayamos
a utilizarlo como software de acceso y/o análisis habitual.
Una vez seleccionados los componentes que deseemos, se realizará un nuevo
chequeo enfocado en este caso a detectar posibles incompatibilidades o
inconsistencias a la hora de instalar los componentes y características que se han
seleccionado especialmente (Ver figura 13).
Figura 13
20. En la siguiente imagen, la figura 14, vamos a indicar tanto la ruta donde desplegará
los binarios de SQL Server, como el nombre de la instancia que le queramos dar (en
el caso de que queramos).
El dar un nombre a la instancia o no, depende de criterio personal. Solo hay que tener
en cuenta que únicamente se permite una instancia con nombre por defecto y que no
podremos elegir MSSQLSERVER. Por tanto, si ya tenemos una instancia con nombre
por defecto, la única opción que podríamos escoger es la de NamedInstance y asignar
un nombre.
Figura 14
21. En este caso, le hemos dado un nombre de instancia “SQL2008R2”. Puesto que es
posible instalar más de una única instancia de SQL Server en una misma máquina, si
existieran otras instancias en la máquina, en el DataGrid que aparece en el centro de
la figura 14 lo podríamos detectar para evitar dar un nombre que ya estuviera
asignado.
s
Figura 15
En la figura 15 podemos apreciar un breve resumen relativo al espacio en disco
requerido y la ubicación raíz de instalación, pero esto no quiere decir que ya hayamos
terminado de configurar la instalación.
22. Si no cumpliéramos con el espacio de disco mínimo requerido no se podría continuar
con la instalación.
Como vemos en la figura 16, ahora toca el turno de configurar las cuentas del servicio
y el collation.
Figura 16
En la Figura 16 podemos apreciar que se nos pide introducir una cuenta de usuario
para arrancar todos y cada uno de los servicios que hayamos requerido instalar.
23. Como buena práctica se recomienda utilizar un usuario de dominio creado explícita y
exclusivamente para el servicio concreto del que estemos hablando. Además, se
recomienda que dicho usuario tenga los mínimos privilegios y permisos posibles.
En la imagen se puede apreciar como cada servicio de SQL Server que se ha
solicitado instalar, posee una cuenta de dominio diferente.
Una vez asignados los usuarios que levantarán los servicios de SQL Server 2008 R2,
procederemos a configurar el collation de la instancia (Ver figura 17).
24. Figura 17
En la figura 17 podemos ver cómo modificar el collation que nos propone SQL Server
por defecto (dependerá del idioma del usuario que esté instalando SQL Server en ese
momento).
Es de vital importancia que se tenga claro el collation a utilizar, puesto que un error
en su elecciónrequerirá un trabajo duro para cambiarlo (en ocasiones incluso sale a
cuentas reinstalar de nuevo toda la instancia de SQL Server).
Por ejemplo, si la instancia que estamos instalando va a albergar bases de datos que
ya existen en otras instancias actualmente, es altamente recomendable que
asignemos el mismo collation que hay en la instancia de SQL Server de donde
provienen. Esto nos evitará futuros problemas de conflicto de collations y
ordenaciones fruto de una mala elección.
NOTA: Para conocer el collation de una instancia actual lanzar la siguiente
consulta:
selectSERVERPROPERTY(N’Collation’)
Si por el contrario la instancia es nueva y albergará nuevas bases de datos que
estamos en potestad de asignar un collation en este momento, recomendamos utilizar
collations de Windows. Los collations de SQL Server se siguen manteniendo por
compatibilidad hacia atrás y si no es requerido se recomienda utilizar los de Windows.
25. Figura 18
En la imagen de la Figura 18 podemos ver qué configuraciónes predeterminadas a
nivel de motor relacional podemos realizar:
Asignar un login concreto al rol sysadmin
Crear un password para el usuario sa
Asignar directorios predeterminados (Ver Figura 19)
Asignar el estado de la configuración FILESTREAM (Ver Figura 20)
26. Figura 19
En la Figura 19 podemos ver donde nos asigna de forma predeterminada SQL Server
las rutas de:
Raiz de instalación de SQL Server
Directorio de datos predeterminado para nuevas BBDD y ficheros
Directorio de logs predeterminado para nuevas BBDD y ficheros
Directorio donde se creará el fichero de datos para tempdb
Directorio donde se creará el fichero de logs para tempdb
Directorio predeterminado de copias de seguridad
27. Todos estos directorios pueden ser modificados a posteriori, pero este quizás también
sea un buen momento para dejarlo listo.
Figura 20
Desde la versión de SQL Server 2008 podemos disfrutar de un nuevo tipo de datos
denominado Filestream, que obviamente también viene con SQL Server 2008 R2. Si
vamos a hacer uso del mismo, en esta pantalla podremos configurar sus tres estados
posibles:
a. Habilitado para T-SQL
28. b. Habilitado para acceso a través de sistema de ficheros localmente
c. Habilitado para acceso a través de sistema de ficheros local y remotamente
Como siempre, se trata de una característica que podremos habilitar a posteriori y se
recomienda no habilitarla si sabemos de antemano que no la vamos a utilizar.
Una vez llegados a este punto, hemos configurado todo lo que teníamos que
configurar para la instalación de SQL Server y procederemos a las pantallas de
validación final y confirmación de elecciones.
29. Figura 21
En la Figura 21 Microsoft nos pregunta si deseamos que se envíen errores de reporte
para los servicios que no poseen interactuación humana. Esto que es obviamente de
libre elección, recordemos que ayuda a mejorar el soporte que nos brinda Microsoft y
a corregir posibles bugs de producto.
Figura 22
30. Figura 23
En la figura 23 podemos ver un resumen de las características y servicios que se van
a instalar y donde, y será el último paso a realizar hasta la instalación de SQL Server
2008 R2
32. Figura 25
Una vez terminado el proceso de instalación, ya podremos comenzar a trabajar con
SQL Server 2008 R2 inmediatamente, puesto que no será necesario reinicio alguno.
APÉNDICE
Configuración de seguridad básica
Permisos de sysadmin
33. De forma predeterminada, los miembros de BUILTINAdministrators poseen
derechos de administración. Se recomienda evitar que ninguno de los inicios de
sesión sea incluido en el grupo de usuarios BUILTINAdministrators
Permisos de la cuenta de servicio de SQL Server
Se recomienda que los servicios de SQL Server sean iniciados por un una cuenta del
dominio, y que esta misma tenga los mínimos permisos necesarios (algunos de los
que debe tener ya se han enunciado anteriormente) para minimizar un potencial
riesgo de seguridad en caso de exploit futuro.
Por ello, se recomienda crear usuarios del dominio con los mínimos privilegios
posibles para levantar los servicios de SQL Server, SQL Server Agent,
ReportingServices y AnalysisServices
Sql Server Auditing
Asegurarse que existe la auditoria de accesos fallidos. Con ella, el sistema captura
tanto intentos infructuosos a SQL Server de usuarios Windows y SQL. De esta forma
se pueden detectar ataques por fuerza bruta
Puerto de escucha de SQL Server
Se recomienda cambiar el puerto de escucha de SQL Server 2008 R2 para que no
sea utilizado el puerto en forma predeterminada (1433).
Ofuscar el servicio SQL Server a conexiones externas
34. Suele ser común pensar en detener el servicio SQL Browser para dificultar la labor de
detección de instancias de SQL Server en la red. Ciertamente, este servicio si se
para, producirá que no podamos realizar consultas a ningún sitio para determinar el
puerto y nombre de instancia al que conectarnos…
El problema de detener el servicio de SQL Browser es que dicho servicio no solo es
utilizado para eso, sino que el detenerlo puede dar lugar a verdaderos quebraderos de
cabeza en según qué escenarios (clustering, conexión DAC con nombre de instancia,
etc…)
Lo cierto es que no es necesario detener el servicio para “ofuscar” la conexión hacia
SQL Server, puesto que a nivel de protocolos de red, es posible marcar la instancia
como “oculta”, de forma que solo conociendo su nombre de instancia y puerto,
seamos capaces de conectarnos a ella.
Según se puede apreciar en la imagen, al hacer clic sobre “Protocolsforxxxx”,
disponemos de la opción de ocultar la instancia (que en forma predeterminada está a
No).
35. Con esto no queremos dar la sensación al lector de que el servicio se encuentra a
salvo de detectores de SQL Server, pero al menos se lo ponemos más difícil.
Autores
Enrique Catala Bañuls es mentor en el área relacional de la empresa Solid
QualityMentors. Es MCT, MCITP, MCTS y ha sido nombrado MAP 2010 (Microsoft
Active Professional). Centrado profesionalmente en bases de datos SQL Server,
durante los últimos 5 años tiene su foco principal de operación en solución de
problemas de rendimiento, escalabilidad, migraciones y alta disponibilidad. Además
de impartir cursos oficiales de Microsoft, ha participado como speaker en eventos de
lanzamiento de Microsoft España (Microsoft SQL Server 2008), en las 24h de
conferencias de SQL PASS, miembro del nuevo SQL PASS Spain, en charlas del
grupo de usuarios de Microsoft GuseNET y es ponente habitual de sesiones dentro
del SolidQ Summit Madrid.
Rubén Garrigós es un experto en troubleshooting, tuning y diseño de soluciones
empresariales de alta disponibilidad basadas en SQL Server. Durante los últimos
cinco años ha trabajado con tecnologías de acceso a datos de Microsoft en
compañías líderes de todo el mundo. Actualmente es un arquitecto de la plataforma
de datos de Microsoft basada en SQL Server y aplicaciones .NET en Solid
QualityMentors. Está certificado por Microsoft como desarrollador de soluciones en
.NET (MSCD) así como administrador y desarrollador de base de datos (MCITP DBA
& DBD). En estos años ha impartido múltiples cursos oficiales de Microsoft así como
cursos especializados en SQL Server. Además ha presentado sesiones en eventos
oficiales de Microsoft y ante grupos de usuarios de tecnologías Microsoft.
Enrique Puig Nouselles es miembro de Solid QualityMentors en el departamento de
Motor Relacional. MCITP de SQL Server, realiza labores de Data PlatformEngineer.
Ha participado como speaker en eventos de lanzamiento de Microsoft España
(Microsoft SQL Server 2008R2) y en la serie de webcasts de novedades de SQL
Server 2008 R2. También ha impartido diversas charlas con en el grupo de usuarios
de Microsoft GuseNET y ha colaborado con el magazine dotNETMania.
Articulo Original
http://msdn.microsoft.com/es-es/sqlserver/gg521092