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:

AlCapone

IBMer
Se incorporó
15 Octubre 2005
Mensajes
3.160
Compartida x todas mis redes!
La probaré eventualmente (estoy al horno como siempre) pero notable y realmente útil! De verdad, mil gracias x compartir! Me dio nostalgia de otros tiempos, cuando eramos muchos que intentabamos compartir cosas así... que siga creciendo Capa9!!!!
 
Upvote 0

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
Compartida x todas mis redes!
La probaré eventualmente (estoy al horno como siempre) pero notable y realmente útil! De verdad, mil gracias x compartir! Me dio nostalgia de otros tiempos, cuando eramos muchos que intentabamos compartir cosas así... que siga creciendo Capa9!!!!
Compadre, es un chiste lo fácil que es instalarlo. Esa facilidad es punto a favor de Microsoft.

Enviado desde mi Moto E (4) Plus mediante Tapatalk
 
Upvote 0

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.599
No se ve complicado... básicamente es agregar repo, instalar paquete.

Me queda una duda sí... por qué desactivar SELinux? A mi me ha salvado de varias ya.

Saludos.
 
Upvote 0

AlCapone

IBMer
Se incorporó
15 Octubre 2005
Mensajes
3.160
Lo vi... pero eso abre la discusion. En cloud multi tenant (fierro fisico compartido) como se comportará con carga? Ante workloads intensos, le romperá el ass a la misma carga en windows por la mejor gestión de la memoria? Cómo se irá estandarizando el tunning del sistema base para sacarle todo el jugo?

Y eso q toy dormido... pero a mi me sirve porque una vez instalada puedo empezar a hacer estas pruebas y recomendar más informado a mis clientes pa donde ir ;)
 
Upvote 0

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
Lo vi... pero eso abre la discusion. En cloud multi tenant (fierro fisico compartido) como se comportará con carga? Ante workloads intensos, le romperá el ass a la misma carga en windows por la mejor gestión de la memoria? Cómo se irá estandarizando el tunning del sistema base para sacarle todo el jugo?

Y eso q toy dormido... pero a mi me sirve porque una vez instalada puedo empezar a hacer estas pruebas y recomendar más informado a mis clientes pa donde ir ;)

Ayer lo probé con una prueba de carga masiva + OLTP de hasta 100 usuarios concurrentes. Comparando con una instalación equivalente de SQL Server sobre Windows (misma RAM, mismos cores) el proceso OLTP fue similar en tiempo. Sin embargo, el proceso de carga inicial de datos voló en Linux. Eso si, sin ningún tuning ni nada, simplemente la configuración que te deja la instalación.
 
Upvote 0

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
No se ve complicado... básicamente es agregar repo, instalar paquete.

Me queda una duda sí... por qué desactivar SELinux? A mi me ha salvado de varias ya.

Saludos.

@yakko dijo una vez que Selinux valía callampa y puta, un tipo con tan buen genio como Felipe no exagera.


Hablando en serio, la documentación oficial de instalación es pobre. Cáchate que cuando fui a buscar la recomendación de swap, microsoft te dice "pon espacio suficiente en la swap". Y puta, pocazo. Oracle te da las medidas exactas de swap para todos los sistemas que fue lo que utilicé en esta guía de SQL Server.

Bueh, como no hacían referencia a Selinux utilicé el mismo criterio que Oracle: desactivar. Recordemos que estos servidores de base de datos muy generalmente están dentro de una lan y no están expuestos a ataques externos por lo que basta (y en algunos casos hasta sobra) con la protección del firewall de Linux.
 
Upvote 0

Miguelwill

I am online
Miembro del Equipo
MOD
Se incorporó
23 Febrero 2004
Mensajes
12.402
buena guía, muestra lo fácil que puede ser instalar algo cuando el desarrollador se lo propone (dependencias, requerimientos, librerías a usar, etc )

Enviado desde mi TA-1039 mediante Tapatalk
 
Upvote 0

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
buena guía, muestra lo fácil que puede ser instalar algo cuando el desarrollador se lo propone (dependencias, requerimientos, librerías a usar, etc )

Enviado desde mi TA-1039 mediante Tapatalk

Si, ideal para los desarrolladores que no son muy duchos para las instalaciones. Dadme acceso a los repositorios y yum hará el resto.
 
Upvote 0

Zuljin

Fundador
Miembro del Equipo
Fundador
ADMIN
Se incorporó
15 Enero 2004
Mensajes
11.872
se puede instalar en cluster?

¿Tú dices un cluster de linux y sobre eso SQL Server? Así desde la recomendación de SQL Server yo diría que no lo soportan, pero dentro de la factibilidad técnica yo creo que si se puede.
 
Upvote 0

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.599
Hablando en serio, la documentación oficial de instalación es pobre. Cáchate que cuando fui a buscar la recomendación de swap, microsoft te dice "pon espacio suficiente en la swap". Y puta, pocazo. Oracle te da las medidas exactas de swap para todos los sistemas que fue lo que utilicé en esta guía de SQL Server.

La falta de documentación es de hecho un legado con el que Microsoft tendrá que apechugar y mejorar bastante. Una de las cosas que me llama mucho la atención de sistemas Windows en general, es la escasa documentación y poca profundidad en muchos temas.

Dicho eso, han hecho bastante para mejorar esto así que creo que sólo será cosa de tiempo.

@yakko dijo una vez que Selinux valía callampa y puta, un tipo con tan buen genio como Felipe no exagera.

Bueh, como no hacían referencia a Selinux utilicé el mismo criterio que Oracle: desactivar. Recordemos que estos servidores de base de datos muy generalmente están dentro de una lan y no están expuestos a ataques externos por lo que basta (y en algunos casos hasta sobra) con la protección del firewall de Linux.

Y aún así, errar es humano. A mi me pasó una vez que dejé abierto un redis al mundo sin credenciales simplemente pq me equivoqué en la configuración del firewall. Pasó piola por 2 semanas antes que llegara el watchdog alemán (los servidores estaban alojados allá donde son muy muy cuáticos con el tema de la seguridad y datos personales), nos detectara y avisara.
En ese caso, mejor prevenir antes que curar ;)

Saludos.
 
Upvote 0

Miguelwill

I am online
Miembro del Equipo
MOD
Se incorporó
23 Febrero 2004
Mensajes
12.402
a todo esto, ojo a todos los que manejen servidores con memcached, de solo dejar el puerto en localhost o con acceso restringido, ya que lo están utilizando para hacer ataques DDoS (zimbra por defecto lo tiene abierto al mundo D: )

Enviado desde mi TA-1039 mediante Tapatalk
 
Upvote 0

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.599
a todo esto, ojo a todos los que manejen servidores con memcached, de solo dejar el puerto en localhost o con acceso restringido, ya que lo están utilizando para hacer ataques DDoS (zimbra por defecto lo tiene abierto al mundo D: )

Enviado desde mi TA-1039 mediante Tapatalk

Sip, más info http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-1000115

En nuestro caso, memcached (que tb lo ocupamos) sólo está abierto a las ips que pueden hablarle directamente.

Saludos.
 
Upvote 0

AlCapone

IBMer
Se incorporó
15 Octubre 2005
Mensajes
3.160
Y aún así, errar es humano. A mi me pasó una vez que dejé abierto un redis al mundo sin credenciales simplemente pq me equivoqué en la configuración del firewall. Pasó piola por 2 semanas antes que llegara el watchdog alemán (los servidores estaban alojados allá donde son muy muy cuáticos con el tema de la seguridad y datos personales), nos detectara y avisara.
En ese caso, mejor prevenir antes que curar ;)

Saludos.
Pero... es que quien hostea en alemania puh! xD

Te piden mas info q cuando vas a donar sangre y te auditan hasta el adn!
 
Upvote 0

unreal4u

I solve problems.
Miembro del Equipo
ADMIN
Se incorporó
2 Octubre 2005
Mensajes
13.599
Pero... es que quien hostea en alemania puh! xD

Te piden mas info q cuando vas a donar sangre y te auditan hasta el adn!

Sip, pero 100% uptime desde hace 5 años por un precio más que pagable es... impagable xD

(Las veces que hemos estado down ha sido por nuestra propia culpa).

Lo único malo es que nuestro hosting no es PCI-DSS compliant, así que para el futuro tendremos que buscarnos otro hosting donde hacer el procesamiento de tarjetas de crédito :dalomismo

Saludos.

PD::: MIENTO MIENTO!!! Una máquina (de las 15+ que tenemos con ellos) estuvo down por 1 hora y media una vez pq cagó no sé si la placa madre o la RAM, pero respondieron rápido :)
 
Upvote 0
Subir