|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Bonjour
Voici le scénarion de ma migration
Sur l'autre, l'une de bases m'embête un peu *** Question 1 *** En effet, après les étapes: - create base for load (V12), - dump (V11) et - load (V12) effectués sans erreur, l'instruction ONLINE DATABASE <nom_base> "ne passe pas". Malheureusement je n'ai aucun message significatif, seulement ceci: Citation:
Citation:
Auriez-vous des suggestions à ce sujet ? *** Question 2 *** Les premiers tests applicatifs du serveur installé sans erreur, montrent qu'il est plus lent que celui en V11, alors que la machine est plus puissante. Faut-il récréer les statistics, indexes suite à ce que je viens de faire ? Si oui, pouviez-vous me suggérer par quoi commencer, svp ? *** Question 3 *** Lors de mes installations des serveurs, j'y ai importé aussi la base sybsystemprocs du serveur en V11 en croyant qu'il pouvait y avoir des procédures applicatives. En principe le load s'est bien passé et elle est passée "ONLINE" avec upgrade en V12. Je me demande maintenant si je ne risque pas de manquer de nouvelles procédures spécifiques à la v12 ... Pouvez-vous me donner votre avis, svp ? Est-il possible event. de recréer cette base sans reinstaller le serveur ? Merci d'avance msomso |
||
|
|
00
|
|
|
#2 |
![]() ![]() |
Pour la sybsystemprocs - il faut rejouer le script "installmaster" pour remettre les proc sp_xxx à la sauce 12.0. Ce script est dans $SYBASE/ASE-12_0/scripts. Il est essentiel de le faire rapidement car ces procs sont très différentes entre ces deux versions.
Pour la perf - l'optimiseur est assez différent entre la 11.0.x et la 12. Il faut à priori faire un "update statistics", voir "update index statistics" pour toutes les tables pour essayer de remettre les choses à plat. Pour la base qui n'arrive pas à passer on-line... je ne vois pas ce qui peut être le problème en l'absence de messages d'erreurs (je suppose que tu as checké l'error ?) - Peut-être que fadace a une idée? Finalement - 12.0.0.3 est assez antique (bon, pas tout à fait autant que 11.0.3.3!). Si il faut absolument rester en 12.0 je suggère de passer à la dernière EBF (sauf erreur c'est 12.0.0.7). Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Bonjour
Excuses-moi mais qu'entends tu par "checké l'error" - je n'ai aucun numéro d'erreur affiché ? Juste le message cité dans mon mail. Merci pour toutes tes réponses: je me lance dans l'update de statistics, etc. Comment faudrait-il faire avec la base sybsystemprocs, s'il y avait eu des procédures partagées (dans sybsystemprocs database) ? Merci bien msomso |
|
|
00
|
|
|
#4 |
![]() ![]() |
Pour l'online database: voir dans la log ASE (par défaut dans $SYBASE/ASE-12_0/install/<nom_serveur>.log) pour voir si il y a éventuellement des messages qui pourraient expliquer le problème.
Pour la sybsystemprocs - en rejouant installmaster on va remettre les procs systèmes (sp_who, sp_helpdb, etc) qui sont compatibles avec la version du dataserver que tu utilise. D'ailleur, lorsqu'on passe un EBF (p.ex. de 12.0.0.3 à 12.0.0.4) on rejoue toujours ce fichier pour que les corrections au niveau proc stockées systèmes sont mises à jour. Si il y avait des proc "maisons" dans la sybsystemprocs de la base source (en 11.0.x) celle-ci pourraient être transférées avec un outil permettant l'extraction de la source des procs (p.ex. dbschema.pl, ou DBArtisan, etc). Ceci étant, si tu as fait le dump/load de sybsystemprocs entre la vieille et la nouvelle version alors il est probable que tu as ces procs à dispo (puisque installmaster ne va pas dropper les procs qu'il ne connait pas). Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Bonjour
Je n'étais peut être pas très claire: aucun message lié au problème de "ONLINE" n'est tracé dans le fichier log du serveur. A mon avis cela doit venir de la base source: il faudrait la vérifier, mais je n'ai pas trop l'habitude de le faire... S'agissant du serveur de test, je vais voir si on accepte d'importer la base de production à la place de celle qui ne veut pas "se mettre online" J'ai lancé installmaster avant de partir ce soir. Je verrai demain ce que cela donne. Merci aussi pour les autres précisions. msomso P.S. Pourvu que le recalcule de statistiques amèliore les performances. |
|
|
00
|
|
|
#6 | |||
|
Nouveau Membre du Club
![]() Inscription : décembre 2007 Messages : 26 ![]() |
Bonsoir,
Citation:
Citation:
Citation:
Comme dit précedement, il faut reéxecuter le script "installmaster" DBRep |
|||
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Bonjour
* 1 * Pour info: Le script installmaster s'est bien déroulé sur mes 2 serveurs. * 2 * Pour "ONLINE database ..." en erreur: Je vais essayer d'allouer + d'espace à ma base un peu "têtue", cependant le message d'erreur est quasi-instantané (comme si rien n'avait été démarré). Est-il possible d'activer une trace supplémentaire (session et/ou serveur ) pour avoir un message suite à cette commande ? * 3 * J'aurais vraiment besoin de vos lumières pour comprendre la gestion des stats. Plus je lis la doc et moins j'y comprends. Entre les options : - "update all statistics <table_name>" - "update statistics <table_name>" - "update index statistics <table_name>" je suis un peu perdue. Je pense faire ceci: Pour toute table <ma_table> de ma base: 1. update statistics <ma_table>, puis 2. update index statistics <ma_table> Mais, je me demande si cela ne revient au même que de faire seulement "update index statistics" . Merci d'avance msomso |
|
|
00
|
|
|
#8 |
![]() ![]() |
Je n'ai pas vraiment de bonnes idées pour le ONLINE database...
Par contre pour update [index] statistics: update statistics calcule les statistiques (distribution, histogrammes, etc) uniquement pour la première colonne de chaque indexe. Cette opération est relativement rapide, puisqu'il n'est pas nécessaire de trier les données (la colonne est déjà dans le bon ordre) pour générer les histogrammes. update index statistics calcule en plus les stats (distributions, histogrammes) des autres colonnes présentes dans chaque index. Cela prend plus de temps puisqu'il faut analyser chaqu'une des colonnes de chaque indexe, avec tri pour les colonnes "secondaires". En 12.0 il n'y a pas d'échantillonage pour ces calculs de stats, donc l'update index statistics peux prendre un certain temps, et aura besoin de place dans tempdb (toujours à cause du tri). update index statistics donne évidemment de meilleurs stats pour l'optimiseur. Le choix de la version de la commande à utiliser dépend évidemment de la situation - on peux commencer par update statistics et voir comment ça va. Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Bonjour
*** ONLINE database *** Je vais commencer par la bonne nouvelle: j'ai pu mettre ma base online après avoir agrandi l'espace ! *** STATISTICS *** Pour les statistiques: j'ai lancé un script avec : - update statistics <nom de table> - update index statistics <nom de table>. *** Ce traitement a été extremement rapide (mes bases sont de petite taille), ceci étant dit, les dates de stat dans les tables systeme sont bien modifiées. Sinon, il n'y a aucun retour/message de la commande dans mon fichier log et quand je lance un update dans isql, je n'ai rien au retour non plus. Est-ce normal? *** Je suis désolée d'insister, mais est-ce que la commande "update all statistics <nom de table> " est equivalente aux deux updates cités ci-dessus ? *** QUESTION PRINCIPALE *** Pour moment, nous ne voyons pas d'amélioration suite à la mise à jour des statistiques. L'application au lancement est + lente qu'avec ancien serveur. 1. Pensez-vous qu'il est justifié de recalculer les index suite à ma migration ? 2. Ou bien, faudrait-il penser aux nouveaux paramètres spécifiques "V12" à modifier dans le fichier de configuration ? 3. Quel est le fichier de paramétrage "par defaut" avec toutes les valeurs "DEFAULT" ? D'avance merci msomso |
|
|
00
|
|
|
#10 |
![]() ![]() |
1. update all statistics:
Ceci calcule les stats sur TOUTES les colonnes - ce n'est en général pas conseillé. (note : update index statistics est un sur-ensemble de update statistics, donc il suffit de faire la première commande). 2. Lenteur: Cela fait très longtemps que j'ai fait un upgrade du genre - mais il est possible qu'il faille faire un "delete statistics" puis un update index statistics pour améliorer la situation. Si les accès se font par proc stockées il faudrait aussi faire un après l'update statistics pour que les procs soient recompilées lors de leurs prochain usage. Alternativement, un drop/create des indexes devrait aussi améliorer la situation. Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#11 | ||||
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Bonsoir
*** 1 *** C'est un peu anecdotique ma petite histoire: J'ai généré dynamiquement (via un select sur sysobjects et sysindexes) un script contenant une suite d'appels de type "update index statistics <table> <index>" suivi à la fin d'une instruction GO obtenue par : De cette façon, l'instruction GO se trouve précédée d'un espace. Je ne sais pas pourquoi, mais cette espace l'inhibe. L'instruction GO a été ignorée Une fois l'espace au début de ligne éliminé, le traitement en effet "prend son temps" . Je testerai demain l'effet de tout ça. Avant de partir, j'ai pu voir quand même qu' ASE ne trouvait pas certains indexes, alors que je ne traite que ceux se trouvant dans sysindexes. Comment est-ce possible d'avoir, dans une table système, les indexes inexistants dans la base ? Citation:
- "update statistics" -------> pour la première colonne d'un index composé - "update index statistics" -> pour toutes les colonnes d'un index composé D'accord donc pour le Citation:
*** 2 *** Citation:
Si oui, comment le faire ? Je n'ai pas de sources de création de procédures *** 3 *** Citation:
*** 4 *** De même, comment valider les autres composants SQL: triggers, rules etc ? Connaissez-vous des incompatibilités T-SQL entre V11 et V12 ? msomso |
||||
|
|
00
|
|
|
#12 | ||
![]() ![]() |
Pour générer un script directement via isql:
Code :
Recompilation des procs/triggers: Sous Oracle on fait "alter <object> recompile". Sous Sybase on marque la table, et tout objet qui utilise cette table sera recompilé lors de sa prochaine exécution. Pour la recréation des indexes: je ne sais pas si la version 12 inclu déjà l'outil ddlgen. Si ce n'est pas le cas alors il n'y a pas d'outil natif (que je connaise) qui permette de le faire. La librairie de procs stockées de Ed Barlow (http://www.edbarlow.com/gem/procs_only/readme.htm) comporte une proc sp__revindex qui devrait en principe faire ce que tu veux (note que je ne l'ai pas utilisée personellement, mais d'autre DBA que je connais et respecte l'on utilisé, p.ex. Jason Froebe, aussi un ex. de Sybase [comme fadace]: http://froebe.net/blog/2007/08/28/mo...-print-the-go/) Pour ce qui est de la syntaxe - le T-SQL de la 12 est un sur-ensemble de 11.0.x (p.ex. le CASE, les jointures ANSI, etc), donc il ne doit pas y avoir de problème de ce genre. Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
||
|
|
00
|
|
|
#13 | |
|
Nouveau Membre du Club
![]() Inscription : décembre 2007 Messages : 26 ![]() |
Citation:
Pour les index, je reconnais que cela fait un peu "ceinture-et-bretelles" avec les updates statistics... Pour les procédures et les trigger, un "drop ..." + "create ..." permet d'eviter tout problème issue de la migration du code "pseudo-compilé" de ces procédures. Ce n'est pas qu'il y en a eu beaucoup, mais, dans votre cas, vous passez d'une V11.0 à une V12.0 ce qui fait un saut de 3 versions majeures. Personnellement, je ne prendrai pas ce risque pour un système en production pour ce que ça coute... Je préfère un "drop ..." + "create ..." a "sp_recompile", parce que le "drop ..." + "recreate ..." s'exécute sur le momment, pendant la phase de migration, alors que le "sp_recompile" recompilera la procédure à sa prochaine exécution, ce qui peut poser des surprises de performance aux redémarrage de production... DBRep |
|
|
|
00
|
|
|
#14 | |||
|
Nouveau Membre du Club
![]() Inscription : décembre 2007 Messages : 26 ![]() |
Citation:
Citation:
Citation:
DBRep |
|||
|
|
00
|
|
|
#15 | |
![]() ![]() |
Citation:
Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
|
00
|
|
|
#16 | |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Bonsoir
Tout d'abord, merci de votre généreuse participation. Voilà où j'en suis:
Je vous tiendrais au courant du résultat final. Savez-vous s'il existe une doc Sybase spécifique à la migration ? Je me demande si nos problèmes ne viennent pas de mauvais paramétrage/configuration serveur. J'ai laissé tous les paramètres par défaut, sauf la mémoire que j'ai agrandie quand même. Merci msomso P.S. Connaissez-vous le problème de la commande startserver -f RUN_xxx. Mon fichier de démarrage est créé par le GUI et pourtant cette commande génére erreur: Citation:
|
|
|
|
00
|
|
|
#17 | |||
|
Nouveau Membre du Club
![]() Inscription : décembre 2007 Messages : 26 ![]() |
Citation:
Citation:
If faudrait commencer par voir ce qui avait été "tunné" en V11 pour le reporter sur la V12. Ensuite, si les problèmes de performance persistent après les "update statistics" et la recréation des procédures, il faudra rentrer plus dans le détail : - mesurer les différences de performance (est-ce : d'1 seconde ça passe à 3, ou est-ce d'10 secondes ça passe à 5 minutes) - est-ce que les "update statistics" ont apportés quelque chose ? - volume des données - structure des tables (peu ou beaucoup de colonnes) - style de requettes posant des problèmes de performance (donc, déjà les identifier) (requette sur une seule table ou avec jointure, beaucoup de jointure ?) Après, il y a des outils pour analyser ce qu'il ce passe, "set showplan" pour voir s'il n'y a pas de "table-scan" intempestif, par exemple. Tu peux aussi utiliser "sp_sysmon", notamment pour tout ce qui est accès au data cache, disque I/O, etc... Citation:
- faire un "file dataserver" : même question (dans "$SYBASE/$SYBASE_ASE/bin") - vérifier qu'il y a bien des droits d'exécution pour ces 2 binaires et également pour le script Shell "RUN_xxx" DBRep |
|||
|
|
00
|
|
|
#18 | |||
|
Membre actif
![]() Inscription : août 2007 Messages : 134 ![]() |
Citation:
Code :
Attention avec cette méthode (allpages->datarows->allpages) tu risques de perdre des propriétés spécifiques aux index clustered sur les tables APL (ignore/allow dup_rows). Vérifie avant que cela ne causera pas de problèmes. Enfin, après un load database, il y a une re-résolution de toutes les procédures. La "recompilation" (entre guillemets, plus de détails :ici) ne devrait donc pas être nécessaire. On peut cependant forcer la re-résolution avec la commande non supportée , mais je n'ai utilisé cette commande qu'en 12.5 et je ne sais pas si c'est dispo en 12. |
|||
|
|
00
|
|
|
#19 |
![]() ![]() |
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#20 | |
|
Membre du Club
![]() Inscription : mars 2007 Messages : 248 ![]() |
Bonjour
DBRep - je n'ai pas compris ton conseil Citation:
Je pense que je partirai du fichier de la configuration V11 pour voir "ce qui a été tuné". Mais je n'ai aucune garantie que la V12 sera optimisée de cette façon. Roller - merci pour l'info. En plus, le site est intéressant. Par précaution, je chercherai dans les tables système de procédures, quelle est la date de compilation. Dans mon cas, elle devaient être compilées lors du load et ensuite lors de mes suppression et recréation d'indexes. Pourquoi, le lock datarow et lock allpages font reconstruire les indexes ? Michael - merci pour cette invitation à plonger dans la doc. Je crois que je n'y échapperai pas ... merci msosmo |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com