SelectEtoile : Base de connaissance SGBD

Posts Tagged 'full'

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/.

 

Probleme acces lignes via fulltext search - SQLServer

 

Documentation Full Text Search :

 

 

Problème rencontré (ci-dessous la log FTS) :

2010-08-16 00:16:02.53 spid28s     Informational: Full-text Full population completed for table or indexed view '[mabase].[dbo].[FileContent]' (table or indexed view ID '165575628', database ID '5'). Number of documents processed: 77395. Number of documents failed: 0. Number of documents need retry: 15.
2010-08-16 00:16:04.53 spid28s     Error '0x8004170c: The document format is not recognized by the filter.' occurred during full-text index population for table or indexed view '[mabase].[dbo].[FileContent]' (table or indexed view ID '165575628', database ID '5'), full-text key value 0x000103E8. Attempt will be made to reindex it.
2010-08-16 00:16:04.53 spid28s     The component 'offfilt.dll' reported error while indexing.
Component path 'C:\WINNT\system32\offfilt.dll'.

 

 

Description de la table

USE [mabase]

GO

/****** Object:  Table [dbo].[FileContent]    Script Date: 09/07/2010 14:16:21 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[FileContent](

      [fileRef] [int] NOT NULL,

      [version] [int] NOT NULL CONSTRAINT [DF_FileContent_version]  DEFAULT (1),

      [verModifDate] [datetime] NULL CONSTRAINT [DF_FileContent_verModDate]  DEFAULT (getdate()),

      [userRef] [int] NOT NULL CONSTRAINT [DF_FileContent_userRef]  DEFAULT ((-1)),

      [comment] [varchar](256) NULL,

      [content] [image] NULL CONSTRAINT [DF_FileContent_content]  DEFAULT (''),

      [size] [int] NOT NULL CONSTRAINT [DF_FileContent_size]  DEFAULT ((-1)),

      [id] [int] IDENTITY(1,1) NOT NULL,

      [fileType] [varchar](10) NULL,

 CONSTRAINT [PK_FileContent] PRIMARY KEY NONCLUSTERED

(

      [id] ASC

)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]

) ON [FILE_CONTENT] TEXTIMAGE_ON [FILE_CONTENT]

 

GO

SET ANSI_PADDING OFF

GO

ALTER TABLE [dbo].[FileContent]  WITH NOCHECK ADD  CONSTRAINT [FK_FileContent_File] FOREIGN KEY([fileRef])

REFERENCES [dbo].[File] ([id])

GO

ALTER TABLE [dbo].[FileContent] NOCHECK CONSTRAINT [FK_FileContent_File]

 

Lancement de la commande sp_help_fulltext_columns FileContent :

 NAME COLNAMECOLID
BLOBTP_COLNAME
BLOBTP_COLID
LANGUAGE
 FileContentcontent
 6 fileType 9 1036

 

Identification de la ligne problématique :

Le code HEXA 0x000103E8 correspond à la valeur 66536

Résultat du select sur la table FileContent (id = 66536) : 

fileRef
Version
verModifDate
userRef
 comment content size id fileType
 66226 1 2008-11-24 11:02:54
 2384  0x... 18380666536
 doc

 

Vérification que le fichier dans la colonne de type image nommé 'content' n'est pas corrompu pour l'id 66536 :

Création d'un VBScript pour extraire les données de la colonne 'content' (ex : content.vbs ci-dessous) :

Set Conn = CreateObject("ADODB.Connection")

Conn.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=mabase;Data Source=Host\SQLServerInstance"

Set rs = Conn.Execute("select * from Filecontent where id = 66536")

 

Do While Not rs.eof

   set Strm = CreateObject("ADODB.Stream")

    Strm.Type = 1 'adTypeBinary

    Strm.Open

    Strm.Write rs("content")

    Strm.SaveToFile "content.doc" , 2 'adSaveCreateOverWrite

    Strm.Close

    Set Strm = Nothing

    rs.MoveNext

Loop

 

Conn.Close

Set Conn = Nothing

 

Celui-ci  permet d'extraire le contenu de la colonne content dans un fichier content.doc. L'opération peut être réalisé pour toutes les extensions possibles.

Si le fichier est lisible, pas de problème de corruption !!!!

 

 

Recréation de l'index FullText afin de valider que l'index n'est pas corrompu

 ALTER FULLTEXT CATALOG [FileContent Full Text] REBUILD WITH ACCENT_SENSITIVITY = ON;

 Opération qui peut s'avérer un peu longue et rend indisponible l'utilisation de l'index FTS.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Arrêt d'un processus en log full

Arrêter une session en log full sans kill


  1. Find the spid of the transaction process:

    1> select spid from master..syslogshold
    2> where dbid = ID /* is id of database with LOG SUSPENDed users */
    3> go

  2. Abort the transaction process. Only a System Administrator can use lct_admin abort.
    1> select lct_admin("abort", spid, dbid)
    2> go
    This terminates and closes the suspended transaction.
  3. Perform dump transaction for the database with LOG SUSPENDed users.

Articles tagged

Import / Export ORACLE

Export ORACLE

 


 

Exp user/passwd log=logfile file=exportname consistence=yes

full=y

owner=user

tables=(user.table1,user.table2…)

tablespace=kdsj

ex : exp user/userpwd file=tt.exp tables=ta_tttt rows=y

 

 

 

Import ORACLE


Imp user/passwd parfile=filename

Ex de parfile

 

LOG=$EXPORTDIR/import.log

FILE=$EXPORTDIR/expfull20050614-073934.dump

FROMUSER=CDCSPEC,OPS$BRU,UBXADMIN,UBXREF,UDSPECIF,USERBO,USERCLI,USERDB,USERMON

TOUSER=CDCSPEC,OPS$BRU,UBXADMIN,UBXREF,UDSPECIF,USERBO,USERCLI,USERDB,USERMON

On peut rajouter le parameters ‘TABLES=(*)’ qui ne va importer que les tables, trigger, index d’un shema.
Ex : imp scriptor/scriptor4recon file=tt.exp tables=MQMT950 rows=y ignore=y constraints=n indexes=n


Remarques

Import avec un pipe nommé

Créer un pipe nommé : mknod pipename p

Créer le fichier parfile avec comme parametre file le nom du pipe nommé

Lancer les commandes suivantes :
  •  
    • gzip –d nom_du_fichier_import.gz > pipename &

    • imp parfile=import.txt


 

Exemples export et import ORACLE

exp / OWNER=user_a file=$EXPORTDIR/exp_ORACLESID_user_a.dmp log=$LOGDIR/exp_ORACLESID_user_a..log consistent=y direct=y

 

 

 

 

Administration / Utilisation Full Text Search SQLSERVER

Ajout de la fonction Full Text Search sur un serveur existant

Aller dans Menu Start / Settings / Control Panel

Puis dans 'Add or Remove Programs'

Cliquer sur le bouton 'Change' de Microsoft SQL Server, et suivre les écrans suivants:

 

 

 

 

 

 

Choisir 'Change Installed Components'

 

 Cliquer sur "Full-text Search"

 

 

 

 

 

 

 

 

 

 

Pour vérifier que l'installation s'est correctement :

  • Vérifier que le service 'SQL Server FullText Search (InstanceName)' est bien présente et démarrée
  • Lancer "SQL Server Management Studio"

 

Vérification préalable : le full-text est il activé ?

select databaseproperty('nomdelabase' ,'IsFulltextEnabled');

Activation du full-text

use nomdelabase

exec sp_fulltext_database 'enable'

 

Création d'un catalogue full-text

exec sp_fulltext_catalog 'nomducatalogueacreer', 'create'

Création d'un catalogue full-text en spécifiant le chemin     

 

exec sp_fulltext_catalog 'nomducatalogueacreer', 'create', 'disque:\répertoire'

Ajout d'une table à la liste des tables indexées pour le full-text

 

exec sp_fulltext_table 'table', 'create', 'nomducataloguefulltext', 'nomcléprimaire'

Ajout d'une colonne à la liste des colonnes indexées pour le full-text

 

exec sp_fulltext_column 'table', 'colonne', 'add', 0x040c

Indexation d'un catalogue :

 

exec sp_fulltext_catalog 'nomducatalogue', 'start_full'

Vérifier qu'une colonne est indexée :

 

SELECT ColumnProperty ( ObjectId('titles'),'titles','IsFulltextIndexed' )

Liste des colonnes indexée d'une table

sp_help_fulltext_columns 'Article'

 

Pour ajouter/supprimer une colonne à un index il faut d'abord desactiver celui-ci

sp_fulltext_table 'Articles', 'deactivate'puissp_fulltext_column 'Articles', 'type', 'drop'

sp_fulltext_column 'Articles', 'title', 'add' et on réactive :

sp_fulltext_table 'Articles', 'activate'

 

IMPORTANT : Il est conseillé de mettre tous les catalogues en mode tracking, cela signifie que le catalogue se reconstitue lorsque le serveur a 100ms de disponible.

Rappel pour cela :

sp_fullText_Table 'Articles', 'Start_change_tracking'

sp_fullText_Table 'Articles', 'Start_background_updateindex'

 

 

 

Informations sur les différents composants du fulltext ('filter, word-breaker and protocol handler')

sp_help_fulltext_system_components 'all' -- affiche un tableau de tous les composants installés

Equivalent à la vue system 'select * from sys.fulltext_document_types'

EXEC sp_help_fulltext_system_components 'filter' -- n'affiche que les composants de type 'filter'

ex :

Filter    .ascx    E0CA5340-4534-11CF-B952-00AA0051FE20    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\nlhtml.dll    12.0.6828.0    Microsoft Corporation
Filter    .asm    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .asp    E0CA5340-4534-11CF-B952-00AA0051FE20    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\nlhtml.dll    12.0.6828.0    Microsoft Corporation
Filter    .aspx    E0CA5340-4534-11CF-B952-00AA0051FE20    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\nlhtml.dll    12.0.6828.0    Microsoft Corporation
Filter    .bat    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .c    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .cmd    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .cpp    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .cxx    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .def    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .dic    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .doc    F07F3920-7B8C-11CF-9BE8-00AA004B9986    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\offfilt.dll       
Filter    .dot    F07F3920-7B8C-11CF-9BE8-00AA004B9986    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\offfilt.dll       
Filter    .h    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .hhc    E0CA5340-4534-11CF-B952-00AA0051FE20    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\nlhtml.dll    12.0.6828.0    Microsoft Corporation
Filter    .hpp    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .htm    E0CA5340-4534-11CF-B952-00AA0051FE20    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\nlhtml.dll    12.0.6828.0    Microsoft Corporation
Filter    .html    E0CA5340-4534-11CF-B952-00AA0051FE20    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\nlhtml.dll    12.0.6828.0    Microsoft Corporation
Filter    .htw    E0CA5340-4534-11CF-B952-00AA0051FE20    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\nlhtml.dll    12.0.6828.0    Microsoft Corporation
Filter    .htx    E0CA5340-4534-11CF-B952-00AA0051FE20    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\nlhtml.dll    12.0.6828.0    Microsoft Corporation
Filter    .hxx    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .ibq    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .idl    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .inc    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .inf    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .ini    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .inx    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .js    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .log    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .m3u    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .mht    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .obd    F07F3920-7B8C-11CF-9BE8-00AA004B9986    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\offfilt.dll       
Filter    .obt    F07F3920-7B8C-11CF-9BE8-00AA004B9986    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\offfilt.dll       
Filter    .odc    E0CA5340-4534-11CF-B952-00AA0051FE20    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\nlhtml.dll    12.0.6828.0    Microsoft Corporation
Filter    .pl    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .pot    F07F3920-7B8C-11CF-9BE8-00AA004B9986    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\offfilt.dll       
Filter    .ppt    F07F3920-7B8C-11CF-9BE8-00AA004B9986    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\offfilt.dll       
Filter    .rc    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .reg    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .rtf    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .stm    E0CA5340-4534-11CF-B952-00AA0051FE20    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\nlhtml.dll    12.0.6828.0    Microsoft Corporation
Filter    .txt    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .url    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .vbs    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .wtx    C7310720-AC80-11D1-8DF3-00C04FB6EF4F    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\msfte.dll    12.0.6828.0    Microsoft Corporation
Filter    .xlb    F07F3920-7B8C-11CF-9BE8-00AA004B9986    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\offfilt.dll       
Filter    .xlc    F07F3920-7B8C-11CF-9BE8-00AA004B9986    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\offfilt.dll       
Filter    .xls    F07F3920-7B8C-11CF-9BE8-00AA004B9986    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\offfilt.dll       
Filter    .xlt    F07F3920-7B8C-11CF-9BE8-00AA004B9986    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\offfilt.dll       
Filter    .xml    41B9BE05-B3AF-460C-BF0B-2CDD44A093B1    d:\MSSQL2005\MSSQL.1\MSSQL\Binn\xmlfilt.dll    12.0.6828.0    Microsoft Corporation

 

Pour plus de précision sur un filtre :

EXEC sp_help_fulltext_system_components 'filter','.doc'

componenttype  componentname  clsid  fullpath version manufacturer
Filter       .doc F07F3920-7B8C-11CF-9BE8-00AA004B9986   d:\MSSQL2005\MSSQL.1\MSSQL\Binn\offfilt.dll    
 dbid  ftcatid
 5  31

dbid : id de la base

ftcatid : id du catalogue. On peut le retrouver avec la requête suivante :

'select * from sys.fulltext_catalogs where fulltext_catalog_id=31'

 

Article pouvant être pratique : Indexer du contenu HTML dans SQL Server 2008

 

Mise en place indexation des fichiers PDF sur SQLServer 2005

  1. Rappelez-vous que la table doit avoir un champ BLOB (varbinary(max) ou image), et une colonne spécifiant le type de fichier pour l'index fulltext.
  2. Télécharger et installer le filtre Adobe Acrobate PDF. Disponible sur http://www.adobe.com/support/downloads/detail.jsp?ftpID=2611.
  3. Lancer les commandes suivantes sur l'instance :
    • sp_fulltext_service 'load_os_resources',1.  Cette commande appelle le Service Microsoft Search qui charge les OS specific wordbreakers, stemmers,filter...
    • sp_fulltext_service 'verify_signature', 0.  Ne vérifie pas que les binaires sont signés.
  4. Rebooter l'instance SQLServer ainsi que le Service FTS.
  5. Créer votre indexe full-text.
  6. Lancer un reindex ensuite