Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
Y vamos con otra guía: instalación de SQL Server 2017 sobre CentOS 7.

Antes que todo, queridos radioescuchas, quiero compartir con ustedes el enlace oficial de Microsoft respecto a esta versión de SQL Server.

https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-setup

https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-performance-best-practices

Como pueden apreciar, las distros oficialmente soportadas son RedHat 7.3 y superior, Suse ES de la 12SP2 y superior y Ubuntu 16.04, además del engine de Docker.
El decir "oficialmente soportadas" significa que los servicios de soporte oficiales de RedHat darán respuesta ante requerimientos de instalaciones sobre alguno de esos sistemas operativos, a pesar de que en CentOS también funcione sin inconvenientes. Es más, esta guía va sobre CentOS.

Consideren una máquina con por lo menos 4GB de RAM y espacio en disco a requerimiento de la base de datos que ustedes planeen montar en esa plataforma. Y ahora si, vamos a lo que nos convoca.


Instalación del Sistema operativo.

Deben tener cuidado sólo en dos opciones de la confguración.
Software Selection: Minimal Install.
Evidentemente ustedes pueden instalar el modo gráfico de Linux y todo lo que quieran, pero por razones de rendimiento y seguridad les recomiendo instalar lo mínimo.

Installation Destination: I will configure partitioning, y presionen el botón Done.
Luego hagan click en la opción Click here to create them automatically.
Se desplegará la pantalla de distribución de espacio.
- Para el home, 8 GB como máximo. El servicio SQL Server NO UTILIZA el home.
- Para la swap no hay reglas claras así que utilicé la misma lógica que para Oracle:
Si la RAM es menor o igual a 2GB, la swap debe ser 1,5 x RAM.
Si la RAM es entre 2GB y 16GB, la swap debe ser igual a la RAM.
Si la RAM es superior a 16GB, la swap debe ser de 16GB.
El resto del espacio disponible es para el filesystem de la raiz.
Una vez finalizado, presionar el botón DONE y luego el botón Accept Changes.

La razón de esto: el servicio SQL Server se instala en /opt, en el filesystem de la raíz.

Opcional: Consideraciones de storage.
Si les es posible, consideren montar volúmenes adicionales para los archivos de las bases de datos que se montarán. Por ejemplo, un filesystem llamado "/DATA" o algo así.


upnm5KU.jpg



Una vez que tengan todo configurado presionen el botón Begin Installation.
Durante el proceso de instalación configuren la contraseña de la cuenta root.


Un vez finalizada la instalación del sistema operativo, ingresen al servidor vía ssh con la cuenta root.

Instalen los paquetes para las vmware tools y el paquete sysstat necesario para medir rendimiento en tiempo real.
En verde lo relacionado a vmware. Si su servidor no es una máquina virtual vmware, omitan todo lo que está en verde.


# yum install open-vm-tools sysstat
# systemctl start vmtoolsd.service
# systemctl enable vmtoolsd.service


Deshabilitar selinux.

# vi /etc/selinux/config

Dejar SELINUX en disabled
SELINUX=disabled


Realizar una actualización completa de paquetes.

# yum update
# restart


Ingresar nuevamente vía ssh con la cuenta root.


Configurar repositorios para SQL Server.

# vi /etc/yum.repos.d/sql-server.repo

Y dentro del archivo configurar lo siguiente:

[packages-microsoft-com-mssql-server]
name=packages-microsoft-com-mssql-server
baseurl=https://packages.microsoft.com/rhel/7/mssql-server-2017/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc

#
vi /etc/yum.repos.d/msprod.repo

Y dentro del archivo configurar lo siguiente:

[packages-microsoft-com-prod]
name=packages-microsoft-com-prod
baseurl=https://packages.microsoft.com/rhel/7/prod/
enabled=1
gpgcheck=1
gpgkey=https://packages.microsoft.com/keys/microsoft.asc

Nota: Antes de continuar revisen por browser los repositorios https://packages.microsoft.com pues puede darse la situación de que Microsoft cambie el nombre de las rutas y ustedes deberán cambiar los baseurl.


Instalar el software SQL Server y herramientas necesarias

# yum install mssql-server mssql-tools


Durante el proceso se requerirá aceptar condiciones de licencia. Escribir YES.Yum se encargará de instalar todas las dependencias necesarias desde los repos oficiales de CentOS, que vienen configurados por defecto.


Detener el servicio de sql server

# systemctl stop mssql-server


Iniciar la configuración de SQL Server

# /opt/mssql/bin/mssql-conf setup

La primera pantalla solicitará el tipo de edición, según la licencia existente. Indicar el número asociado a la licencia.

tJOxAZa.jpg



Acto seguido, solicitará confirmación del tipo de licencia seleccionada. Si está todo en orden, escribir YES.

La pantalla siguiente solicitará contraseña de la cuenta administradora de SQL Server. Es la cuenta sa la cual es el superusuario de SQL Server (equivalente a root de Mysql y a sys de Oracle). Ingresar la contraseña para continuar y luego confirmarla.

QHpUqKS.jpg


lo cual significa que el servicio fue configurado y ya está en ejecución.


Configurar para que SQL Server se inicie automáticamente.

# systemctl enable mssql-server

Opcional (y recomendado). Habilitar el acceso por el firewall.

# firewall-cmd --zone=public --permanent --add-service=mssql
# systemctl reload firewalld


Luego de esto pueden realizar una conexión remota por Management Studio (remota si es que la licencia de la edición lo permite) para administrar y crear otros usuarios y bases de datos necesarios para las aplicaciones.

C9bMSvn.jpg



y eso sería todo, gente de bien.


Al día de confección de esta guía, el 7 de Marzo de 2018, la versión que queda instalada con yum desde los repos de Microsoft es SQL Server 2017 CU4, release number 14.3022.28.
 
Última modificación:

galansinchance

enajenao
Se incorporó
3 Enero 2006
Mensajes
7.425
Buenísima guía! ¿Qué versión de SQL Server es? ¿Qué tipo de licencia?

Enviado desde mi SM-G925I mediante Tapatalk
 
Upvote 0

Eliezar

mi gato :D
Se incorporó
1 Febrero 2007
Mensajes
4.848
el otro dia buscando info para implementar freetds para bases sql me salio MSSQL para linux , me dije a mi mismo , quien haria esto

y aqui veo quien :zippy , seria bueno que compartieras despues bajo que instancias seria mejor linux que windows para MSSQL , por que alguna razon tendra microsoft , aunque creo meramente estrategia comercial
 
Upvote 0

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
el otro dia buscando info para implementar freetds para bases sql me salio MSSQL para linux , me dije a mi mismo , quien haria esto

y aqui veo quien :zippy , seria bueno que compartieras despues bajo que instancias seria mejor linux que windows para MSSQL , por que alguna razon tendra microsoft , aunque creo meramente estrategia comercial

De repente está la opción de ahorrarte la licencia del sistema operativo que en ciertas ocasiones no es menor. Pero todavía no veo tan clara la existencia de una razón MUY OBVIA Y DEMOLEDORA para instalar SQL Server en Linux.
 
Upvote 0

GORDIO

Tatita del Ritmo
Se incorporó
30 Agosto 2005
Mensajes
2.097
a mi parecer el mercado de servidores linux es mas que grande para que les interese entrar.
Quiza con que estrategia pa monetizar despues, pero entrar es lo primero.
Ademas que SQL-server igual es un buen motor, con el que mucha gente ya esta familiarizado.
 
Upvote 0

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.602
el otro dia buscando info para implementar freetds para bases sql me salio MSSQL para linux , me dije a mi mismo , quien haria esto

y aqui veo quien :zippy , seria bueno que compartieras despues bajo que instancias seria mejor linux que windows para MSSQL , por que alguna razon tendra microsoft , aunque creo meramente estrategia comercial

En gran parte efectivamente fue estrategia comercial, pero por el otro lado, hasta Microsoft mismo corre algunas partes de sus plataformas más críticas con Linux[1] hoy en día.

Por lo comercial, si el 90% de las empresas future 500 ocupa Linux de alguna u otra forma en puntos críticos de su plataforma, Microsoft estaba perdiendo pesado frente a Oracle (que es la única otra opción con soporte oficial que te queda en Linux) y en mucha menor medida, MySQL y PostGreSQL. Otro dato rosa: del top 500 de supercomputadores actualmente en producción, exactamente 0 (!!) usan Windows [2].

El mercado en el área de servidores tampoco es muy alentador: el 76% de la web pasa en servidores Linux [3]. Así que era lógico que su plan de vender el paquete completo (OS + Software) no estaba funcionando muy bien.

Al desligar la parte de software del OS en que corre, tienen al menos chances de que para el próximo upgrade en la empresa, se siga ocupando al menos una parte de su software y de esa forma, minimizan las pérdidas que de otra manera, hubiese sido 100%.

Bajo esa misma mirada, y viendo cómo estaban perdiendo clientes como enfermos de la cabeza gracia al auge de Mac OS X, es que decidieron re-lanzar la suite de Office para Mac OS X (de nuevo).

Finalmente, aquellos que dijeron que el 2018 era el año de Linux finalmente tuvieron razón jajajajaja Lo único malo es que fue un cambio tan gradual que nadie se dio cuenta. Hoy en día, cerca del 90% de los computadores ocupan Linux: en gran parte gracias a Android e iOS, pero tb en menor medida, gracias a los televisores inteligentes que corren alguna variante de Linux o Android, e-readers como el Kindle o el Nook, parte del sistema de entretenimiento de autos como Honda, Ford y Toyota, o, en el caso más extremo, el auto completo (Tesla).

Saludos.

[1] https://www.wired.com/2015/09/microsoft-using-linux-run-cloud/
[2] https://www.top500.org/statistics/details/osfam/1
[3] http://fortune.com/2013/05/06/how-linux-conquered-the-fortune-500/
 
Upvote 0

AlCapone

IBMer
Se incorporó
15 Octubre 2005
Mensajes
3.160
el otro dia buscando info para implementar freetds para bases sql me salio MSSQL para linux , me dije a mi mismo , quien haria esto

y aqui veo quien :zippy , seria bueno que compartieras despues bajo que instancias seria mejor linux que windows para MSSQL , por que alguna razon tendra microsoft , aunque creo meramente estrategia comercial
Más corta... es x Cloud
 
Upvote 0

galansinchance

enajenao
Se incorporó
3 Enero 2006
Mensajes
7.425
Pero y la licencia?? o es una versión trial de 45 días o una recortada que motor te detiene las inserciones pasados los 2GB??
 
Upvote 0

Miguelwill

I am online
Miembro del Equipo
MOD
Se incorporó
23 Febrero 2004
Mensajes
12.403
Pero y la licencia?? o es una versión trial de 45 días o una recortada que motor te detiene las inserciones pasados los 2GB??
ahí mismo salía las alternativas
si usas alguna pagada, debería pedir el serial-key
no sé si con la express hacia abajo pida el serial, pero esas son gratuitas

Enviado desde mi TA-1039 mediante Tapatalk
 
Upvote 0

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
Update: hice una prueba de rendimiento entre SQL Server 2017 sobre Windows 2016 y SQL Server 2017 sobre CentOS 7. Prueba de un set de transacciones OLTP tipo TPC-E y la verdad es que la plataforma Windows Server dio mejores resultados a la plataforma Linux. No da para hacer benchmark ni review porque debería hacer más pruebas y mi habilidad para tunear SQL Server no es muy buena, pero me sorprendió que en su versión out of the box la versión sobre Windows dio mejores resultados, con diferencia, que la versión sobre CentOS.

http://www.tpc.org/tpce/default.asp
 
Upvote 0

Miguelwill

I am online
Miembro del Equipo
MOD
Se incorporó
23 Febrero 2004
Mensajes
12.403
Update: hice una prueba de rendimiento entre SQL Server 2017 sobre Windows 2016 y SQL Server 2017 sobre CentOS 7. Prueba de un set de transacciones OLTP tipo TPC-E y la verdad es que la plataforma Windows Server dio mejores resultados a la plataforma Linux. No da para hacer benchmark ni review porque debería hacer más pruebas y mi habilidad para tunear SQL Server no es muy buena, pero me sorprendió que en su versión out of the box la versión sobre Windows dio mejores resultados, con diferencia, que la versión sobre CentOS.

http://www.tpc.org/tpce/default.asp
como tienes la configuración de uso de RAM en SQL sobre centos ?
en Windows por defecto trata de usar toda la ram , lo que debe acelerar bastante los procesos con datos ya cargados

lo otro, prueba ejecutar las operaciones o el set completo más de una vez, ya que si los datos no estaban en memoria, hay un delay agregado al leer los datos desde el disco

Enviado desde mi TA-1039 mediante Tapatalk
 
Upvote 0

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
como tienes la configuración de uso de RAM en SQL sobre centos ?
en Windows por defecto trata de usar toda la ram , lo que debe acelerar bastante los procesos con datos ya cargados

lo otro, prueba ejecutar las operaciones o el set completo más de una vez, ya que si los datos no estaban en memoria, hay un delay agregado al leer los datos desde el disco

Enviado desde mi TA-1039 mediante Tapatalk

El set de pruebas fue exactamente el mismo para ambas plataformas así que la caché de datos funciona igual para ambas plataformas. Eso si, para la plataforma Windows previamente le había separado la ubicación de los logs de sql server, la data y los temporales en distintos filesystems. Para la plataforma Linux todo está en el mismo filesystem. No hice ninguna otra mejora ni toqué nada.
 
Upvote 0

Miguelwill

I am online
Miembro del Equipo
MOD
Se incorporó
23 Febrero 2004
Mensajes
12.403
El set de pruebas fue exactamente el mismo para ambas plataformas así que la caché de datos funciona igual para ambas plataformas. Eso si, para la plataforma Windows previamente le había separado la ubicación de los logs de sql server, la data y los temporales en distintos filesystems. Para la plataforma Linux todo está en el mismo filesystem. No hice ninguna otra mejora ni toqué nada.
ah ok
lo decia pensando en que el de windows estaba con datos ya cargados de consultas o procesos previos y no recien reiniciado, ya que en esos casos la primera consulta es mas lenta hasta que ya tiene todo en memoria, después ya funcionan muy rapido
 
Upvote 0

lavtaro

Capo
Se incorporó
11 Diciembre 2007
Mensajes
249
Muchas gracias por la guía, completé la instalación y ahora hacer pruebas, incluso por ahí dejar una pequeña aplicación funcionando, saludos.
 
Upvote 0

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
Muchas gracias por la guía, completé la instalación y ahora hacer pruebas, incluso por ahí dejar una pequeña aplicación funcionando, saludos.

Cuéntanos como resulta, si los respaldos andan bien, se siente más rápido, tu aplicación no reclama por la versión, etc.
 
Upvote 0

lavtaro

Capo
Se incorporó
11 Diciembre 2007
Mensajes
249
Cuéntanos como resulta, si los respaldos andan bien, se siente más rápido, tu aplicación no reclama por la versión, etc.
Es una aplicación que estaba planificando pasar a SQL Server, actualmente esta en firebird, entonces esta es la oportunidad, saludos.
 
Upvote 0

Miguelwill

I am online
Miembro del Equipo
MOD
Se incorporó
23 Febrero 2004
Mensajes
12.403
ideal ver el rendimiento de la app en el momento en que sql esta corriendo un backup :D

supongo que en linux al tener un solo sistema de archivos virtual, deberia dejar hacer el backup en un directorio montado remotamente
 
Upvote 0
Subir