1
MySQL / Re: ว่าจะทำ Server CentOS7.0 + Mysql Version ??? ใหม่ มีใครเริ่มใช้บ้างยังคับ
« เมื่อ: มิถุนายน 08, 2015, 15:58:09 PM »
ลอง Centos7 + percona5.5 ก็โอเคนะครับระบบลื่นดีคงเป็นเพราะ file system แบบใหม่กระมัง
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
ขออภัยด้วยครับ สำหรับใครที่ใช้อยู่ อันนี้จากที่เจอมาครับ
ในส่วนของ Replicate mysql จะใช้ทรัพยากรแรมเยอะเหมือนกันครับ
และก็ต้องระวังเรื่องการคอนฟิก My ถ้าใช้ Replicate mysql
อีกอันที่เจอตั้งค่าไว้แต่ไม่มี slave server ไว้ให้ sync
ดูจากกราฟแล้ว น่าจะ monitor process list ว่ามี process อะไร แปลกๆไหม
หรือใครไปลองสร้าง auto backup ในช่วงเวลานั้นบ้าง ที่เราไม่รู้ผมเปิดใช้มาสามปีแล้วยังไม่มีเดี้ยงนะครับแรม 12GBผมว่า ถ้าserver ไม่แน่จริงอย่าใช้ Replicate mysql ดีกว่าครับ
เคยเห็นมาแล้วหลายที่ เดี้ยง...
################# Replication ################
server-id = 1
log-bin = /var/log/mysql/mysql-bin.log
binlog-do-db = hos
replicate-wild-do-table = %.%
relay-log = /var/lib/mysql/slave-relay.log
relay-log-index = /var/lib/mysql/slave-relay-log.index
binlog_cache_size = 200M
binlog_format = row
expire_logs_days = 10
max_binlog_size = 100M
sync_binlog = 1
log_bin_trust_function_creators = 1
ผมว่า ถ้าserver ไม่แน่จริงอย่าใช้ Replicate mysql ดีกว่าครับ
เคยเห็นมาแล้วหลายที่ เดี้ยง...
################# Replication ################
server-id = 1
log-bin = /var/log/mysql/mysql-bin.log
binlog-do-db = hos
replicate-wild-do-table = %.%
relay-log = /var/lib/mysql/slave-relay.log
relay-log-index = /var/lib/mysql/slave-relay-log.index
binlog_cache_size = 200M
binlog_format = row
expire_logs_days = 10
max_binlog_size = 100M
sync_binlog = 1
log_bin_trust_function_creators = 1
ลองใช้คำสั่งนี้ดูครับ
mysqlcheck --all-databases --check-upgrade --auto-repair
http://hosxp.net/index.php?option=com_smf&Itemid=28&topic=29226.msg251323#msg251323
แล้วถ้าเครื่อง Server Boot ไม่ได้ ฐานข้อมูลก็เป็นแบบ InNoDB (ข้อมูลก็ไม่ได้สำรอง) จะ Copy Folder ของฐานข้อมูลออกมา (โดยใช้โปรแกรมกู้จาก HDD Linux) แล้วลง Linux + MySQL ใหม่ แล้ว Copy ไปไว้ที่เดิมจะได้หรือเปล่าครับ ถ้าไม่ได้จะทำไงดีครับ... ขอคำชี้แนะครับ
เป็นเครื่อง Master หรือว่า Slave ครับ
ก่อนหน้านี้ใช้ MySQL Version ไหนครับ
ลองส่ง hostname.err ขึ้นมาดูหน่อยครับ น่าจะชื่อ hosxp2.err อยู่ใน /var/lib/mysql/hosxp2.err
server dell power Edge R710 Intel Xeon E5620 2.4 GHz
Ram 8 GB ครับ เนื่องจากผมมาดูต่อจากคนเก่า ที่เอาคอนฟิกเดิมๆ เเล้วพอมี transection เเล้วมันช้าเเล้วอีกอย่างที่ไช้อยู่เป็น engine ของ MyIsam ครับไม่ได้ enable InnoDB เเต่อย่างใด เครื่องลง 32 bits ไว้ครับเเละใช้ MySql 5.1.42
config เก่าครับเดิมๆเลย my.cnf ของเก่า
# The following options will be passed to all MySQL clients
[client]
#password = your_password
port = 3306
socket = /tmp/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
interactive_timeout=100
wait_timeout=100
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer = 32M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 1M
net_buffer_length = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 8M
set-variable=max_connections=640
tmp_table_size = 32M
max_tmp_tables = 32M
query_cache_size=32M
old_passwords
log-slow-queries
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
แล้วผมได้คอนฟิกไหม่ไปเเต่ยังไม่ได้เปลี่ยนนะครับ
################################################################################
#DESCRIPTION: MySQL config 5.0.x, 5.1.x, 5.5.x
#RAM: 6GB RAM dedicated server
#Connections: 350 connections
################################################################################
[mysqld]
interactive_timeout=1000
wait_timeout=1800
#character-set-server = tis620
#collation-server = tis620_thai_ci
## Files
#back_log = 300
#open-files-limit = 8192
#open-files = 1024
port = 3306
socket = /tmp/mysql.sock
#pid-file = /tmp/mysql.pid
skip-external-locking
#skip-name-resolve
## Logging
datadir = /usr/local/mysql/var/
old_passwords
log_bin = mysql-bin
long_query_time = 10
log-slow-queries
server-id =1
max_binlog_size = 256M
expire_logs_days = 7
## Per-Thread Buffer memory utilization equation: (read_buffer_size + read_rnd_buffer_size + sort_buffer_size + thread_stack + join_buffer_size + binlog_cache_size) * max_connections
thread_stack = 32K
sort_buffer_size = 1024K
read_buffer_size = 1024K
read_rnd_buffer_size = 4096K
join_buffer_size = 1024K
binlog_cache_size = 64K
## Query Cache
query_cache_size = 64M
query_cache_limit = 64M
query_cache_type = 1
## Connections
max_connections = 350
max_connect_errors = 100
connect_timeout = 30
max_allowed_packet = 32M
## Default Table Settings
#sql_mode = NO_AUTO_CREATE_USER
## Table and TMP settings
max_heap_table_size = 512M
bulk_insert_buffer_size = 512M
tmp_table_size = 512M
## Table cache settings
table_cache = 64M
table_open_cache = 64M
table_definition_cache = 64M
## Thread settings
thread_concurrency = 16
thread_cache_size = 100
## MyISAM Engine
key_buffer = 256M
myisam_sort_buffer_size = 256M
myisam_max_sort_file_size = 2G
#myisam_repair_threads = 2
#myisam_recover = QUICK,BACKUP
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqldump]
max_allowed_packet = 128M
mysql แนะนำโหลดจากลิ้งค์ที่แจกในกระทู้อัพเดท mysql มาติดตั้งเองดีกว่าครับ เพราะอัพผ่าน hosxp_pcu เหมือนจะ error เป็นบ้างไฟล์ ผมเจอมาละแต่จำไม่ได้ว่าไฟล์อะไร เหมือนจะ /proc.. อะไรนี่แหละ
คือผมจะหันมาลองทำ server database ครับโดยปกติก็ลงเเบบทั่วๆไปสามารถใช้งานได้ตามปกติ
เเต่เป็น config เดิมๆรุ่นต่อรุ่นนานเเล้ว ผมจึงจะเปลี่ยนเป็นเป็น CentOs64 bit
ซึ่งตอนนี้ผมลองลงทิ้งไว้จึงขอคำเเนะนำ ดังนี้
1.โดยปกติที่ลงอันเก่าเป็นเเบบ 32 bit โดยใช้ engine MyIsam โดยจะมีการ Insert ข้อมูลเรื่อยๆ พบว่ามีการเสียของตารางอยู่บ้างโดยผมจะตั้ง crontab optimize & repair ทุกวัน
และมีการเรียกรายงานใหญ่ๆ อยู่ size db ณ ตอนนี้ประมาน 25,000,000 records ประมาณ 5.2 GB(ส่วนนี้ผมควรเปลี่ยน engine หรือไม)
2.ผมใช้ Mysql 5.1.42 อยู่ครับ ควรเปลี่ยนดีหรือไม่ เเล้วถ้าเปลี่ยนจะกระทบต่อข้อมูลภายในหรือเปล่าพวก user connect อะครับ
ขอบคุณมากๆครับ ที่รบกวนช่วยตอบคำถาม
ผมลองปรับจูนตัว my.cnf ตามสูตรนี้ ครับ ไม่รู้ว่าถูกหรือเปล่า innodb_buffer_pool_size + innodb_additional_mem_pool_size + innodb_log_buffer_size + key_buffer_size + query_cache_size+((read_buffer_size + read_rnd_buffer_size + sort_buffer_size + thread_stack + join_buffer_size + binlog_cache_size) * max_connections) เมื่อผมลองปรับเล่นไปเเล้ว ลองดูเหมือนว่าไวกว่าเดิม ซึ่งผมคิดว่ามันน่าจะไวกว่าเดิม เเต่มันก็ไวกว่าเดิมไม่มาก เครื่องผมลง CenOs 5.8 (32bit) ram คงเหลือ หลังรันระบบ 4 GB up อะครับ เเล้วยังเหลือเรื่อง check permision ที่ผมยังไม่เข้าไจว่าอยู่ดีๆมันก็มาเป็น มีวิธีแก้ไขปัญหาดังกล่าวอย่างไรครับ ขอบคุณมากที่ช่วยตอบครับผมมีเรื่องสงสัยหลายอย่างเลยครับ รบกวนช่วยผมหน่อยนะครับติดมาหลายวันเเล้ว------------------------
1. server ผมตอนนี้ status wa เยอะมากทั้งๆเเต่ก่อน ไม่เยอะขนาดนี้ โดย Server ผมใช้ dell power edge R710 ram 8GB เป็นเครื่อง db Server ครับ
2.ผมได้ลองปรับจูนข้อมูล เเล้วทาง user ก็ยังบ่นว่าช้าอยู่ ผมเลยเอา my.cnf เดิมขึ้นเพราะทาง Programmer บอกอาจจะเป็นที่ config
3.ตอนนี้ตอน login เข้า phpMyAdmin แล้ว ด้านซ้ายมือ ตรงเเสดง DB โหลดช้ามาก (ขนาด DB ประมาน 11 GB หลาย Tables เเต่ table หลักประมาน 5.2 GB)
4.เดี๋ยวนี้ พบว่า มีการ check permision ตอน user login เข้ามาในระบบ ทำให้ช้า
การใช้ phpMyAdmin เข้าไปดู Database ยังไงก็ช้าครับ เพราะมี 3 พันกว่า Table
ลองเปลี่ยนมาใช้ Natvicat ดูครับ
และการปรับจูน My.cnf หากไม่มีความชำนาญ ลองใช้ตัว BMSxTraBackupGUI ช่วยในการติดตั้ง แล้วค่อยมาปรับแต่งอีกเล็กน้อยครับ แต่ถ้าใช้ Tool ตัวนี้คงต้องลง CentOS 6 ขึ้นไป และระวังเรื่อง Database ที่อยู่ในเครื่องจะหายครับ
งานเข้าแล้วครับ เมื่อวานเย็นผมลองอับเดต msql เครื่อง slave โดยเริ่มจาก
1. ถอนของเก่าออกโดยใช้คำสั่ง
#yum remove mysql
#yum remove mysql-server
2. ผมก็ไปดาวน์โหลด Percona Mysql มา 3 ตัว จากเว็บ Percona ประกอบด้วย
Percona-Server-client-55-5.5.32-rel31.0.549.rhel6.x86_64.rpm
Percona-Server-server-55-5.5.32-rel31.0.549.rhel6.x86_64.rpm
Percona-Server-shared-55-5.5.32-rel31.0.549.rhel6.x86_64.rpm
แล้วผมก็ก็อปปี้นำไปวางใว้ที่ Root ที่เครื่อง Server Slave
3. จากนั้นผมก็ติดตั้ง version ใหม่เข้าไปโดยใช้คำสั่ง
#rpm -ivh --nodeps --force Percona-Server-client-55-5.5.32-rel31.0.549.rhel6.x86_64.rpm
#rpm -ivh --nodeps --force Percona-Server-server-55-5.5.32-rel31.0.549.rhel6.x86_64.rpm
#rpm -ivh --nodeps --force Percona-Server-shared-55-5.5.32-rel31.0.549.rhel6.x86_64.rpm
แต่มันเกิด Error ขึ้นตามรูปแนบครับ
มีวิธีแก้หรือเปล่าครับ หรือผมต้องลง Centos ใหม่ แล้วติดตั้ง Mysql และ Initial Import ข้อมูลเข้ามาใหม่
ใช้คำสั่ง cat /var/lib/mysql/ชื่อไฟล์ที่ลงท้าย .err แล้วมันขึ้นเยอะมากครับไม่รู้จะดูตัวไหนครับ
1.ลองเปิด terminal แล้วพิมพ์ tail -f /var/lib/mysql/ชื่อเครื่อง.err
2.แล้วเปิด terminal อีกตัว พิมพ์ service mysql start
3. สังเกต terminal ตัวที่ 1 ว่ามันขั้น error อะไรครับ
ขอเดาว่าน่าจะเป็นเรื่อง Permission ของ Linux
ใน google บอกว่า
ลองย้าย my.cnf หรือ rename แล้ว restart service mysql
mv /etc/my.cnf /etc/my.cnf.old
หรือ ย้าย ib_logfile*
mv /var/lib/mysql/ib_logfile* /root/
http://linuxadministrator.pro/blog/?p=225
https://www.google.co.th/#output=search&sclient=psy-ab&q=The+server+quit+without+updating+PID+file+&oq=The+server+quit+without+updating+PID+file+&gs_l=hp.3..0i19l4.1198.1198.0.1794.1.1.0.0.0.0.345.345.3-1.1.0...0.0...1c.1.18.psy-ab.r7tXBT1VqL0&pbx=1&bav=on.2,or.r_cp.r_qf.&bvm=bv.48572450,d.bmk&fp=6d923f5ba6009fb6&biw=1280&bih=591
จะทำ server ให้อนามัยครับ cent os 5.0 แต่หา MySQL_Upgrade_5.5.25 ที่ลงบน cent os ไม่ได้ครับ ใครมีรบกวนหน่อยนะครับ
ทดสอบตามที่แนะนำแล้ว 3 รูปแบบ คือ
รูปแบบที่ 1
##innodb_file_per_table = 1
innodb_file_per_table
รูปแบบที่ 2
innodb_file_per_table = 1
##innodb_file_per_table
รูปแบบที่ 3
##innodb_file_per_table = 1
##innodb_file_per_table
ก็ยังขึ้น Error เหมือนเดิม...เลยส่งรูป Debug Report มาให้ดูเพิ่ม...
[mysql]
default-character-set=tis620
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysqld]
#default-character-set=tis620
user = mysql
default-storage-engine = InnoDB
socket = /var/lib/mysql/mysql.sock
skip-name-resolve
transaction_isolation = READ-UNCOMMITTED
############################
##key_buffer - 64M for 1GB, 128M for 2GB, 256 for 4GB
key_buffer=64M
##join_buffer_size - 1M for 1GB, 2M for 2GB, 4M for 4GB
join_buffer=1M
##sort_buffer_size - 1M for 1GB, 2M for 2GB, 4M for 4GB
sort_buffer_size=1M
##read_buffer_size - 1M for 1GB, 2M for 2GB, 4M for 4GB
read_buffer_size=1M
##read_rnd_buffer_size - 768K for 1GB, 1536K for 2GB, 3072K for 4GB
read_rnd_buffer_size=768K
##myisam_sort_buffer_size - 32M for 1GB, 64M for 2GB, 128 for 4GB
myisam_sort_buffer_size=32M
############################
max_allowed_packet=32M
query_cache_size=128M
max_connections=1000
thread_stack=512K ## If can't RUN change 128K to 512K
#thread_cache_size=8
############################
innodb_buffer_pool_size = 500M
##innodb_log_file_size 5242880
# 1. innodb_log_file_size = 10M
innodb_additional_mem_pool_size = 20M
innodb_file_per_table = 1
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_thread_concurrency = 4
innodb_flush_method = O_DIRECT
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_io_capacity = 500
innodb_lock_wait_timeout = 60
#########################
innodb_lock_wait_timeout=50
innodb_support_xa=0
innodb_locks_unsafe_for_binlog=1
innodb_thread_concurrency=0
innodb_doublewrite=0
innodb_file_per_table
skip-character-set-client-handshake
##skip-locking
skip-external-locking
skip-name-resolve
big-tables
#########################
##innodb_data_file_path = ibdata1:10M:autoextend
innodb_data_file_path = ibdata1:20M:autoextend
log_error = /var/lib/mysql/error.log
log_queries_not_using_indexes = 1
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
[isamchk]
#key_buffer - 64M for 1GB, 128M for 2GB, 256M for 4GB
key_buffer=64M
#sort_buffer - 64M for 1GB, 128M for 2GB, 256M for 4GB
sort_buffer=64M
#read_buffer - 16M for 1GB, 32M for 2GB, 64M for 4GB
read_buffer=16M
#write_buffer - 16M for 1GB, 32M for 2GB, 64M for 4GB
write_buffer=16M
[myisamchk]
#key_buffer - 64M for 1GB, 128M for 2GB, 256M for 4GB
key_buffer=64M
#sort_buffer - 64M for 1GB, 128M for 2GB, 256M for 4GB
sort_buffer=64M
#read_buffer - 16M for 1GB, 32M for 2GB, 64M for 4GB
read_buffer=16M
#write_buffer - 16M for 1GB, 32M for 2GB, 64M for 4GB
write_buffer=16M
[mysqldump]
default-character-set=tis620
max_allowed_packet=16M
เรื่องง่ายๆ ทำแบบเดิมที่เคยทำนะครับ แต่คราวนี้....โอ๊ย...ซอดแจ้งเลย
centos 6.3,6.4
server ตัวเดิม 2 เครื่อง แต่ลงใหม่ครับ เป็นทั้ง 2 เครื่องเลย
ลง version เดิมด้วยซ้ำ
- Grant OK
-MySQL start OK
-ping จาก เครื่องลูก เจอ
-แต่ HOSxP connect DB ไม่ได้ครับ
-ลองเปลี่ยน switch hub ก็คือเก่า
-ลองต่อ client แค่เครื่องเดียวก็คือเก่า
ทั้งสองเครื่องลงใหม่อยู่เครื่องละ 5 รอบครับ... ท่านใดเคยเจอบ้างครับ....แชร์ด้วย
1.ติดตั้ง snort
2.update rules ให้ใหม่สุด
3.เปิดใช้งาน
snort_p2p.so.rules
ใน Categories
เข้าใช้งานไม่ได้เลย ทำตามขั้นตอนแล้ว
วิธี upgrade mysql บน CentOS แบบคร่าวๆนะครับ
1. check version mysql โดยใช้คำสั่ง mysql --version
2. download version mysql ที่ต้องการมาใช้
(ในที่นี้แนะนำ mysql ของ percona นะครับ)
ที่นี่ http://www.percona.com/downloads/
3. ไฟล์ที่ใช้ในการติดตั้งจะต้องมีไฟล์ client , shared , server นะครับ ชื่อไฟล์จะมีคำเหล่านี้อยู่นะครับ เช่น
MySQL-client-percona-5.5.xx-x.rhel6.x64_i86.rpm
MySQL-shared-percona-5.5.xx-x.rhel6.x64_i86.rpm
MySQL-server-percona-5.5.xx-x.rhel6.x64_i86.rpm
4. เมื่อได้ไฟล์นั้นมาแล้ว stop mysql ก่อน การ upgrade ครับ
5. จากนั้นถอนของเก่าออกโดยใช้คำสั่ง ดังนี้
#yum remove mysql
#yum remove mysql-server
(คำสั่งนี้จะลบโปรแกรมออกแต่ข้อมูลไม่หายไป)
6. จากนั้นติดตั้ง version ใหม่เข้าไปโดยใช้คำสั่ง
#rpm -ivh --nodeps --force MySQL-client-percona-5.5.xx-x.rhel6.x64_i86.rpm
#rpm -ivh --nodeps --force MySQL-shared-percona-5.5.xx-x.rhel6.x64_i86.rpm
#rpm -ivh --nodeps --force MySQL-server-percona-5.5.xx-x.rhel6.x64_i86.rpm
7. จากนั้นเมื่อติดตั้งเสร็จเรียบร้อยแล้วให้ใช้คำสั่ง upgrade mysql โดยใช้คำสั่งดังนี้
#mysql_upgrade -u root
แล้วรอจนกว่าจะเสร็จ เป็นอันเสร็จสิ้นกระบวนการ Smiley
ปล.ระวังเรื่อง my.cnf ถ้าอัพจาก version เก่าๆมา เป็น 5.5.xx แล้วจะมีบางฟังชั่นใช้งานไม่ได้ ตอนลงเสร็จแล้วจะ start mysql ไม่ได้ครับ ที่นึกออกที่ต้องเข้าไปแก้จะมี
1. default-character-set=tis620 จะใช้ไม่ได้ให้ comment เอาไว้ แล้วเปลี่ยนเป็น character-set-server=tis620 เป็นต้น
2. skip-locking ให้ comment เอาไว้อีกเช่นกัน
วันนี้เกิดอะไรขึ้น งงจริงๆ ประชุมอยู่กระทรวงตั้ง 3 วัน ต้องปรับใหม่แล้วเรา
/home ก็ไม่มีอะไรครับ ส่วนใหญ่จะเป็นฐานข้อมูล MySQL ครับ
ใน CentOS Patition / เก็บอะไรครับ
ทำไม / 30GB. จึงเต็ม
log_bin_trust_function_creators = 1เท่าที่เคยหาข้อมูลนี้มาก่อนนะครับ (อาจจะไม่ใช่ก็ได้นะครับ)
บรรทัดนี้ หมายความว่าไงครับ
หมายถึง ยอมให้สร้าง ฟังชัน ที่เป็นมาตรฐานสำหรับการใช้งานภายในฐานข้อมูล เช่น การสร้างฟังชัน get_serial ที่เป็นฟังชันภายในระบบ สามารถดึงมาใช้งานได้
ปล. รอ เทพท่านอื่น.. มายืนยันอีกทีนะครับ
7 นาที่ ที่ full load เช่น ใช้เต็ม 600 watts ก็จะดับใน 7 นาที
แต่ถ้า ใช้จริงแค่ 300 watts ก็น่าจะได้ถึง 15 นาทีครับ
ประมาณนี้
ขึ้นแบบนี้หลังใช้คำสั่งติดตั้ง mysql --> rpm -ivh Percona-Server-* --nodeps --force
Percona Server is distributed with several useful UDF (User Defined Function) from Maatkit.
Run the following commands to create these functions:
mysql -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'"
mysql -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'"
mysql -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'"
See http://code.google.com/p/maatkit/source/browse/trunk/udf for more details
ต้องแก้ไข้ตรงไนครับ
... ทำตามคำแนะนำของตัวติดตั้งก็ได้ครับ
สั่ง start MySQL แล้วก็ run คำสั่ง ทั้ง 3 ตัวครับ ... ...ขึ้นแบบนี้หลังใช้คำสั่งติดตั้ง mysql --> rpm -ivh Percona-Server-* --nodeps --force
Percona Server is distributed with several useful UDF (User Defined Function) from Maatkit.
Run the following commands to create these functions:
mysql -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'"
mysql -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'"
mysql -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'"
See http://code.google.com/p/maatkit/source/browse/trunk/udf for more details
ต้องแก้ไข้ตรงไนครับ
... ทำตามคำแนะนำของตัวติดตั้งก็ได้ครับ
สั่ง start MySQL แล้วก็ run คำสั่ง ทั้ง 3 ตัวครับ ... ...
ผมลอง service mysql start ไม่ได้ครับครับ ERROR นี้ครับ
ERROR! MySQL (Percona Server) PID file could not be found!
Starting MySQL (Percona Server). ERROR! The server quit without updating PID file (/var/lib/mysql/BMS-Restore.pid).
ไม่รู้ว่าติดตั้งผ่านตัวไหนครับ ติดตั้งเอง หรือ ใช้ Tool BMSxTraBackupGUI ติดตั้งครับ จาก Error เหมือนว่าเคยใช้ Tool BMSxTraBackupGUI ติดตั้งมาแล้ว และเป็นการติดตั้งใหม่ที่ยังไม่มี Database หรือว่ามี Database อยู่ในเครื่องแล้วครับ
ผมแนะนำ MySQL-5.6.10 หรือ MariaDB-10.0.2
ลองนำไปประยุกต์ใช้ดูนะครับวิธีการคล้ายๆข้อแรกครับตามคู่มือที่ให้มาน่ะครับ สามารถดำเนินการได้เลยหรือไม่ครับ ต้องสั่งปิดระบบหรือเปล่าครับ และมีผลต่อ server หรือไม่ครับในขณะให้บริการ ขอบคุณครับConcept ในการดูแลฐานข้อมูลสุขภาพ นะครับ [โดยความเห็นส่วนตัวครับ..]การทำ Mysql Replication ทำอย่างไรครับ ขอบคุณครับ
1. ถ้าทำได้ ทำเป็น แนะนำ MySQL Replicate ครับ..แต่ spec ของเครื่อง จัดเก็บฐานข้อมูลควรจะใกล้เคียงกัน ดีที่สุด
2. หากทำตามข้อ 1 ไม่ได้ คำแนะนำคือ ต้องมีการ clear replicate_log อยู่เป็นระยะ ๆ โดยมีการ save or backup ตาราง log เก็บไว้ก่อนจะลบหรือ Re-create ครับ
3. ทุกครั้งที่มีการปรับปรุงโครงสร้างของ Master เราควรทำการ Initial ไป Slave ใหม่ทุกครั้งครับ หรือ ต้องตามไปเชื่อมต่อเข้า ใช้งาน slave เพื่อสั่งปรับปรุงโครงสร้าง ฐานข้อมูลของ Slave Server ด้วย จะทำให้ระบบมีโครงสร้างเก็บข้อมูลที่เหมือนกัน รวมทั้งตารางที่เพิ่มใหม่ หรือ index ของแต่ละตารางที่เปลี่ยนไป จะได้เหมือนกัน
4. การทำ replicate คือการทำ Semi-Realtime ของการปรับจำนวน Record ให้มีจำนวนใกล้เคียงกันมากที่สุดเท่าที่จะทำได้ ภายใต้เงื่อนไข ระบบจะเขียนข้อมูลได้ต่อเนื่องต้องมีการตรวจสอบที่ค่า replicate-id+structure ที่ตรงกันครับ..ถ้าโครงสร้างต่างกัน ย่อมทำให้ ข้อมูลบางส่วนไม่ถูกเขียนลงตาราง หรือ มีตารางรองรับข้อมูลไม่ครบถ้วนนั่นเอง
5. หากเป็นไปได้ก็ให้ทำการ initial รายสัปดาห์ และก็สั่ง recreate ตาราง replicate_log ก่อนทำการ initial แล้วค่อยสั่ง run sync agent ครับ.....
6. ทั้งหมดจะเห็นได้ว่า เป็นภาระงานหลักของ System Admin และ Database Admin ครับ... เท่าที่ผมเข้าใจนะเวลานี้ครับ..
Remark : spec เครื่อง Server ส่วนตัวผมให้ความสำคัญรองจากฐานข้อมูลสุขภาพครับ เพราะในระดับ รพ.มาจากผลการบริการของ สหวิชาชีพที่ยากมากกว่าจะได้มาครบถ้วนใน 1 Record คุณภาพ...