none
רפליקציה מאורקל RRS feed

  • שאלה

  • שלום לכולם

    בארגון בו אני עובד הועלה הצורך לבצע רפליקציה מאורקל ל SQL.

    הצלחתי לשכפל מספר טבלאות גדולות למדי. כשהוספתי טבלה נוספת והפעלתי את snapshot agent קבלתי אחר זמן מה את ההודעה:

    The replication agent was shut down in response to abort request

    אין לי מושג מי ביקש את בקשת ה ABORT ומדוע היא הופעלה. חזרתי על הפעולה מספר פעמים, היא לא תמיד נתקעה באותו שלב, לעתים אחר 60% ולעתים אחר 78%.

    כל תשובה תתקבל בתודה

    אריה


    אריה שטרן

    יום ראשון 12 אוגוסט 2012 11:30

תשובות

  •  שלום אריה,

    מבדיקה שערכתי הודעה זו  די נדירה יחסית..

    אני מציע לבדוק את שנאמר לעיל כמו כן הייתי בודק מה נשתנה ב publication  של Oracle

    האם השתנו שדות כלשהם או הסוג התוכן שבהם ?

    תבודק לעומק באיזה שלב ההודעה קוראת? האם בקריאה מטבלה מסוימת?  ניתן להעזר ב verbose log  -
    http://support.microsoft.com/kb/312292 

    כמו כן נסה להעביר את תקיית ה Snapshot למיקום שונה - ללא file compression

    מקווה שעזרתי,

    נועם

    • סומן כתשובה על-ידי Eran Sharvit יום שלישי 11 ספטמבר 2012 11:31
    יום שני 13 אוגוסט 2012 18:03

כל התגובות

  • היי אריה,

    הודעת השגיאה, איכן היא מופיעה לך תחת איזה מסך של LOG (הכוונה שלי באיזה שלב בעצם)
    תוכל אוליי להביא תצלום מסך של ה- replication monitor איכן שמופיעה לך ההודעה זה יוכל ממש לכוון לדעתי.

    בנוסף באותו הכיוון, הרפליקציה "נתקעת" ב-60%\78% באיזה שלב ?

    בברכה,


    חיים פישנר.

    יום ראשון 12 אוגוסט 2012 18:55
  • חיים,

    תודה על התגובה

    מצ"ב צילום המסך

    מקווה שיעזור


    אריה שטרן

    יום שני 13 אוגוסט 2012 08:28
  • אני לא מבין גדול בזה ואפילו שיש רפליקציה מאורקל ל MSSQL חדש לי.

    אבל יכול להיות שהוא נתקע על שדות שאין להם הגדרה ב MSSQL

    http://msdn.microsoft.com/en-us/library/aa237105%28v=sql.80%29.aspx

    http://dbamohsin.wordpress.com/2012/07/17/sql-server-to-oracle-replication-troubleshooting/

    • נערך על-ידי tetitu יום שני 13 אוגוסט 2012 08:42
    יום שני 13 אוגוסט 2012 08:38
  •  שלום אריה,

    מבדיקה שערכתי הודעה זו  די נדירה יחסית..

    אני מציע לבדוק את שנאמר לעיל כמו כן הייתי בודק מה נשתנה ב publication  של Oracle

    האם השתנו שדות כלשהם או הסוג התוכן שבהם ?

    תבודק לעומק באיזה שלב ההודעה קוראת? האם בקריאה מטבלה מסוימת?  ניתן להעזר ב verbose log  -
    http://support.microsoft.com/kb/312292 

    כמו כן נסה להעביר את תקיית ה Snapshot למיקום שונה - ללא file compression

    מקווה שעזרתי,

    נועם

    • סומן כתשובה על-ידי Eran Sharvit יום שלישי 11 ספטמבר 2012 11:31
    יום שני 13 אוגוסט 2012 18:03
  • אהלן שוב,

    זה לא בדיוק מה שניסיתי לכוון אליו, רציתי יותר לראות את הLOG של הSNAPSHOT AGENT מתוך ה- replication monitor

    אתה יכול לראות אותו בפשטות בSSMS תחת התקייה Replication פשוט לעשות מקש ימני על הPublisher למשל..

    בכל אופן מהנסיון שלי עם רפליקציה מול אורקל אז ישנן בעיות עם טיפוסי נתונים שונים למשל, כך שכאשר אתה מגדיר את ה-טבלאות שאותן
    אתה רוצה לרפלק אל הSQL SERVER במידה ויש טיפוס מסוג datetime בSQL אז אתה צריך לשנות את הטיפוס שיהיה מוגדר בSQL כ-

    (varchar(19 אם אני זוכר נכון, ואת ה-numeric ל-nvarchar כלשהו, ויש עוד איזה 2 שצריך להמיר שבSQL הטיפוסים שקיימים באורקל

    אינם בדיוק תואמים לטיפוסים בSQL SERVER ולכן צריך להתאים אותם לטיפוסים אחרים ולא תמיד ה-default שמגדיר הSQL עושה את זה נכון.

    זאת אפשרות אחת.

    אפשרות שנייה זה שיש איזה באג ברפליקציה אל מול אורקל שקרא לי מספר פעמים

    שנוצרים טריגרים תחת היוזר שהגדרת על באורקל (שזה תקין) אבל יש בהן לפעמים שורה דפוקה שעושה בעיות במעבר של הנתונים.

    לא בטוח שהאפשרות השניה קשורה אליך כי אני נתקלתי לזה רק עם רפליקציה טרנזקציונית ולא snapshot....

    לדעתי תבדוק קודם את הקטע עם הטיפוסי נתונים.

    בברכה,


    חיים פישנר.

    יום שני 13 אוגוסט 2012 21:34
  • תודה לכל המגיבים.

    העברתי מספר טבלאות, פרט מאשר לטבלה שנתקעה.

    הגודל המרבי של הטבלה מהטבלאות האלו היה 280000 בלוקים, שהם כ 2.1G.

    הגודל של הטבלה שנסיתי ולא הצלחתי להעביר הוא כ 870000 בלוקים, שהם כ 6.7 G.

    הגדרתי שהרפליקציה על הטבלה הזו תכלול רק חומר משלושת החודשים האחרונים ואילך (במקום על 7 שנים). ה SNAPSHOT נוצר ללא שום בעיה.

    המסקנה היא שהבעיה נוצרה לא בגלל טיפוסי נתונים אלא בגלל גודל הטבלה. האם זה ניתן לפרמטריזציה?

    בשרת ה DISTIBUTION יש לי מספיק נפח דיסק.

    איך מתקדמים?

    בברכה

    אריה


    אריה שטרן

    יום שלישי 14 אוגוסט 2012 10:31
  • איזה גרסה של SQL יש לך ?
    ועל איזה FILESYSTEM בסיס הנתונים יושב?
    האם יש מגבלה על גודל קבצי הלוג או ה דאטה?
    • נערך על-ידי tetitu יום שלישי 14 אוגוסט 2012 11:06
    יום שלישי 14 אוגוסט 2012 10:46
  • SQL 2008

    כל המערכות הם WINDOWS ולא ידוע לי על שום מגבלה

    תודה


    אריה שטרן

    יום שלישי 14 אוגוסט 2012 11:16
  • היי אריה, שוב אני לא מכיר בעיה של גודל טבלה בsnapshot replication

    אבל הייתי מנסה לשחק עם הפילטר ששמת קצת ולנסות לבדוק האם יש גבול עליון שאחריו אתה לא יכול לרפלק ואחריו אתה כבר לא מסוגל.

    בנוסף אני מכיר שישנם כלמיני הגבלות על רפליקציה למשל אורך בתים מקסימליים בעמודה שבאורקל הוא לדעתי אינו מוגבל או מוגבל בכמות גדולה הרבה יותר

    ואז רק אחריי X זמן של רשומות מהטבלה הגדולה ישנה שורה עם יותר מ8 אלף בתים בעמודה מסויימת והיא זאת שדופקת את כל הSNAPSHOT...

    שוב זאת השערה, ניראה לי ששווה לבדוק.

    Replication Objects

    בברכה,


    חיים פישנר.

    • נערך על-ידי haim fishner יום שלישי 14 אוגוסט 2012 17:44
    יום שלישי 14 אוגוסט 2012 17:41
  • הי אריה,

    בהמשך למה שנאמר

    האם הפעלת verbose log ?  באיזה שלב זה נתקע? מה רואים באותו זמן בלוג?

    נועם

    יום שלישי 14 אוגוסט 2012 21:03
  • זה עדיין יכול להיות בעיית נתונים.

    תבדוק אם אתה יכול להעביר את הנתונים של השנה האחרונה

    ואז ככה תנסה כל שנה בנפרד.

    ורק אם הצלחת אז זה לא בעיית נתונים.

    יום רביעי 15 אוגוסט 2012 07:49
  • הי אריה,

    אתה יכול לעשות לך חיים קלים ולהשתמש בפתרונות צד ג' כגון Double-Tale Share שמבצע Real Time Replication בין Data Bases שונים.

    http://www.visionsolutions.com/products/Systems-Data-Management-replicate1.aspx

    אנחנו מייצגים את הפתרון בארץ.

    פנה אלי לפרטים נוספים.

    בברכה

    ארז פז

    erez@singular.co.il

    יום חמישי 16 אוגוסט 2012 18:35
  • תודה לכולם

    בינתיים עקפתי את הבעיה

    ושאלה נוספת

    אם ברצוני להוסיף טבלה לרפליקציה, האם ניתן ליצור SNAPSHOT רק לטבלה החדשה?


    אריה שטרן

    יום ראשון 19 אוגוסט 2012 14:38
  • היי אריה,

    מה זה אומר "בינתיים עקפתי את הבעיה"? אפשר לדעת כיצד עקפת אותה ?

    ואם זה מספיק טוב לך, אז מעולה למרות שתמיד יסקרן אותי עכשיו לדעת מה הייתה הבעיה אצלך ;)


    בכל מקרה לגבי הוספת טבלאות נוספות לרפליקציה אז זה אפשרי ליצור רק עבור הטבלאות המתווספות אבל במידה וישנו שינוי סכמתי על הטבלאות המרופלקות כבר

    אתה לא תקבל אותו...


    1) תריץ את הקטע קוד הבא ותשנה את הDB וpublication בהתאם:

    USE <Database>
    GO
    
    EXEC sp_changepublication
    @publication = 'MainPub',
    @property = N'allow_anonymous',
    @value = 'false'
    GO
    
    EXEC sp_changepublication
    @publication = 'MainPub',
    @property = N'immediate_sync',
    @value = 'false'
    GO

    2) תוסיף טבלה נוספת לpublication דרך הממשק (UI)

    3) לחצן ימני על הpublication, תבחר ב-"View Snapshot Agent Status" ותלחץ על "Start"


    זה בעצם ייצר לך snapshot רק עבור האובייקטים החדשים שהוספת.


    בברכה,




    חיים פישנר.


    • נערך על-ידי haim fishner יום ראשון 19 אוגוסט 2012 17:22
    יום ראשון 19 אוגוסט 2012 17:21

  • אגב את התשובה לגבי איך להוסיף טבלה ל- publication קיים

    לקחתי את העזרה מתגובה בפוסט - http://www.sqlservercentral.com/Forums/Topic310849-291-2.aspx#bm1260875



    חיים פישנר.

    יום ראשון 19 אוגוסט 2012 17:23
  • חיים

    תודה על המידע

    ובשביל הסקרנות, העתקתי רק חומר מתאריך קרוב....

    בהזדמנות אחרת העברתי את רוב החומר בעזרת SSIS ואת הרפליקציה התחלתי רק עבור נתונים מאוחרים

    אריה


    אריה שטרן

    יום שני 20 אוגוסט 2012 05:36
  • חיים

    נסיתי את הפתרון שלך, הבעיה היא שצריך להריץ אותו מה PUBLICATION ואיני יודע כיצד לעשות את זה כאשר מדובר באורקל.


    אריה שטרן

    יום שני 20 אוגוסט 2012 14:07