แสดงกระทู้

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.


Messages - อั๋น ทรงวุฒิ

หน้า: [1] 2 3 ... 18
1
เคย Restore ฐานข้อมูลขนาด 300GB ใช้เวลาประมาณ 2  วัน

งานนี้ต้องหาวิธี จูน Server ดีๆ หน่อย

ไปค้น Google มาแปะเก็บไว้ใช้คราวต่อไป


อ้างถึง

mysql -u root -p

set global net_buffer_length=1000000; --Set network buffer length to a large byte number

set global max_allowed_packet=1000000000; --Set maximum allowed packet size to a large byte number

SET foreign_key_checks = 0; --Disable foreign key checking to avoid delays,errors and unwanted behaviour

source file.sql --Import your sql dump file

SET foreign_key_checks = 1; --Remember to enable foreign key checks when procedure is complete!

อีก  1 ตำรา

แก้ไข [ my.ini ] ใน ส่วน InnoDB

อ้างถึง

innodb_buffer_pool_size = 12G
# 60% - 70% ของขนาด RAM ในเครื่อง

innodb_log_buffer_size = 16M
# 16M or 32M

innodb_log_file_size = 3G
# 25% of buffer pool size

innodb_write_io_threads = 32
# 32 is fine, 64 is maximum

innodb_flush_log_at_trx_commit = 0


Restart Service แล้วทำการ Import ได้เลย

อย่าลืมเปลี่ยนคืนด้วยนะครับ

2
อ้างถึง
hostnamectl set-hostname (ชื่อใหม่)

[ /etc/cloud/cloud.cfg ]

อ้างถึง
preserve_hostname: true

[/etc/hosts]
อ้างถึง
127.0.0.1       localhost
127.0.1.1       ชื่อใหม่

4
การ restore ฐานข้อมูล

ต้องล้าง folder ข้อมูลของ mysql ทั้งหมด (/var/lib/mysql)

แบบรักษาต้นฉบับ
อ้างถึง

xtrabackup --copy-back --target-dir=/data/backup/  --datadir=/var/lib/mysql


แบบย้ายต้นฉบับไปทั้งก้อน (เร็วกว่ามาก)
อ้างถึง

xtrabackup --move-back --target-dir=/data/backup/  --datadir=/var/lib/mysql

จากนั้นก็ start mysql ทำงานได้เลย

5
ถ้าพื้นที่ใน server กำลังจะเต็ม จะทำอย่างไร ?

ทางแก้คือสร้าง NFS share พื้นที่ข้ามเครื่อง จากนั้นก็จะมี folder โล่งๆ ให้รับข้อมูล

ปกติการใช้ mysqldump จะมีข้อเสียคือ ระหว่าง backup ฐานข้อมูลจะถูกล็อคการบันทึก ซึ่งถ้าเป็นหลัก 10GB ขึ้นไป ต้องรอกันนาน

ทางออกคือใช้โปรแกรม Percona XtraBackup (https://www.percona.com/doc/percona-xtrabackup/LATEST/index.html)

อ้างถึง
xtrabackup --backup  --target-dir=/data/backups --datadir=/var/lib/mysql

ฐานข้อมูลขนาด 250GB ใช้เวลาประมาณ 1 ชั่วโมง 30 นาที

จากนั้นต้องทำการ prepare ก่อนนำข้อมูลไป restore

อ้างถึง
xtrabackup --prepare --target-dir=/data/backups/

แล้วทำการ สำเนา /data/backup ไปเครื่องปลายทาง


6
เครื่อง Master มีหน้าที่เก็บข้อมูลหลัก ถ้ามีการ update ใดๆ จะเขียนลงเครื่องนี้ก่อน ส่วนถ้ามีการอ่านข้อมูล จะไล่ไปอ่านเครื่อง slave
การทำงานในเครื่อง slave ห้ามมีการเขียน แก้ไข เพิ่มข้อมูลเด็ดขาด ไม่งั้นจะได้ข้อมูลผิดพลาด

การสั่งให้เครื่อง  Master ยอมรับการดูดข้อมูลจากเครื่อง slave

อ้างถึง
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.12' IDENTIFIED BY 'repl1234';

เมื่อมีการเพิ่มเติมแก้ไขข้อมูลจะเกิด Log ขึ้นมาดังนี้

อ้างถึง
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      224 |              |                  |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

เครื่อง Slave ก็ให้ตั้งคำสั่งเกาะข้อมูลเครื่อง Master

อ้างถึง
CHANGE MASTER TO MASTER_HOST='192.168.1.1',
                        MASTER_USER='repl',
                        MASTER_PASSWORD='repl1234',
                        MASTER_LOG_FILE='mysql-bin.000001',
                        MASTER_LOG_POS=224;
Query OK, 0 rows affected (0.03 sec)

เราสามารถสั่งให้เริ่มปรับข้อมูลให้ตรงเครื่อง Master ด้วยคำสั่ง
อ้างถึง
mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)

เช็คสถานะเครื่อง slave ด้วยคำสั่ง

อ้างถึง
mysql> START SLAVE;
Query OK, 0 rows affected (0.00 sec)

7
mysql-bin.000001 จะบันทึกร่องรอยของการแก้ไขเพิ่มเติมในฐานข้อมูล ซึ่งเครื่อง slave ก็จะอ่านไป update เครื่องตัวเองให้ตรงกับ Master
นอกจากนี้เครื่อง Master ก็ควรตั้งเวลาให้ Log ถูกลบอัตโนมัติภายในกี่วัน ซึ่งถ้าไม่ทำ อาจจะทำให้ Harddisk เต็มได้

[my.cnf]

อ้างถึง
[mysqld]
log-bin=mysql-bin
server-id=1
expire_logs_days=3

การลบ Log แบบ Manual ทำได้ด้วยคำสั่ง PURGE BINARY LOGS TO 'mysql-bin.03';
มันจะไล่ลบข้อมูลก่อนหน้าจนถึงไฟล์ที่เราระบุไว้ หรืออาจจะระบุเป็นวันก็ได้
PURGE BINARY LOGS BEFORE '2008-12-15 10:06:06';
ประโยชน์อีกอย่างของ bin log คือ ใช้แกะรอยความเปลี่ยนแปลงใน database ได้
mysqlbinlog binlog_files > newer_transaction.sql

8
เหมือนว่าคำสั่ง sysv-rc-conf ใน ubuntu 18.04 จะถูกถอดออกไปแล้ว คำสั่งที่น่าจะใช้การแทนได้คือ
อ้างถึง

systemctl status
systemctl stop some-service
systemctl disable some-service



9
เกี่ยวกับเซิร์ฟเวอร์ [ Network Server ] / Network config : Ubuntu 18.04
« เมื่อ: 20 กันยายน 2018, 01:25:57 PM »
[ /etc/netplan/01-network-manager-all.yaml ]

อ้างถึง
network:
 version: 2
 renderer: networkd
 ethernets:
   enp3s0: (เปลี่ยนเอง)
     dhcp4: no
     dhcp6: no
     addresses: [192.168.1.100/24]
     gateway4: 192.168.1.1
     nameservers:
       addresses: [8.8.8.8,8.8.4.4]


netplan apply  แล้วทำการ Restart ก็ควรจะใช้การได้

10
ปกติ ถ้าผู้ใช้งานเรียกหน้าเว็บที่ไม่มีอยู่จริง มันจะขึ้นข้อความว่า

อ้างถึง
Oops! That page can’t be found.

It looks like nothing was found at this location. Maybe try one of the links below or a search?

นั่นหมายความว่า คะแนน SEO ในเว็บก็จะตก ทางแก้คือ หาไม่เจอก็ให้มันโผล่ไปที่หน้าแรก

การแก้ไขคือ ให้สร้างไฟล์ 404.php ใน theme ของเรา

อ้างถึง
<?php
// Permanent redirection
header("HTTP/1.1 301 Moved Permanently");
header("Location: https://www.".$_SERVER["SERVER_NAME"]);
exit();
?>

11
บทความ บันทึกวิธีทำ กันลืม - Article & HowTO / zte f327 np code
« เมื่อ: 18 มิถุนายน 2018, 11:47:19 AM »
12345678 ok

12
ท่านที่เคยศึกษาเกี่ยวกับ php มาบ้างแล้ว อยากลองเปลี่ยนมาเขียน php แบบใช้ framework ผมขอแนะนำ yii framework ครับ

ผมย่อเนื้อหาโดยสรุปไว้ 20 นาที คิดว่าน่าจะง่ายกว่า laravel ครับ

เนื่องจากเนื้อหาค่อนข้างเก่า ในคลิปแนะนำ wamp server ผมขอเปลี่ยนให้ใช้ xampp แทนนะครับ หรือจะใช้ docker ได้ยิ่งดี

อ้างถึง
https://www.youtube.com/playlist?list=PLkmypgSymm9lmeFpSvgLIqI5VjQrk99jW


13
อ้างถึง
#aptitude install convmv

อ้างถึง
#convmv -f TIS-620 -t UTF-8 -r --notest  foldername


14
อ้างถึง
reptyr เลขโปรเซสที่ค้างอยู่

15
yii basic

อ้างถึง
<?php

$params = require __DIR__ . '/params.php';
$db = require __DIR__ . '/db.php';

$config = [
    'id' => 'basic',
  'name'=>'คลังพัสดุ การไฟฟ้าส่วนภูมิภาคจังหวัดแพร่',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'aliases' => [

หน้า: [1] 2 3 ... 18