SelectEtoile : Base de connaissance SGBD

Posts Tagged 'migration'

SYBASE IQ - Migration 12.7 vers 15.3

Il existe plusieurs façons de migrer une instance SYBASE IQ 12.7 (ou 12.6 d'ailleurs) vers une 15. La bonne et la mauvaise !!! HUMOUR  !!!!

On peut soit utiliser l'utilitaire iqunload, soit procéder sur une nouvelle instance en version cible (15.3 par exemple) et recréer puis alimenter les tables.

 

Migration avec l'utilitaire iqunload (option -au)

Post Migration

Nous avons donc une instance 12.7 que l'on nommera MONASIQ127 pour notre exemple et que l'on va migrer en 15.3.

Il nous faut une distrib 15.3 installée sur la même machine que la 12.7. (Distrib /sybase/product/IQ153)

Infos divers sur la 12.7 :

1> select @@servername
2> go
 @@servername
 --------------------------------------------------------------------------------------------------------------------------------
 MONASIQ127

(1 row affected)

1> select @@version
2> go
 @@version
 --------------------------------------------------------------------------------------------------------------------------------
 Sybase IQ/12.7.0/090824/P/ESD 7/Enterprise Linux64 - amd64,Opteron64,X86_64/2.4.21-27.0.1.ELsmp/64bit/2009-08-24 16:32:40

(1 row affected)

1> sp_iqdbspace
2> go
 Name
         Path                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
         SegmentType RWMode Usage  DBSSize Reserve StripeSize
         BlkTypes                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
         FirstBlk             LastBlk
 --------------------------------------------------------------------------------------------------------------------------------
         --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
         ----------- ------ ------ ------- ------- ----------
         --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
         -------------------- ------------------------
 IQ_SYSTEM_MAIN
         /sybase/MONASIQ127/device/mainspace1.iq                                                                                                                                                                                                                                                                                                                                                                                                                        
         MAIN        RW          1 500M    0B      8K
         1H,64F,32D,128M                                                                                                                                                                                                                                                                                                                                                                                                                                                              
                            1                    64000
 IQ_SYSTEM_TEMP
         /sybase/MONASIQ127/device/tempspace1.iqtemp                                                                                                                                                                                                                                                                                                                                                                                                                    
         TEMPORARY   RW          1 200M    0B      8K
         1H,64F,16A                                                                                                                                                                                                                                                                                                                                                                                                                                                                   
                            1                    25600

(2 rows affected)
(return status = 0)
 

 

Avant de commencer la migration, il faut stopper l'instance 12.7.

Mise en place de l'environnement 15.3 pour lancer l'utilitaire iqunload :

export SYBASE=/sybase/product/IQ153
. $SYBASE/IQ-15_3/IQ-15_3.sh
     Sourcing SYBASE.sh

 

Lancement de la migration

se placer dans le répertoire contenant le .db de l'instance à migrer et lancer la commande suivante  :

  • iqunload  -au -c"log=iqunload.log;DBF=MONASIQ127.db;uid=sa;pwd=XXXXXX"

 

Sybase IQ Unload Utility Version 15.3.0.6056
Connecting and initializing


=============================================================
IQ server starting with:
      1 connections         (       -gm )
     26 cmd resources       ( -iqgovern )
    447 threads             (     -iqmt )
    512 Kb thread stack size   (   -iqtss  )
  228864 Kb thread memory size ( -iqmt * -iqtss )
      8 IQ number of cpus  ( -iqnumbercpus )
      0 MB maximum size of IQMSG file ( -iqmsgsz )
      0 copies of IQMSG file archives ( -iqmsgnum )
=============================================================



=============================================================
IQ server starting with:
      1 connections         (       -gm )
     26 cmd resources       ( -iqgovern )
    447 threads             (     -iqmt )
    512 Kb thread stack size   (   -iqtss  )
  228864 Kb thread memory size ( -iqmt * -iqtss )
      8 IQ number of cpus  ( -iqnumbercpus )
=============================================================

Wrapping iqmsg: Disabled.
Wrapping iqmsg: Disabled.


=============================================================
IQ server starting with:
      1 connections         (       -gm )
     26 cmd resources       ( -iqgovern )
    447 threads             (     -iqmt )
    512 Kb thread stack size   (   -iqtss  )
  228864 Kb thread memory size ( -iqmt * -iqtss )
      8 IQ number of cpus  ( -iqnumbercpus )
      0 MB maximum size of IQMSG file ( -iqmsgsz )
      0 copies of IQMSG file archives ( -iqmsgnum )
=============================================================

2011-10-06 10:26:57 Unloading user and group definitions
2011-10-06 10:26:57 Unloading table definitions
2011-10-06 10:26:58 Unloading index definitions
2011-10-06 10:26:58 Unloading functions
2011-10-06 10:26:58 Unloading view definitions
2011-10-06 10:26:58 Unloading procedures
2011-10-06 10:26:58 Unloading triggers
2011-10-06 10:26:58 Unloading SQL Remote definitions
2011-10-06 10:26:58 Unloading MobiLink definitions
2011-10-06 10:26:58 Creating new database
Warning: Using default value for -iqmc or -iqtc is insufficient for most applications
Warning: Using default value for -iqmc or -iqtc is insufficient for most applications
Using licenses from: /sybase/product/IQ153/SYSAM-2_0/licenses/*.lic:/sybase/MONASIQ127/device/*.lic
Checked out graced license for 8 IQ_CORE (2011.0506) will expire Sat Nov  5 00:00:00 2011.
Failed to obtain license(s) for IQ_CORE feature from License Server 27002@adbprdlm02.
Insufficient IQ_CORE CPU licenses. Sybase IQ requires 8 IQ_CORE ("DT") CPU licenses for use on this machine but only 2 could be obtained. Check whether additional licenses are available at the Sybase Product Download Center.
License feature name:  IQ_CORE
License search path:   /sybase/product/IQ153/SYSAM-2_0/licenses/*.lic:/sybase/MONASIQ127/device/*.lic:
FLEXnet Licensing error:-4,132
For further information, refer to the Sybase Software Asset Management website at http://www.sybase.com/sysam
WARNING: Sybase IQ functionality that requires the IQ_CORE license will be disabled on Sat Nov  5 00:00:00 2011, unless a suitable IQ_CORE license is obtained before that date.
2011-10-06 10:27:11 Reloading user and group definitions
2011-10-06 10:27:11 Reloading table definitions
2011-10-06 10:27:11 Reloading index definitions
2011-10-06 10:27:11 Reloading functions
2011-10-06 10:27:11 Reloading view definitions
2011-10-06 10:27:11 Reloading procedures
2011-10-06 10:27:11 Reloading triggers
2011-10-06 10:27:11 Reloading SQL Remote definitions
2011-10-06 10:27:11 Reloading MobiLink definitions
Successfully backed up file "/sybase/MONASIQ127/device/MONASIQ127.db" by renaming it to "/sybase/MONASIQ127/device/MONASIQ127.db.before_schema_reload".
Successfully backed up file "/sybase/MONASIQ127/log/MONASIQ127.iqmsg" by renaming it to "/sybase/MONASIQ127/log/MONASIQ127.iqmsg.before_schema_reload".
Successfully reloaded schema of database "/sybase/MONASIQ127/device/MONASIQ127.db".

Checked in graced license for IQ_CORE (2012.06110).
 

 

Validation de la migration

L'instance est maintenant migrée mas arrêtée. Nous allons repositionner les variables d'environnement pour pointer vers la 15 puis démarrer l'instance.

Mise en place de l'environnement 15.3 et lancement de la commande suivante :

  • start_iq @/sybase/MONASIQ127/cfg/MONASIQ127.cfg /sybase/MONASIQ127/device/MONASIQ127.db

Starting server MONASIQ127 on moineau at port 11021 (10/06 10:43:32)

Run Directory       : /sybase/MONASIQ127/device
Server Executable   : /sybase/MONASIQ127/product/IQ-15_3/bin64/iqsrv15
Server Output Log   : /sybase/MONASIQ127/log/MONASIQ127.0002.srvlog
Server Version      : 15.3.0.6056/GA
Open Client Version : N/A
User Parameters     : '@/sybase/MONASIQ127/cfg/MONASIQ127.cfg' '/sybase/MONASIQ127/device/MONASIQ127.db'
Default Parameters  :
 

 

=============================================================
IQ server starting with:
     50 connections         (       -gm )
     26 cmd resources       ( -iqgovern )
    496 threads             (     -iqmt )
    512 Kb thread stack size   (   -iqtss  )
  253952 Kb thread memory size ( -iqmt * -iqtss )
      8 IQ number of cpus  ( -iqnumbercpus )
      0 MB maximum size of IQMSG file ( -iqmsgsz )
      0 copies of IQMSG file archives ( -iqmsgnum )
=============================================================

I. 10/06 10:43:33.      Sybase IQ
I. 10/06 10:43:33.       Version 15.3
I. 10/06 10:43:33.        (64bit mode)
I. 10/06 10:43:33. Copyright 1992-2011 by Sybase, Inc. All rights reserved
I. 10/06 10:43:33.
I. 10/06 10:43:33. 8 logical processor(s) on 2 physical processor(s) detected.
I. 10/06 10:43:33. Maximum number of physical processors the server will use: 2
I. 10/06 10:43:33. Running Linux 2.6.18-194.11.4.el5 #1 SMP Fri Sep 17 04:57:05 EDT 2010 on X86_64
I. 10/06 10:43:33. Server built for X86_64 processor architecture
I. 10/06 10:43:33. 49152K of memory used for caching
I. 10/06 10:43:33. Minimum cache size: 49152K, maximum cache size: 262144K
I. 10/06 10:43:33. Using a maximum page size of 4096 bytes
I. 10/06 10:43:34. Starting database "MONASIQ127" (/sybase/MONASIQ127/device/MONASIQ127.db) at Thu Oct 06 2011 10:43
I. 10/06 10:43:35. Transaction log: MONASIQ127.log
I. 10/06 10:43:35. Starting checkpoint of "MONASIQ127" (MONASIQ127.db) at Thu Oct 06 2011 10:43
I. 10/06 10:43:35. Finished checkpoint of "MONASIQ127" (MONASIQ127.db) at Thu Oct 06 2011 10:43
I. 10/06 10:43:37. Database "MONASIQ127" (MONASIQ127.db) started at Thu Oct 06 2011 10:43
I. 10/06 10:43:37. IQ Server MONASIQ127.
I. 10/06 10:43:37. Database server started at Thu Oct 06 2011 10:43
I. 10/06 10:43:37. Trying to start SharedMemory link ...
I. 10/06 10:43:37.     SharedMemory link started successfully
I. 10/06 10:43:37. Trying to start TCPIP link ...
I. 10/06 10:43:37. Starting on port 11021
New process id is 7782
I. 10/06 10:43:42.     TCPIP link started successfully
I. 10/06 10:43:42. Now accepting requests

Server started successfully



Vérification de la version de l'instance MONASIQ127 et lancement d'un checkdb :

 iqisql -U sa -w500 -S MONASIQ127

Password:
1> select @@servername
2> go
 @@servername
 --------------------------------------------------------------------------------------------------------------------------------
 MONASIQ127


(1 row affected)
1> select @@version
2> go
 @@version
 --------------------------------------------------------------------------------------------------------------------------------
 Sybase IQ/15.3.0.6056/110506/P/GA/Enterprise Linux64 - x86_64 - 2.6.9-67.0.4.ELsmp/64bit/2011-05-06 13:27:43

1> checkpoint
2> go

1> sp_iqcheckdb 'verify database'
2> go
 

Vérifier qu'il n'y a pas d'erreur(s) dans le rapport du checkdb.

 

Post Migration

Durant la migration, l'utilitaire iqunload renomme le dbspace IQ_SYSTEM_MAIN en iq_main et crée un nouveau IQ_SYSTEM_MAIN.Il est d'ailleurs possible de préciser le nom du nouveau fichier pour le dbspace IQ_SYSTEM_MAIN (-ms_filename)

Toutes les données "applicatives" sont maintenant sur iq_main. SYBASE recommande depuis la SYBASE IQ 15 de séparer les données applicatives et systèmes.

Les données système reste sur IQ_SYSTEM_MAIN et les données applicatives sur iq_main. D'ailleurs, il est souhaitable de placer les options suivante sur SYBASE 15 pour une bonne gestion de ces dbspaces :

1> REVOKE CREATE ON IQ_SYSTEM_MAIN FROM PUBLIC;
2> go
1> GRANT CREATE ON iq_main to PUBLIC;
2> go
1> SET OPTION PUBLIC.DEFAULT_DBSPACE = 'iq_main';
2> go
1> SET option PUBLIC.MINIMIZE_STORAGE='On'
2> go

 

 

Migration vers un SYBASE IQ 15 différent (voire distant)

 

Introduction

Nous allons utiliser l'utilitaire iqunload (option -n) pour extraire du serveur SYBASE IQ 12.7 la structure des objets, les options, les logins vers un script SQL.

Nous lancerons ce script sur l'instance IQ 15.3 pour recréer les objets. Évidemment, au préalable, nous avons créer la database comme souhaitée. Comme évoqué au dessus, SYBASE recommande de créer un dbspace différent de IQ_SYSTEM_MAIN et définir par défaut celui-ci pour PUBLIC.

Il faudra enfin alimenter les tables en utilisant INSERT LOCATION.

Dans notre exemple, nous avons une instance MONASIQ127 que l'on va migrer vers une instance MONASIQ153 sur la même machine. Bien sur il est très simple de faire la même chose sur une instance SYBASE IQ 15 distante.

 

Post Migration

Nous avons donc :

  • une instance SYBASE IQ 12.7 nommée MONASIQ127 (SYBASE : /sybase/MONASIQ127/product)
  • une instance 15.3 nommée MONASIQ153 (SYBASE : /sybase/MONASIQ153/product)

Sourcer l'environnement SYBASE IQ 15

export SYBASE=/sybase/product/IQ153
. $SYBASE/IQ-15_3/IQ-15_3.sh
     Sourcing SYBASE.sh

Dans ce cas, il ne faut pas arrêter l'instance SYBASE IQ 12.7

Il faut déplacer les fichiers (opttemp.sql,optdeflt.sql,unload.sql,unloadold.sql) permettant l'extraction des objets de la 15 vers la 12.7.

De /sybase/MONASIQ153/product/IQ-15_3/unload vers /sybase/MONASIQ127/product/ASIQ-12_7/scripts

 

Extraction du script reload.sql

Lancer la commande suivante  :

  • iqunload -n -c "UID=DBA;PWD=SQL;DBF=/sybase/MONASIQ127/device/MONASIQ127.db;ENG=MONASIQ127;links=tcpip(host=machine;port=9999)" -r "/sybase/MONASIQ153/log/reload.sql"

Exemple de ce que contient le fichier reload.sql :

[...]

-------------------------------------------------
--   Create tables
-------------------------------------------------


message dateformat( now(), 'yyyy-mm-dd hh:nn:ss' ) || ' ' || lang_message( 18478 ) type info to client;

CREATE TABLE "sa"."ta" (
    "c1"                             varchar(3000) NOT NULL
   ,"c2"                             char(3000) NOT NULL
)
go

commit work
go


-------------------------------------------------
--   Create indexes
-------------------------------------------------


message dateformat( now(), 'yyyy-mm-dd hh:nn:ss' ) || ' ' || lang_message( 18480 ) type info to client;

commit work
go

[...]

 

Création de la structure des objets, des options et des logins sur le serveur SYBASE IQ 15.3

Vérifier que les variables d'environnement sont bien celles de SYBASE IQ 15 et donc que vous pointez bien vers MONASIQ153.

 dbisql -c "uid=DBA;pwd=SQL" "select @@servername"

 @@servername
---------------------------------------------------------
MONASIQ153

 

Lancer la commande dbisql suivante :

dbisql -c "uid=DBA;pwd=sql" reload.sql |tee -a reload.log

2011-10-07 11:50:55 Reloading user and group definitions
7 row(s) affected
2011-10-07 11:50:55 Reloading table definitions
2011-10-07 11:50:55 Reloading index definitions
2011-10-07 11:50:55 Reloading functions
2011-10-07 11:50:55 Reloading view definitions
2011-10-07 11:50:55 Reloading procedures
1 row(s) affected
2011-10-07 11:50:55 Reloading triggers
2011-10-07 11:50:56 Reloading SQL Remote definitions
2011-10-07 11:50:56 Reloading MobiLink definitions
Execution time: 1.564 seconds

 

Toute la structure de la base de données IQ 12.7 est maintenant créée sur l'instance IQ 15.3

 

 

Chargement des données via INSERT LOCATION

 

 

 

 

 

 

 

Passage d'un patch IQ

Installer les binaires du patch

  1.  Downloader sur le site de sybase l'EBF (SDR ou ESD, les subtilités de sa nomination n'est pas très passionnante) 
  2. Dans un répertoire à part et de préférence au dessus du répertoire $SYBASE déposer le tgz téléchargé (légalement évidement)
  3. déziper gsip -d blabla.tgz
  4. détarer tar xf blabla.tar
Vous êtes prêt pour l'aventure

Mise à jour des binaires

  1. Se connecter à la base, faire un sp_iqcheckoptions et l'enregistrer dans un fichier.
  2. Arrêter le server IQ
  3. Faire une sauvegarde des binaires de la future ancienne distribution ($ASEDIR), du catalog (.db) et de sa log (.log)
  4. Aller dans le répertoire ebfxxxx généré par le détar
  5. Dans ce répertoire, il y a deux répertoires: un pour patcher le client windows... et l'autre pour le serveur.
  6. lancer le sybinstall --> Attention, il faut que les variables d'environnement soient correctement initialisées ($SYBASE et $ASDIR)
  7. Répondre à toutes les questions (il n'y a pas de piège)
  8. Les binaires sont remplacés et les liens sont recréés
  9. relancer le serveur IQ en mode stand alone (-gm 1 et -gd dba)
La distributions est mise à jour

Mise à niveau de la base

A la fin de la mise à jour des binaires le script sybinstall le signale: il faut se connecter sur la base et lancer la commande:

Alter database upgrade;

Cette commande n'est pas très longue à passer mais indispensable. Attention: Si vous ne le faites pas, la base et tout à fait utilisable, mais...

La dernière étape est de vérifier les options: 

  • se connecte sur la base et faire un sp_iqcheckoptions
  • Le comparer avec celui fait précédemment
  • Pour vous aider, l'option Minimize_Storage est systématiquement repositionnée à OFF lors d'un passage de patch (valeur par défaut) --> Et ça c'est le mal.
  • Arrêter le serveur
  • Relancer le serveur en retirant les options gd et gm
C'est terminée. C'est une version allégée de la procédure de migration, pour plus d'information, il faut lire attentivement le readme présent dans le tar du patch. On peut rajouter par exemple une sauvegarde avant de commencer, mais ça semble tellement évident.
 On peut s'épargner un arrêt/relance en utilisant l'option
sa_server_option('disable_connections','ON')
Il doit tout y avoir. 
Articles tagged

Sybase IQ dump cross paltform

Migration cross-platform IQ

 Lorsque l'on recharge une base IQ via une sauvegarde sur une instance installée sur un OS différent de la source. Il n'y a pas comme sous ASE de procédure ou de commande à utiliser pour valider l'opération après le rechargement.

 La seule condition est que les plateforme ai le même endian. Pour s'assurer que la migration est possible,il faut vérifier dans la documentation officielle de Sybase: Installation and Configuration Guilde, Chapitre 4 Migrating across hardware platforms.

Il y a deux groupes: big endian et little endian. Et bien évidement, si les deux plateforme sont dans le même groupe, la migration est possible. Si par malheur ce n'est pas le cas, il va falloir passer par des transfert, fichier plat... 

Il y a une particularité pour Linux 126 32 bits (cf à la doc).

 Les étapes de la migration sont décrites dans le guide de migration.