Configuració d'un SGDB segons el guió anterior i prova de connectivitat

De Lordwektabyte Wiki
Salta a la navegació Salta a la cerca


Guillem Solà i Boeck (host A10BPC20)

Configuració d'un SGDB segons el guió anterior i prova de connectivitat

Procés de configuració del servidor

Programari del SGBD

Descàrrega

Descarregarem Microsoft SQL Server Advanced[1] des de la pàgina web de Microsoft i el desarem en un lloc conegut del servidor:

SQLServer1.png


Instal·lació

Farem doble clic i extreurem el contingut de l'arxiu .exe a l'escriptori mateix:

SQLServer2.png


Un cop acabada l'extracció, s'executarà automàticament el setup i configurarem la instal·lació del SGBD:

Farem clic a "Nueva instalación independiente de SQL Server o agregar características a una instalación existente"


Llavors haurem d'acceptar els termes i condicions de Microsoft per a poder utilitzar el seu software i es faran comprovacions del sistema per a trobar possibles incompatibilitats o problemes amb el sistema.

SQLServer4.png


Ara és moment de seleccionar les funcionalitats que volem instal·lar i les rutes on es farà la instal·lació:

Hem de parar atenció a no des-seleccionar "Herramientas de administración - Completa"


La ruta arrel de la instància [2] es troba a C:\Program Files\Microsoft SQL Server\, que és la ruta per defecte. Farem clic a Siguiente i començarà la instal·lació:

El programa d'instal·lació ens marca un error: ens fa falta instal·lar el .NET Framework 3.5 (o superior) per a poder prosseguir


  • Incidència
Per a suplir la dependència del programari .NET Framework descarregarem l'instal·lador des de la pàgina de Microsoft i l'instal·larem:
Haurem llegir i acceptar els termes i condicions imposats per Microsoft


Esperarem fins que acabi el procés d'instal·lació:
NETFramework2.png


La instal·lació ha sigut correcta


Ja tenim la incidència resolta. Ara haurem de tornar a executar el setup de SQL Server Advanced que hem extret al primer pas de l'apartat instal·lació i recomençar el procediment anterior fins abans de la incidència.
SQLServer7.png


Reprenem el fil a la configuració de la instància:[3] en el nostre exemple, usarem la opció per defecte ja que ens permet la possibilitat de poder afegir un nom a la instància (per a poder diferenciar-la d'una altra si en un futur necessitem una altra instància, que haurà de tenir un nom diferent)

Deixarem el nom per defecte SQLEXPRESS ja que tampoc és important més enllà de recordar-lo per a poder-nos connectar més endavant


Podem notar que la ruta final on es trobaran les dades (diccionari de dades) per a aquesta instància serà C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS Avançarem en l'assistent. El següent pas serà configurar el comportament dels serveis relacionats amb la instància de SQL Server. Haurem de canviar el comportament del servei SQL Server Browser[4] i posar-lo en mode automàtic. En el següent pas definirem el/s mode/s mitjançant els quals es podrà accedir a la instància. L'assistent ens ofereix dues opcions:

  • Mode d'autenticació de Windows: es necessita un compte d'usuari al servidor (o usuari del domini, en el cas que correspongui) per a poder accedir a treballar amb la instància SQL. És realment útil si administrem des de Windows i accedim des d'altres màquines Windows perquè ens estalviem introduïr contrasenyes cada vegada que connectem.
  • Mode mixt: permet accedir tant amb usuaris del sistema de Windows o bé amb un usuari local que només existeix per a la instància de la BBDD. Permet connexions externes des d'altres sistemes a través de drivers ODBC o similars.
Introduïrem la contrasenya que volguem per a l'usuari sa (equivalent al root de MySQL/MariaDB) d'aquella instància


Si investiguem una mica, podem veure que a la pestanya Directorio de datos hi ha la ruta on es desaran les dades C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Data

Podem veure (i modificar) les rutes de diferents directoris amb els que treballarà la nova instància que estem configurant. Seleccionat en blau, veiem el directori on es trobaran les dades


Pel que fa al servei de Reporting Services[5] deixarem l'opció per defecte instalar y configurar.

SQLServer11.png


Ja haurem acabat tot el procés amb l'assistent i començarà la instal·lació del motor de SQL Server amb la configuració de instància que hem escollit:

SQLServer12.png


Finalment, ens surt un resum de les característiques instal·lades (i el seu estat, si alguna hagués fallat) per a poder-ho revisar.

Ja podrem fer clic a cerrar i tancar l'assistent


Configuració

Començaré per a configurar l'SGBD de manera que poguem accedir-hi remotament des d'altres equips de la mateixa LAN. Haurem d'obrir l'Administrador de Configuración de SQL Server

SQLServer14.png


Al menú de l'esquerra, desplegarem Configuración de red de SQL ServerProtocolos de SQLEXPRESS[6].

SQLServer15.png


Habilitar el protocol Canalizaciones con nombre ens permetrà poder accedir al Sistema Gestor de la Base de Dades mitjançant nom de la instància en comptes d'haver de recordar el port per a cada instància (molt útil en configuracions multi-instància)

Habilitarem la funció Canalizaciones con nombre fent clic dret i seleccionant Habilitar


Per a activar els canvis realitzats, haurem de reiniciar el servei. Ho deixarem pel final quan haguem acabat les configuracions. També habilitarem el protocol TCP/IP per a poder connectar-nos al servidor a través de xarxa.

En aquest cas, accedirem a l'opció de propiedades


A la pestanya Protocolo, l'habilitarem seleccionant SÍ a la fila d'habilitado


A la pestanya Direcciones IP revisarem els diferents apartats (cadascun corresponent a una adreça IP que hagi tingut assignada el servidor) i habilitarem les adreces l'adaptador de xarxa dels quals volem permetre que es pugui accedir al servidor. En el meu cas, les habilito totes ja que apareixen les de loopback (127.0.0.1 i ::1) i l'adreça privada de la xarxa NAT del VirtualBox (10.0.2.15) de manera que pugui accedir des d'un client de la mateixa LAN de VirtualBox.

SQLServer19.png


SQLServer20.png


Aplicarem els canvis i ens sortirà aquest advertiment:

SQLServer21.png


Així doncs, ja podrem tancar l'Administrador de Configuración de SQL Server i ara executarem (o buscarem des del Menú Inicio) el services.msc del Windows i buscarem els serveis relacionats amb el servidor SQL:

  • SQL Server (SQLEXPRESS)[6]
  • SQL Server Browser
  • SQL Server Reporting Services (SQLEXPRESS)[6]
  • SQL Server VSS Writer

Els reiniciarem un per un amb clic dret → Reiniciar.

Procés de comprovació de la connectivitat

Comprovarem la connectivitat a nivell de xarxa primerament amb un simple ping a l'adreça del servidor des de qualsevol màquina client que pertanyi a la mateixa xarxa. Si aquest test és exitós, instal·larem SQL Server Management Studio a la màquina client i prosseguirem a fer una connexió al sistema gestor des d'una màquina dins la LAN.

Connectivitat de la xarxa

Comprovarem que tenim accés al servidor des d'una màquina client: ens servirà per a descartar possibles problemes de connectivitat degut a infraestructura o disseny de xarxa (VLANs aïllades, línies de xarxa malmeses, jittering[7])

SQLServer22.png


Una vegada comprovat que el ping és acceptable i estable, podrem prosseguir a connectar-nos amb el software client per gestionar el motor de la base de dades.

Eines o programari que es faran servir per a l'accés remot

Descàrrega i instal·lació

Per a l'accés remot descarregarem el programa SQL Server Management Studio a l'ordinador client. El descarregarem des de la pàgina web del fabricant. Triarem l'idioma i descarregarem l'executable corresponent al programari de gestió: MgmtStudio 64BIT\SQLManagementStudio_x64_ESN.exe. Un cop descarregat, executarem l'arxiu descarregat i, de la mateixa manera que a l'apartat descàrrega, s'extreurà una carpeta i s'executarà automàticament el setup del programa:

SQLServer23.png


Triarem l'opció de Nueva instalación de SQL Server o agregar características a una instalación existente, acceptarem els termes i condicions de Microsoft i avançarem tal com a l'apartat instal·lació del SGBD; ja que l'assistent és pràcticament idèntic, amb l'única diferència que el que instal·larem serà només el Management Studio per a gestionar el servidor SQL Server.

Acceptarem les opcions per defecte i esperarem que acabi la instal·lació


Quan acaba la instal·lació se'ns mostrarà el resum de característiques instal·lades correctament per a poder-ho revisar:

SQLServer25.png


Ara podem tancar l'assistent d'instal·lació i buscar al menú inici de Windows el programa SQL Server Management Studio per a comprovar la connexió.

Execució

Executarem el programa des del menú inici


Quan hagi arrencat completament, ens mostrarà una finestra petita on podem especificar una adreça, un nom d'usuari i una contrasenya per a connectar-nos a un servidor SQL Server. Com a adreça haurem d'especificar l'adreça i el nom d'instància concret al que volem connectar; en el nostre cas: 10.0.2.15\SQLEXPRESS. Com que el compte d'usuari del Windows 10 (client) no és el mateix que l'usuari Administrador del Windows Server 2012 (servidor), usarem el compte sa amb la contrasenya que hem definit durant la instal·lació del servidor SQL Server per a poder accedir-hi com a superadmin.

Clicarem connectar una vegada introduïdes les dades necessàries per connectar-nos al motor de base de dades


Si la connexió és satisfactòria, veurem a l'esquerra un panell desplegable amb menús per navegar per les bases de dades del servidor en el que ens hem connectat.

SQLServer28.png


En aquest punt, ja tenim el servidor a punt per poder-hi treballar tant localment (des del mateix servidor) o bé remotament amb SQL Server Management Studio. Podríem començar a crear bases de dades, taules, usuaris, vistes, procediments, fucncions...

Prova de creació d'una BBDD i inserció de dades d'exemple

Per a avançar a la següent secció necessitarem crear una base de dades de prova hipotètica que servís per a desar les dades de l'empresa en qüestió. Ho farem de la manera següent: Clic dret a Bases de datos i triar l'opció nueva base de datos

SQLServer29.png


Al diàleg que se'ns obre, per ara, només triarem un nom per a posar a la base de dades que volem crear i acceptarem

SQLServer30.png


Si tot va bé, al menú de l'esquerra, veurem la nostra base de dades juntament amb les altres necessàries pel funcionament del sistema

SQLServer31.png


Un cop creada la BBDD podem desplegar-la amb l'icona '+' i afegir taules fent clic dret a l'apartat corresponent i clicant tabla

SQLServer32.png


Se'ns obrirà un dissenyador per afegir camps i definir els tipus per a una taula nova. Afegirem els camps que volguem i, des del desplegable de la dreta, li posarem un nom: treballadors

SQLServer33.png


Desarem els canvis i crearem la taula fent clic al símbol de desar del menú d'eines de la part superior de la finestra

SQLServer34.png


Amb això ja tindrem una taula buida apunt per omplir amb dades d'exemple per a avançar en la pràctica. Per a omplir la taula, tenim l'opció d'editar les primeres 200 files fent clic dret sobre la taula i escollir l'opció; o bé obrir un editor de consultes i fer els corresponents INSERT per a poblar la taula amb dades d'exemple

SQLServer35.png


Possible incidència: ens podem trobar que no poguem desar un valor concret. Molt probablement sigui perquè volem inserir un tipus de dades que aquell camp no accepta.
En aquest exemple provo d'inserir caràcters al camp "edat" que és del tipus int


Fer la connexió remota amb ODBC. Administrar remotament

Configuració

Per a completar aquesta secció utilitzarem el programari LibreOffice Base per a carregar dades des del servidor SQL Server. El descarregarem des de la seva pàgina i l'instal·larem a l'equip client. Quan el tinguem instal·lat, l'obrirem i triarem Conectar con una base de datos existente i marcarem ODBC al desplegable; dient així la manera amb la que ens hi volem connectar.

SQLServer37.png


Farem clic a Siguiente i aquí haurem d'afegir el servidor de BBDD al que ens volem connectar i dir quin controlador ODBC usarem (en funció del SGBD, en el nostre cas Microsoft SQL Server). Farem clic a ExaminarOrganizarAgregar, marcarem ODBC Driver 11 for SQL Server i clicarem Finalizar.

SQLServer38.png


Aleshores ens apareixerà un diàleg on definirem un nom per a aquesta connexió ODBC que estem creant, una descripció (opcional) i, òbviament, l'adreça del servidor on volem connectar. És un desplegable que la primera vegada triga perquè, per defecte, et surten equips de la xarxa que tenen un servidor SQL Server compatible amb el controlador ODBC que hem escollit al segon pas d'aquesta secció.

SQLServer39.png


El següent pas és definir amb quin compte ens connectarem. Com que es tracta d'un SQL Server de Microsoft, tenim l'opció d'usar el compte de Windows o bé usar un usuari i contrasenya del servidor SQL. En el meu cas, com que el compte de Windows que estic utilitzant no existeix al servidor, m'autenticaré usant el compte d'administrador del servidor SQL.

SQLServer40.png


Aquí podrem, bàsicament, definir una BBDD predeterminada quan utilitzem aquesta connexió. Jo crec oportú seleccionar la BBDD_Empresa que he creat abans per què no hi hagi problemes manipulant les altres BBDD del sistema; que podria donar lloc a problemes usant el compte sa.

SQLServer41.png


Farem clic a finalizar i se'ns mostrarà un resum de la configuració de la connexió ODBC creada. Tenim l'opció de testejar aquesta configuració abans de seguir endavant.

SQLServer42.png


Les proves són satisfactòries


Finalitzarem l'assistent i aleshores tindrem aquesta connexió ODBC disponible per a ser usada des del LibreOffice Base.

SQLServer44.png


Clicarem acceptar i avançarem amb siguiente un cop seleccionat


Se'ns tornarà a demanar autenticació (tot i que per defecte es mostra la que hem configurat anteriorment). Avançarem.

SQLServer46.png


Farem clic a finalizar i se'ns obrirà un diàleg on desar l'arxiu de BBDD.

SQLServer47.png


Ho desarem en un lloc conegut ja que ho necessitarem més endavant


Prova d'administració

Una vegada acabat l'apartat de la configuració de la connexió mitjançant ODBC, el programa ens carregarà la BBDD i veurem, en una interfície més o menys semblant a la del SQL Server Management Studio, l'estructura de la BBDD que hem creat abans

Podem veure-hi la taula de treballadors que penja de "dbo"


Si fem doble-clic a la taula, podem veure'n el contingut

SQLServer50.png


Des de la pantalla principal, també podem crear taules noves

Afegirem els camps que volguem, en aquest cas en poso de prova


Finalment, desem i els canvis s'aplicaran sobre el servidor on estem connectats.

Haurem de triar a quina BBDD de les disponibles volem desar la taula creada.


Ja veiem des de la GUI del Base la nova taula creada


Si actualitzem les taules des de l'SQL Server Management Studio, veiem la taula creada des del Base i també els camps que hi hem creat


Definir paràmetres relatius a les connexions: temps d’espera, nombre màxim de connexions...

Aquesta secció la desenvoluparé localment des del mateix servidor; encara que es pot fer des de qualsevol altre host de la xarxa que tingui instal·lat l'SQL Server Management Studio.

Nombre màxim de connexions simultànies

Tal com s'ha requerit a la pràctica, suposarem que estem configurant un servidor que hagi d'aguantar 200 connexions concurrents; per tant, seria raonable posar el límit de connexions simultànies en unes 210 per a poder tenir marge en cas d'algun bug que deixi una connexió sense tancar. D'aquesta manera, tenim una mica de coll també, per si en un pic on tenim els 200 clients connectats i hem de connectar-nos nosaltres com a administradors per a fer alguna gestió o similar, "tenir lloc" per no quedar-nos fora o haver de fer fora algun client, provocant un downtime per a ell.
Com que aquesta configuració no va lligada a una BBDD concreta sinó que és un paràmetre de servidor, des del programa de gestió del servidor farem clic dret a l'arrel del servidor i clicarem Propiedades

SQLServer54.png


A l'apartat "conexiones" buscarem el paràmetre "Número máximo de conexiones" i establirem el valor desitjat


Una vegada configurat, podem acceptar els canvis i reiniciarem els serveis de SQL Server perquè s'apliquin els nous paràmetres.

Temps d'espera per a consultes remotes

Aquest temps d'espera fa referència al temps màxim que un client remot pot esperar el resultat d'una consulta fins que se li envia un timeout en cas que la durada de la consulta sigui més llarga que el valor configurat.[8] Per defecte és de 600 segons (10 minuts). Aquest valor convé ajustar-lo de manera que sigui suficientment llarg en cas de consultes complexes que requereixin temps de còmput del servidor sense que la consulta avorti però també ajustar-la perquè en cas d'una consulta errònia o un error de xarxa, es cancel·li la consulta i s'alliberi el servidor quan abans millor per a no perdre rendiment de cara a la resta de clients.
Per a fer-ho, accedirem a les propietats del servidor →apartat conexiones i a la caixa de conexiones a servidores remotos especificarem el temps (en segons) que volem definir per a aquest paràmetre.

SQLServer56.png


En el meu cas trobo oportú configurar-lo en 150 segons (2.5 minuts) ja que considero que si la consulta d'un client s'allarga més de 2 minuts serà per culpa d'un error o bé un error de connexió o inestabilitat que hagi provocat aquesta situació. Llavors afegeixo 30 segons més "de gràcia" en cas que no es tracti d'un error. Amb això, doncs, limito el temps que una consulta es pot allargar a un total de dos minuts i mig. En cas que una query sobrepassi aquest temps, automàticament l'SGBD l'anul·larà i s'enviarà un missatge de temps d'espera esgotat al client que ha iniciat aquella consulta.



Referències:

  1. SQL Server Advanced és una versió que inclou el motor de SQL Server i el gestor SQL Server Management Studio en un sol paquet
  2. La ruta arrel d'una instància és el lloc del sistema de fitxers on es desen les dades en sí, juntament amb altres arxius necessaris per al funcionament del SGBD
  3. Una instància de SQL Server és un procés independent del motor de base de dades; de manera que podem tenir 1 o més servidors de bases de dades independents entre ells en un únic servidor físic
  4. SQL Server Brwser és un servei necessari per a poder accedir de manera remota al servidor SQL: escolta pel port 1434 i és l'encarregat d'assignar un altre port per a la connexió al motor de Base de Dades quan algun client li fa una petició. És especialment útil en servidors amb múltiples instàncies de SQL Server executant-se, ja que cada instància necessita un port diferent que és gestionat per aquest servei
  5. Reporting Services permet, entre altres coses, generar informes des d'altres aplicacions programades amb el Framework .NET de Microsoft.
  6. 6,0 6,1 6,2 SQLEXPRESS correspondrà al nom de la instància que volguem configurar
  7. El jittering és la inestabilitat del temps de resposta entre dues màquines a través d'una xarxa de comunicacions. Pot ser degut per una saturació de la xarxa o una mala configuració de QoS entre altres.
  8. https://docs.microsoft.com/en-us/sql/database-engine/configure-windows/configure-the-remote-query-timeout-server-configuration-option?view=sql-server-2017