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.
- A Backup.zip archívum tartalmát kicsomagoljuk azon a szerveren, ahol az Oracle szerver telepítve van.
- Run BackupDatabase.cmd.
- Adja meg: a séma neve, jelszava (felhasználói séma) és az adatbázis dump fájlszáma.
- 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.
- A Restore.zip archívum tartalmát kicsomagoljuk a kiszolgálóra, ahol az Oracle szerver telepítve van.
- 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.
- Indítsa el a RestoreDatabase.cmd fájlt.
- 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ó).
- 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:
- 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.
- 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.