这里写目录标题
- 1.数据库全表原始数据.ibd文件备份为.sql文件
- 1.1理解date含义
- 2.备份原始表中部分表 --改进版
- 2.0实现逻辑备份语法
- 2.1 backPartTable表内容
- 2.2备份运行
- 2.3实操代码
- 3.如何将备份的文件进行压缩处理??执行压缩文件
1.数据库全表原始数据.ibd文件备份为.sql文件
中心思想找到源文件(.ibd)备份到目的地成.sql文件
@echo off
rem 设置 MySQL 参数
rem mysql安装地址
set mysql_home=C:\Program Files\MySQL\MySQL Server 8.0
rem mysql存放表 .ibd 文件 其实就是mysql表存放位置
set mysql_data=C:\ProgramData\MySQL\MySQL Server 8.0\Data
rem mysql数据库连接地址
set dbhost=localhost
set dbport=3306
set dbuser=root
set dbpass=123456
rem 需要备份的数据库名字
set database_name=book
rem 备份到目的地目录
set backup_dir=E:\testBackData
rem 备份对应导出文件名
set backup_name=%Date:~0,4%%Date:~5,2%%Date:~8,2%
set date=%Date:~0,4%-%Date:~5,2%-%Date:~8,2%
rem 更改命令提示符代码页为 UTF-8 中文
chcp 65001 > nul
echo 开始备份时间:%date%-%time%
rem 进入 MySQL 安装目录
cd %mysql_home%\bin
rem 使用 mysqldump 命令备份数据库
.\mysqldump.exe -h%dbhost% -P%dbport% -u %dbuser% -p%dbpass% %database_name% > %backup_dir%\%backup_name%.sql
rem 复制 .ibd 文件到备份目的地目录
xcopy /s %mysql_data%\%database_name% %backup_dir%
rem 备份结束提示
echo Backup completed.
echo 备份完成时间:%date%-%time%
rem 提示
pause
1.1理解date含义
set date=%Date:~0,4%%Date:~5,2%%Date:~8,2%
这行代码是用来定义一个名为 date 的变量,其值是当前日期的年、月、日的组合。
%Date% 是一个系统预定义的环境变量,它存储了当前日期的字符串值,格式通常是 "yyyy/MM/dd" (例如:2023/08/23)。
:~0,4 表示从 %Date% 字符串的第0个位置开始截取,截取长度为4个字符,即提取出年份的部分(例如:2023)。
:~5,2 表示从 %Date% 字符串的第5个位置开始截取,截取长度为2个字符,即提取出月份的部分(例如:08)。
:~8,2 表示从 %Date% 字符串的第8个位置开始截取,截取长度为2个字符,即提取出日期的部分(例如:23)。
最后,通过将这三个截取结果进行拼接,就得到了一个形如 "yyyyMMdd" 的日期字符串,例如:20230823。这个字符串被赋值给变量 date 作为备份文件名的一部分
2.备份原始表中部分表 --改进版
1.比如备份 test1和test2 表
2.加载部分表
后续更新
2.0实现逻辑备份语法
说明: 备份的文件并非一定要求后缀名为.sql,例如后缀名为.txt的文件也是可以的。
mysqldump –u 用户名称 –h 主机名称 –p密码 待备份的数据库名称[tbname, [tbname...]]> 备份文件名称.sql
示范
set "definedDate=%date:~0,4%_%date:~5,2%_%date:~8,2%"
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqldump.exe" --opt -u root --password=123456 数据库名字 > C:\Users\Desktop\DataBak\定义名%definedDate%.sql
2.1 backPartTable表内容
2.2备份运行
2.3实操代码
@echo off
rem 设置 MySQL 参数
rem mysql安装地址
set mysql_home=C:\Program Files\MySQL\MySQL Server 8.0
rem mysql存放表 .ibd 文件
set mysql_data=C:\ProgramData\MySQL\MySQL Server 8.0\Data
rem mysql数据库连接地址
set dbhost=localhost
set dbport=3306
set dbuser=root
set dbpass=123456
rem 需要备份的数据库名字
set database_name=book
rem 备份到目的地目录
set backup_dir=E:\testBackData
rem 备份对应导出文件名
set backup_name=%Date:~0,4%%Date:~5,2%%Date:~8,2%
set date=%Date:~0,4%-%Date:~5,2%-%Date:~8,2%
rem 更改命令提示符代码页为 UTF-8
chcp 65001 > nul
echo 开始备份时间:%date%-%time%
rem 进入 MySQL 安装目录
cd %mysql_home%\bin
rem 使用 mysqldump 命令备份数据库
rem 备份部分数据表 每个表名独占一行
set backuptable_list_file=E:\testBackData\backPartTable.txt
for /f "tokens=* delims=" %%i in ('type %backuptable_list_file%') do (
echo backup %%i ...
mysqldump.exe -h%dbhost% -P%dbport% -u%dbuser% -p%dbpass% %database_name% %%i > %backup_dir%\%%i.sql
)
rem 备份结束提示
echo Backup completed.
echo 备份完成时间:%date%-%time%
rem 提示
pause
3.如何将备份的文件进行压缩处理??执行压缩文件
set mysql_home=C:\Program Files\MySQL\MySQL Server 8.0
set mysql_data=C:\ProgramData\MySQL\MySQL Server 8.0\Data
rem mysql数据库连接地址
set dbhost=localhost
set dbport=3306
set dbuser=root
set dbpass=123456
rem 需要备份的数据库名字
set database_name=book
rem 备份到目的地目录
set backup_dir=E:\testBackData
rem 备份对应导出文件名
set backup_name=%Date:~0,4%%Date:~5,2%%Date:~8,2%
set date=%Date:~0,4%-%Date:~5,2%-%Date:~8,2%
rem 更改命令提示符代码页为 UTF-8
chcp 65001 > nul
echo 开始备份时间:%date%-%time%
rem 进入 MySQL 安装目录
cd %mysql_home%\bin
mysqldump.exe --opt -u %dbuser% --password=%dbpass% %database_name% > %backup_dir%\table%date%.sql
rem 压缩文件
rem a:表示添加文件到存档中。
rem -t7z:指定压缩文件的格式为7z。
rem -mx1:设置压缩级别为最低。在7-Zip中,压缩级别从0到9,0表示无压缩,而9表示最高压缩。这里的-mx1表示使用最低的压缩级别,
rem 即压缩速度 最快但压缩比最低。
"C:\Program Files\7-Zip\7z.exe" a -t7z -mx1 %backup_dir%\table%date%.7z "%backup_dir%\table%date%.sql"
rem 删除备份sql文件 保留压缩文件 ---可选操作释放删除 不保留sql文件
del %backup_dir%\table%date%.sql
echo Backup completed.
echo 备份完成时间:%date%-%time%
pause