מגבלות
ההגבלות הבאות חלות:
AlloyDB Omni פועל ביציאה
5432. אין תמיכה בהגדרת יציאה בהתאמה אישית.לפני שיוצרים את האשכול, חשוב לוודא שכל הגדרות הפרמטרים של מסד הנתונים נכונות. אחרי שיוצרים את האשכול, אי אפשר לשנות את הפרמטרים של מסד הנתונים.
לפני שמתחילים
לפני שיוצרים את האשכול, צריך לבצע את הפעולות הבאות:
טוענים נפח חיצוני (
DataDisk) אל PG_DATA_DIR בכל צמתי מסד הנתונים שהוקצו בתוך הכלי לניהול התזמור.אם אתם מתכננים להשתמש ב-
alloydbctlבמקום ב-Ansible, ודאו שחבילתpolicycoreutils-python-utilsהנדרשת מותקנת בכל המכונות הווירטואליות. כדי להתקין את החבילה הזו, מריצים את הפקודה הבאה:sudo dnf install policycoreutils-python-utilsאם אתם משתמשים בסביבת Google Cloud , צריך להגדיר את
ENVIRONMENT_TYPEל-gcp. לאחר מכן צריך לאמת את החשבון שלכם ב-CLI של gcloud על ידי הרצתgcloud auth loginבתור המשתמשroot. בנוסף, לחשבון המאומת צריכות להיות ההרשאות הבאות:compute.instances.getcompute.instances.listcompute.instances.updateNetworkInterface
הכנת מפרטים של אשכולות
כדי ליצור את האשכול, מערכת AlloyDB Omni צריכה לדעת איך להגדיר אותו. כדי ליצור את המפרטים הנדרשים, יוצרים קובץ YAML בפורמט DBCluster:
Secret:
metadata:
name: db-pw-DBCLUSTER_NAME
spec:
type: Opaque
data:
DBCLUSTER_NAME: BASE64_PASSWORD
---
DBCluster:
metadata:
name: DBCLUSTER_NAME
spec:
databaseVersion: 18.1.0
mode: ""
availability:
numberOfStandbys: NUM_STANDBY_NODES
enableAutoFailover: true
enableAutoHeal: true
autoFailoverTriggerThreshold: AUTOFAILOVER_TRIGGER_THRESHOLD
autoHealTriggerThreshold: AUTOHEAL_TRIGGER_THRESHOLD
healthcheckPeriodSeconds: HEALTHCHECK_PERIOD
replayReplicationSlotsOnStandbys: false
primarySpec:
adminUser:
passwordRef:
name: db-pw-DBCLUSTER_NAME
resources:
cpu: CPU_LIMIT
memory: MEMORY_LIMIT
disks:
- name: DataDisk
path: PG_DATA_DIR
parameters:
max_connections: "MAX_CONNECTIONS"
max_wal_size: "MAX_WAL_SIZE"
max_worker_processes: "MAX_WORKER_PROCESSES"
log_connections: "LOG_CONNECTIONS"
log_disconnections: "LOG_DISCONNECTS"
log_hostname: "LOG_HOSTNAME"
log_statement: "LOG_STATEMENT"
huge_pages: "HUGE_PAGES"
tcp_keepalives_idle: "TCP_KEEPALIVES_IDLE"
tcp_keepalives_interval: "TCP_KEEPALIVES_INTERVAL"
tcp_keepalives_count: "TCP_KEEPALIVES_COUNT"
dbLoadBalancerOptions:
DB_LOAD_BALANCER_TYPE:
loadBalancerIP: "VIRTUAL_IP"
loadBalancerType: "internal"
loadBalancerInterface: "VIRTUAL_IP_INTERFACE"
מחליפים את המשתנים הבאים:
DBCLUSTER_NAME: שם אשכול מסד הנתונים. לדוגמה,my-dbcluster.
BASE64_PASSWORD: סיסמה בקידוד base64 שמשמשת את משתמש האדמיןpostgres.
NUM_STANDBY_NODES: מספר הצמתים במצב המתנה באשכול. לדוגמה,2.(אופציונלי)
AUTOFAILOVER_TRIGGER_THRESHOLD: מספר הפעמים שבהן בדיקת תקינות יכולה להיכשל לפני מעבר לגיבוי. ערך ברירת המחדל הוא3. הערך המינימלי הוא0, אבל אם הערך מוגדר כ-0, AlloyDB Omni משתמש בערך ברירת המחדל.מעבר גיבוי אוטומטי מתרחש אם בדיקת תקינות נכשלת
AUTOFAILOVER_TRIGGER_THRESHOLDפעמים או אם משך הזמן המצטבר של בדיקת התקינות מגיע ל-HEALTHCHECK_PERIOD * AUTOFAILOVER_TRIGGER_THRESHOLDשניות.(Optional)
AUTOHEAL_TRIGGER_THRESHOLD: number of times the health check can fail before auto-heal begins. The default value is3. The minimum value is0, but if the value is set to0, AlloyDB Omni uses the default value.שחזור אוטומטי מתבצע אם בדיקת תקינות נכשלת
AUTOHEAL_TRIGGER_THRESHOLDפעמים או אם משך הזמן המצטבר של בדיקת התקינות מגיע ל-HEALTHCHECK_PERIOD * AUTOHEAL_TRIGGER_THRESHOLDשניות.(אופציונלי)
HEALTHCHECK_PERIOD: מספר השניות להמתנה בין כל בדיקת תקינות. ערך ברירת המחדל הוא30. הערך המינימלי הוא1. הערך המקסימלי הוא86400(יום אחד).
CPU_LIMIT: מספר המעבדים להקצאה לקונטיינר של מסד הנתונים. לדוגמה,4.
MEMORY_LIMIT: כמות הזיכרון להקצאה לקונטיינר של מסד הנתונים. לדוגמה,32Gi, 500Mi.
PG_DATA_DIR: נתיב המארח לספרייה שבה יישמרו נתוני מסד הנתונים.(Optional)
MAX_CONNECTIONS: מספר החיבורים המקסימלי בו-זמנית למסד הנתונים של PostgreSQL. ערך ברירת המחדל הוא50. הערך המינימלי הנתמך הוא גם50. למידע נוסף, אפשר לעיין בהפניה PostgreSQLmax_connections.(אופציונלי)
MAX_WAL_SIZE: הגודל המקסימלי שמאפשר ליומן הרישום המקדים (WAL) לגדול במהלך נקודות ביקורת אוטומטיות. ערך ברירת המחדל הוא1GB. מידע נוסף זמין במאמר בנושא הפניה ל-PostgreSQLmax_wal_size.(אופציונלי)
MAX_WORKER_PROCESSES: המספר המקסימלי של עובדים שאפשר להפעיל באמצעותGatherאוGather Mergeאחד. ערך ברירת המחדל הוא64. מידע נוסף זמין במאמר בנושא הפניה ל-PostgreSQLmax_worker_processes.(אופציונלי)
LOG_CONNECTIONS: קובע אם החיבורים לשרת PostgreSQL יתועדו או לא. ערך ברירת המחדל הואon. מידע נוסף זמין במאמר בנושא הפניה ל-PostgreSQLlog_connections.(אופציונלי)
LOG_DISCONNECTS: קובע אם סיומי סשנים של PostgreSQL נרשמים ביומן. ערך ברירת המחדל הואon. מידע נוסף זמין במאמר PostgreSQLlog_disconnectionsreference.(אופציונלי)
LOG_HOSTNAME: קובע אם שם המארח יתועד בנוסף לכתובת ה-IP של המארח המתחבר. ערך ברירת המחדל הואon. מידע נוסף זמין במאמר בנושא הפניה ל-PostgreSQLlog_hostname.(Optional)
LOG_STATEMENT: ההגדרה קובעת אילו הצהרות SQL נרשמות ביומן. ערך ברירת המחדל הואnone. מידע נוסף זמין במאמר בנושא הפניה ל-PostgreSQLlog_statement.(אופציונלי)
HUGE_PAGES: קובע אם יש לבקש דפים גדולים לאזור הזיכרון המשותף הראשי. ערך ברירת המחדל הואoff. מידע נוסף זמין במאמר בנושא הפניה ל-PostgreSQLhuge_pages.(אופציונלי)
TCP_KEEPALIVES_IDLE: משך הזמן בשניות שבו לא מתבצעת פעילות ברשת לפני שמערכת ההפעלה מנסה לשלוח הודעת TCPkeepaliveללקוח. ערך ברירת המחדל הוא10. למידע נוסף, אפשר לעיין בהפניה ל-PostgreSQLtcp_keepalives_idle.(אופציונלי)
TCP_KEEPALIVES_INTERVAL: משך הזמן בשניות לפני שצריך לשלוח מחדש הודעת TCPkeepaliveשלא התקבלה לגביה אישור מהלקוח. ערך ברירת המחדל הוא10. מידע נוסף זמין במאמר בנושא הפניה ל-PostgreSQLtcp_keepalives_interval.(אופציונלי)
TCP_KEEPALIVES_COUNT: מספר הודעות ה-TCPkeepaliveשיכולות ללכת לאיבוד לפני שהחיבור של השרת ללקוח ייחשב כלא פעיל. ערך ברירת המחדל הוא10. מידע נוסף זמין במאמר בנושא הפניה ל-PostgreSQLtcp_keepalives_count.(אופציונלי)
ENVIRONMENT_TYPE: קובע את הסביבה שבה מוגדר האשכול –onpremאוgcp.(אופציונלי)
VIRTUAL_IP: כתובת IP וירטואלית שמשמשת את מאזן העומסים. אם מגדירים אתdbLoadBalancerOptions, זהו שדה חובה. מידע נוסף מופיע במאמר בנושא ניהול זמינות גבוהה.(אופציונלי)
VIRTUAL_IP_INTERFACE: ממשק הרשת שבוVIRTUAL_IPמוגדר. ערך ברירת המחדל הואeth0.
יצירת האשכול
כדי ליצור את האשכול, בוחרים את הכרטיסייה שמתאימה לסביבה שלכם ופועלים לפי ההוראות.
Ansible
כדי ליצור את האשכול, פועלים לפי ההוראות הבאות:
יוצרים תוכנית פעולה למפרטים של אשכול מסדי הנתונים.
- name: Create DBCluster hosts: localhost vars: ansible_become: true ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE roles: - role: google.alloydbomni_orchestrator.bootstrapמחליפים את המשתנים הבאים:
ANSIBLE_USER: משתמש במערכת ההפעלה שמשמש את Ansible כדי להתחבר לצמתים של AlloyDB Omni.
ANSIBLE_SSH_PRIVATE_KEY_FILE: המפתח הפרטי שמשמש את Ansible לחיבור לצמתים של AlloyDB Omni באמצעות SSH.
מפעילים את חוברת ההדרכה.
ansible-playbook DBCLUSTER_PLAYBOOK -i "DEPLOYMENT_SPEC" \ -e resource_spec="DBCLUSTER_SPECIFICATIONS"מחליפים את המשתנים הבאים:
DBCLUSTER_PLAYBOOK: הנתיב ל-playbook שיצרתם לאשכול מסד הנתונים.
DEPLOYMENT_SPEC: הנתיב למפרט הפריסה שיצרתם בקטע התקנת רכיבים של AlloyDB Omni.
DBCLUSTER_SPECIFICATIONS: הנתיב למפרט האשכול.
alloydbctl
כדי ליצור את האשכול, מריצים את הפקודה הבאה:
alloydbctl apply -d "DEPLOYMENT_SPEC" -r "DBCLUSTER_SPECIFICATIONS"מחליפים את המשתנים הבאים:
DEPLOYMENT_SPEC: הנתיב למפרט הפריסה שיצרתם בקטע התקנת רכיבים של AlloyDB Omni.
DBCLUSTER_SPECIFICATIONS: הנתיב למפרט האשכול.
מחיקת האשכול
כדי למחוק את האשכול, בוחרים את הכרטיסייה שמתאימה לסביבה שלכם ופועלים לפי ההוראות.
Ansible
כדי למחוק את האשכול באמצעות Ansible, מבצעים את הפעולות הבאות:
יוצרים playbook בשם
teardown.yaml:- name: Tear down AlloyDB Omni cluster hosts: localhost vars: ansible_become: true ansible_user: ANSIBLE_USER ansible_ssh_private_key_file: ANSIBLE_SSH_PRIVATE_KEY_FILE roles: - role: google.alloydbomni_orchestrator.deleteמריצים את הפלייבוק באמצעות
ansible-playbook. צריך לציין אתDBClusterכresource_typeואת שם האשכול שרוצים למחוק כresource_name.ansible-playbook -i "DEPLOYMENT_SPEC" teardown.yaml \ -e `resource_type`=`DBCluster` -e `resource_name`="DBCLUSTER_NAME"
אם תהליך ההסרה נכשל בגלל חוסר עקביות במצב האשכול (לדוגמה, אם לא ניתן להגיע לצומת), אפשר לנסות למחוק את האשכול בכוח על ידי הוספת -e force=true לפקודה. ההוראה הזו גורמת לכלי האורקסטרציה להתעלם משגיאות במהלך תהליך ההסרה ולנסות להסיר כמה שיותר משאבים.
ansible-playbook -i "DEPLOYMENT_SPEC" teardown.yaml \
-e resource_type=DBCluster -e resource_name="DBCLUSTER_NAME" -e force=true alloydbctl
כדי למחוק את האשכול באמצעות alloydbctl, מריצים את הפקודה הבאה:
alloydbctl delete -d "DEPLOYMENT_SPEC" \
--resource_type DBCluster --resource_name "DBCLUSTER_NAME"מחליפים את המשתנים הבאים:
DEPLOYMENT_SPEC: הנתיב למפרט הפריסה שיצרתם בקטע התקנת רכיבים של AlloyDB Omni.
DBCLUSTER_NAME: שם אשכול מסד הנתונים. לדוגמה,my-dbcluster.