Chủ Nhật, 29 tháng 3, 2026

SCP bị stelled

Bạn đã nói

1.VẤN ĐỀ

backup_df_lv0_VIETDB_20260328_5h4k5qat_1_1.bkp                                                                                                                                                           52% 9968MB 138.7KB/s - stalled

Stalled là gì, nguyên nhân, giải pháp


nhìn vào log copy file backup_df_lv0_GOLD... với tốc độ lẹt đẹt 138.7KB/s và dừng ở mức 52% (gần 10GB), việc hệ thống báo lỗi này thực sự rất ức chế. Phải mất hàng giờ đồng hồ mới copy được ngần ấy dữ liệu rồi bị treo.

2.NGUYÊN NHÂN

Dưới đây là giải thích bản chất, nguyên nhân và cách xử lý dứt điểm tình trạng này để cứu vớt 10GB đã copy.

"Stalled" là gì?

Trong các tiến trình truyền tải file qua mạng trên Linux (như scp hoặc rsync), Stalled (đình trệ/treo) có nghĩa là luồng truyền dữ liệu đã bị dừng hoàn toàn, tốc độ rớt xuống 0, nhưng hệ điều hành và kết nối mạng TCP ở hai đầu vẫn chưa chính thức nhận ra là đường truyền đã đứt. Hai server đang đứng nhìn nhau và chờ đợi vô vọng.

Nguyên nhân cốt lõi

Với các file backup Database (RMAN Level 0) dung lượng lớn vài chục GB, lỗi này thường xuất phát từ các nguyên nhân sau:

  • Chất lượng đường truyền WAN/VPN quá kém: Tốc độ 138.7KB/s là cực kỳ chậm. Khi đường truyền bị rớt gói tin (packet loss) liên tục hoặc bị chập chờn vài giây, bộ đệm TCP bị đầy, làm tiến trình copy bị treo cứng.

  • Thiếu cơ chế Keep-Alive của SSH: Lệnh scp chạy qua giao thức SSH. Nếu tường lửa (Firewall) hoặc router ở giữa thấy session SSH này không có tín hiệu phản hồi (do mạng lag) trong một khoảng thời gian, nó sẽ âm thầm drop session (chặn kết nối). Tuy nhiên, tiến trình ở hai đầu OS không biết điều này nên cứ báo "stalled".

  • Lỗi I/O ở máy đích (Destination): Đĩa cứng ở máy nhận đang bị quá tải I/O (I/O hang) hoặc phân vùng chứa file đã bị Full (hết dung lượng). Máy nhận không thể ghi file xuống đĩa nên không phản hồi tín hiệu TCP ACK lại cho máy nguồn.

  • Lệch MTU (Maximum Transmission Unit): Gói tin mạng quá lớn bị drop bởi các switch trung gian không hỗ trợ Jumbo frames.


3. Giải pháp xử lý (Cứu 10GB đã copy)

Lúc này, anh ấn Ctrl + C để hủy lệnh copy đang bị treo. TUYỆT ĐỐI KHÔNG chạy lại lệnh scp, vì nó sẽ ghi đè và bắt đầu copy lại từ 0%, anh sẽ mất trắng hơn 10GB đã đi được.

Hãy áp dụng các giải pháp sau:

Giải pháp 1: Dùng rsync để copy NỐI TIẾP (Khuyến nghị 100%) Công cụ rsync có khả năng đọc dung lượng đã copy ở máy đích và chỉ truyền tiếp 48% còn lại. Anh dùng lệnh sau (thay thông tin IP và đường dẫn cho đúng):

Bash
rsync -avzP --append-verify /duong_dan_nguon/backup_df_lv0_VIETDB_20260328_5h4k5qat_1_1.bkp user@ip_dich:/duong_dan_dich/

Tham số -P sẽ hiển thị tiến trình chi tiết, --append-verify bắt buộc rsync copy nối tiếp vào file đang dở dang.

Câu lệnh rsync "hạng nặng" được thiết kế riêng để trị dứt điểm tình trạng mạng chập chờn và an toàn tuyệt đối cho file backup RMAN

Câu lệnh rsync nối tiếp & giới hạn băng thông

Hãy mở terminal ở máy nguồn (nơi chứa file đang copy dở) và chạy lệnh sau (thay các đoạn đường_dẫnIP cho khớp với hệ thống ):

Bash
rsync -aP --append-verify --bwlimit=10000 /duong_dan_nguon/backup_df_lv0_VIETDB_20260328_5h4k5qat_1_1.bkp oracle@ip_may_dich:/duong_dan_dich/

Giải thích các "vũ khí" trong câu lệnh:

  • -aP: Giữ nguyên toàn bộ quyền hạn (owner/group) của file gốc (-a), đồng thời hiển thị thanh tiến trình chi tiết (-P) để thấy rõ nó đang chạy nối tiếp từ mức 52% thay vì bắt đầu lại từ đầu.

  • --append-verify: Đây là tham số "cứu mạng". Nó báo cho công cụ biết: "Hãy quét file đang dở dang ở máy đích, thiếu đoạn nào thì copy đắp nối tiếp vào đoạn đó. Khi xong xuôi, quét mã băm (checksum) toàn bộ file để đảm bảo không có bất kỳ byte nào bị lỗi (corrupt)".

  • --bwlimit=10000: Giới hạn tốc độ copy tối đa ở mức xấp xỉ 10MB/s (10,000 KB/s). Mức duy trì ổn định này giúp tiến trình chạy rỉ rả qua đêm mà không làm nghẽn băng thông mạng của các dịch vụ khác. Có thể tự điều chỉnh con số này (ví dụ: 5000 cho 5MB/s, 20000 cho 20MB/s).


💡 Mẹo nhỏ cho DBA (Đảm bảo an toàn qua đêm)

Vì file này copy tốn nhiều thời gian, nếu anh tắt laptop cá nhân hoặc rớt mạng wifi thì phiên làm việc SSH trên màn hình sẽ bị ngắt, kéo theo lệnh rsync cũng chết yểu theo.

Để an toàn 100%, anh nên đẩy lệnh này chạy ngầm (background) bằng nohup:

Bash
nohup rsync -aP --append-verify --bwlimit=10000 /duong_dan_nguon/backup_df_lv0_GOLD_20260328_5h4k5qat_1_1.bkp oracle@ip_may_dich:/duong_dan_dich/ > rsync_backup.log 2>&1 &

Sau khi nhấn Enter, anh có thể tắt máy tính đi ngủ. Sáng mai dậy, anh chỉ cần kết nối lại và gõ lệnh tail -f rsync_backup.log để xem kết quả copy thành công.

Giải pháp 2: Ép SSH không được "ngủ gật" (Nếu bắt buộc phải dùng scp) Nếu anh không có rsync, khi chạy lại scp, hãy thêm tham số ServerAliveInterval để máy nguồn liên tục "đá" máy đích mỗi 15 giây, ép Firewall không được drop kết nối:

Bash
scp -o ServerAliveInterval=15 -o ServerAliveCountMax=3 /duong_dan_nguon/backup_df_lv0_VIETDB_... user@ip_dich:/duong_dan_dich/

Giải pháp 3: Kiểm tra máy đích Trong lúc đợi copy, anh hãy mở một tab SSH khác vào máy đích, gõ lệnh df -h để đảm bảo phân vùng nhận file chưa bị đẩy lên 100%.

=============================
TƯ VẤN: Click Here hoặc Hotline/Zalo 090.29.12.888
=============================
Website không chứa bất kỳ quảng cáo nào, mọi đóng góp để duy trì phát triển cho website (donation) xin vui lòng gửi về STK 90.2142.8888 - Ngân hàng Vietcombank Thăng Long - TRAN VAN BINH
=============================
Nếu bạn không muốn bị AI thay thế và tiết kiệm 3-5 NĂM trên con đường trở thành DBA chuyên nghiệp hay làm chủ Database thì hãy đăng ký ngay KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE, được Coaching trực tiếp từ tôi với toàn bộ bí kíp thực chiến, thủ tục, quy trình của gần 20 năm kinh nghiệm (mà bạn sẽ KHÔNG THỂ tìm kiếm trên Internet/Google) từ đó giúp bạn dễ dàng quản trị mọi hệ thống Core tại Việt Nam và trên thế giới, đỗ OCP.
- CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
- Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
2 khóa học online qua video giúp bạn nhanh chóng có những kiến thức nền tảng về Linux, Oracle, học mọi nơi, chỉ cần có Internet/4G:
- Oracle cơ bản: https://bit.ly/admin_1200
- Linux: https://bit.ly/linux_1200
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
cơ sở dữ liệu, cơ sở dữ liệu quốc gia, database, AI, trí tuệ nhân tạo, artificial intelligence, machine learning, deep learning, LLM, ChatGPT, DeepSeek, Grok, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c/21c/23c/23ai, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, docker, k8s, micro service, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master