ข้ามไปยังเนื้อหา

สำรองและกู้คืน

คู่มือนี้ครอบคลุมห้าสิ่งที่ผู้คนทำจริงกับข้อมูลสำรอง: จับสแนปช็อตหนึ่งชุด เก็บสำเนาไว้ ย้ายเวิร์กสเปซ กู้คืนกลับ และเก็บสำเนาไว้นอกเครื่อง สำหรับรูปร่างที่แน่นอนของ ทุกอาร์ติแฟกต์และการดำเนินการ โปรดดู เอกสารอ้างอิงการสำรองข้อมูล

ทุกอย่างในที่นี้อยู่ที่ การตั้งค่า → เซิร์ฟเวอร์ → สำรองและกู้คืน

  • ไคลเอนต์แบบเต็ม — แอปเดสก์ท็อปหรือเว็บ โทรศัพท์ที่จับคู่แล้วทำสิ่งใดในนี้ไม่ได้เลย โดยเจตนาออกแบบไว้เช่นนั้น
  • การสร้าง แสดงรายการ ดาวน์โหลด หรือลบ สแนปช็อตการติดตั้ง: ต้องเป็น เจ้าของ ของการติดตั้ง
  • สำหรับการดำเนินการต่อเวิร์กสเปซ: ต้องเป็น แอดมิน ของเวิร์กสเปซนั้นเพื่อส่งออก และเป็น เจ้าของ เพื่อนำเข้าหรือลบ
  • สำหรับการดาวน์โหลดและอัปโหลด: ต้องมีการเชื่อมต่อแบบโดยตรงกับเซิร์ฟเวอร์ รีเลย์ที่โบรกเกอร์ไว้จะรับส่งเฟรม RPC ไม่ใช่การโอนไฟล์ และตัวควบคุมการโอนจะปิดใช้งานตัวเองพร้อมข้อความแจ้งเมื่อคุณเชื่อมต่อผ่านรีเลย์

อาร์ติแฟกต์ทั้งสองเป็นฐานข้อมูลเท่านั้น:

  • สแนปช็อตการติดตั้ง คือไดเรกทอรีที่ตั้งชื่อตามเวลา: manifest.json, global.db และ <workspaceId>/workspace.db หนึ่งไฟล์ต่อเวิร์กสเปซหนึ่งตัว
  • การส่งออกเวิร์กสเปซ คือไฟล์ workspace.db ไฟล์เดียวนั้น

ทั้งสองไม่ได้พาส่วนที่เหลือของไดเรกทอรีข้อมูลไปด้วย: secrets.json (คีย์จับคู่อุปกรณ์ ข้อมูลรับรองของผู้ให้บริการ, SSO), blobs/ ของเวิร์กสเปซ (รูปภาพที่วางในข้อความ), skills/, agents/, chat_credentials/, เสียงบันทึกการประชุม หรือรูปภาพริก บางส่วนนั้น ทิ้งได้และบางส่วนทิ้งไม่ได้ — ตารางฉบับเต็มอยู่ในเอกสารอ้างอิง และการครอบคลุมส่วนนั้นคือจุดประสงค์ของหัวข้อการเก็บสำเนานอกเครื่อง

  1. เปิด การตั้งค่า → เซิร์ฟเวอร์ → สำรองและกู้คืน
  2. ใต้ สแนปช็อตการติดตั้ง กด สำรองตอนนี้
  3. ข้อความแจ้งจะระบุชื่อไดเรกทอรีที่ถูกเขียน ณ โฮสต์เซิร์ฟเวอร์ สแนปช็อตใหม่จะปรากฏที่ด้านบนสุดของรายการ

เซิร์ฟเวอร์ยังทำงานต่อตลอดเวลา แต่ละไฟล์ถูกเขียนด้วย VACUUM INTO ซึ่งสอดคล้องกับ ฐานข้อมูลที่ใช้งานอยู่ จึงไม่มีช่วงหยุดบำรุงรักษาและไม่จำเป็นต้องหยุดเอเจนต์

แต่ละแถวในรายการแสดงเวลาที่บันทึก ขนาดบนดิสก์ จำนวนเวิร์กสเปซที่ถูกจัดเก็บ และสถานะว่า สแนปช็อตนั้น ครบ หรือ ไม่ครบ ไม่ครบหมายความว่าไฟล์ manifest หายไปหรือระบุชื่อไฟล์ ที่ไม่มีอยู่ — การสำรองที่ถูกขัดจังหวะโดยเหตุขัดข้องหรือดิสก์เต็ม พวกนี้ยังคงแสดงในรายการ โดยเจตนา: สแนปช็อตที่คุณมองไม่เห็นคือสแนปช็อตที่คุณเชื่อว่ามีอยู่ สแนปช็อตที่ไม่ครบ กู้คืนทั้งการติดตั้งไม่ได้ แต่ไฟล์เวิร์กสเปซที่มันถืออยู่ยังนำมารับช่วงได้ทีละไฟล์

แถวอาจระบุว่า n เวิร์กสเปซไม่ถูกจัดเก็บ ได้ด้วย นั่นคือเวิร์กสเปซที่ลงทะเบียนไว้ แต่ไม่เคยถูกเขียนข้อมูล (ยังไม่มีไฟล์) หรือเวิร์กสเปซที่การคัดลอกล้มเหลว — โปรดตรวจสอบ ล็อกของเซิร์ฟเวอร์

ตั้งเวลาและระยะเวลาเก็บข้อมูลสำรองของเวิร์กสเปซ

หัวข้อที่มีชื่อว่า “ตั้งเวลาและระยะเวลาเก็บข้อมูลสำรองของเวิร์กสเปซ”

เปิด การตั้งค่า → ไปป์ไลน์ → เทมเพลตไปป์ไลน์ สำหรับเวิร์กสเปซ แล้วมองหา Workspace backup ตารางเวลาที่เปิดใช้งานอยู่จะรันทุกวันอาทิตย์เวลา 03:00 UTC: Back up workspace ตามด้วย Delete backups older than (ค่าเริ่มต้น 30 วัน) โหนดที่สองจะรันหลังจากการสำรองสำเร็จเท่านั้น คุณเปลี่ยนจำนวนวันเก็บรักษาบนโหนด หรือปิดใช้งานตารางเวลาได้ ถ้าเซิร์ฟเวอร์ออฟไลน์ในเวลาที่ตั้งไว้ ตารางเวลาจะตามเก็บ ให้หนึ่งครั้งเมื่อกลับมาออนไลน์ แทนที่จะเล่นซ้ำทุกสัปดาห์ที่พลาดไป

ข้อมูลสำรองของเวิร์กสเปซอยู่บนเซิร์ฟเวอร์ภายใต้ backups/workspace-backups/<workspaceId>/<timestamp>/workspace.db โหนดเก็บรักษา จะลบเฉพาะข้อมูลสำรองเก่าของเวิร์กสเปซนี้เท่านั้น มันไม่เคยลบสแนปช็อตการติดตั้ง หรือข้อมูลสำรองของเวิร์กสเปซอื่น ไฟล์เหล่านี้เป็นฐานข้อมูลเท่านั้น สำหรับการเก็บรักษา นอกเครื่อง โปรดคัดลอกแยกต่างหาก

ข้อมูลสำรองเหล่านี้แยกจากรายการ สแนปช็อตการติดตั้ง หากต้องการกู้คืนหนึ่งรายการ ให้ใช้ ข้อมูลเวิร์กสเปซ → นำเข้า โดยระบุพาธ workspace.db ฝั่งเซิร์ฟเวอร์ของ ข้อมูลสำรองนั้น การนำเข้าจะแทนที่ฐานข้อมูลปัจจุบันของเวิร์กสเปซนั้น ดังนั้นโปรดส่งออก มันก่อนหากคุณอาจต้องย้อนการกู้คืน

ใต้ สแนปช็อตการติดตั้ง ให้ขยายสแนปช็อต รวมถึงสแนปช็อตที่ไม่ครบ แล้วใช้ ลบสแนปช็อต ในโซนอันตราย ยืนยันชื่อของมัน ไดเรกทอรีสแนปช็อตทั้งก้อนจะถูกลบออกจาก เซิร์ฟเวอร์อย่างถาวร โปรดดาวน์โหลดไว้ก่อนหากคุณต้องการสำเนา ไปป์ไลน์สำรองข้อมูลของ เวิร์กสเปซจะไม่ลบสแนปช็อตเหล่านี้เลย

พาธที่หน้านี้แสดงอยู่บนเครื่องที่รัน cc_server เมื่อเครื่องนั้นไม่ใช่เครื่องที่คุณนั่งอยู่ ให้ใช้ปุ่ม ดาวน์โหลด:

  • ข้างๆ เวิร์กสเปซ แต่ละรายการใต้ ข้อมูลเวิร์กสเปซ → ดาวน์โหลด สำหรับไฟล์ .db หนึ่งไฟล์
  • ข้างๆ สแนปช็อต แต่ละรายการใต้ สแนปช็อตการติดตั้ง → ดาวน์โหลด สำหรับสแนปช็อตทั้งก้อนในรูปแบบ .zip

บนเดสก์ท็อปคุณเลือกได้ว่าไฟล์จะไปอยู่ที่ใดและข้อความแจ้งจะระบุตำแหน่งนั้น บนเว็บไฟล์จะไปที่ รายการดาวน์โหลดของเบราว์เซอร์ ไม่ทางใดก็ทางหนึ่ง ทั้งคู่รายงานความคืบหน้าเป็นไบต์ เพราะนี่คือสองเพย์โหลดที่กินพื้นที่ถึงระดับกิกะไบต์

ทั้งคู่สร้างสำเนาใหม่ในขณะที่คุณกดปุ่ม สตรีมมัน แล้วลบสำเนาบนเซิร์ฟเวอร์ทิ้งในภายหลัง — การดาวน์โหลดไม่ใช่ “ดึงไฟล์ที่ปุ่มส่งออกสร้างไว้ก่อนหน้านี้”

การแตกไฟล์อาร์ไคฟ์สแนปช็อตจะสร้างโครงร่างของสแนปช็อตซ้ำขึ้นมาอย่างแม่นยำ ซึ่งเป็นสิ่งที่ ทำให้การกู้คืนมันเป็นการคัดลอกกลับ

หนึ่งเวิร์กสเปซคือไฟล์ฐานข้อมูลหนึ่งไฟล์ การส่งต่อจึงเป็นการดำเนินการกับไฟล์

  1. บนเซิร์ฟเวอร์ต้นทาง ไปที่ การตั้งค่า → เซิร์ฟเวอร์ → สำรองและกู้คืน → ข้อมูลเวิร์กสเปซ ขยายเวิร์กสเปซแล้วกด ดาวน์โหลด
  2. บนเซิร์ฟเวอร์ปลายทาง ให้สร้าง (หรือเลือก) เวิร์กสเปซที่จะรับมัน
  3. ขยายเวิร์กสเปซนั้น แล้วใต้ กู้คืนจากอุปกรณ์นี้ กด เลือกไฟล์แล้วอัปโหลด เลือกไฟล์ .db ที่คุณดาวน์โหลดมา

ถ้าเซิร์ฟเวอร์ทั้งสองเป็นเครื่องเดียวกับที่คุณนั่งอยู่ บันทึกบนเซิร์ฟเวอร์ บวก นำเข้า → เลือกไฟล์ ให้ผลเหมือนกันโดยไม่ต้องเดินทางไปกลับ พาธในกล่องโต้ตอบ การนำเข้าจะคลี่คลายบนโฮสต์เซิร์ฟเวอร์

มีสองสิ่งที่ไม่ถูกปฏิเสธ แต่ได้รับอนุญาตและบันทึกล็อกไว้: การนำเข้าไฟล์ที่รหัสเวิร์กสเปซ ที่บันทึกไว้แตกต่างจากเป้าหมาย (นี่คือวิธีที่คุณทำสำเนาเวิร์กสเปซหรือกู้คืนมันภายใต้รหัสใหม่) และการนำเข้าไฟล์จากการติดตั้งอื่น ในกรณีหลัง อุปกรณ์ที่จับคู่และรหัสผู้ใช้ของไฟล์นั้น เป็นของการติดตั้งที่มันมาจากและจะไม่คลี่คลายบนการติดตั้งนี้ — ข้อมูลของเวิร์กสเปซเอง ยังครบถ้วน แต่โปรดตรวจสอบสมาชิกภาพอีกครั้งหลังรับช่วงมันมา

โทเคนของแชทบอตอยู่ข้างฐานข้อมูล ไม่ได้อยู่ข้างใน ดังนั้นเวิร์กสเปซที่คุณยกให้คนอื่น จึงไม่พาข้อมูลรับรองที่ใช้งานได้ไปด้วย การติดตั้งที่รับจะเชื่อมต่อของตัวเองใหม่

  1. ใต้ สแนปช็อตการติดตั้ง ให้ขยายสแนปช็อตที่คุณต้องการ
  2. ค้นหาแถวของเวิร์กสเปซแล้วกด กู้คืน
  3. ยืนยัน ทุกอย่างที่เวิร์กสเปซนั้นทำไปตั้งแต่จับสแนปช็อตจะสูญหาย

นี่คือการดำเนินการเดียวกับการนำเข้า โดยชี้ไปที่สำเนาไฟล์เวิร์กสเปซนั้นในสแนปช็อต — อย่างจงใจ เพื่อไม่ให้มีกลไกที่สองที่อาจจัดการไฟล์เดียวกันต่างออกไป

แถวอาจระบุว่า ไม่อยู่บนเซิร์ฟเวอร์นี้อีกแล้ว โดยปุ่ม กู้คืน ถูกปิดใช้งาน: สแนปช็อต ถือเวิร์กสเปซที่การติดตั้งนี้ไม่มีอยู่อีกต่อไป ให้เอากลับมาด้วยมือ — สร้างเวิร์กสเปซ แล้วใต้ ข้อมูลเวิร์กสเปซ นำเข้าจาก <snapshot path>/<old workspace id>/workspace.db สแนปช็อตที่ขยายอยู่จะแสดง พาธบนเซิร์ฟเวอร์ ของตัวเองในช่องคัดลอก และชื่อของแถวคือรหัสเวิร์กสเปซเก่า คุณจึงมี ทั้งสองครึ่งของพาธนั้นอยู่ตรงหน้า

ไม่มีปุ่มสำหรับการนี้ และก็ไม่ควรมี: มันแทนที่ฐานข้อมูลที่เซิร์ฟเวอร์ที่กำลังรันอยู่ เปิดค้างไว้

  1. หยุด cc_server หากคุณรันแอปเดสก์ท็อปพร้อมเซิร์ฟเวอร์ที่ฝังอยู่ในตัว ให้ปิดแอปนั้น

  2. คัดลอกเนื้อหาของสแนปช็อตทับไดเรกทอรีข้อมูล โครงร่างของสแนปช็อตสะท้อนโครงร่างที่ใช้งานจริง จึงเป็นการคัดลอกธรรมดา:

    หน้าต่างเทอร์มินัล
    # macOS default; see the CLI reference for other platforms
    DATA_DIR="$HOME/Library/Application Support/control-center"
    SNAPSHOT="$DATA_DIR/backups/2026-07-28T09-12-33-000Z"
    cp "$SNAPSHOT/global.db" "$DATA_DIR/global.db"
    for d in "$SNAPSHOT"/*/; do
    id=$(basename "$d")
    mkdir -p "$DATA_DIR/$id"
    cp "$d/workspace.db" "$DATA_DIR/$id/workspace.db"
    done
  3. ลบไฟล์ -wal และ -shm ใดๆ ที่วางอยู่ข้างฐานข้อมูลที่คุณแทนที่ ไฟล์เหล่านี้เป็นของไฟล์เก่า และไฟล์ค้างเก่าที่วางข้างฐานข้อมูลที่กู้คืนมาถือเป็นความเสี่ยงต่อข้อมูลเสียหาย

  4. เริ่มเซิร์ฟเวอร์อีกครั้ง

สแนปช็อตไม่ถือ secrets.json การติดตั้งที่กู้คืนลงบนโฮสต์ใหม่จึงเก็บข้อมูลไว้ได้ แต่ไม่เก็บข้อมูลรับรอง: ต้องตั้งค่าอุปกรณ์ที่จับคู่ โทเคนของผู้ให้บริการ และการตั้งค่า SSO ขึ้นใหม่ หรือกู้คืนจากที่ใดก็ตามที่คุณเก็บไฟล์นั้นไว้ การกู้คืนลงบนโฮสต์เดิม ซึ่ง secrets.json ไม่เคยหายไป จะเก็บทุกอย่างไว้ครบ

สแนปช็อตที่อยู่บนดิสก์เดียวกับฐานข้อมูลที่มันคัดลอกมาปกป้องคุณจากการนำเข้าที่ผิดพลาด ไม่ได้ปกป้องจากดิสก์เสีย ไม่มีอะไรใน Control Center ที่ส่งสำเนาไปที่ใดให้ ดังนั้นส่วนนี้ เป็นความรับผิดชอบของคุณ

สแนปช็อตไม่เปลี่ยนแปลงอีกหลังเขียนเสร็จและตั้งชื่อตามเวลา เครื่องมือซิงก์ใดๆ จึงจัดการได้ดี ให้ยกเว้น transfer/ ซึ่งเป็นพื้นที่ทำงานชั่วคราวสำหรับการดาวน์โหลด และอัปโหลดที่กำลังดำเนินอยู่:

หน้าต่างเทอร์มินัล
DATA_DIR="$HOME/Library/Application Support/control-center"
# To another host over ssh
rsync -a --delete --exclude 'transfer/' \
"$DATA_DIR/backups/" backup-host:/srv/control-center-backups/
# To object storage
aws s3 sync --exclude 'transfer/*' \
"$DATA_DIR/backups/" s3://my-bucket/control-center/backups/
# Or with deduplication, encryption and its own retention
restic backup --exclude 'transfer' "$DATA_DIR/backups"

--delete จะสะท้อนการตัดทิ้งในเครื่องของคุณไปยังปลายทาง ให้ตัดมันออกหากคุณต้องการ ให้ปลายทางเก็บสแนปช็อตไว้นานกว่าโฮสต์

หากต้องการสร้างการติดตั้งขึ้นใหม่ได้ ไม่ใช่แค่ข้อมูลของมัน ให้คัดลอกไฟล์เหล่านี้ด้วย พวกมันเป็นไฟล์ธรรมดา ปลอดภัยที่จะคัดลอกขณะเซิร์ฟเวอร์รันอยู่:

หน้าต่างเทอร์มินัล
rsync -a \
"$DATA_DIR/secrets.json" \
backup-host:/srv/control-center-backups/config/
rsync -a --relative \
"$DATA_DIR"/./*/chat_credentials \
"$DATA_DIR"/./*/blobs \
"$DATA_DIR"/./*/skills \
"$DATA_DIR"/./*/agents \
backup-host:/srv/control-center-backups/workspace-files/

secrets.json มีสิทธิ์ 0600 และถือคีย์จับคู่ ข้อมูลรับรองของผู้ให้บริการ และการตั้งค่า SSO ทุกอย่างของการติดตั้ง ไม่ว่ามันจะไปอยู่ที่ใด ที่นั้นต้องได้รับการปกป้องอย่างน้อยเท่ากับ โฮสต์เซิร์ฟเวอร์ — เข้ารหัสขณะพัก และไม่ใช่บัคเก็ตที่ใครอื่นอ่านได้

ข้าม spaces/ (worktree แบบ copy-on-write ที่จัดสรรใหม่ได้จากรีโปของคุณ), pr_clones/ (แคช), models/ (ดาวน์โหลดใหม่ได้), media_cache/ และ rigs/ (สถานะของเครื่อง และ มีขนาดใหญ่) เสียงบันทึกการประชุมใต้ meetings/ ก็คุ้มที่จะรวมไว้หากคุณเก็บการประชุม

ตั้งเวลาสแนปช็อตของการติดตั้งทั้งหมดนอกแอป

หัวข้อที่มีชื่อว่า “ตั้งเวลาสแนปช็อตของการติดตั้งทั้งหมดนอกแอป”

ไปป์ไลน์ที่มีมาให้ในตัวสำรองข้อมูลเพียงเวิร์กสเปซเดียว สำหรับสแนปช็อตของการติดตั้งทั้งหมด แบบไม่มีคนเฝ้า ไม่มีคำสั่งย่อยใน CLI และ RPC ของสแนปช็อตต้องใช้ไคลเอนต์แบบเต็มที่จับคู่แล้ว และเป็นเจ้าของการติดตั้ง ตัวจับเวลาฝั่งโฮสต์สามารถใช้ VACUUM INTO กับฐานข้อมูล ที่ใช้งานจริงได้:

#!/usr/bin/env bash
set -euo pipefail
DATA_DIR="${CC_SERVER_DATA_DIR:-$HOME/.local/share/control-center}"
DEST="/srv/control-center-snapshots/$(date -u +%Y-%m-%dT%H-%M-%SZ)"
mkdir -p "$DEST"
sqlite3 "$DATA_DIR/global.db" "VACUUM INTO '$DEST/global.db'"
for db in "$DATA_DIR"/*/workspace.db; do
id=$(basename "$(dirname "$db")")
mkdir -p "$DEST/$id"
sqlite3 "$db" "VACUUM INTO '$DEST/$id/workspace.db'"
done

รันมันด้วยผู้ใช้คนเดียวกับที่เป็นเจ้าของไดเรกทอรีข้อมูล จาก cron หรือตัวจับเวลาของ systemd แล้วซิงก์ DEST ออกนอกโฮสต์ในภายหลัง VACUUM INTO ต้องใช้ SQLite 3.27 ขึ้นไป

เขียนมันไว้นอก <dataDir>/backups/ ไดเรกทอรีที่สร้างด้วยมือในที่นั้นไม่มี manifest.json แอปจึงจะแสดงมันเป็นสแนปช็อตที่ไม่ครบ และรายการจะเลิกเป็นบันทึก ที่ซื่อตรงของสิ่งที่เซิร์ฟเวอร์สร้างขึ้นเอง

ตัดทิ้งสแนปช็อตของการติดตั้งทั้งหมดแบบเก่า

หัวข้อที่มีชื่อว่า “ตัดทิ้งสแนปช็อตของการติดตั้งทั้งหมดแบบเก่า”

คุณลบสแนปช็อตการติดตั้งทีละรายการในแอปได้ สำหรับนโยบายเก็บรักษาฝั่งโฮสต์ ให้แยกไดเรกทอรีข้อมูลสำรองของเวิร์กสเปซออกจากสแนปช็อตการติดตั้ง:

หน้าต่างเทอร์มินัล
find "$DATA_DIR/backups" -mindepth 1 -maxdepth 1 -type d \
! -name exports ! -name transfer ! -name workspace-backups \
-mtime +30 -exec rm -rf {} +

ตรวจสอบผลลัพธ์ของการรัน -print ก่อนเพิ่ม -exec ให้เก็บไว้มากกว่าหนึ่งชุด: ความล้มเหลวที่คุณกำลังป้องกันอยู่มักเป็น “ข้อมูลสำรองชุดล่าสุดก็มีปัญหาเดียวกัน”

ข้อมูลสำรองที่ไม่มีใครกู้คืน คือสมมติฐาน

การตรวจแบบง่าย — ไฟล์เปิดได้และหน้าต่างๆ ของมันยังสมบูรณ์:

หน้าต่างเทอร์มินัล
sqlite3 "$SNAPSHOT/global.db" 'PRAGMA integrity_check;' # expects: ok

การตรวจแบบจริง — รับช่วงมันมา สร้างเวิร์กสเปซชั่วคราวบนการติดตั้งที่ไม่ใช่โปรดักชัน นำเข้าไฟล์เวิร์กสเปซเข้าไปในนั้น แล้วดูว่าสเปซ ตั๋วงาน และข้อความที่คุณคาดหวังอยู่ที่นั่น หรือไม่ นั่นเป็นการทดสอบเส้นทางเดียวกับการกู้คืนจริง รวมถึงการสร้างดัชนี FTS ใหม่ และเป็นการตรวจเดียวที่บอกคุณได้ว่าข้อมูลสำรองกู้คืนได้ ไม่ใช่แค่อ่านได้

ทำเช่นนี้หนึ่งครั้งเมื่อคุณตั้งค่าข้อมูลสำรอง และอีกครั้งทุกครั้งที่คุณเปลี่ยนที่เก็บของมัน

อาการ สาเหตุและวิธีแก้
ตัวควบคุมการดาวน์โหลดและอัปโหลดถูกปิดใช้งานพร้อมข้อความเกี่ยวกับรีเลย์ คุณเชื่อมต่อผ่านรีเลย์ที่โบรกเกอร์ไว้ ซึ่งไม่รับส่งไฟล์ โปรดเชื่อมต่อโดยตรง
“เซิร์ฟเวอร์ปฏิเสธ” บทบาท การสร้างหรือแสดงรายการสแนปช็อตการติดตั้งต้องเป็นผู้ดำเนินการของการติดตั้ง การดาวน์โหลดเวิร์กสเปซต้องเป็นแอดมิน การกู้คืนต้องเป็นเจ้าของ และซิปสแนปช็อตทั้งก้อนต้องเป็นผู้ดำเนินการของการติดตั้ง
“เซิร์ฟเวอร์นี้ไม่มีพื้นผิวการสำรอง” โฮสต์ไม่ได้ต่อพอร์ตการสำรองไว้ — เซิร์ฟเวอร์เดโม การดำเนินการเหล่านี้หายไปเลยมากกว่าจะถูกปฏิเสธ
“ไฟล์ใหญ่เกินกว่าที่เซิร์ฟเวอร์รับ” การอัปโหลดจำกัดไว้ที่ 8 GiB ให้วางไฟล์บนโฮสต์เซิร์ฟเวอร์แล้วใช้ นำเข้า → เลือกไฟล์ แทน
การนำเข้าถูกปฏิเสธ: ไม่ใช่ฐานข้อมูลเวิร์กสเปซของ Control Center ไฟล์ไม่มีแถว workspace_meta — มันไม่ใช่การส่งออกเวิร์กสเปซ หรือมันถูกตัดทอน ไม่มีอะไรถูกแทนที่
สแนปช็อตถูกแสดงเป็น ไม่ครบ ไฟล์ manifest ของมันหายไปหรือระบุชื่อไฟล์ที่ไม่มีอยู่ ให้จับชุดใหม่ ระหว่างนี้ให้รับช่วงไฟล์เวิร์กสเปซทีละไฟล์จากมันไปก่อน
สแนปช็อตระบุว่าเวิร์กสเปซไม่ถูกจัดเก็บ เวิร์กสเปซเหล่านั้นไม่เคยถูกเขียนข้อมูล หรือการคัดลอกของมันล้มเหลว โปรดตรวจสอบล็อกของเซิร์ฟเวอร์
การติดตั้งที่กู้คืนไม่มีข้อมูลรับรองของโฮสต์โค้ดหรือ SSO secrets.json ไม่ได้อยู่ในสแนปช็อต ให้กู้คืนจากที่ใดก็ตามที่คุณเก็บไว้ หรือเชื่อมต่อผู้ให้บริการใหม่
เวิร์กสเปซที่กู้คืนขาดรูปภาพที่วางไว้ บล็อบอยู่ข้างฐานข้อมูล ไม่ได้อยู่ข้างใน ให้คัดลอก <workspaceId>/blobs/ มาด้วย