זוהי הפקודה pg_dumpall שניתן להריץ בספק האירוח החינמי של OnWorks באמצעות אחת מתחנות העבודה המקוונות המרובות שלנו, כגון Ubuntu Online, Fedora Online, אמולטור מקוון של Windows או אמולטור מקוון של MAC OS
תָכְנִית:
שֵׁם
pg_dumpall - חלץ אשכול מסד נתונים PostgreSQL לתוך קובץ סקריפט
תַקצִיר
pg_dumpall [אפשרות חיבור...] [אוֹפְּצִיָה...]
תיאור
pg_dumpall הוא כלי עזר לכתיבת ("השלכת") כל מסדי הנתונים PostgreSQL של אשכול
לקובץ סקריפט אחד. קובץ הסקריפט מכיל פקודות SQL שניתן להשתמש בהן כקלט
psql(1) כדי לשחזר את מסדי הנתונים. זה עושה זאת על ידי התקשרות pg_dump(1) עבור כל מסד נתונים ב
אשכול. pg_dumpall גם זורק אובייקטים גלובליים המשותפים לכל מסדי הנתונים.
(pg_dump אינו שומר את האובייקטים הללו.) זה כולל כרגע מידע על מסד נתונים
משתמשים וקבוצות, מרחבי טבלאות ומאפיינים כגון הרשאות גישה החלות על
מסדי נתונים בכללותם.
מכיוון ש-pg_dumpall קורא טבלאות מכל מסדי הנתונים, סביר להניח שתצטרך להתחבר כ-a
משתמש-על של מסד נתונים על מנת לייצר dump שלם. כמו כן תצטרך Superuser
הרשאות לביצוע הסקריפט השמור על מנת לאפשר להוסיף משתמשים וקבוצות, וכן
ליצירת מסדי נתונים.
סקריפט SQL ייכתב לפלט הסטנדרטי. השתמש באפשרות [-f|file] או במעטפת
אופרטורים לנתב אותו מחדש לקובץ.
pg_dumpall צריך להתחבר מספר פעמים לשרת PostgreSQL (פעם אחת לכל מסד נתונים). אם
אתה משתמש באימות סיסמה זה יבקש סיסמה בכל פעם. זה נוח ל
יש לי ~/.pgpass להגיש במקרים כאלה. ראה סעיף 31.15, "קובץ הסיסמה", ב-
תיעוד למידע נוסף.
אפשרויות
אפשרויות שורת הפקודה הבאות שולטות בתוכן ובפורמט של הפלט.
-a
--נתונים בלבד
זרוק רק את הנתונים, לא את הסכימה (הגדרות נתונים).
-c
--לְנַקוֹת
כלול פקודות SQL לניקוי (שחרור) מסדי נתונים לפני יצירתם מחדש. DROP פקודות
עבור תפקידים ומרחבי טבלאות מתווספים גם כן.
-f שם הקובץ
--קובץ=שם הקובץ
שלח פלט לקובץ שצוין. אם זה מושמט, נעשה שימוש בפלט הסטנדרטי.
-g
--גלובלים בלבד
זרוק רק אובייקטים גלובליים (תפקידים ומרחבי טבלאות), ללא מסדי נתונים.
-o
--אידים
dump מזהי אובייקטים (OIDs) כחלק מהנתונים של כל טבלה. השתמש באפשרות זו אם
היישום שלך מפנה לעמודות OID בדרך כלשהי (למשל, במפתח זר
אילוץ). אחרת, אין להשתמש באפשרות זו.
-O
--אין בעלים
אל תוציא פקודות כדי להגדיר בעלות על אובייקטים כך שיתאימו למסד הנתונים המקורי. על ידי
ברירת מחדל, בעיות pg_dumpall אלטר בעלים or SET מוֹשָׁב הרשאה הצהרות להגדיר
בעלות על רכיבי סכימה שנוצרו. ההצהרות הללו ייכשלו כאשר התסריט יהיה
להפעיל אלא אם כן הוא מופעל על ידי משתמש-על (או אותו משתמש שבבעלותו כל האובייקטים
בתסריט). לעשות סקריפט שניתן לשחזר על ידי כל משתמש, אבל ייתן את זה
בעלות משתמש על כל האובייקטים, ציין -O.
-r
--תפקידים בלבד
זרוק תפקידים בלבד, ללא מסדי נתונים או מרחבי טבלאות.
-s
--סכימה בלבד
זרוק רק את הגדרות האובייקט (סכימה), לא נתונים.
-S שם משתמש
--משתמש-על=שם משתמש
ציין את שם המשתמש של Superuser לשימוש בעת השבתת טריגרים. זה רלוונטי בלבד
if --disable-triggers משמש. (בדרך כלל, עדיף להשאיר את זה בחוץ, ובמקום זאת
התחל את הסקריפט שנוצר בתור משתמש-על.)
-t
--שטחי שולחנות בלבד
זרוק רק מרחבי טבלאות, ללא מסדי נתונים או תפקידים.
-v
--מִלוּלִי
מציין מצב מילולי. זה יגרום ל-pg_dumpall להוציא זמני התחלה/עצירה ל-
קובץ dump, והודעות התקדמות לשגיאה סטנדרטית. זה גם יאפשר פלט מילולי
ב-pg_dump.
-V
--גִרְסָה
הדפס את גרסת pg_dumpall וצא.
-x
--ללא הרשאות
--לא-acl
מניעת השלכה של הרשאות גישה (הענקה/בטל פקודות).
--שדרוג בינארי
אפשרות זו מיועדת לשימוש על ידי כלי עזר לשדרוג במקום. השימוש בו למטרות אחרות הוא
לא מומלץ או נתמך. התנהגות האופציה עשויה להשתנות במהדורות עתידיות
ללא הודעה מוקדמת.
--תוספות עמודות
--תכונה-תוספות
זרוק נתונים כ INSERT פקודות עם שמות עמודות מפורשים (INSERT INTO שולחן (סקירה,
...) ערכים ...). זה יהפוך את השחזור לאיטי מאוד; זה שימושי בעיקר להכנה
dumps שניתן לטעון לתוך מסדי נתונים שאינם PostgreSQL.
--השבת-ציטוט-דולר
אפשרות זו משביתה את השימוש בציטוט דולר עבור גופי פונקציה, ומאלצת אותם לעשות זאת
לצטט באמצעות תחביר מחרוזת סטנדרטית של SQL.
--disable-triggers
אפשרות זו רלוונטית רק בעת יצירת dump לנתונים בלבד. זה מורה על pg_dumpall
לכלול פקודות לביטול זמני של טריגרים בטבלאות היעד בזמן שה
הנתונים נטענים מחדש. השתמש בזה אם יש לך בדיקות תקינות התייחסות או טריגרים אחרים
בטבלאות שאינך רוצה להפעיל במהלך טעינת הנתונים מחדש.
נכון לעכשיו, הפקודות הנפלטות עבור --disable-triggers חייב להיעשות בתור משתמש-על. לכן,
עליך לציין גם שם משתמש-על עם -S, או רצוי להקפיד להתחיל
הסקריפט שנוצר בתור משתמש-על.
--אם-קיים
השתמש בפקודות מותנות (כלומר הוסף סעיף IF EXISTS) כדי לנקות מסדי נתונים ואחרים
חפצים. אפשרות זו אינה תקפה אלא אם כן --לְנַקוֹת מצוין גם.
--מוסיף
זרוק נתונים כ INSERT פקודות (ולא COPY). זה יהפוך את השחזור לאיטי מאוד;
זה שימושי בעיקר ליצירת dumps שניתן לטעון לתוך מסדי נתונים שאינם PostgreSQL.
שים לב שהשחזור עלול להיכשל לחלוטין אם סידרת מחדש את סדר העמודות. ה
--תוספות עמודות האפשרות בטוחה יותר, אם כי אפילו איטית יותר.
--lock-wait-timeout=פסק זמן
אל תחכו לנצח לרכוש מנעולי שולחן משותפים בתחילת המזבלה.
במקום זאת, נכשל אם לא ניתן לנעול טבלה בתוך ההגדרה שצוינה פסק זמן. פסק הזמן עשוי
יצוין בכל אחד מהפורמטים המקובלים על ידי SET statement_timeout. ערכים מותרים
משתנים בהתאם לגרסת השרת שממנה אתה משליך, אך מספר שלם של
אלפיות השנייה מקובלת על כל הגרסאות מאז 7.3. אפשרות זו מתעלמת כאשר
dumping משרת לפני 7.3.
--ללא תוויות אבטחה
אל תשליך תוויות אבטחה.
--ללא מרחבי שולחנות
אל תוציא פקודות ליצירת מרחבי טבלאות ולא בחר מרחבי טבלה עבור אובייקטים. עם
אפשרות זו, כל האובייקטים ייווצרו באיזה מרחב הטבלה הוא ברירת המחדל במהלך
לשחזר.
--לא-נתונים-טבלה לא מחוברים
אל תשליך את התוכן של טבלאות לא רשומות. לאפשרות זו אין השפעה על האם או
לא הגדרות הטבלה (סכימה) נזרקות; זה רק מדכא את השלכת השולחן
נתונים.
--ציטוט-כל-מזהים
כפוי ציטוט של כל המזהים. זה עשוי להיות שימושי בעת השלכת מסד נתונים עבור
העברה לגרסה עתידית שאולי הציגה מילות מפתח נוספות.
--use-set-session-autorization
פלט בתקן SQL SET מוֹשָׁב הרשאה פקודות במקום אלטר בעלים פקודות
לקבוע בעלות על חפץ. זה הופך את המזבלה ליותר סטנדרטים תואמים, אבל
בהתאם להיסטוריה של האובייקטים ב-dump, ייתכן שלא ישחזר כראוי.
-?
- עזרה
הצג עזרה לגבי ארגומנטים של שורת הפקודה pg_dumpall וצא.
אפשרויות שורת הפקודה הבאות שולטות בפרמטרים של חיבור מסד הנתונים.
-d connstr
--dbname=connstr
מציין פרמטרים המשמשים לחיבור לשרת, כמחרוזת חיבור. לִרְאוֹת
סעיף 31.1.1, "מחרוזות חיבור", בתיעוד למידע נוסף.
האפשרות נקראת --dbname עבור עקביות עם יישומי לקוח אחרים, אבל
כי pg_dumpall צריך להתחבר למסדי נתונים רבים, שם מסד הנתונים בחיבור
תתעלם מהמחרוזת. השתמש באפשרות -l כדי לציין את שם מסד הנתונים המשמש ל-dump
אובייקטים גלובליים ולגלות אילו מסדי נתונים אחרים יש לזרוק.
-h המארח
-מארח =המארח
מציין את שם המארח של המחשב שבו פועל שרת מסד הנתונים. אם ה
הערך מתחיל בקו נטוי, הוא משמש בתור הספרייה עבור שקע הדומיין של יוניקס. ה
ברירת המחדל נלקחת מה- PGHOST משתנה סביבה, אם מוגדר, אחרת תחום יוניקס
ניסיון חיבור שקע.
-l dbname
--מסד נתונים=dbname
מציין את שם מסד הנתונים שאליו יש להתחבר לצורך השלכת אובייקטים גלובליים ו
לגלות אילו מסדי נתונים אחרים יש לזרוק. אם לא צוין, ה-postgres
ייעשה שימוש במסד נתונים, ואם זה לא קיים, ייעשה שימוש ב-template1.
-p נמל
--port=נמל
מציין את יציאת ה-TCP או סיומת הקובץ המקומית של שקע תחום Unix שבה השרת
מקשיב לחיבורים. ברירת מחדל ל- PGPORT משתנה סביבה, אם מוגדר, או
ברירת מחדל מהודרת.
-U שם משתמש
--שם משתמש=שם משתמש
שם משתמש לחיבור בתור.
-w
--אין סיסמא
לעולם אל תוציא בקשת סיסמה. אם השרת דורש אימות סיסמה וא
הסיסמה אינה זמינה באמצעים אחרים כגון קובץ .pgpass, החיבור
הניסיון ייכשל. אפשרות זו יכולה להיות שימושית בעבודות אצווה ובסקריפטים שבהם אין משתמש
קיים כדי להזין סיסמה.
-W
--סיסמה
כפה על pg_dumpall לבקש סיסמה לפני התחברות למסד נתונים.
אפשרות זו לעולם אינה הכרחית, מכיוון ש-pg_dumpall יבקש אוטומטית א
סיסמה אם השרת דורש אימות סיסמה. עם זאת, pg_dumpall יבזבז
ניסיון חיבור לגלות שהשרת רוצה סיסמה. במקרים מסוימים כן
שווה להקליד -W כדי להימנע מניסיון החיבור הנוסף.
שים לב שהנחיית הסיסמה תתרחש שוב עבור כל מסד נתונים שיישלח.
בדרך כלל, עדיף להגדיר א ~/.pgpass קובץ מאשר להסתמך על הזנת סיסמה ידנית.
--role=שם רול
מציין שם תפקיד שישמש ליצירת ה-dump. אפשרות זו גורמת ל-pg_dumpall
גיליון א SET תפקיד שם רול הפקודה לאחר התחברות למסד הנתונים. זה שימושי כאשר
המשתמש המאומת (מצוין על ידי -U) חסרות הרשאות הדרושות ל-pg_dumpall, אבל
יכול לעבור לתפקיד עם הזכויות הנדרשות. לחלק מהתקנות יש מדיניות
נגד כניסה ישירה בתור משתמש-על, ושימוש באפשרות זו מאפשר dumps להיות
נעשה מבלי להפר את המדיניות.
הסביבה
PGHOST
PGOPTIONS
PGPORT
PGUSER
פרמטרי חיבור ברירת מחדל
כלי שירות זה, כמו רוב כלי השירות האחרים של PostgreSQL, משתמש גם במשתני הסביבה
נתמך על ידי libpq (ראה סעיף 31.14, "משתני סביבה", בתיעוד).
אורים
מכיוון ש-pg_dumpall קורא ל-pg_dump באופן פנימי, חלק מהודעות האבחון יתייחסו ל-pg_dump.
לאחר ששוחזר, זה חכם לרוץ לְנַתֵחַ בכל מסד נתונים, כך שהאופטימיזציה תהיה שימושית
סטָטִיסטִיקָה. אפשר גם לרוץ vacuumdb -a -z לנתח את כל מסדי הנתונים.
pg_dumpall מחייב את כל ספריות ה- tablespace הדרושות להתקיים לפני השחזור;
אחרת, יצירת מסד נתונים תיכשל עבור מסדי נתונים במיקומים שאינם ברירת מחדל.
דוגמאות
כדי לזרוק את כל מסדי הנתונים:
$ pg_dumpall > db.out
כדי לטעון מחדש מסדי נתונים מקובץ זה, אתה יכול להשתמש ב:
$ psql -f db.out postgres
(זה לא חשוב לאיזה מסד נתונים אתה מתחבר כאן מכיוון שקובץ הסקריפט נוצר על ידי
pg_dumpall יכיל את הפקודות המתאימות ליצירה ולחיבור אל השמור
מאגרי מידע.)
השתמש ב-pg_dumpall באינטרנט באמצעות שירותי onworks.net