עבור חלק (לא מאוד ברור הסיבות שלי) נכשלתי לשדרג daemon PostgreSQL ב חלוקתי לשדרג אחד השרתים דביאן שלי. שד PostgreSQL יש תכונה נחמדה לא התחילו להשתמש בגרסה החדשה (בניגוד Mysql) בעוד לא לשכנע, החדש תואם באופן מלא עם ההשקה – מאוד שימושי עבור מסדי נתונים גדולים. התהליך לעדכון מוגבל הבא 2 צעדים:

  • pg_dropcluster
  • pg_upgradecluster

לפני daemon אשכול pg izdropite חייב להיפסק!

pg_dropcluster 9.4 main

Тази команда преминава бързо, след което преминаваме към съществената частсамият ъпгрейд

pg_upgradecluster 9.1 main
Disabling connections to the old cluster during upgrade...
Restarting old cluster with restricted connections...
Creating new cluster 9.4/main ...
config /etc/postgresql/9.4/main
data   /var/lib/postgresql/9.4/main
locale en_US.UTF-8
Flags of /var/lib/postgresql/9.4/main set as -------------e-C
port   5433
Disabling connections to the new cluster during upgrade...
Roles, databases, schemas, ACLs...
Fixing hardcoded library paths for stored procedures...
Upgrading database postgres...
Analyzing database postgres...
Fixing hardcoded library paths for stored procedures...
Upgrading database template1...
Analyzing database template1...
Fixing hardcoded library paths for stored procedures...
Upgrading database xpqt...
Analyzing database xpqt...
Re-enabling connections to the old cluster...
Re-enabling connections to the new cluster...
Copying old configuration files...
Copying old start.conf...
Copying old pg_ctl.conf...
Copying old server.crt...
Copying old server.key...
Stopping target cluster...
Stopping old cluster...
Disabling automatic startup of old cluster...
Configuring old cluster to use a different port (5433)...
Starting target cluster on the original port...
Success. Please check that the upgraded cluster works. If it does,
you can remove the old cluster with

pg_dropcluster 9.1 main

Ако всичко е минло гладко трябва да получите съобщение като горното което ви подканва да разкарате старите данни от pg.

pg_dropcluster 9.1 main

В края на тая тарпана вече можете да стартирате процеса си отново. При мен базите са малки и за съжаление не мога да дам оценка за колко време преминава същественият ъпгрейд.

מאז שבוע שעבר קנה מתקין Fantastico Deluxe, אשר לעניות דעתי הוא אחד ההגון ביותר עבור שרתי CPanel. התקנו אותו והכל הלך חלק נבדק. היום, לקוח סיפר לי על בעיה עם קידוד של WordPress. דרך הדברים ובסיסי בעיה זרחו מייד היו UTF8 מחדל קידוד Latin1 במקום בהנחה. אפילו יותר כיף הוא, כי phpmyadmin-כתב והוא משמש כברירת מחדל UTF8, דרמה. החלטתי לבדוק את הקבצים של Fantastico-בו כדי לראות אם יש מקום שבו אני יכול למצוא את עצמי הגדרות מסד נתונים כברירת מחדל ב ראה לראשונה כלום. ואז משהו TEKNA לי לראות מה יש my.conf-ומה לראות שאין גדרות מקבילות בתצורה וכל אורותיה דולק מה מוגדר כברירת מחדל. MySQL Server hardkodnat להשתמש UTF8 אם הוא אינו מוגדר עם הגדרות אחרות Fantastico-זה ברור הוא Latin1 ( וזה החלטה די טיפש). Решението както винаги е тривиално добавят се 2 реда в [mysqld] часста за да се окаже UTF8 като кодировка по подразбиране и всичко заспива 🙂

character-set-server=utf8
collation-server=utf8_general_ci

Нямам никаква идея поради каква причина съм пропуснал тези настройки при положение че си играх да правя няколкофининастройки на mysql-а.

משופר על ידי Zemanta

Image representing MySQL as depicted in CrunchBase

לפני כמה זמן כתבתי על חיפוש טקסט מלא MySQL 🙂 היה מעניין מאוד לחוות עם שאילתה. באופן כללי, השאילתה מחפש תוצאות שחסרות בטבלה אחרת. A בחר osnovne סאב ובחר בחלק שבו היישום. באופן כללי, השלד הוא

SELECT DISTINCT (
`field`
)
FROM `table1`
WHERE `someID` =44
AND `firsTextField` NOT
IN (

SELECT DISTINCT (
`secondTextField`
)
FROM `table2`
WHERE `otherID` =44
)

באופן כללי, בקשה פשוטה. כתבתי את זה בשביל 30 שניה לשחרר אותה והכניס את המכונה. אחרי זמן ובסבלנות על החלק שלי או רק ~ 43 שניות . רוק לול הציון שלי . Pfff משוגעים. הזן המכונה ש-CPU מראה טעון בדרך כלל כמעט במצב לא פעיל. הלם ומורא. הפעלת השאילתה שוב עדיין לאותה התוצאה. לזיין WTF. הפעלת השאילתה ולהסביר את הכל אני – השדה השני הוא רק secondTextField חיפוש טקסט מלא אין אינדקס, יש מגש צנוע של-35 קו k. מה לקרוא – אינדקס חיפוש טקסט מלא אינו. כבר ברור שהבעיה באמת קצר

ALTER TABLE `links` ADD INDEX ( `linkUrlID` ) 

דברים הפך מקומות שאילתה לקח 0.0005 😀 סק

תיזהר איך את המדדים מהם תלוי את שיעור תחלופה שולי של יישום.

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

משופר על ידי Zemanta

אתמול לאחר עדכון הגרסה של MySQL, השרת נראה לי התחיל לצעוק עלי, כי יש טבלה, אשר לא נסגר נקי צריך לתקן, וכו '. בלה, מה יהיה בטבלה זו, עדיין יש לי 30 ומשהו שלי בשרת זה. אפשרות אחת היא לראות ביומן-s מה שכתוב על תיקון הבעיה ולהפעיל של השולחן או אפשרות אחרת – ללא ספק טוב יותר – זה לרוץ תיקון, אימות וייעול כל הטבלאות. זו תשתמש בכלי mysqlcheck. Общо взето вариантите в случая са като и двете коменди са синонимни една на друга:

mysqlcheck -Aor -u root -p

mysqlcheck -u root -p --auto-repair --check --optimize --all-databases

Общо взето, която и от двете команди да използвате, ефектът ще е еднакъвароматична поправка, проверка и оптимизация на всички таблици. След като напишете която и да е от двете команди, ще бъдете попитани за root паролата на mysql server-a ви.