Files
youlegames/codes/agent/dbbackup/mysql/1.cmd
2026-03-15 01:27:05 +08:00

162 lines
5.2 KiB
Batchfile

exit
echo off
echo %date% %time%
:init
::: mysql导出工具文件全名
set ExportBinary="%~dp0mysqldump.exe"
::: mysql导入工具文件全名
set ImportBinary="%~dp0mysql.exe"
::: 游戏基础信息服务器配置
set Hostname_base="rm-bp16sbf0l9cavp7h9o.mysql.rds.aliyuncs.com"
set Hostport_base="3306"
set Username_base="develop"
set Password_base="develop123!@#"
set Database_base="youle_games"
set ExportTable_base=player
::: 游戏战绩服务器配置
set Hostname_record="rm-bp16sbf0l9cavp7h9o.mysql.rds.aliyuncs.com"
set Hostport_record="3306"
set Username_record="develop"
set Password_record="develop123!@#"
set Database_record="youle_games"
set ExportTable_record=player_grade,gold_account
::: 后台服务器配置
set Hostname_owner="rm-wz978o3vha6z26m5no.mysql.rds.aliyuncs.com"
set Hostport_owner="3306"
set Username_owner="yunuser"
set Password_owner="Yun_User"
set Database_owner="game_db"
set Database_owner_temp="game_db_temp"
::: 临时服务器配置
set Hostname_temp="localhost"
set Hostport_temp="3309"
set Username_temp="root"
set Password_temp="root_root"
set Database_temp="game_db"
set Database_temp_temp="game_db_temp"
::exit
::: 是否需要保存到临时库
set NeedSaveToTemp=0
::: 要执行的脚本
set ExecuteCommand_1="call cp_SynchronizeSettle();"
::: 保证脚本输出目录一定存在
if not exist "%~dp0script" md "%~dp0script"
::: 要导出的脚本文件名的前缀(后面还会加上表名)
set ScriptnamePrefix=%~dp0script\%date:~0,4%%date:~5,2%%date:~8,2%
::: 判断脚本是否存在, 存在则删除
::if exist %Scriptname% del %Scriptname%
for %%t in (player, sales_user, sales_sellbill, sales_transferbill, sales_buybill) do (
::: 判断脚本是否存在, 存在则删除
if exist "%~dp0script\%%t.sql" del "%~dp0script\%%t.sql"
::: 循环导出脚本
%ExportBinary% --default-character-set=utf8 --opt -h%Hostname_owner% -P%Hostport_owner% -u%Username_owner% -p%Password_owner% %Database_owner% %%t > "%~dp0script\%%t.sql"
if %errorlevel% neq 0 goto exit
::: 循环导入脚本
%ImportBinary% --default-character-set=utf8 -h%Hostname_temp% -P%Hostport_temp% -u%Username_temp% -p%Password_temp% %Database_temp% < "%~dp0script\%%t.sql"
if %errorlevel% neq 0 goto exit
)
exit
:export
echo 开始导出游戏基础信息脚本
for %%t in (%ExportTable_base%) do (
::: 判断脚本是否存在, 存在则删除
if exist "%ScriptnamePrefix%_base_%%t.sql" del "%ScriptnamePrefix%_base_%%t.sql"
::: 循环导出脚本
echo 导出表%%t到%ScriptnamePrefix%_base_%%t.sql
%ExportBinary% --default-character-set=utf8 --opt -h%Hostname_base% -P%Hostport_base% -u%Username_base% -p%Password_base% %Database_base% %%t > "%ScriptnamePrefix%_base_%%t.sql"
if %errorlevel% neq 0 goto exit
)
echo 游戏基础信息脚本导出完成
echo 开始导出游戏战绩脚本
for %%t in (%ExportTable_record%) do (
::: 判断脚本是否存在, 存在则删除
if exist "%ScriptnamePrefix%_record_%%t.sql" del "%ScriptnamePrefix%_record_%%t.sql"
::: 循环导出脚本
echo 导出表%%t到%ScriptnamePrefix%_record_%%t.sql
%ExportBinary% --default-character-set=utf8 --opt -h%Hostname_record% -P%Hostport_record% -u%Username_record% -p%Password_record% %Database_record% %%t > "%ScriptnamePrefix%_record_%%t.sql"
if %errorlevel% neq 0 goto exit
)
echo 游戏战绩脚本导出完成
:import
echo 开始导入游戏基础信息脚本
for %%t in (%ExportTable_base%) do (
echo%ScriptnamePrefix%_base_%%t.sql导入表%%t
%ImportBinary% --default-character-set=utf8 -h%Hostname_owner% -P%Hostport_owner% -u%Username_owner% -p%Password_owner% %Database_owner_temp% < "%ScriptnamePrefix%_base_%%t.sql"
if %errorlevel% neq 0 goto exit
)
echo 游戏基础信息脚本导入完成
echo 开始导入游戏战绩脚本
for %%t in (%ExportTable_record%) do (
echo%ScriptnamePrefix%_record_%%t.sql导入表%%t
%ImportBinary% --default-character-set=utf8 -h%Hostname_owner% -P%Hostport_owner% -u%Username_owner% -p%Password_owner% %Database_owner_temp% < "%ScriptnamePrefix%_record_%%t.sql"
if %errorlevel% neq 0 goto exit
)
echo 游戏战绩脚本导入完成
:synchronize
echo 执行脚本%ExecuteCommand_1%
%ImportBinary% -h%Hostname_owner% -P%Hostport_owner% -u%Username_owner% -p%Password_owner% -e%ExecuteCommand_1% %Database_owner%
if %errorlevel% neq 0 goto exit
echo 脚本执行完成
if %NeedSaveToTemp% equ 0 goto convertdata
:savetotemp
echo 开始导入游戏基础信息脚本到临时库
for %%t in (%ExportTable_base%) do (
echo%ScriptnamePrefix%_base_%%t.sql导入表%%t
%ImportBinary% --default-character-set=utf8 -h%Hostname_temp% -P%Hostport_temp% -u%Username_temp% -p%Password_temp% %Database_temp_temp% < "%ScriptnamePrefix%_base_%%t.sql"
if %errorlevel% neq 0 goto exit
)
echo 游戏基础信息脚本导入完成
echo 开始导入游戏战绩脚本到临时库
for %%t in (%ExportTable_record%) do (
echo%ScriptnamePrefix%_record_%%t.sql导入表%%t
%ImportBinary% --default-character-set=utf8 -h%Hostname_temp% -P%Hostport_temp% -u%Username_temp% -p%Password_temp% %Database_temp_temp% < "%ScriptnamePrefix%_record_%%t.sql"
if %errorlevel% neq 0 goto exit
)
echo 游戏战绩脚本导入完成
echo 执行同步脚本
echo 执行脚本%ExecuteCommand_1%
%ImportBinary% -h%Hostname_temp% -P%Hostport_temp% -u%Username_temp% -p%Password_temp% -e%ExecuteCommand_1% %Database_temp%
if %errorlevel% neq 0 goto exit
echo 脚本执行完成
:convertdata
::"%~dp0MySqlSynchronize.exe"
:clean
echo 删除脚本文件
for %%t in (%ExportTable_base%) do del "%ScriptnamePrefix%_base_%%t.sql"
for %%t in (%ExportTable_record%) do del "%ScriptnamePrefix%_record_%%t.sql"
echo 脚本删除完成
:exit
echo %date% %time%
echo on
pause