Manage, Synchronize and Exchange Data

Quelles sont les nouveautés de SAP SQL Anywhere 17

Résumé

SQL Anywhere 17 marque une rupture nette avec les versions 16 et antérieures : bascule vers une administration 100 % web (Cockpit), moteur davantage parallélisé (recovery, index, plan-cache), sécurisation modernisée (TLS 1.2 +, CommonCryptoLib, SNI) et outillage refondu (Profiler, dbisql, nouvelles API). Les patch levels jusqu'au PL 67 / SP01 poursuivent cet élan : adoption de CommonCryptoLib, TLS sur TDS, pilotes Node.js 8 et PHP 7, retrait du Flash Monitor, etc. Ces changements impliquent souvent une mise à jour des scripts de démarrage, des rôles, voire un rebuild de base pour profiter d'objets catalogues étendus.

1. Supervision & diagnostic

1.1 SQL Anywhere Cockpit (HTML-5)

Lancement serveur : option -cdb pour démarrer le Cockpit, ou procédure sa_server_option('CockpitDB', '...') à chaud ; contrôlable en lecture seule via -sf.

Rôles et privilèges : seul l'exercice du rôle COCKPIT_ROLE (créé par défaut) permet l'accès ; ce rôle inclut désormais ACCESS DISK INFORMATION pour surveiller l'espace disque sans droits DBA.

Fonctions clés : exclusion automatique des connexions du Cockpit du compteur global, vue de l'URL d'accès (CockpitURL), alerte disques / cache‐miss, notifications mail paramétrables et migration d'une base temporaire vers permanente sans perte d'historique.

1.2 Profiler nouvelle génération

Modes « Complet » vs « Ciblé » : le ciblage limite la collecte aux requêtes correspondant à vos filtres, ce qui autorise des campagnes prolongées en production sans surcharge.

Analyse automatique de workload : rapport guidé (blocage, CPU, workers, checkpoints) et export prêt à envoyer au Support SAP.

Démarrage simplifié : menu Démarrer Windows ou commande dbprof; prise de snapshot diagnostic en un clic.

2. Performances moteur

2.1 Recovery parallèle & démarrage plus rapide

Le moteur applique désormais les opérations de journal en parallèle ; le gain dépend du nombre de cœurs, du ratio DML/DDL et de la présence de PK — essentiel en mirroring ou après un dbsrv17 -a.

2.2 Plan-cache généralisé

Toutes les requêtes peuvent être mises en cache ; celles envoyées depuis le client sont auto-paramétrées selon l'option parameterization_level ou le hint homonyme.

Nouvelle proc sp_plancache_contents, privilège MANAGE CACHED PLANS et compteur ParameterizationPrepareCount pour auditer les bénéfices.

2.3 Intra-query & index parallèles

Instruction BEGIN PARALLEL WORK pour créer index et charger des tables en parallèle ; associée à des optimisations d'index-scan et un scheduler topologie-aware.

Réglage max_query_tasks : mettre 0 pour laisser le serveur décider par requête.

2.4 Paquets réseau & autocommit

Taille minimale des paquets portée à 1000 octets ; les vieux clients s'adaptent mais un serveur 17 SP1 ne dialoguera pas avec un serveur plus ancien resté à 500 octets.

Autocommit côté serveur : paramètre ClientAutocommit=no|yes pour basculer, intéressant quand des frameworks (Hibernate …) bricolent setAutoCommit dans des boucles serrées.

3. Sécurité et cryptographie

3.1 Passage à TLS 1.2 et SNI

min_tls_version par défaut = 1.2 pour le serveur, MobiLink et UltraLite.

Support SNI via paramètre sni_hostname côté client/serveur.

Nouvelle option skip_certificate_name_check=ON pour ignorer la validation du nom d'hôte dans les certificats en TLS/HTTPS, utile en dev ou pour certains proxy reverse.

3.2 Migration vers CommonCryptoLib

À partir du PL 41, le chiffrement utilise SAP CommonCryptoLib ; les fichiers OpenSSL ou Certicom historiques sont retirés, et l'option allow_expired_certs devient inopérante puisqu'un certificat expiré est désormais bloqué par défaut.

Les déploiements FIPS exigent les bibliothèques sapcryptofips / slcryptokernel (Windows) ou équivalents Unix, plus la ré-génération des clés privées en AES (plus de 3DES).

3.3 Nouvelles politiques client

allow_expired_certs persiste côté MobiLink pour accepter un certificat serveur expiré, mais uniquement en réseau de synchro ; déconseillé en prod.

SSL 3.0 définitivement supprimé ; passer impérativement en TLS.

4. Administration & outils

4.1 Interactive SQL (dbisql)

Onglets multiples, indicateur de verrous, comparaison de plans graphique, nouvelle option -we pour transformer les warnings en erreurs et combo -f + -c autorisée.

Boutons Connect/Disconnect ajoutés à la barre d'outils pour gagner en ergonomie.

4.2 Outils CLI

dbunload / dbxtract : options -ru (SQL non traitées), -dt, -kdi pour le nombre d'itérations de dérivation de clé, etc.

Utilitaire dblog et fonctions DBTools durcissent la vérification de versions pour éviter d'écrire sur un format plus récent que l'outil.

4.3 Variables de base, pivot/unpivot

Introduction des variables de base (scope = DATABASE) avec privilèges dédiés (CREATE DATABASE VARIABLE, etc.) et vue SYSDATABASEVARIABLE.

Support des expressions PIVOT / UNPIVOT dans le moteur (voir section Miscellaneous).

5. Interfaces & développement

5.1 Pilotes et frameworks

Node.js : pilotes fournis jusqu'à la v 8 ; les anciennes 0.10/0.12/4.x disparaissent.

PHP 7 et .NET Core provider désormais supportés, tandis que .NET 4.0 est abandonné.

Adapters JPA : contributions officielles pour DataNucleus et OpenJPA simplifient l'usage ORM.

5.2 SQL avancé

Attributs %TYPE / %ROWTYPE à la façon PL/SQL pour typer colonnes, variables et curseurs par référence.

Nouveaux constructeurs JSON ; ROW() accepte désormais zéro argument pour renvoyer une valeur composite vide.

6. Synchronisation & mobilité

6.1 MobiLink

allow_expired_certs (client) et cookies session_id_cookie / client_id_cookie pour conserver l'ID de session entre appels HTTP.

Ajout d'Oracle 18c et SQL Server 2017 comme bases consolidées, retrait du serveur MobiLink 32-bit, support AIX déprécié.

Nouvel utilitaire mltemplate pour générer scripts et objets sur des déploiements de masse.

6.2 UltraLite

Checksum page activé par défaut, concurrence multi-bases et API C++ GetBytes/SetBytes pour manipuler des blobs via byte array.

Support Android x86 et Universal Windows Platform (remplace Windows Phone 8.1).

7. Divers & qualité de vie

MiniDumpType (-md NORMAL|FULL) pour contrôler la taille des dumps crash ; utile en prod à haute fréquence d'IO.

ST_IsIndexable pour valider qu'une géométrie est indexable avant insertion dans un index spatial.

Backup/Recovery docs réorganisés : nouveaux parcours par outil et types de sauvegarde, plus terminologie homogénéisée.

Points d'action recommandés

  • Mettre à jour vos scripts de démarrage : ajoutez -cdb si vous migrez depuis dbconsole, configurez min_tls_version=1.2 et vérifiez la présence des bibliothèques CommonCryptoLib.
  • Former les équipes au Profiler ciblé et à la gestion des rôles COCKPIT_ROLE.
  • Tester le recovery parallèle sur un backup non critique pour mesurer les gains et ajuster votre SLA de RTO.
  • Revisiter vos connexions client : activez plan-cache, augmentez max_query_tasks, et évaluez ClientAutocommit.
  • Planifier un audit sécurité : certificats expirés, Digital Signature sur les identités MobiLink, clés AES, retrait SSL 3.0.
  • Mettre à jour les frameworks (Node.js, PHP, .NET, JPA) et ré-compiler si nécessaire pour profiter des correctifs.

Pour aller plus loin

Vous pouvez consulter les documentations officielles sur les nouveautés de SQL Anywhere 17: