Karena beberapa (tidak sangat jelas bagi saya) Aku telah mengabaikan untuk melakukan upgrade daemon postgresql di upgrade diuntungkan pada salah satu server Debian. PostgreSQL daemon memiliki Nice properti tidak mulai menggunakan nya versi baru (Tidak seperti Mysql) sampai kita meyakinkan, baru ini penuh kompatibel dengan peluncuran – sangat berguna untuk database besar. Proses hanya pembaruan akan terbatas berikut 2 langkah-langkah:

  • pg_dropcluster
  • pg_upgradecluster

Sebelum setan gugus izdropite harus pg berhenti!

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

Jika semuanya halus minlo Anda harus menerima pesan seperti di atas, yang meminta Anda untuk keluar data lama dari pg.

pg_dropcluster 9.1 main

Di akhir ini sekarang Anda dapat mulai proses Tarpan lagi. ПРИ МЕН БАЗИТЕ СА МАЛКИ И DINING СЪЖАЛЕНИЕ НЕ МОГА ДА ДАМ ОЦЕНКА DINING КОЛКО ВРЕМЕ ПРЕМИНАВА СЪЩЕСТВЕНИЯТ ЪПГРЕЙД.

Minggu lalu kami membeli Fantastico Installer Fantastico Deluxe, yang dalam pendapat sederhana saya merupakan salah satu paling terkemuka untuk server CPanel. Kami menguji itu kita diinstal dan semuanya berjalan lancar. Hari ini pelanggan memberitahu saya tentang masalah dengan enkodinga wordpress instalasi. Aku mendongak dan segera mendapatkan masalah basis adalah dengan standar pengkodean bukan Latin1 UTF8 seperti seharusnya. Bahkan lebih menyenangkan, di phpmyadmin dan mengatakan bahwa ia menggunakan UTF8 sebagai default, Drama. Saya memutuskan untuk meninjau file Fantastico-TI untuk melihat apakah saya dapat menemukan diriku suatu tempat mana pengaturan default database pada pandangan pertama saya tidak melihat apa-apa. Saya melihat apa itu pendarahan di hidung saya. conf-apa untuk melihat ada tidak ada pengaturan yang sesuai di konfigurasi dan segala sesuatu mulai apa diatur secara default. MySQL server adalah hardkodnat untuk menggunakan UTF8 kecuali dikonfigurasi dengan pengaturan dan Fantastico-itu dengan Latin1 lainnya ( yang merupakan keputusan yang cukup bodoh). Решението както винаги е тривиално добавят се 2 реда в [mysqld] часста за да се окаже UTF8 като кодировка по подразбиране и всичко заспива 🙂

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

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

Ditingkatkan oleh Zemanta

Image representing MySQL as depicted in CrunchBase

Преди известно време бях писал за MySQL penuh teks pencarian 🙂 Днес имах много интересно преживяване с една заявка. В общи линии заявката търси за резултати който липсват друга таблица. Един основне Select и един sub select в WHERE частта на заявката. В общи линии скелета и е

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

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

В общи линии елементарна заявка. Написах я за 30 сек пускам я и зацикли машината. След дълго и търпеливо чакане от моя страна или по точно ~43 сек . Ми се изплю резултат lol . Пффф лудница. Влизам в машината гледам процесора е нормално натоварен почти в idle състояние. Шок и ужас. Пускам пак заявката пак същия резултат. Fuck WTF. Пускам explain на заявката и всичко лъснавторото поле secondTextField е само full text search без index, а там табличката е скромна от около 35к реда. Кой да четеfull text search не е индекс. Вече е ясен проблема набързо едно

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

И нещата си дойдоха на местата Query took 0.0005 sec 😀

Внимавайте как си слагате индексите от тях ви зависи маргинално скоростта на заявката.

p.s Като цяло аз съм си крив за горната ситуация не само защото липсва индекс ами защото не ползва full text search метода 😀

Ditingkatkan oleh Zemanta

Hari setelah update versi mysql, server saya mulai berteriak kepadaku, Hotel ini memiliki sebuah nampan, yang belum tertutup bersih dan membutuhkan perbaikan, dll.. Bla, Apakah tabel ini, masih memiliki sekitar 30 pada server ini. Salah satu pilihan adalah untuk melihat log-s apa yang dikatakan tentang masalah dan jalankan perbaikan tabel atau pilihan lain – jauh lebih baik – untuk menjalankan perbaikan, Periksa dan mengoptimalkan semua tabel. Untuk tujuan ini, saya akan menggunakan alat mysqlcheck. Общо взето вариантите в случая са като и двете коменди са синонимни една на друга:

mysqlcheck -Aor -u root -p

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

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