Pokročilé hledání             

HELIOS iNuvio      FAQ     Uživatelský panel    

Registrovat     Přihlásit se

    Obsah fóra> Časté dotazy> Systémové dotazy
    Verze pro tisk

Analýza databáze před převodem na MS SQL 2012

Zapisují se opakující se dotazy na řešení systémových problémů z provozu Helios Orange. Patří sem dotazy typu "Po instalaci SQL serveru se nemohu přihlásit do Heliosu." apod.

Moderátor: orange_moderator

Odeslat odpověď
Příspěvek: 1 • Stránka 1 z 1
  • Odpovědět s citací

Analýza databáze před převodem na MS SQL 2012

Příspěvekod jiri.dolezal v 12.04.2013 09:56

Standardní databázi bez externích dolňků převedete na verzi MS SQL 2012 prostou zálohou a obnovou databáze. Pokud však databáze Helios Orange obsahuje zakázkové (externí) doplňky (externí akce, pluginy, externí triggery atd.), je třeba převodu těchto řešení věnovat speciální pozornost.

Obecné informace k problematice kompatibility z MS SQL 2012 naleznete zde:
https://public.helios.eu/inuvio/doc/cs/index.php?title=Kompatibilita_Helios_Orange_a_MS_SQL_2012

Problematický je zejména výskyt již nepodporované syntaxe zápisu příkazu RAISERROR.

Následujícím skriptem lze prohledat SQL objekty v databázi, které nepovolenou syntaxi obsahují:

Kód: Vybrat vše
SELECT
      OBJECT_NAME(s.[object_id])
      ,o.[type]
      ,CASE o.[type]
            WHEN 'P' THEN 'SQL Stored Procedure'
            WHEN 'RF' THEN 'Replication-filter-procedure'
            WHEN 'V' THEN 'View'
            WHEN 'TR' THEN 'SQL DML trigger'
            WHEN 'FN' THEN 'SQL scalar function'
            WHEN 'IF' THEN 'SQL inline table-valued function'
            WHEN 'TF' THEN 'SQL table-valued-function'
            WHEN 'R' THEN 'Rule (old-style, stand-alone)'
            WHEN 'D' THEN 'DEFAULT (stand-alone)'
            ELSE '(unknown)'
      END as Typ_Objektu
      ,s.[definition]
FROM sys.sql_modules s
      INNER JOIN sys.objects o ON s.[object_id] = o.[object_id]
WHERE s.[definition] LIKE N'%RAISERROR [0-9@]%' -- N'%RAISERROR [^(]%' / druhá varianta
ORDER BY OBJECT_NAME(s.[object_id]) ASC;


Výskyt v řešeních typu plugin, je nutno řešit na úrovni zdrojových kódů tohoto řešení (je tedy nutné je mít k dispozici). Následující skript udělá seznam pluginů v databázi, které stojí za to prověřit:

Kód: Vybrat vše
SELECT DISTINCT   
      SUBSTRING(UP,1,(CHARINDEX(N'.',UP))-1) as NazevDLL
      ,ISNULL((SELECT TOP 1 NazevVerejny FROM TabPluginInfo WHERE NazevSys = SUBSTRING(UP,1,(CHARINDEX(N'.',UP))-1)),
      (SELECT TOP 1 (ISNULL((SELECT TOP 1 SUBSTRING(H.Hlaska,1,255) FROM TabExtHlasky H WHERE H.Jazyk = 1 AND H.GUIDText = E.Popis),E.Popis))
      FROM TabExtKom E WHERE E.UP = TabExtKom.UP ORDER BY E.Popis ASC)) as NazevReseni
      ,ISNULL((SELECT TOP 1 VerzePluginu FROM TabPluginInfo WHERE NazevSys = SUBSTRING(UP,1,(CHARINDEX(N'.',UP))-1)),N'(neznámá)') as Verze
FROM TabExtKom
WHERE Typ = 3;


Upozornění:
Tento článek si neklade za cíl kompletně popsat všechny možné případy a situace, které je třeba zohlednit při přechodu na MS SQL 2012. Bezchybný převod databáze je plně na zodpovědnosti a odborné způsobilosti realizátora.
jiri.dolezal
 
Nahoru

Odeslat odpověď
Příspěvek: 1 • Stránka 1 z 1

Zpět na Systémové dotazy

Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 1 návštěvník

         
  • Tým • Smazat všechny cookies z fóra • Všechny časy jsou v UTC + 1 hodina
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group, Český překlad – phpBB.cz

© copyright 2024 Asseco Solutions, a.s.