A létrehozáshoz szükséges utasítások

Jó napot, a közösség tagjai!
A ma népszerű kereslet alapján elmondom, hogyan lehet Terrasoft biztonsági mentést létrehozni és felvenni az Oracle adatbázisban.
Ehhez nagyon egyszerű, minden megtörténik - csak be kell futtatnia a kötegelt fájlt, és meg kell adnia az adatbázis nevét.

  1. A Backup.zip archívum tartalmát kicsomagoljuk azon a szerveren, ahol az Oracle szerver telepítve van.
  2. Run BackupDatabase.cmd.
  3. Adja meg: a séma neve, jelszava (felhasználói séma) és az adatbázis dump fájlszáma.
  4. Ennek eredményeként két fájlt kapunk: Grant.sql - a szétosztott jogok létrehozásának és az Oracle adatbázis dömpingjének forgatókönyve.
  1. A Restore.zip archívum tartalmát kicsomagoljuk a kiszolgálóra, ahol az Oracle szerver telepítve van.
  2. Ugyancsak két olyan fájlt (Grant.sql és dump) kell létrehoznunk, amelyek a biztonsági mentés létrehozásakor jöttek létre.
  3. Indítsa el a RestoreDatabase.cmd fájlt.
  4. Bővített felhasználói jelszó SYS, a neve az adatbázis dump fájlt (backup db fájl neve), a régi neve a rendszer, amely a kiírási készült (régi felhasználó séma), a neve az új rendszer (új felhasználóval séma) és egy jelszó az új rendszer (új felhasználói jelszó).
  5. Aztán minden automatikusan fut: létrehoz egy új rendszert, visszhangzik a szükséges jogokat, megteremti a szükséges típusú, biztonsági adatbázis emelkedni fog az említett rendszer, cserélje ki a húrok tárgyak a rendszer Terrasoft táblázatokat az új ünnepel szükséges jogokat szerepeket a táblák és nézetek.

A Terrasoft telepítésénél hasonló szkriptek szerepelnek a csomagban, de mindent összekapcsolnak azzal, hogy az adatbázis a TSAUTOBUILD sémából jött létre. A szkriptjeim továbbá kérik a régi séma nevét.

Röviden leírva, csak a leginkább szükséges. Ha bármilyen kérdése van, örömmel válaszolok.

Megjegyzem, hogy az elhangzott információkat példaként kell tekinteni, amelyre mindenki megváltoztathatja szükségleteit. Ezek a parancsfájlok a Windows operációs rendszerre telepített Oracle alkalmazhatóak, és a parancsfájlnak futtatni kell magát a kiszolgálón. Minden más opciónál (másik operációs rendszer, az ügyfélgépből indítva) hozzáadható.

A legfontosabb pont egy olyan biztonsági Grant.sql script (lásd. Backup.zip), amely létrehoz egy „öntött” elosztott jogokat a modellt, amely alkalmazható Terrasoft CRM.

UPD: Sasha Kotenkének köszönhetően a BackupDatabase.cmd fájl hibája miatt. Korrigált.

Az ügyfelek gyakran megkérdezik, miért hoznak fel biztonsági mentést az Oracle figyelmeztetésekor, és miért érvénytelen az objektumok az importálás után.

Megpróbálom megválaszolni ezeket a kérdéseket.

"SCHEMA_NAME" típusú objektum. "T_FieldInfo" már létezik egy másik azonosítóval

Rendszerünk Oracle adatbázis objektumtípusokat használ, OBJECT TYPE.

Az az ügy, hogy az Oracle mereven összeköti az objektumtípusokat azok azonosítóival, OID-jével.

Ebben az esetben, ha a szerver egyszer helyreállt mentés Terrasoft rendszer, ott jön létre minden alkalmazás típusok ( „t_GetLoginInfo”, „tbl_GetLoginInfo” et al.).
Az OID-hez való merev kötődés miatt ezek a típusok az OID-lel kerülnek létrehozásra, amely a dump-ban szerepel.

Az első alkalommal minden rendben lesz. De felvette ugyanazt, vagy egy másik tartalék Terrasoft rendszerek ugyanazon a szerveren, akkor újra létre típusok azonos OID - eredményeként egy hiba: a OID objektum már létezik. Ennek eredményeképpen a biztonsági mentés feloldása után semmilyen típusú nem jön létre.

Az Oracle ezen tulajdonsága miatt a szkriptekben megoldást találtak a rendszerünk megemelésére:

  1. A biztonsági mentés megkezdése előtt a CreateTypes.sql parancsfájl kifejezetten létrehoz minden szükséges típust, az Oracle létrehozásakor új OID-okat generál.
  2. Amikor felemeli Oracle próbál kialakítani a fajta mentés c régi OID, ugyanakkor ki a hiba IMP-00061: Warning :. objektum típus „rendszer”, „type” már létezik egy másik azonosítót

Ha ilyen hiba történik, a típus létrehozása kihagyásra kerül.

De a mi esetünkben ez nem hiba, mert ez konkrétan megoldást jelent. Az összes szükséges objektumtípust a szkriptünk hozza létre közvetlenül a biztonsági mentés előtt.

A biztonsági mentés feloldása után néhány objektum érvénytelen

Ez nem egy hiba, csak egy figyelmeztetés.

Ha importál egy sémát, először költöztetheti meg a táblázatokat és a nézeteket, majd az aktiválást, majd a tárolt eljárásokat és funkciókat.

Ha az egyik kiváltó minden tárolt eljáráshoz hívást használ, az importálás után érvénytelen lesz.

Elmegyünk az elméletből a gyakorlatba. A mi rendszerünkben sok asztalnál BEFORE INSERT VAGY UPDATE vonalindító. például:

Amint a kódból látható, ez az aktivátor felhívja a fn_CreateGUID funkciót. amely a ravasz áthelyezése idején egyszerűen nem létezik. Ez lesz létrehozva később, az összes többi HP. Emiatt a ravaszt érvénytelen marad.

A 341-es verziójú Oracle adminisztrációs rendszer jelentősen megváltozott. E tekintetben a mentések létrehozásának és helyreállításának mechanizmusa szintén megváltozott.

Mi változott az új biztonsági parancsfájlok 341-es verziójában?

  • Lehetőség volt megadni az Oracle példányt a mentés telepítéséhez
  • A séma kibontásához külön táblaterületet adhat meg
  • Javított helyzet az üres táblák exportálásával (Oracle 11)

Az új adminisztrációs rendszerben szinte minden, a felhasználóhoz fűződő jogot szerepkörön keresztül hozzárendelnek. Ezért a biztonsági mentés visszaállításakor három opció jelenik meg: a felhasználói jogok átviteli módjai. Ezzel részletesebben fogok foglalkozni.

# 0 opció - Csatlakoztassa a felhasználókat egy új sémához (alapértelmezett)

Ugyanakkor minden Terrasoft felhasználó létrehozásra kerül, és az alapértelmezett szerepköröket kiosztják és hozzárendelik az új rendszer eléréséhez (a telepítéshez). A felhasználók automatikusan hozzáférnek a régi rendszerhez. Ez az opció alkalmas egy új példány biztonsági másolatának első biztonsági mentésére vagy egy harci rendszer új rendszerre történő átvitelére.

1. opció - Felhasználók létrehozása perimeno-val

Ez az opció azt feltételezi, hogy az összes Terrasoft felhasználó új Oracle előtagként kerül létrehozásra, az "U" előtagokkal, és minden releváns jogot elosztanak nekik. Például a régi séma a User1 volt. a biztonsági mentés után az új felhasználó User1U lesz. Így a régi User1 felhasználó továbbra is normálisan működni fog a régi sémával, és az új felhasználó ugyanazokkal a jogokkal rendelkezik ugyanazon példányban lévő új sémához képest. Ez a lehetőség kényelmes, ha a tesztrendszert ugyanabban a példában emeli, ahol a harci rendszer már fut. Így a felhasználók teljesen függetlenek lesznek.

2. opció - Ne hozzon létre felhasználókat

Ebben az esetben a biztonsági másolat visszaállításakor csak a Terrasoft séma felhasználója jön létre. Feladata a Terrasoft ügyintézőjének joga, és alatta állnia kell a megfelelő felhasználók független létrehozásához és megrendelői engedélyekhez.

És ami a legfontosabb, a szkriptek a csatolt archívumban.

Kapcsolódó cikkek