กระทู้เมื่อเร็วๆ นี้

หน้า: [1] 2 3 ... 10
1
อ้างถึง
VBoxmanage modifyhd MyLinux.vdi --resize 100000

100,000 => 100GB

จากนั้นใช้โปรแกรมประเภท Paritiion Magic หรือ Gparted ทำการขยายขนาด Partition  ได้โดยข้อมูลไม่หาย
2
เกี่ยวกับเซิร์ฟเวอร์ [ Network Server ] / DOCKER : PostgreSQL and pgAdmin
« กระทู้ล่าสุด โดย อั๋น ทรงวุฒิ เมื่อ 07 กุมภาพันธ์ 2019, 10:31:39 AM »
20 นาทีพร้อมใช้ : การเตรียม Postgresql และ pgAdmin ใน Ubuntu

1 ) ลง Ubuntu จาก ไฟล์ .iso แนะนำให้ลงแบบ Textmode จากนั้นใช้สิทธิ์ root ในข้อถัดไปทุกขั้นตอน

2 ) อัพเกรดระบบเป็นตัวล่าสุด
อ้างถึง
apt update && apt upgrade -y

3 ) ติดตั้ง Docker ซึ่งจะมีหน้าที่เหมือนตู้ Container ให้ระบบฐานข้อมูลอยู่ในนั้น
อ้างถึง
apt install -y  docker.io 

4 ) ติดตั้ง docker-compose เป็นตัวจัดการโปรแกรม ให้ทำงานแบบเป็นไฟล์สคริปต์

อ้างถึง
curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

5 ) เปิดโหมดไฟล์สคริปต์ที่โหลดมาจากข้อ 4 ให้สามารถ execute ได้

อ้างถึง
chmod +x /usr/local/bin/docker-compose

6 ) เตรียมพื้นที่สำหรับเก็บข้อมูลระบบของเรา

อ้างถึง
mkdir /var/docker/pg10 && cd /var/docker/pg10


7 ) สร้างไฟล์ docker-compose.yml ด้วยคำสั่ง

อ้างถึง
nano docker-compose.yml

โปรดระวังเรื่องการจัดย่อหน้าให้ตรงกัน

โค๊ด: [Select]
version : '2'
services :
pgsql:
  container_name: pgsql
  image: postgres:10.6-alpine
  ports:
    - "5432:5432"
  environment:
    - POSTGRES_PASSWORD=hosxp
    - POSTGRES_USER=hosxp
    - POSTGRES_DB=hosxp
  volumes:
    - ./data:/var/lib/postgresql
  restart: always
 

pgadmin:
  container_name: pgadmin
  image: fenglc/pgadmin4:python3.6-alpine
#   user : [email protected], passwd : admin

  ports:
    - "5050:5050"

8 ) ดำเนินการขึ้นระบบค้วยคำสั่งเดียว ซึ่งมันจะ Download โปรแกรมทั้งหมด และ config ให้เราพร้อมใช้งาน

อ้างถึง
docker-compose up -d

9 ) ทดสอบใช้ Navicat เชื่อมต่อ หรือ เข้า Browser => http://(ip เครื่อง):5050


ข้อมูลจะอยู่ใน /var/docker/pg10/data ปิดเครื่องแล้วไม่หาย
3
เส้นผมบังภูเขา - Tricky Problem / เปลี่ยนรหัสภาษาใน vscode (Change Encoding in Visual Studio Code)
« กระทู้ล่าสุด โดย อั๋น ทรงวุฒิ เมื่อ 06 กุมภาพันธ์ 2019, 10:12:52 AM »
ในบางครั้งเปิดไฟล์งานเก่าที่ใช้รหัสภาษาไทยแบบ Windows 874 หรือ Tis-620 ใน MS Visual Studio Code (vscode)
ซึ่งปัจจุบันนิยมใช้รหัสแบบ UTF-8 ที่รองรับหลายภาษา ทำให้มองเห็นตัวอักษรภาษาไทยเพี้ยน อ่านไม่รู้เรื่อง

วิธ๊แก้ไข ให้ดูมุมขวาล่างของจอ มันจะแสดง Codepage ล่าสุดที่ใช้อยู่
ให้กด Reopen with Encoding แล้วเลือกรหัสภาษาให้ถูก
4
เคย 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 ได้เลย

อย่าลืมเปลี่ยนคืนด้วยนะครับ
5
เกี่ยวกับเซิร์ฟเวอร์ [ Network Server ] / เปลี่ยนชื่อ Host ใน Ubuntu 18.04
« กระทู้ล่าสุด โดย อั๋น ทรงวุฒิ เมื่อ 28 ตุลาคม 2018, 11:09:06 PM »
อ้างถึง
hostnamectl set-hostname (ชื่อใหม่)

[ /etc/cloud/cloud.cfg ]

อ้างถึง
preserve_hostname: true

[/etc/hosts]
อ้างถึง
127.0.0.1       localhost
127.0.1.1       ชื่อใหม่
7
FoxPro [ xBase ] / Re: VFP + MySQL
« กระทู้ล่าสุด โดย Susan เมื่อ 24 ตุลาคม 2018, 01:51:50 PM »
พี่ครับ รับสอนเปล่าครับ ราคาเท่าไหร่
8
การ 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 ทำงานได้เลย
9
ถ้าพื้นที่ใน 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 ไปเครื่องปลายทาง

10
เกี่ยวกับเซิร์ฟเวอร์ [ Network Server ] / Re: ประโยชน์ของ mysql binary log
« กระทู้ล่าสุด โดย อั๋น ทรงวุฒิ เมื่อ 11 ตุลาคม 2018, 09:53:14 PM »
เครื่อง 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)
หน้า: [1] 2 3 ... 10