Nam Đế 3, danh sách tướng chiêu hiền và thế lực
Danh sách và thứ tự các tướng chiêu hiền của game Nam Đế 3. Tướng chiêu hiền sẽ xuất hiện lần lượt và thay đổi sau mỗi 48 giờ.
Danh sách và thứ tự các tướng chiêu hiền của game Nam Đế 3. Tướng chiêu hiền sẽ xuất hiện lần lượt và thay đổi sau mỗi 48 giờ.
xinput
. It will give a list of all available input device.⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=11 [slave pointer (2)]
⎜ ↳ Logitech G304 id=17 [slave pointer (2)]
⎜ ↳ Touchscreen id=30 [slave pointer (2)] # <-------- remember the ID [30]
⎣ Virtual core keyboard id=3 [master keyboard (2)]
↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)]
↳ Power Button id=6 [slave keyboard (3)]
↳ Video Bus id=7 [slave keyboard (3)]
↳ Power Button id=8 [slave keyboard (3)]
↳ HP Truevision HD: HP Truevision id=9 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=10 [slave keyboard (3)]
↳ HP Wireless hotkeys id=12 [slave keyboard (3)]
↳ HP WMI hotkeys id=13 [slave keyboard (3)]
↳ SINO WEALTH USB KEYBOARD System Control id=14 [slave keyboard (3)]
↳ SINO WEALTH USB KEYBOARD Consumer Control id=15 [slave keyboard (3)]
↳ SINO WEALTH USB KEYBOARD id=16 [slave keyboard (3)]
↳ Logitech G304 id=18 [slave keyboard (3)]
xinput disable 30
. 30
is the device ID./usr/share/X11/xorg.conf.d/10-evdev.conf
touchscreen
config, for example:Section "InputClass"
Identifier "evdev touchscreen catchall" # <-------- Look at this Identifier
MatchIsTouchscreen "on"
MatchDevicePath "/dev/input/event*"
Driver "evdev"
Option "Ignore" "on" # <-------- Add this config to ignore the touchscreen input.
EndSection
Option "Ignore" "on"
to ignore touchscreen input.
Sau một thời gian dài chịu đựng sự ồn ào của bé trâu. Tôi đã quyết định cho bé lên trại. Sau một khoảng thời gian theo dõi vấn đề nhiệt độ của 3080 lại phát sinh.
Lần này không phải là của MSI 3080 TRIO
mà là của MSI 3080 VENTUS 10G OC
. Nguyên nhân chắc chắn là đến từ nhiều phía.
GDDR6X
.Ở bài viết này tôi sẽ miêu tả tình trạng của MSI 3080 VENTUS 10G OC
trước và sau khi cải thiện, cũng như là cách thiết lập của mình trên MSI Afterburner
Tôi có tham khảo nhiều phương cách của những người chơi card màn hình 3090 trước. Họ gắn thêm ốp lưng nhôm cho card màn hình, tiếp theo là gắn quạt luôn. Cách tiếp cận này rất hiệu quả, tuy nhiên độ mỹ thuật và tinh tế có lẽ không tỷ lệ thuận với sự hiệu quả mà nó mang lại.
Dưới đây là phương pháp tôi sử dụng. Tôi đã đốt một ngày nghỉ + một đống pad tản nhiệt gelid 15W và Gel tản nhiệt cho lần thử nghiệm này.
Để đạt được con số 100.433MH/s, mức thiết lập của tôi là:
Với mức thiết lập này, nhiệt độ sẽ cho ra như sau:
Để đạt được con số 100.433MH/s, mức thiết lập của tôi cũng như lúc trước:
Với mức thiết lập này, nhiệt độ sẽ cho ra như sau:
Kết luận đơn giản nhất mà tôi có thể đưa ra ngay lúc này đó là VRAM đã giảm đc 14 độ C. Từ 110 độ C xuống còn 96 độ C. Với những ai đang sở hữu
card màn hình có sử dụng vram loại GDDR6X
đều muốn xuống dưới mức 100 độ C. 96 độ C cho vram chạy 100.433MH/s là rất tuyệt vời.
Để đạt được con số 95.539MH/s, mức thiết lập của tôi cũng như sau:
Với mức thiết lập này, sau khi quan trắc nhiệt độ sẽ cho ra như sau:
Tôi chắc chắn là đã khắc phục thành công vấn đề nhiệt của VRAM bằng cách thay pad và lắp thêm quạt. Tuy nhiên vì lý do thi công lắp đặt, tôi đã tạo ra vấn đề mới với GPU core. Nhiệt độ của VRAM ở trên ảnh là ở mức dưới 100C, tuy nhiên nhiệt độ GPU thì bị tăng 1-2C lên 65-66C. Tôi sẽ tìm cách khắc phục vấn đề này sau. Thời điểm tôi quan trắc cũng là vấn đề lớn, thông tin quan trắc bị ảnh hưởng nhiều bởi nhiệt độ xung quanh.
Bài viết này phục vụ mục đích duy nhất là đó là nếu tôi lỡ tay xóa mấy profile trên MSI Afterburner. Tôi sẽ quay lại đây xem. Hiện tại đây là 4 VGA trực thuộc dàn #1 Thanh Long
No | VGA |
---|---|
1 | MSI 3080 GAMING X TRIO |
2 | ASUS 3080 ROG STRIX GAMING OC |
3 | MSI 3080 VENTUS 10G OC |
4 | MSI 3080 GAMING X TRIO |
Mức thiết lập này được tinh chỉnh hoàn toàn trên MSI Afterburner. Có thể sử dụng cách này kết hợp với lệnh nvidia-smi
để hỗ trợ việc overclock.
No. VGA | Power Limit | Temp. Limit | Core Clock | Mem Clock |
---|---|---|---|---|
[1] MSI 3080 GAMING X TRIO | 106% | 65C | -502MHz | +825Mhz |
[2] ASUS 3080 ROG STRIX GAMING OC | 67% | 65C | -502MHz | +800Mhz |
[3] MSI 3080 VENTUS 10G OC | 77% | 65C | -502MHz | +800Mhz |
[4] MSI 3080 GAMING X TRIO | 106% | 65C | -502MHz | +825Mhz |
No. VGA | Power Consumption | Hashrate | GPU Temperature | Memory Temperature |
---|---|---|---|---|
[1] MSI 3080 GAMING X TRIO | 235 Walt | 95.436MH/s | 58C | 98C |
[2] ASUS 3080 ROG STRIX GAMING OC | 248 Walt | 95.474MH/s | 58C | 96C |
[3] MSI 3080 VENTUS 10G OC | 246 Walt | 95.443MH/s | 62C | 94C |
[4] MSI 3080 GAMING X TRIO | 235 Walt | 95.436MH/s | 58C | 98C |
Total | 964 Walt | 381.789MH/s | – | – |
Đây là thiết lập sử dụng trong Minerstat, khi sử dụng các thiết lập này, hoàn toàn không cần thiết sử dụng MSI Afterburner.
Lợi thế nhiều nhất sử dụng thiết lập này là lượng điện tiêu thụ ít hơn hẳn so với MSI Afterburner, tầm 50 Walt, lý do là vì gpu-clock
tinh chỉnh ở mức thấp hơn mức cho phép trên MSI Afterburner (nhỏ nhất là -502MHz).
No | VGA | Power Limit (Walt) | Locked Core Clock (MHz) | Memory Clock (-/+ MHz) |
---|---|---|---|---|
1 | MSI 3080 GAMING X TRIO | 392 | 1170 | 850 |
2 | ASUS 3080 ROG STRIX GAMING OC | 240 | 1170 | 800 |
3 | MSI 3080 VENTUS 10G OC | 240 | 1170 | 950 |
4 | MSI 3080 GAMING X TRIO | 392 | 1170 | 850 |
No. VGA | Power Consumption | Hashrate | GPU Temperature | Memory Temperature |
---|---|---|---|---|
[1] MSI 3080 GAMING X TRIO | 223 Walt | 96.310 MH/s | 52C | 98C |
[2] ASUS 3080 ROG STRIX GAMING OC | 239 Walt | 95.426 MH/s | 52C | 96C |
[3] MSI 3080 VENTUS 10G OC | 233 Walt | 97.450 MH/s | 55C | 96C |
[4] MSI 3080 GAMING X TRIO | 224 Walt | 96.257 MH/s | 48C | 92C |
Total | 919 Walt | 385.443 MH/s | – | – |
Tinh chỉnh quạt sẽ giống như cho Ethereum
No. VGA | Power Limit | Temp. Limit | Core Clock | Mem Clock |
---|---|---|---|---|
[1] MSI 3080 GAMING X TRIO | – | 65C | +170Mhz | -502MHz |
[2] ASUS 3080 ROG STRIX GAMING OC | – | 65C | +170Mhz | -502MHz |
[3] MSI 3080 VENTUS 10G OC | – | 65C | +170Mhz | -502MHz |
[4] MSI 3080 GAMING X TRIO | – | 65C | +170Mhz | -502MHz |
Mục tiêu là giảm memory clock xuống thấp hơn nữa, thấp hơn cả mức chỉnh trên MSI Afterburner. Nếu sử dụng phương án này thì chỉ cần quan tâm đến chỉnh quạt trên MSI Afterburner mà thôi. Powerlimit cũng sẽ không cần quan tâm.
Để reset overclock settings chaỵ lệnh sau:
No. VGA | Power Consumption | Hashrate | GPU Temperature | Memory Temperature |
---|---|---|---|---|
[1] MSI 3080 GAMING X TRIO | 211 Walt | 837.96MH/s | 56C | 56C |
[2] ASUS 3080 ROG STRIX GAMING OC | 235 Walt | 838.56MH/s | 56C | 58C |
[3] MSI 3080 VENTUS 10G OC | 217 Walt | 839.68MH/s | 59C | 58C |
[4] MSI 3080 GAMING X TRIO | 219 Walt | 838.01MH/s | 52C | 52C |
Total | 892 Walt | 3.35GH/s | – | – |
Tôi đã mua MSI 3080 Ventus 10G OC vào ngày 2/2/2021 và MSI Trio X Gaming vào ngày 2/5/2021. Sau một thời gian sử dụng
đây là các thiết lập MSI Afterburner
tôi đang sử dụng để đào Ethereum (ETH). Trước khi đi sâu vào thiết lập,
tôi muốn đề cập đến giá của ETH hiện tại, ngày 11/2/2021, 1 ETH = $1,789 USD, xấp xỉ 41,196,850 VND
. Bên cạnh đó, giá
điện sinh hoạt tôi đang sử dụng theo bảng sau:
MSI 3080 Ventus 10G OC & Trio X Gaming
sau khi đã áp dụng các thiệt lập sẽ có hiệu năng như hình dưới đây. Hoàn toàn có
thể đấy lên 101MH/s nếu muốn. Tuy nhiên tôi chỉ muốn ở mức 100MH/s cho mỗi card màn hình. Nếu bạn để ý kĩ, bạn sẽ thấy răng
mặc dù Ventus và Trio có mức hashrate là tương đương nhau, tuy nhiên số lượng share của Trio luôn luôn lớn hơn của Ventus,
khá là kì quặc, có lẽ là tiền nào của nấy. Khi nào thị trường bớt khan hiếm, tôi sẽ thử xem MSI 3080 Suprim
có gì đặc biệt hơn.
Mức thiết lập này sẽ có kết quả như sau:
Mức thiết lập này sẽ có kết quả như sau:
Phi phí dưới đây sẽ dựa trên thông tin ghi trên phần mềm, chưa có áp dụng cho case, quạt của case 4U.
414kWh
949,978 VND
Theo như trang web https://www.cryptocompare.com/ thì với hashrate là 201MH/s
, mỗi tháng sẽ kiếm đc 0.3766 Ethereum
.
Nếu quy đổi số Ethereum này thành USD thì sẽ là $669 USD
hoặc là 15,514,733 VND
. Sau khi trừ đi chi phí lợi nhuận
còn lại sẽ là 14.564.755 VND
.
Bảng Giá Điện Sinh Hoạt 2020-Giá Bán Điện Kinh Doanh EVN 2020, https://vuphong.vn/bang-gia-dien-sinh-hoat-2020-gia-ban-dien-kinh-doanh-evn-2020/?gclid=Cj0KCQiAyJOBBhDCARIsAJG2h5dKdg4-F3BXhEVhDcn8_bQQr-VW8uTR3Fql8j3nQjN4bp-LPxIWyAAaApRjEALw_wcB
CoinMarketCap, https://coinmarketcap.com/vi/currencies/ethereum/
Hiện tại tôi đã và đang sử dụng card màn hình này để đào ETH. Chiếc card đồ họa này có vấn đề nghiêm trọng với việc tản nhiệt.
Về vấn để tản nhiệt này, người dùng không thể xem thông tin ở trên MSI Afterburner
, phần mềm hiển thị nhiệt độ là trên con chip GPU
chứ không phải là trên các con chip chứa bộ nhớ.
Dưới đây là vài hình ảnh liên quan đến MSI RTX 3080 TRIO X GAMING
sau khi bị tháo ra.
TRIO sau khi mua về, cắm vào máy đào, chưa có chỉnh qua phần mềm MSI Afterburner
có hashrate loanh quanh 87 88 MH/s. Tôi đã dành nhiều giờ
để tinh chỉnh MSI Afterburner
thì TRIO có thể lên đc đến 93 MH/s. Tuy nhiên chỉ số này không kéo dài đc lâu, sau khi theo dõi sau 24 giờ,
giữ nguyên tinh chỉnh trên MSI, hasrate của TRIO xuống 81 MH/s. Điều này có nghĩa là tinh chỉnh, vọc vạch MSI Afterburner không giải quyết
dc nhu câu. có cái gì đó ở giữa có vấn đề.
Tôi có tham khảo các bài viết trên reddit thì có khá nhiều người cũng gặp tình trạng này. Giải pháp được đưa ra sau cùng đó là:
MSI RTX 3080 SUPRIM
, lý do là gia tăng điện cấp cho TRIO. Gia tăng điện lên 116%Sau nhiều lần thử nghiệm với thermal pad gelid (16W 1mm và 1.5mm) và gel tản nhiệt NOCTUA H2. Tôi nhận ra rằng độ cao 1mm là ổn áp nhất. Lưu ý răng bạn chỉ cần thay thermal pad nhiệt ở các con chip nhớ. Dưới đây là hình ảnh khu vực bạn cần thay pad nhiệt.
Sau khi đã thay pad nhiệt thành công, bước tiếp theo sẽ là flash lại bios của TRIO. Cái này khá nguy hiểm.
nvflash.exe
, ghi nhớ thư mục chứa cái file này, ví dụ là mình sẽ lưu ở /User/Admin/Desktop/MSI_TRIO
MSI.RTX3080.10240.201123.rom
(ví dụ) , copy file này ngang hàng với với nvflash.exe
.cmd
với quyền administrator, change directory (cd)
vào /User/Admin/Desktop/MSI_TRIO
. Lưu file room hiện tại của TRIO đang chạy với lệnh nvflash.exe --save original.rom
. Trong trường hợp bạn fuck up, hay đơn giản là muốn xài bios gốc, hãy dùng file này orignal.room
.nvflash --protectoff
, gỡ bảo vệ bios.nvflash MSI.RTX3080.10240.201123.rom --overridesub=true
.Kể từ đây, TRIO đã có nhiều điện hơn vì xài BIOS của suprim, thêm vào đó nhiệt năng cũng hiệu quả hơn vì có thermal pad mới. Đừng quên là bạn còn chưa tinh trỉnh TRIO với MSI Afterturner
Ở bài viết khác, mình sẽ nêu chi tiết thông tin tinh chỉnh của TRIO với Afterburner. Đây là terminal kết quả của mình sau khi tinh chỉnh. Chú ý GPU số 2, số 1 là MSI RTX 3080 VENTUS 10G OC
.
Đây là các link tôi đã tham khảo:
private key
csr
): File này được tạo ra sau khi có private key
. Khi tạo yêu cầu chứng nhận chứng chỉ
, sẽ cần phải cung cấp thêm các thông tin như tên quốc gia, email, và nhiều hơn nữa. Những thông tin được dùng để xác nhận và tạo ra certificate
(chứng chỉ
), đơn vị tạo ra chứng chỉ
được gọi là Certificate Authority
. Tuy nhiên cũng có thể tự tạo ra chứng chỉ
từ yêu cầu chứng nhận chứng chỉ
, vì người chứng nhận không phải là Certificate Authority
nên là trên web browser, trình duyệt sẽ hiển thị màu đỏ bên cạnh đường link.chứng chỉ
)Theo như các khái niệm trên thì khi cài đặt HTTPS cho server, chỉ cần private key
và certificate
. Nếu private key
đã được mã hóa thì lúc cài đặt cho server phải nhớ thêm mật khẩu
để server có thể giải mã.
openssl genrsa -des3 -out domain.key 2048
Lưu ý rằng file domain.key
đã được mã hóa. Để sử dụng cho server, cần được giải mã.
-des3: mã hóa private key theo thuật toán `DES` 3 lần.
2048: độ dài của private key
openssl genrsa -out private.key 2048
yêu cầu chứng nhận chứng chỉ
(csr) từ private key
openssl req -key domain.key -new -out domain.csr
certificate
từ yêu cầu chứng nhận chứng chỉ
và private key
openssl x509 -signkey domain.key -in domain.csr -req -days 365 -out domain.crt
private key
openssl rsa -in encrypted.key -out decrypted.key
Không khuyên khích việc xem manual của openssl rồi tự làm, document của command openssl rất khó hiểu và chỉ mang tính chất tham khảo, đôi khi tự xem rồi không biết thứ tự đâu mà làm.
Ví dụ như lệnh tạo certificate
từ private key
và csr
, xem manual mà ko hiểu nên sắp xếp argument như thế nào cho thích hợp. Tốt nhất là làm theo hướng dẫn.
Trước khi đọc sâu hơn về cách thiết lập replication
này, tôi sẽ giải thích về mô hình hot-standby
. Ở mô hình này, máy standby
sẽ có khả năng bị read
(đọc), khi máy primary
xảy ra vấn đề, máy standby
sẽ được tăng cấp thành primary
mới, cho phép nó có khả năng read/write
(đọc/ ghi).
Khi áp dụng kỹ thuật này, có thể sử dụng thêm database proxy để giảm áp lực read
cho máy primary
.
Nói về dữ liệu, 99.999999999% là dữ liệu trên máy standby
sẽ giống với máy primary
. Lý do mà nó không đạt được đến mức 100% là do khi máy primary
chết, máy primary
không gửi write-ahead-log
cho máy standby
được, việc này dẫn đến hệ quả là máy standby
không có dữ liệu.
Ở bài viết này, sẽ tập trung nói đến việc làm sao để thiết lập hot-standby replication
cũng như cách kích hoạt thủ công hot-standby server
để nó trở thành primary server
mới. Vấn đề phục hồi primary cũ
sẽ được nói ở bài viết tiếp theo.
Ở bài hướng dẫn này, tôi sử dụng server là Fedora. Hướng dẫn trên mạng rất nhiều để tiện theo dõi trên bài viết tôi sẽ viết lại ở đây.
Bạn vào website: https://www.postgresql.org/download/linux/redhat/, trong phần chỉ mục PostgreSQL Yum Repository
, hãy điền hết cái form, sau khi điền xong một đoạn script cài đặt sẽ hiện ra, bạn chỉ việc copy-paste vào terminal là chạy. Việc cài đặt này là tiêu chuẩn và áp dụng trên cả máy primary
và standby
.
Ví dụ như tôi đang sử dụng fedora 32 x64, muốn xài postgresql-11, sau khi điền xong form, tôi sẽ nhận được đoan script sau:
# Install the repository RPM:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/F-32-x86_64/pgdg-fedora-repo-latest.noarch.rpm
# Install PostgreSQL:
sudo dnf install -y postgresql12-server
# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
sudo systemctl enable postgresql-12
sudo systemctl start postgresql-12
primary
a. Tạo user
Bạn sẽ cần phải tạo 2 users
user/password | role |
---|---|
repuser/repuser | replication |
admin/admin | superuser |
Để thiết lập relication, thực sự chỉ cần đến user với role là replication
mà thôi. Tôi chủ động tạo thêm một superuser mới có tên là admin
.
Vào terminal, và chạy lệnh sau:
# Chuyển qua user postgresql trên hệ điều hành
sudo su postgres;
# Tao user repuser/repuser
createuser --no-login --pwprompt --replication repuser;
# Tạo user admin/admin
createuser --pwprompt --superuser admin;
b. Thay đổi pg_hba.conf
để cấp quyền truy cập
host all admin 0.0.0.0/0 md5
host replication repuser {standy_server_ip}/{mask} md5
Ở trên hình thì IP/MASK
của máy standby là 192.168.2.43/24
.
c. Thay đổi postgresql.conf
listen_addresses = '*'
wal_level = replica
archive_command = 'test ! -f /var/lib/pgsql/11/data/archivedir/%f && cp %p /var/lib/pgsql/11/data/archivedir/%f'
max_wal_senders = 3
wal_log_hints = on
Lưu ý archive_command, /var/lib/pgsql/11/data/archivedir/
là thư mục cần phải tạo thêm, nếu chưa có hãy tạo nó sử dụng lệnh sau:
mkdir -p /var/lib/pgsql/11/data/archivedir/
Thiết Lập | Ý Nghĩa |
---|---|
listen_addresses | Liệt kê IP được phép truy cập vào database server bằng postgresql client |
wal_level | Mức độ chi tiết của wal, để dữ liệu trong file wal đủ chi tiết để phục hồi, giá trị cần là replica |
archive_command | command sử dụng để lưu trữ write-ahead-log vào thư mục archive. Ở thiết lập phía trên, nó đầu tiên kiểm tra xem trong thư mục archive có tồn tại file chưa, nếu chưa nó sẽ copy file write-ahead-log vào thư mục archive. |
max_wal_senders | Số lượng tối đa wal_senders chạy đồng thời với nhau. Nói một cách khác nó chỉ thị số lượng tối đa các kết nối từ standby server đến primary |
wal_log_hints | Config này quan trong trong việc đồng bộ hóa server primary cũ với primary mới . |
Kể từ bước này trở đi, máy primary
đã có thể khởi động postgresql server.
systemctl start postgresql-11;
standby
Trước khi chạy các bước tiếp theo, bắt buộc phải tắt postgresql. Đây là bắt buộc
systemctl stop posgresql-11;
a. Kéo thư mục data
từ máy primary
sang standby
data
cũ đến nơi khác.
mv /var/lib/pgsql/11/data /var/lib/pgsql/11/data_bak;
pg_basebackup
để kéo thư mục data từ máy primary
đến máy standby
pg_basebackup --pgdata /var/lib/pgsql/11/data -h 192.168.2.68 -p 5432 -U repuser \
--password --verbose --progress --write-recovery-conf \
--wal-method stream
Sau khi chạy xong, bạn sẽ thấy màn hình tương tự như sau.
Thêm vào đó, trong thư mục data
sẽ có thêm 2 file
b. Thiết lập file recovery.conf
File recovery.conf
được tạo ra từ lệnh pg_basebackup
với flag --write-recovery-conf
. Nội dung của nó đề cập đến chế độ hiện tại của standby server
và vị trị của primary server
.
# Nội dung file recovery.conf
standby_mode = 'on'
primary_conninfo = 'user=repuser password=repuser host=192.168.2.68 port=5432 sslmode=prefer sslcompression=0 krbsrvname=postgres target_session_attrs=any'
Trong file recovery.conf
, có thể thấy rõ ràng thông tin truy cập vào primary server
c. Thiết lập posgresql.conf
hot_standby = on
Kể từ bước này trở đi, khởi chạy postgresql server trên standby server
.
systemctl start postgresql-11;
Standby server
thành Primary server
Không chạy lệnh sau bây giờ, chỉ chạy nó khi bạn biết rằng primary server đã chết.
Để chuyển chế độ của standby server
từ standby
thành primary
, bạn phải chạy lệnh sau trên standby server
.
/usr/pgsql-11/bin/pg_ctl promote --pgdata /var/lib/pgsql/11/data;
Vào primary server
và chạy sql sau:
select * from pg_stat_replication;
Đây là kết quả nên nhận được, bạn sẽ thấy rõ ràng IP của standby server
Name |Value |
----------------|-------------------|
pid |1670 |
usesysid |16384 |
usename |repuser |
application_name|walreceiver |
client_addr |192.168.2.43 |
client_hostname | |
client_port |51962 |
backend_start |2020-11-04 15:57:03|
backend_xmin | |
state |streaming |
sent_lsn |0/F02F468 |
write_lsn |0/F02F468 |
flush_lsn |0/F02F468 |
replay_lsn |0/F02F468 |
write_lag | |
flush_lag | |
replay_lag | |
sync_priority |0 |
sync_state |async |
Tôi sẽ sử dụng dbeaver
để tạo bảng, thêm record, xóa record trên primary server
. Tôi kì vọng là sau khi làm những thao tác trên, dữ liệu trên standby server
phải giống với dữ liệu trên primary server
.
Tôi chạy sql tạo bảng people
trên máy primary
.
CREATE TABLE public.people (
id serial NOT NULL,
"name" varchar NULL,
CONSTRAINT people_pk PRIMARY KEY (id)
);
Để thêm record cho bảng people
, tôi chạy câu sql sau:
insert into people (name) values ('Linh'), ('Son'), ('Long'), ('TTEK');
Để xóa record cho bảng people
, tôi chạy câu sql sau:
delete from people where name = 'TTEK';
Khi kiểm tra dữ liệu trên máy primary
và máy standby
dữ liệu là giống hệt nhau.
Vậy là việc thiết lập hot standby
server đã hoàn tất. Ở bài viết tiếp theo, tôi sẽ nói về tình huống server primary
chết, server standby
chiếm quyền và đóng vai trò là server primary
mới. Vấn đề xảy ra khi chúng ta muốn khởi động lại server primary cũ
, và muốn lấy toàn bộ dữ liệu mới đc thay đổi trên máy primary mới
và thiết lập máy primary cũ
trở thành máy standby mới
.
Trong quá trình phát triển phần mềm, khả năng rất cao là mỗi dự án chúng ta sẽ cần đến một ngôn ngữ lập trình khác nhau, thêm vào mặc dù là chung ngôn ngữ nhưng phiên bản của ngôn ngữ lập trình thay đổi theo dự án. Việc quản trị ngôn ngữ lập trình và phiên bản của nó là cực kì quan trọng.
Phần mềm mà tôi thích sử dụng đó là asdf https://asdf-vm.com/ . Cách cài đặt thì có thể tìm thấy trực tiếp trên trang chủ của asdf. Bài viết này sẽ nói về những tính năng hay ho mà asdf tôi sử dụng hàng ngày.
Cơ chế hoạt động của asdf là tạo ra một lớp bọc phía bên ngoài cho các executable file
, ứng với mỗi phiên bản, asdf sẽ chọn lựa và chạy file tương ứng. Việc quản lý version được làm tự động, lập trình viên chỉ việc config.
ASDF cài đặt nhiều ngôn ngữ lập trình cũng như phiên bản của ngôn ngữ đó giúp bạn, cú pháp đơn giản, không cần config nhiều. Cần lưu ý là bạn phải cài plugin trước, Danh sách plugin có thể tìm ở đây https://asdf-vm.com/#/plugins-all.
Ví dụ như muốn cài elixir
, thì bạn sẽ cần elixir-plugin
.
Một dự án sẽ sử dụng rất nhiều ngôn ngữ lập trình, ví dụ như elixir
cho backend, nodejs
cho frontend, thêm vào đó trong trường hợp tôi dùng elixir
tôi cần quan tâm đến cả erlang
nữa.
asdf sẽ giúp lập trình viên nhanh chóng chuyển phiên bản của ngôn ngữ lập trình theo dự án.
Ví dụ dưới đây là project_1
và project_2
, hai dự án này nằm ở hai thư mục khác nhau. cả hai có điểm chung là đều sử dụng elixir
tuy nhiên nhu cầu về phiên bản lại khác nhau, một cái là 1.9.1
, cái còn lại là 1.9.2
Tính năng này được để cập rất chi tiết tại đây https://asdf-vm.com/#/core-configuration.
Để làm được điều này, nói ngắn gọn bạn sẽ cần tạo file .tool-versions
ở mỗi project. Trong file này sẽ liệt kê chi tiết version của language. Như trên hình, khi kiểm tra phiên bản của elixir, phiên bản đã hiển thị khác nhau.
File: project_1/.tool_versions
File: project_2/.tool_versions
Inside $HOME
, there is a directory named ~/.local/share/applications
which containts all application shortcuts for the current user
.
To make a new application shortcut you need to make a new file named *.desktop
with the following schema.
To refresh/update application.desktop
, you can use the following command:
If it all works correctly, a new application shortcut will be displayed on Gnome Search.