SelectEtoile : Base de connaissance SGBD

Posts Tagged 'iq'

The jodbc.jar build does not match the shared object build

Impossible de se connecter à la base:

L'erreur suivante signifie qu'il y a un problème de version entre les librairies java:

Could not connect to the database.
The jodbc.jar build does not match the shared object build
SQLCODE=0, ODBC 3 State="(none)"

Il y a plusieurs causes possibles:

- Des variables qui pointent sur d'anciens répertoires; vérifiez les variables:
LD_LIBRARY_PATH, SYBASE_JRE6_64, LIB_SYBASE, LD_LIBRARY_PATH_64, PATH, INCLUDE, IQLIB,...

- Les fichiers dbisql_64.rep, dbisql.rep, ou dbisql.ini sont mal configurés.
Il faut vérifier si les paths renseignés sont valides. Une mauvaise configuration de ces fichiers peut entrainer aussi le comportement suivant: dbisql se ferme sans aucun message d'erreur.

- Une mauvaise installation d'un patch IQ. Par exemple de bondir de l'EBF 1.5 au 2.9 sans upgrader en ESD 2. Dans ce cas, il faut downgrader en 1.5 updrader en 2 et 2.9 (c'est pas si dur que ça.)

 

 

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

IQ rempli le /tmp de la machine.

/tmp full sous Sybase IQ

Les causes:

Il arrive qu'IQ remplisse le /tmp de la machine. C'est en faite la partie ASA qui provoque ce phénomène. Par défaut le temp de la machine est le temp du catalogue ASA d'IQ. Dans la plus part des cas, c'est l'utilisation de fonction ASA ou la résolution de commande ASA, des commandes en cours d'exécution sans commit, l'alimentation de table créée dans Sql Anywhere via la clause 'IN SYSTEM" de la commande "Create table", la création de longue chaîne de caractère utilisant des fonctions strings SA, des liens de base tel qu'une proxy table entre IQ et ASE qui peuvent provoquer ce genre de problème.

 Les effets:

Dans le srvlog, ce beau message apparaît:

Fatal error: disk full /tmp/.SQLAnywhere//tmp/tmp_00000000

Les conséquences sous Linux sont que la machine se retrouve dans un "drôle d'état", qui peux nécessiter l'intervention de l'administrateur Linux. Qu'en à l'IQ, il devient injoignable et si vous aviez une connexion ouverte, les commandes ne répondent plus.

 Résoudre le problème 

 Ce n'est pas très propre, mais un arrêt/relance du Serveur SGBD est inévitable. Bien souvent (tout le temps même) via la commande kill... voir kill -9.

 Se prémunir du problème.

Il faut positionner l'option TEMP_SPACE_LIMIT_CHECK à 'On' pour contrôler le comportement du SGBD quand le fichier temporaire du catalogue s'accroit au delà de 80% du FS. Lorsque cette limite est atteinte, une erreur est retournée et l'opération annulée ne crashe plus IQ.

Des requêtes utilisant des fonctions, peuvent également provoquer ce comportement. Dans IQ, Les fonctions sont régies par la partie ASA. Ainsi la totalité des résultats est envoyé dans le temp SA pour être ensuite manipulée par les fonctions ASA. Ce comportement est changé dans la version 15 d'IQ.

La procédure sa_disk_free_space permet de visualiser l'espace disponible pour le catalogue ASA (en bytes).

dbspace_name    free_space
--------------------------
SYSTEM          4188749824
Transaction Log 4188749824
Temporary File  4349403136

Le free_space correspond au /tmp pour la ligne Temporary File.  Transaction Log et SYSTEM correspondent à la taille du file system sur lequel le .db et .log sont créés.

Il est possible de modifier le FS de temp du catalogue en renseignant la variable $ASTMP/.

 

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

 

 

 

 

 

 

 

Visiualisation du versionning.

Calcul du versioning IQ selon l'espace libre du Main.

 La procédure suivante permet de visualiser l'espace  l'espace de travaille occupé par les versions IQ dans l'espace des donnée. Il prend en compte également la taille de DATA/TMP de la base.

 

Code de la procédure

ALTER PROCEDURE "dbo"."sp_dba_version"()
result (Type varchar(50),
        Version_size_Mo int,
        Data_space int,
        Data_space_used int,
        Percent_free_space_used_by_version double,
    Free_space double,
        Percent_total_version_type double ,
        older_VerCreateTime varchar(26),
        TempWork int,
        TempWorkUsed int,
        Nbactivever  int,
        Nboldver  int
        )
BEGIN

Read more: Visiualisation du versionning.

Les Commandes Système SYBASE IQ

Procédures système :

  • sp_iqcontext : visualisation des requêtes lancées
  • sp_iqconnection : visualisation des connexions
  • sp_iqstatus : visualisation des différents compteurs sur le serveur (idem que select * from sys.sysfile)
  • sp_iqtransaction : visualisation des transactions
  • sp_iqwho : visualisation de process
  • sp_iqlocklogin
  • sp_iqlistexpiredpasswords
  • sp_iqlistlockedusers
  • sp_iqlistpasswordexpirations
  • sp_iqcolumns matable : description des colonnes de la table matable
  • sp_iqtable, sp_iqindex, sp_iqcolumns, sp_iqview
  • sp_iqlocks
  • Sp_iqspaceinfo : taille des différents objets
  • Sp_iqtablesize, sp_iqdbsize
  • Sp_iqdbspace : espace de la base
  • sp_iqshowpsexe : affiche des infos sur la conhandle specifié (ex application name, host source...)
  • sa_conn_activity : activité des process actifs
  • sa_conn_info 4269 : info sur la session 4269
  • sp_iqcheckdb 'check database'
  • sp_iqcheckdb 'check table user.matable'
  • sp_iqrebuildindex 'table','column nom_colonne'; : réorganise les les indexes de la colonne 'nom_colonne'
  • sp_iqrowdensity ('table monuser.matable') : donne la fragmentation de la table matable

 

 

 

Commandes système :

Gestion des espaces de stockage

  • create dbspace nom_du_dbspace as '/chemin acces complet/nom_du_device' IQ store
  • create dbspace nom_du_dbspace as '/chemin acces complet/nom_du_device' IQ temporary store
  • create dbspace nom_du_dbspace as '/chemin acces complet/nom_du_device' catalog store SIZE xxx
  • exemple :
    • create dbspace IQ_MAIN12 as '$CATALOG/iqdbspace-main12' iq store
    • Quand il s'agit d'un rawdevice, ce n'est pas la peine de préciser la taille

 

Création d'un utilisateur :

  • grant connect to nom_utilisateur identified by mot_de_passe
  • sp_iqaddlogin loginname, password, [ number_of_connections ] [ , password_expiration]
    • number_of_connection : nombre maxi de connexions concurrentes
    • password_expiration : nombre de jours de validité du mot de passe
  • Via Sybase Central
  • Attribution Privilèges
    • grant privilege to utilisateur
  • Création d'un groupe
    • grant connect to nom_du_groupe identified by password_du_groupe
    • grant GROUPE to nom_du_groupe
    • grant membership in group nom_du_groupe to nom_utilisateur
  •  

 

Les tables système

Récupérer les chemins physiques des dbspaces :

1> select "rename "+dbspace_name+" to '"+file_name+"'" from sysfile

2> where dbspace_name <> 'SYSTEM'

3> go

select name from sysobjects where type='S' order by 1

 

sys.sysservers

 srvid srvname    srvclass srvinfo                           srvreadonly
-----------------------------------------------------------------------

sys.sysexternlogins

user_id srvid remote_login  remote_password
--------------------------------------------------------

SYSTABAUTH : permet de voir les droits sur les objects (équivalent de sp_helprotect)

Table

Contents

SYSUSERPERM

Database-level permissions and password for each user ID

SYSGROUP

One row for each member of each group

SYSTABLEPERM

All permissions on table given by the GRANT commands

SYSCOLPERM

All columns with UPDATE permission given by the GRANT command

SYSDUMMY

Dummy table, can be used to find the current user ID

SYSPROCPERM

Each row holds one user granted permission to use one procedure

View

Contents

SYSUSERAUTH

All information in SYSUSERPERM except for user numbers

SYSUSERPERMS

All information in SYSUSERPERM except for passwords

SYSUSERLIST

All information in SYSUSERAUTH except for passwords

SYSGROUPS

Information from SYSGROUP in a more readable format

SYSTABAUTH

Information from SYSTABLEPERM in a more readable format

SYSCOLAUTH

Information from SYSCOLPERM in a more readable format

SYSPROCAUTH

Information from SYSPROCPERM in a more readable format

 

 

 

 

Mise en place des outils Asemonlogger pour SYBASE

Installation des outils AsemonLogger

 

Ce document décrit l'installation et la mise en place de l'outil Asemonlogger.Cet outil a été développé par JP MARTIN (consultant SYBASE) et est disponible sur le site de SYBASE  dans Code Exchange.Il permet de monitorer les serveurs SYBASE (Dataserver ASE, Replication Server ou Server IQ)

 

 

 

  • Récupération des fichiers sur le site de SYBASE (Code Exchange)
  • Installer un serveur SYBASE qui accueillera la base asemonlogger de collecte (que l'on appelera ASEMonServer)
  • Installer java sur la machine si ce n'est pas le cas
  • Sourcer le fichier SYBASE/SYBASE.sh
  • L'outil se décompose en deux parties
    • AsemonLogger récolte les différentes données de monitoring (SYBASE ASE, SYBASE Replication Server, SYBASE IQ)
    • AsemonReport met en forme les résultats sous forme de site internet (http + php)

 

Read more: Mise en place des outils Asemonlogger pour SYBASE

Utilisation de odbc.ini pour dbisql SYBASE IQ

Cet article décrit la mise en place d'un fichier odbc.ini permettant de se connecter avec dbisql en passant par une ressource

 

Création d'un fichier odbc.ini comme suit dans $SYBASE par exemple :

[ODBC Data Sources]
InstanceName=Adaptive Server Anywhere 9.0

[InstanceName]
ServerName=InstanceName
CommLinks=tcpip{host=machine;serverport=port;}
Driver=libdbodbc9.so

 

Initialisation de la variable d'environnement ODBCINI

 

ODBCINI=$SYBASE/odbc.ini

export ODBCINI

 

Le plus simple d'ailleurs est de l'ajouter dans le fichier SYBASE.sh

 

Vérification de son bon fonctionnement, il suffit de taper 'iqdsn -l'  :


 
Adaptive Server Anywhere Data Source Utility Version 9.0.2.2056
Sybase Adaptive Server IQ User Data Sources:
InstanceName



Connexion avec dbisql :

 

dbisql -nogui -c "uid=DBA;pwd=password" -datasource InstanceName
 

Réduir une base IQ

Réduction de la taille du base IQ:

 Principe:

Pour supprimer un dbspace, il y a une conditions: Il faut qu'il n'y ai aucun block utilisé dessus. On peut rajouter aussi être en single user, mais comme je suis un peu parano, je n'ai jamais testé à chaud sauf pour les dbspace temporaire.

 Démarrer le serveur en mode stand allow.

 Avant toute chose : UNE SAUVEGARDE.

Stop_asiq et on relance le serveur.

 start_asiq -gd dba -gm1 @.cfg .db 

Vous pouvez aussi changer le numéro de port: Bretelle/ceinture.

 

 Modifier le mode dbspace

La commande est ALTER DBSPACE RELOCATE. Effet imédiat.

Pour aller un peu plus vite, une p'tite requête:

 select 'alter dbspace ' || name || ' RELOCATE' from sp_iqdbspace() where name between 'main22' and 'man53'

'alter dbspace ' || sp_iqdbspace.name || ' RELOCATE'
-----------------------------------------------------
alter dbspace main22 RELOCATE
alter dbspace main23 RELOCATE
alter dbspace main24 RELOCATE
alter dbspace main25 RELOCATE
alter dbspace main26 RELOCATE
alter dbspace main27 RELOCATE
alter dbspace main28 RELOCATE
alter dbspace main29 RELOCATE
alter dbspace main30 RELOCATE
alter dbspace main31 RELOCATE
alter dbspace main32 RELOCATE
alter dbspace main33 RELOCATE
alter dbspace main34 RELOCATE
alter dbspace main35 RELOCATE
alter dbspace main36 RELOCATE
alter dbspace main37 RELOCATE
alter dbspace main38 RELOCATE
alter dbspace main39 RELOCATE
alter dbspace main40 RELOCATE
alter dbspace main41 RELOCATE
alter dbspace main42 RELOCATE
alter dbspace main43 RELOCATE

 Pour vérifier si le dbspace est bien passé en mode  RELOCATE, utiliser la procédure sp_iqcheckdb. la valeur de la colonne RWMode doit ête BB.

 Déplacer les blocks sur les dbspace en RW (read write).

La procédure sp_iqrelocate permet de d'effectuer cette opération. Avant de la lancer, il faut s'assurer que l'espace que vous allez déplacer va tenir dans les dbspace restés en RW et que l'espace qui restera après le déplacement des données sera suffisant pour gérer le versioning et l'accroissement naturel de la base.

sp_iqrelocate 'database';
Dans ce cas, toute les blocks des dbspaces en mode  RELOCATE seront déplacés. Notez au passage que cette procédure permet de déplacer des tables, des dbspaces ou des indexes et de limiter le nombre de block à déplacer. Pour plus d'info, la doc sybase.
 La procédure dure un certain temps... Selon la volumétrie. En attendant, allez boire un café.

 Supprimer les dbspaces.

La commande est DROP DBSPACE .

J'utilise la petite requête donnée un peu plus haut pour générer toutes les commandes de drop. Noter bien qu'à partir de ce moment, la sauvegarde initiale est à conserver précieusement avec la liste des raw devices et dbspace associer. En cas de besoin, vous pourriez en avoir besoin.

 

sp_iqdbspace, les dbspace ne doivent plus apparaître. 

 

Paramétrage dbisql sous Unix/Linux

Paramétrage pour dbisql:

 

Il est possible pour dbisql de modifier son comportement  en comfigurant un fichier contenu dans le HOME du user unix/linux.

 .isqlPreferences9

 Exemple de paramétrage:

 showMultipleResultSets=false
useGridsForResults=true
resultSetFont=
printResultSetToConsole=2
showUltraLitePlan=true
showRowNumber=true
defaultMessagesPaneHeight=7
showSeparateMessagesPane=false
setInitialFolderForFileBrowsers=true
maxRowsFetchedForUI=2147483647
 
Pour que la configuration du dbisql soit la même en ligne de commande ou en mode graphique, Il suffit de déployer ce fichier sur tous les environnements.