SelectEtoile : Base de connaissance SGBD

Posts Tagged 'instance'

Présentation du site

 
Ce site a été développé afin de fournir des explications, documentations et astuces en tout genre concernant les bases de données.Ils proviennent de retour d'expériences de différents DBA.
Il est à noter que ces articles ne sont que des notes et en aucune façon des documentations officielles.
Ce site peut contenir des commandes non supportées par les différents éditeurs qui sont à utiliser avec précaution.
Bien sur, si vous constatez des erreurs ou avez des remarques sur un ou plusieurs articles, n'hésitez pas à nous en faire part, soit via l'onglet Contacts, soit via les commentaires à votre disposition à la fin de chaque article.
 
Pour ceux qui seraient intéressés pour écrire ou proposer des articles, n'hésitez pas à me contacter via 'Contacts' dans le menu du haut.
flux_rssInscrivez vous au fil d'actualité selectetoile.net flux_rss

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

 

 

 

 

 

 

 

Sauvegarde / Restauration ORACLE

Quelques infos utiles :

V$recover_file : détermine les fichier de données à récupérer

V$achived_log : liste des fichiers de journalisation archivés

V$recovery_log : liste de tous les fichiers archivés nécessaires à la restauration

v$backup : liste les fichiers en mode backup

En cas de restauration d’archive log et probleme de place disk, il est possible de changer l’emplacement comme ceci :

Alter system archive log start to <LOCATION> ou set logsource <LOCATION>


Restauration complète :

Recover database : se fait base fermée

Recover tablespace… : se fait base ouverte

Recover datafile ‘nom_du_datafile’ : se fait base ouverte ou fermée (quand les tbs system ou undo sont impactés)

Pour un recover automatique :

Set autorecovery on

Faire un recover datafile…

Entrez ‘auto’ lorsque vous êtes invité à indiquer un redo log archivés

Faire un recover automatic datafile…

Exemple de restauration base fermée (pb sur un fichier du tbs system)

Shutdown abort

Host cp /BACKUP/system.dbf /fsmachine/sgbd/folde/data

Startup mount

Recover database ou recover datafile /fsmachine/sgbd/folde/data/system.dbf

Alter database open

Exemple de récupération base ouverte (défaillance physique sauf SYSTEM)

Vérifier que le datafile problématique est offline (jointure sur v$datafile et v$datafile_header). Sinon, le mettre offline.

Host cp /BACKUP/df2.dbf /fsmachine/sgbd/folde/data

Recover datafile ‘/fsmachine/sgbd/folde/data/ df2.dbf’ ou recover tablespace user_data

Alter database datafile ‘/fsmachine/sgbd/folde/data/ df2.dbf’ online; -- ou alter tablespace user_data online

Exemple de récupération base ouverte initialement fermée

Startup mount

Mettre le fichier offline comme vu au dessus

Alter database open : permet au utilisateurs d’accéder au systeme

Host cp file_save file (si un isk est endommagé, faire la restauration sur un autre disk)

Alter database rename file ‘/disk2/toto.dbf’ to ‘/disk3/toto.dbf’

Recover datafile ‘/disk3/toto.dbf’ ou recover tablespace user_data

Alter database datafile ‘/disk3/toto.dbf’ online;

Exemple de récupération sans sauvegarde

Si la base n’est pas démarrée, la montée, mettre offline le fichier impacté, puis ouvrir la base

Alter tablespace table_data offline immediate ;

Select * from v$recover_file ; -- verifie le statut de la récupération

Alter database create datafile ‘/disk2/df4.dbf’ as ‘/disk1/df4.dbf’

Select * from v$recover_file ; -- verifie le statut de la récupération

Recover tablespace user_data

Alter tablespace user_data online ;

Perte des fichiers de controle (3 solutions)

Utiliser une copie d’un fichier de controle en cours

Créer un nouveau fichier de contrôle

Create controlfile file

Recover database using backup controlfile

NB : alter database backup controlfile to trace


Restauration incomplète:

NB : consulter avant et après le fichier d’alerte. Il contient des infos d’erreurs, des conseils et les SCN

Avant tout chose, avant de démarrer une restauration incomplète

Faire une sauvegarde de la base fermée

Une sauvegarde du controlfile (alter database backup controlfile to /location)

Sauvegarde du redo log courant (alter system archive log current)

Procédure générale de restauration incomplète :

Sauvegarde à froid

Restaurez tous les fichiers de données (sauf controlfile, redolog, passwdfile, fichier de paramtres) pour ramener la base à un état antérieur.

Alter database mount et vérifier que les datafiles sont online

Récupérer la base jusqu’à l’état voulu (voir méthode ci-dessous)

Ouvrir la base avec resetlogs

Faire une sauvegarde full de la base fermée

 

 

Récupération jusqu’à un point dans le temps

Recover database until time `2001-03-04 :14 :22 :03`

Récupération jusqu’à annulation (cas d’un fichier de journalisation perdu ou corrompu nécessaire à une récupération)

Recover database until cancel

Récupération basée sur le SCN

Récupération à l’aide d’une sauvegarde de fichier de contrôle

Mettre la base en mode resteint : alter system enable restricted session ;

Comparer l’heure trouvée dans le fichier alerte (d’un drop par exemple) et dans la vue v$log

Shutdown

Save controlfile

Restaurer physiquement les fichiers de données et controlfile de la base

Alter database open (desmessages d’erreur apparaissent disant qu’il existe une désybnchronisation – sequence doesn’t match)

Mettre les datafile offline online si nécessaire

Recover database until time `2001-03-04 :14 :22 :03` using backup controlfile

Alter database open resetlogs

Save db full close

 


Une fois la restauration incomplète terminée

Faire une sauvegarde de la base fermée

Sauvegarder tous les fichiers d’archive_log et les supprimer pour éviter de mélanger les différents états de la base.


 

 

 

 

Exemple de scripts sql de sauvegarde à chaud :

 -- sauvegarde_complete_a_chaud.bat

-- genere et execute le fichier homonyme (.sql)

-- remplacer disque_temp: et disque_sauvegarde: par des valeurs !

--

-- on supprime toutes les infos parasites sur la sortie standard

@disque_temp:\nettoie_spool.sql

spool sauvegarde_complete_a_chaud.sql

select 'ALTER TABLESPACE '||tablespace_name||' BEGIN BACKUP;'

from dba_tablespaces;

select 'host copy '||file_name||' disque_sauvegarde:\'||substr(file_name, instr( file_name,'\',-1)+1)

from dba_data_files;

select 'ALTER TABLESPACE '||tablespace_name||' END BACKUP;'

from dba_tablespaces;

spool off

@sauvegarde_complete_a_chaud.sql