{"id":1248,"date":"2013-10-27T10:56:40","date_gmt":"2013-10-27T09:56:40","guid":{"rendered":"http:\/\/qualilogy.com\/fr\/?p=1248"},"modified":"2013-11-03T17:03:53","modified_gmt":"2013-11-03T16:03:53","slug":"sonarqube-upgrade1","status":"publish","type":"post","link":"http:\/\/qualilogy.com\/fr\/sonarqube-upgrade1\/","title":{"rendered":"SonarQube upgrade &#8211; Pr\u00e9-requis"},"content":{"rendered":"<p><a href=\"http:\/\/500px.com\/Vicken\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1249\" alt=\"SonarUpgradeImg\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarUpgradeImg.jpg\" width=\"351\" height=\"351\" srcset=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarUpgradeImg.jpg 489w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarUpgradeImg-150x150.jpg 150w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarUpgradeImg-300x300.jpg 300w\" sizes=\"(max-width: 351px) 100vw, 351px\" \/><\/a><\/p>\n<p>Nous avons vu pr\u00e9c\u00e9demment comment <a href=\"http:\/\/qualilogy.com\/fr\/migrer-sonarqube-tomcat-service-windows\/\" target=\"_blank\">migrer SonarQube depuis Tomcat en service Windows<\/a> et comment <a href=\"http:\/\/qualilogy.com\/fr\/sonarqube-windows-jenkins-tomcat\/\" target=\"_blank\">utiliser SonarQube en service Windows avec Jenkins sous Tomcat<\/a>,<\/p>\n<p>J&rsquo;ai utilis\u00e9 la m\u00eame version 3.5.1 pour effectuer cette migration depuis Tomcat vers un service Windows, et comme celle-ci est d\u00e9j\u00e0 ancienne, ceci sera l&rsquo;occasion de r\u00e9aliser un upgrade de versions et de mettre \u00e0 jour notre environnement SonarQube avec nos diff\u00e9rents plugins.<\/p>\n<p>Nous allons consacrer deux articles \u00e0 cette op\u00e9ration, dont ce premier afin de pr\u00e9senter les \u00e9tapes pr\u00e9alables \u00e0 notre upgrade. Ce sera \u00e9galement l&rsquo;occasion de voir un backup Oracle.<!--more--><\/p>\n<h1>Task list<\/h1>\n<p>Dans un premier temps, je vais d&rsquo;abord planifier les diff\u00e9rentes actions \u00e0 r\u00e9aliser. Non pas que cette op\u00e9ration soit compliqu\u00e9e, mais c&rsquo;est l&rsquo;occasion d&rsquo;effectuer un \u00e9tat des lieux de notre environnement, et en particulier des \u00e9volutions au niveau des plugins. Un upgrade ne consiste pas uniquement \u00e0 installer une nouvelle version de SonarQube mais \u00e9galement \u00e0 mettre \u00e0 jour nos plugins. Et j&rsquo;aime bien savoir quelles sont les \u00e9volutions disponibles, s&rsquo;il existe de nouvelles r\u00e8gles \u00e0 tester, une nouvelle fonctionnalit\u00e9 \u00e0 mettre en oeuvre, etc.<\/p>\n<p>Enfin, lister les plugins \u00e0 upgrader permet de garder une certaine tra\u00e7abilit\u00e9 de notre environnement, et je vous conseille de faire de m\u00eame, notamment si vous utilisez SonarQube dans un cadre professionnel. Une nouvelle r\u00e8gle ou la modification d&rsquo;une r\u00e8gle existante dans vos analyses de code peut amener une hausse subite de d\u00e9fauts dans le tableau de bord SonarQube, sans que les d\u00e9veloppeurs comprennent la cause de cette d\u00e9gradation soudaine de la qualit\u00e9 de leur application.<\/p>\n<p>La premi\u00e8re r\u00e9action est alors de mettre en doute la validit\u00e9 de vos analyses, et dans ce cas, mieux vaut \u00eatre pr\u00eat \u00e0 r\u00e9pondre qu&rsquo;une nouvelle version de plugin a introduit une nouvelle r\u00e8gle \u00e0 l&rsquo;origine de ces nouveaux d\u00e9fauts. Garder un document avec les modifications apport\u00e9es \u00e0 votre environnement d&rsquo;analyse permet de justifier ces \u00e9volutions.<\/p>\n<h2>Update Center<\/h2>\n<p>Je garde tous les courriers de la liste de mails SonarQube annon\u00e7ant les nouvelles versions logicielles ou de plugins, mais il existe un moyen plus simple de conna\u00eftre lesquels sont \u00e0 jour ou non : l&rsquo;Update Center.<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarQubeLogin.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-1265\" alt=\"SonarQube Login\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarQubeLogin.jpg\" width=\"277\" height=\"210\" \/><\/a>Pour cela, nous allons nous connecter en Admin depuis le tableau de bord SonarQube.<\/p>\n<p>Puis, nous rendre dans la page de l&rsquo;Update Center en s\u00e9lectionnant le menu :<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarQubeLogin2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-1266\" alt=\"SonarQubeLogin2\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarQubeLogin2.jpg\" width=\"190\" height=\"138\" \/><\/a><\/p>\n<p>&lsquo;Settings&rsquo; puis le sous-menu\u00a0 &lsquo;Configuration&rsquo;.<\/p>\n<p>Depuis cette page de configuration, nous choisissons le menu &lsquo;Update Center&rsquo; afin d&rsquo;afficher l&rsquo;\u00e9cran correspondant, avec ses diff\u00e9rents onglets qui nous permettent de conna\u00eetre :<\/p>\n<ul>\n<li>Les plugins install\u00e9s.<\/li>\n<li>Les plugins non install\u00e9s et disponibles \u00e1 l\u2019installation.<\/li>\n<li>Les plugins pour lesquels une nouvelle version est disponible.<\/li>\n<li>Toute(s) nouvelle(s) version(s) de SonarQube.<\/li>\n<\/ul>\n<p>Et surtout, la liste des actions \u00e0 effectuer afin de r\u00e9aliser un upgrade de version SonarQube, depuis l&rsquo;onglet &lsquo;System Updates&rsquo; :<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarQubeUpgrade1.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1269\" alt=\"SonarQubeUpgrade1\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarQubeUpgrade1.jpg\" width=\"696\" height=\"484\" srcset=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarQubeUpgrade1.jpg 696w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarQubeUpgrade1-300x208.jpg 300w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/SonarQubeUpgrade1-624x433.jpg 624w\" sizes=\"(max-width: 696px) 100vw, 696px\" \/><\/a><\/p>\n<p>La mise \u00e0 jour de mon environnement Sonar va donc consister en :<br \/>\n1.\u00a0\u00a0 \u00a0Suppression de plugins obsol\u00e8tes.<br \/>\n2.\u00a0\u00a0 \u00a0Upgrade de version de plugins existants.<br \/>\n3.\u00a0\u00a0 \u00a0Upgrade de version SonarQube.<br \/>\n4.\u00a0\u00a0 \u00a0Upgrade (post-upgrade SonarQube) de plugins existants ou ajout de nouveaux plugins.<\/p>\n<p>Nous allons en profiter \u00e9galement pour aller v\u00e9rifier sur le site web de SonarSource <a title=\"Proc\u00e9dure d'upgrade SonarQube\" href=\"http:\/\/docs.codehaus.org\/display\/SONAR\/Upgrading\" target=\"_blank\">la proc\u00e9dure d&rsquo;upgrade<\/a> mais aussi consulter les Release Notes (en bas de page).<\/p>\n<p>Et comme conseill\u00e9 dans cette page, effectuer un backup de notre environnement actuel, et en particulier de notre base de donn\u00e9es Oracle.<\/p>\n<h2>Backup Oracle<\/h2>\n<p>Un backup Oracle se fait tout simplement depuis une fen\u00e8tre DOS, avec une commande d&rsquo;EXPort des donn\u00e9es de la base. Un restore d&rsquo;un sch\u00e9ma (ou de la base enti\u00e8re) s&rsquo;effectuera avec une commande d&rsquo;IMPort.<\/p>\n<p>Attention cependant : ces commandes ont chang\u00e9 avec la version 10g d&rsquo;Oracle. Il est encore possible d&rsquo;utiliser les anciennes commandes EXP \/ IMP pour effectuer un backup \/ restore, mais il faut savoir que cette commande EXP ne gardera que les donn\u00e9es &#8230; des tables avec des donn\u00e9es. En d&rsquo;autres termes, seules les tables contenant des enregistrements seront sauvegard\u00e9es. Et si vous restaurez un sch\u00e9ma Sonar depuis un dump efffectu\u00e9 avec la commande EXP, SonarQube rencontrera une erreur puisque certaines tables (vides) seront ainsi manquantes.<\/p>\n<p>Les commandes \u00e0 utiliser afin d&rsquo;\u00e9viter ce probl\u00e8me sont EXPDP et IMPDP. DP pour Data Pump (oui je sais, moi aussi le nom me fait sourire). Attention \u00e0 nouveau : les dumps g\u00e9n\u00e9r\u00e9s ne sont plus au m\u00eame format. En d&rsquo;autres termes, vous ne pouvez pas restaurer avec la commande IMPDP un dump cr\u00e9\u00e9 avec la commande EXP.<\/p>\n<p>Derni\u00e8re chose : la syntaxe de ces commandes reste assez proche, sauf pour l&#8217;emplacement du fichier de dump. Comme nous pouvons le voir dans l&rsquo;illustration suivante, nous allons indiquer en param\u00e8tres de la commande EXPDP :<\/p>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/OracleEXPDP2.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1272\" alt=\"OracleEXPDP2\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/OracleEXPDP2.jpg\" width=\"685\" height=\"289\" srcset=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/OracleEXPDP2.jpg 685w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/OracleEXPDP2-300x126.jpg 300w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/OracleEXPDP2-624x263.jpg 624w\" sizes=\"(max-width: 685px) 100vw, 685px\" \/><\/a><\/p>\n<ul>\n<li>Le nom du user Oracle correspondant au sch\u00e9ma Sonar, avec son password et l&rsquo;indication de la base de donn\u00e9es, selon la syntaxe <em>sch\u00e9ma\/password@dbname<\/em>, soit <strong>sonar\/sonar@JPORA11<\/strong> dans mon cas.<\/li>\n<li>Le nom du fichier dump qui r\u00e9sulte du backup.<\/li>\n<li>Le nom du fichier log de backup, qui permet de v\u00e9rifier que celui-ci s&rsquo;est bien d\u00e9roul\u00e9.<\/li>\n<\/ul>\n<p><a href=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/OracleEXPDP3.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-1274\" alt=\"OracleEXPDP3\" src=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/OracleEXPDP3.jpg\" width=\"684\" height=\"193\" srcset=\"http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/OracleEXPDP3.jpg 684w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/OracleEXPDP3-300x84.jpg 300w, http:\/\/qualilogy.com\/fr\/wp-content\/uploads\/sites\/2\/2013\/10\/OracleEXPDP3-624x176.jpg 624w\" sizes=\"(max-width: 684px) 100vw, 684px\" \/><\/a><\/p>\n<p>Le log vous donnera \u00e9galement la liste des tables &lsquo;export\u00e9es&rsquo;, ce qui vous permettra de v\u00e9rifier que les tables avec &lsquo;0 enregistrements&rsquo; sont bien pr\u00e9sentes dans le backup.<\/p>\n<p>Par contre, et contrairement \u00e0 l&rsquo;ancienne commande EXP, le dump ne se trouve pas dans le r\u00e9pertoire depuis lequel nous avons lanc\u00e9 l&rsquo;export, mais par d\u00e9faut dans un r\u00e9pertoire &lsquo;DPDUMP&rsquo; sous le r\u00e9pertoire d&rsquo;installation de notre base de donn\u00e9es, sous le r\u00e9pertoire d&rsquo;installation de Oracle. J&rsquo;aurais pr\u00e9f\u00e9r\u00e9 d\u00e9cider o\u00f9 s&rsquo;effectue le backup mais bon, une fois que nous savons o\u00f9 r\u00e9cup\u00e9rer celui-ci&#8230; Il est possible de d\u00e9finir un autre r\u00e9pertoire par d\u00e9faut, mais il faut \u00e9crire un script SQL pour changer ce param\u00e8tre, ou entrer manuellement les commandes SQL correspondantes. Un peu compliqu\u00e9.<\/p>\n<p>Bien. Nous en avons termin\u00e9 avec les actions pr\u00e9alables \u00e0 notre upgrade SonarQube. Que nous verrons dans notre prochain post.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nous avons vu pr\u00e9c\u00e9demment comment migrer SonarQube depuis Tomcat en service Windows et comment utiliser SonarQube en service Windows avec Jenkins sous Tomcat, J&rsquo;ai utilis\u00e9 la m\u00eame version 3.5.1 pour effectuer cette migration depuis Tomcat vers un service Windows, et comme celle-ci est d\u00e9j\u00e0 ancienne, ceci sera l&rsquo;occasion de r\u00e9aliser un upgrade de versions et [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"class_list":["post-1248","post","type-post","status-publish","format-standard","hentry","category-sonar-installation"],"_links":{"self":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/1248"}],"collection":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/comments?post=1248"}],"version-history":[{"count":20,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/1248\/revisions"}],"predecessor-version":[{"id":1279,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/posts\/1248\/revisions\/1279"}],"wp:attachment":[{"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/media?parent=1248"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/categories?post=1248"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/qualilogy.com\/fr\/wp-json\/wp\/v2\/tags?post=1248"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}