From ceaa5f2895b71b9dedfe543ae3a0927f912556ab Mon Sep 17 00:00:00 2001
From: xyc <jc_xiong@hotmail.com>
Date: 星期一, 21 九月 2026 17:28:35 +0800
Subject: [PATCH] docs: 仓库约定改为只用公司 gitea 单仓库(AGENTS 第3/4条)
---
docs/工具/数据库备份与还原操作步骤.md | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 167 insertions(+), 0 deletions(-)
diff --git "a/docs/\345\267\245\345\205\267/\346\225\260\346\215\256\345\272\223\345\244\207\344\273\275\344\270\216\350\277\230\345\216\237\346\223\215\344\275\234\346\255\245\351\252\244.md" "b/docs/\345\267\245\345\205\267/\346\225\260\346\215\256\345\272\223\345\244\207\344\273\275\344\270\216\350\277\230\345\216\237\346\223\215\344\275\234\346\255\245\351\252\244.md"
new file mode 100644
index 0000000..8905fc8
--- /dev/null
+++ "b/docs/\345\267\245\345\205\267/\346\225\260\346\215\256\345\272\223\345\244\207\344\273\275\344\270\216\350\277\230\345\216\237\346\223\215\344\275\234\346\255\245\351\252\244.md"
@@ -0,0 +1,167 @@
+# 鏁版嵁搴撳浠戒笌杩樺師鎿嶄綔姝ラ锛坱raffic_audit锛�
+
+> 鏁寸悊浜� 2026-09-21銆�**澶囦唤 = 鐢� mysqldump 瀵煎嚭鍏ㄥ簱 sql**锛�**杩樺師 = 鎶婅繖涓� sql 鍠傚洖 mysql**銆�
+> 闈㈠悜鑷繁鍔ㄦ墜鎿嶄綔锛屽懡浠ら兘鍙互鐩存帴澶嶅埗銆�
+
+## 0. 鐜閫熸煡
+
+| 椤� | 鍊� |
+| --- | --- |
+| 鏈嶅姟绔� | MySQL **8.0.29**锛宍127.0.0.1:3308` |
+| 搴� / 璐﹀彿 | 搴� `traffic_audit`锛岃处鍙� `root` / `123456` |
+| **瀵煎嚭宸ュ叿** | `C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe`锛�**蹇呴』鐢� 8.0 杩欎釜**锛屼笌鏈嶅姟绔悓鐗堟湰锛� |
+| 鏃ュ父鏌ユ暟瀹㈡埛绔� | `D:\mysql\mysql-5.7.41-winx64\bin\mysql.exe` |
+
+**涓や釜鍧戝厛璁颁綇**
+
+1. 杩炴帴鍙傛暟鍐� `--host=127.0.0.1`锛涘啓鎴� `-h127.0.0.1` 浼氳瑙f瀽鎴愪富鏈哄悕 `127`锛岀洿鎺ヨ繛涓嶄笂銆�
+2. 杈撳嚭鏂囦欢鐢� `--result-file=` 璁� mysqldump 鑷繁鍐欙紝涓嶈鐢� `>` 閲嶅畾鍚戯紙涓枃璺緞 + PowerShell 寮曞彿瀹规槗缈昏溅锛夈��
+
+---
+
+## 1. 澶囦唤锛堝鍑哄叏搴擄級
+
+```powershell
+$ts = Get-Date -Format 'yyyyMMdd_HHmmss'
+$dir = 'D:\backup' # 璺緞涓嶈鐣欑┖鏍�
+New-Item -ItemType Directory -Force $dir | Out-Null
+$out = Join-Path $dir "traffic_audit_full_$ts.sql"
+
+& 'C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe' `
+ --host=127.0.0.1 --port=3308 --user=root --password=123456 `
+ --default-character-set=utf8mb4 `
+ --single-transaction --routines --triggers --events --hex-blob `
+ --databases traffic_audit `
+ --result-file=$out
+
+"exit=$LASTEXITCODE"
+Get-Item $out | Select-Object Name, Length, LastWriteTime
+```
+
+**鎴愬姛鍒ゆ嵁**锛歚exit=0`锛屾枃浠舵湁鍑犲崄 MB锛屼笖鏂囦欢鏈�鍚庝竴琛屾槸 `-- Dump completed on ...`锛堟病鏈夊氨鏄腑閫旀柇浜嗭級銆�
+
+姣忎釜鍙傛暟鐨勪綔鐢細
+
+| 鍙傛暟 | 浣滅敤 |
+| --- | --- |
+| `--host=127.0.0.1 --port=3308` | 鏈満鏈嶅姟绔鍙o紙瑙佷笂銆屼袱涓潙銆嶏級 |
+| `--default-character-set=utf8mb4` | 涓枃涓嶄贡鐮侊紝**蹇呭甫** |
+| `--single-transaction` | 涓�鑷存�у揩鐓э紝瀵煎嚭鏈熼棿涓嶉攣琛紝鍒汉鐓ф牱鑳界敤绯荤粺 |
+| `--databases traffic_audit` | 杩� `CREATE DATABASE` + `USE` 涓�璧峰 鈫� 鍚屼簨鎷垮埌**鍗曚釜鏂囦欢**灏辫兘鏁村簱杩樺師 |
+| `--routines --triggers --events` | 鏈簱鐩墠娌℃湁杩欑被瀵硅薄锛堝潎涓� 0锛夛紝甯︿笂鍙槸闃插皢鏉ユ湁 |
+| `--hex-blob` | 浜岃繘鍒跺垪瀹夊叏瀵煎嚭 |
+| `--result-file=...` | 鐩存帴鍐欐枃浠讹紝缁曞紑閲嶅畾鍚戠殑缂栫爜/寮曞彿闂 |
+
+> 鍙鏌愬嚑寮犺〃锛氭妸 `--databases traffic_audit` 鎹㈡垚 `traffic_audit 琛�1 琛�2`锛堟鏃朵笉甯﹀缓搴撹鍙ワ紝鍙缁撴瀯鍜屾暟鎹級銆�
+
+---
+
+## 2. 楠岃瘉銆屾槸涓嶆槸鐪熷鍏ㄤ簡銆嶏紙涓夋锛屽己搴﹂�掑锛�
+
+瀵煎嚭瀹�**涓嶈鐩存帴鍙戜汉**锛屾寜涓嬮潰涓夋鏍搞��
+
+### 绗� 1 姝ワ細缁撴瀯榻愪笉榻�
+
+```powershell
+# 澶囦唤閲岀殑 CREATE TABLE 鏉℃暟
+(Select-String -Path $out -Pattern '^CREATE TABLE' -Encoding UTF8).Count
+
+# 搴撻噷瀹為檯琛ㄦ暟
+& 'D:\mysql\mysql-5.7.41-winx64\bin\mysql.exe' --host=127.0.0.1 --port=3308 --user=root --password=123456 `
+ -N -B -e "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema='traffic_audit';"
+```
+
+涓や釜鏁扮浉绛夛紙鏈簱鏄� **29**锛夋墠绠楃粨鏋勯綈銆傞『甯︾‘璁ゆ病鏈� mysqldump 瀵间笉鍑烘潵鐨勫璞★細
+
+```powershell
+& 'D:\mysql\mysql-5.7.41-winx64\bin\mysql.exe' --host=127.0.0.1 --port=3308 --user=root --password=123456 -e `
+ "SELECT (SELECT COUNT(*) FROM information_schema.views WHERE table_schema='traffic_audit') 瑙嗗浘,
+ (SELECT COUNT(*) FROM information_schema.routines WHERE routine_schema='traffic_audit') 瀛樺偍杩囩▼,
+ (SELECT COUNT(*) FROM information_schema.triggers WHERE trigger_schema='traffic_audit') 瑙﹀彂鍣�,
+ (SELECT COUNT(*) FROM information_schema.events WHERE event_schema='traffic_audit') 浜嬩欢;"
+```
+
+### 绗� 2銆�3 姝ワ細杩樺師鍒颁复鏃跺簱锛屾瘮琛屾暟 + 姣斿唴瀹�
+
+鍘熺悊锛氭妸澶囦唤閲岀殑搴撳悕鎹㈡垚 `traffic_audit_vfy` 瀵艰繘涓存椂搴擄紝涓庢簮搴撻�愯〃姣斿锛屾瘮瀹屽垹搴撱��
+
+```powershell
+$root = 'D:\鏂囨。\ChatGPT\traffic-audit'
+$vfySql = "$root\_tmp\_verify.sql"
+
+# 2.1 鎹㈠簱鍚嶏紙鐢� 28591 缂栫爜鍋氥�屾寜瀛楄妭鏇挎崲銆嶏紝涓嶄細鍔ㄥ潖涓枃锛�
+$enc = [System.Text.Encoding]::GetEncoding(28591)
+$s = $enc.GetString([System.IO.File]::ReadAllBytes($out))
+[System.IO.File]::WriteAllBytes($vfySql, $enc.GetBytes($s.Replace('`traffic_audit`', '`traffic_audit_vfy`')))
+
+# 2.2 瀵煎叆涓存椂搴擄紙cmd 鐨� < 閲嶅畾鍚戞渶鐪佷簨锛�
+$mysql = 'C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe'
+& $mysql --host=127.0.0.1 --port=3308 --user=root --password=123456 -e 'DROP DATABASE IF EXISTS traffic_audit_vfy;'
+cmd /c "`"$mysql`" --host=127.0.0.1 --port=3308 --user=root --password=123456 --default-character-set=utf8mb4 < `"$vfySql`""
+
+# 2.3 閫愯〃姣旇鏁�
+$tables = & $mysql --host=127.0.0.1 --port=3308 --user=root --password=123456 -N -B `
+ -e "SELECT table_name FROM information_schema.tables WHERE table_schema='traffic_audit' ORDER BY table_name;"
+& $mysql --host=127.0.0.1 --port=3308 --user=root --password=123456 -B -e (($tables |
+ ForEach-Object { "SELECT '$_' 琛�,(SELECT COUNT(*) FROM traffic_audit.$_) 婧愬簱,(SELECT COUNT(*) FROM traffic_audit_vfy.$_) 澶囦唤" }) -join ' UNION ALL ')
+```
+
+閫愯〃涓ゅ垪鏁板瓧涓�鑷� 鈫� 琛屾暟榻愩��
+
+**鏈�寮虹殑涓�姝ワ細姣斿唴瀹癸紙SHA256锛�**銆備袱寮犺〃琛屾暟涓�鏍枫�佸唴瀹硅鏀硅繃锛屼笂闈㈢殑鏂规硶鐪嬩笉鍑烘潵锛岃繖涓柟娉曡兘锛�
+
+```powershell
+$md = 'C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe'
+$common = '--host=127.0.0.1','--port=3308','--user=root','--password=123456','--default-character-set=utf8mb4',
+ '--single-transaction','--no-create-info','--skip-comments','--order-by-primary','--hex-blob','--compact'
+& $md @common traffic_audit "--result-file=$root\_tmp\_cmp_src.sql"
+& $md @common traffic_audit_vfy "--result-file=$root\_tmp\_cmp_vfy.sql"
+(Get-FileHash "$root\_tmp\_cmp_src.sql").Hash -eq (Get-FileHash "$root\_tmp\_cmp_vfy.sql").Hash # True 鎵嶇畻鍏�
+```
+
+- `--order-by-primary`锛氭寜涓婚敭鎺掑簭瀵煎嚭锛屼繚璇佷袱浠芥枃浠惰椤哄簭涓�鑷达紝鎵嶈兘鐩存帴姣斿搱甯岋紱鏈簱 29 寮犺〃**閮芥湁涓婚敭**銆�
+- 缁撴灉 `True` 鈫� 閫愯鍐呭瀹屽叏涓�鑷淬��
+
+**鏀跺熬**锛堥獙璇佸畬鎶婁复鏃跺簱鍒犳帀锛屽埆鐣欏湪鏈嶅姟鍣ㄤ笂锛夛細
+
+```powershell
+& 'C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe' --host=127.0.0.1 --port=3308 --user=root --password=123456 `
+ -e 'DROP DATABASE IF EXISTS traffic_audit_vfy;'
+```
+
+---
+
+## 3. 杩樺師锛堟妸澶囦唤瑁呭埌杩欏彴鎴栧彟涓�鍙版満鍣級
+
+```powershell
+cmd /c "`"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe`" --host=127.0.0.1 --port=3308 --user=root --password=123456 --default-character-set=utf8mb4 < `"D:\backup\traffic_audit_full_20260921_103457.sql`""
+```
+
+- 澶囦唤閲屽惈 `CREATE DATABASE`锛�**绌虹幆澧�**鐩存帴璺戝嵆鍙��
+- 鐩爣搴�**宸叉湁鍚屽悕搴�**鏃讹細`CREATE DATABASE IF NOT EXISTS` 涓嶆姤閿欙紝浣嗗悗闈� `CREATE TABLE` 浼氬洜琛ㄥ凡瀛樺湪鑰屽け璐ャ�佸崐閫斾腑鏂�傝涔堝厛 `DROP DATABASE traffic_audit;`锛岃涔堝厛纭鏄┖鐜銆�
+- **涓嶈**鎷� `docs/init.sql` 鍘昏ˉ宸叉湁鏁版嵁鐨勫簱锛氬畠甯� `DROP TABLE`锛屾槸鐮村潖鎬х殑銆�
+
+---
+
+## 4. 甯歌闂
+
+| 鐜拌薄 | 鍘熷洜 / 澶勭悊 |
+| --- | --- |
+| `mysqldump: [Warning] Using a password on the command line interface can be insecure.` | 鍙槸璀﹀憡锛屼笉褰卞搷缁撴灉锛涙兂娑堟帀鍙敤 `--defaults-extra-file` 鏀惧瘑鐮� |
+| 瀵煎叆鎶� `Table 'xxx' already exists` | 鐩爣搴撲笉鏄┖鐨勶紙瑙佷笂锛� |
+| 瀵煎叆鎶� `Unknown database` | 鐢� `--databases` 瀵煎嚭鐨勫浠戒笉浼氬嚭鐜帮紱濡傛灉鍙浜嗚〃锛堟病甯﹀缓搴撹鍙ワ級锛岃鑷繁鍏� `CREATE DATABASE traffic_audit` |
+| 涓枃鍙橀棶鍙�/涔辩爜 | 瀵煎嚭銆佸鍏ヤ袱澶撮兘瑕� `--default-character-set=utf8mb4` |
+| 澶囦唤鏂囦欢鍙湁鍑犵櫨 KB | 鍗佹湁鍏節鏄� `--databases` 鍐欓敊搴撳悕鎴栬繛鎺ュけ璐ワ紝鐪嬮��鍑虹爜鍜屾枃浠舵湯灏炬湁娌℃湁 `Dump completed` |
+| 鎯冲彧澶囦唤涓�寮犺〃 | `mysqldump ... traffic_audit 琛ㄥ悕 --result-file=...` |
+
+---
+
+## 5. 鏈瀹炴祴璁板綍锛�2026-09-21锛�
+
+- 澶囦唤鏂囦欢锛歚_缁欏悓浜媉2026-09-21\traffic_audit_full_20260921.sql`锛�52,030,977 瀛楄妭锛堢害 49.6 MB锛夛紝瀵煎嚭鏃堕棿 10:34:57銆�
+- SHA256锛歚832B518F45313420...`锛堝畬鏁村�艰 `_缁欏悓浜媉2026-09-21\杩樺師璇存槑_2026-09-21.md`锛夈��
+- 楠岃瘉缁撴灉锛�29/29 寮犺〃缁撴瀯榻愩�佽鏁颁竴鑷达紙鍚堣 128,962 琛岋級銆乣CHECKSUM TABLE` 涓�鑷淬�侀�愯 SHA256 涓�鑷淬��
+- **缁忛獙鏁欒**锛�10:17 鍏堝浜嗕竴浠斤紝10:34 澶嶆煡鍙戠幇婧愬簱宸茶鏀瑰姩锛坄investment_system` 148鈫�277銆乣audit_result` 3393鈫�3421銆乣import_batch` 417鈫�419锛夛紝鏃у浠藉凡杩囨湡銆�
+ 鈫� **澶囦唤鏄煇涓�鏃跺埢鐨勫揩鐓�**锛涘彧瑕佷箣鍚庤繕鍦ㄥ線绯荤粺閲屽鏁版嵁銆佽窇瀹℃牳锛屽浠藉氨鏃т簡銆備氦浠�/褰掓。鍓�**鏈�鍚庡啀瀵间竴娆�**銆�
+
+> 鍒ゆ柇澶囦唤鏂版棫鐨勬渶蹇姙娉曪細鐪嬫枃浠跺悕閲岀殑鏃堕棿鎴筹紝涓� `import_batch` 鐨� `MAX(created_at)` 姣斾竴涓嬨��
--
Gitblit v1.9.1