2025-11-05 11:52:11 分类:IT科技类资讯 阅读(198) 1.概述 本文通过 XtraBackup 备份单个数据库,过X个库然后恢复到另一个实例,份恢复单用于快速迁移大数据量,过X个库 使用的份恢复单软件版本为:
软件名
版本
MySQL
mysql-5.7.39-linux-glibc2.12-x86_64.tar.gz
XtraBackup
percona-xtrabackup-24-2.4.26-1.el7.x86_64.rpm
在2台主机分别安装一个MySQL实例:
主机
IP地址
端口号
MySQL-A
192.168.100.10
5508
MySQL-B
192.168.100.11
5508
2.在MySQL-A初始化数据 通过sysbench 初始化数据,10张表,过X个库每张表10000条记录
复制shell> sysbench src/lua/oltp_read_write.lua --mysql-db=sysbench --mysql-host=192.168.100.10 --mysql-port=5508 --mysql-user=greatsql --mysql-password=greatsql --tables=10 --table_size=10000 --report-interval=2 --threads=50 --time=1000 --mysql_storage_engine=innodb --partitions=3 --skip_trx=0 --mysql-ignore-errors=all prepare1.
3.通过 xtrabackup 备份 MySQL-A 的份恢复单 sysbench 库 复制shell> innobackupex --defaults-file=/mysql/conf/my5508.cnf --user greatsql --password greatsql -H127.0.0.1 -P5508 --databases sysbench /mysql/dbbackup
...
...
221229 10:11:17
Executing UNLOCK TABLES
221229 10:11:17
All tables unlocked
221229 10:11:17 [00] Copying ib_buffer_pool to /mysql/dbbackup/2022-12-29_10-11-07/
ib_buffer_pool
221229 10:11:17 [00]
...done
221229 10:11:17 Backup created in directory /mysql/dbbackup/2022-12-29_10-11-07/MySQL binlog position: filename binlog.000005, position 190, GTID of the last change 3e362a47-8683-11ed-92e1-00163ed294ac:1-87221229 10:11:17 [00] Writing /mysql/dbbackup/2022-12-29_10-11-07/backup-my.cnf221229 10:11:17 [00]
...done
221229 10:11:17 [00] Writing /mysql/dbbackup/2022-12-29_10-11-07/
xtrabackup_info
221229 10:11:17 [00]
...done
xtrabackup: Transaction log of lsn (1123405728) to (1123405737)
was copied.
221229 10:11:17 completed OK!1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.
4.备份 MySQL-A sysbench 库的表结构 复制shell> /mysql/svr/mysql/bin/mysqldump -ugreatsql -pgreatsql -h127.0.0.1 -P5508 --single-transaction --set-gtid-purged=OFF --master-data=2 -d -B sysbench > sysbench.sqlmysqldump: [Warning] Using a password on the command line interface can be insecure.1.2.
5.将备份的 sysbench 库的表结构导入 MySQL-B 复制shell> /mysql/svr/mysql/bin/mysql -ugreatsql -pgreatsql -h192.168.100.11 -P5508 < sysbench.sqlmysql: [Warning] Using a password on the command line interface can be insecure.1.2.
6.登录 MySQL-B 生成丢弃/导入表空间的亿华云 SQL 语句 复制# 生成丢弃表空间的SQL
mysql> select concat(alter table ,table_schema,.,TABLE_NAME , discard tablespace, ;) from information_schema.tables where TABLE_SCHEMA = sysbench into outfile /tmp/discard.sql;Query OK, 10 rows affected (0.00 sec)
# 生成导入表空间的SQL
mysql> select concat(alter table ,table_schema,.,TABLE_NAME , import tablespace, ;) from information_schema.tables where TABLE_SCHEMA = sysbench into outfile /tmp/import.sql;Query OK, 10 rows affected (0.01 sec)1.2.3.4.5.6.
7.登录 MySQL-B 执行丢弃表空间的 SQL 语句 复制mysql> source /tmp/discard.sql; 1.
8.查看 MySQL-B 底层数据文件 复制shell> ll -h /mysql/dbdata/data5508/data/sysbench/total 124
K
-rw-r----- 1 mysql mysql 67 Dec 29 10:25 db.opt-rw-r----- 1 mysql mysql 8.5K Dec 29 10:25 sbtest10.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:25 sbtest1.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:25 sbtest2.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:26 sbtest3.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:26 sbtest4.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:26 sbtest5.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:26 sbtest6.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:26 sbtest7.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:26 sbtest8.frm-rw-r----- 1 mysql mysql 8.5K Dec 29 10:26 sbtest9.frm1.2.3.4.5.6.7.8.9.10.11.12.13.
可以看到ibd文件已被丢弃
9.prepare 备份文件 注意这里需要加 --export 选项,它允许导出单个表以进行导入到另一个服务器
复制shell> innobackupex --apply-log --export /mysql/dbbackup/2022-12-29_10-11-07xtrabackup: recognized server arguments: --innodb_checksum_algorithm=crc32 --innodb_log_checksum_algorithm=strict_crc32 --innodb_data_file_path=ibdata1:12M:autoextend --innodb_log_files_in_group=4 --innodb_log_file_size=33554432 --innodb_fast_checksum=0 --innodb_page_size=16384 --innodb_log_block_size=512 --innodb_undo_directory=/mysql/dbdata/data5508/log --innodb_undo_tablespaces=0 --server-id=2 --redo-log-version=1 xtrabackup: recognized client arguments:221229 10:56:58 innobackupex: Starting the apply-
log operation
IMPORTANT: Please check that the apply-
log run completes successfully.
At the end of a successful apply-
log run innobackupex
prints "completed OK!"
.
...
...
xtrabackup: starting shutdown with innodb_fast_shutdown = 0InnoDB:
FTS optimize thread exiting.
InnoDB:
Starting shutdown...
InnoDB: Shutdown completed; log sequence number 1123519528221229 10:57:13 completed OK!1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.
10.查看备份文件目录 复制shell> ll -h /mysql/dbbackup/2022-12-29_10-11-07/sysbench/total 271
M
-rw-r----- 1 root root 67 Dec 29 10:11 db.opt-rw-r----- 1 root root 8.5K Dec 29 10:11 sbtest10.frm-rw-r--r-- 1 root root 578 Dec 29 10:57 sbtest10#P#p0.cfg-rw-r----- 1 root root 16K Dec 29 10:57 sbtest10#P#p0.exp-rw-r----- 1 root root 9.0M Dec 29 10:11 sbtest10#P#p0.ibd-rw-r--r-- 1 root root 578 Dec 29 10:57 sbtest10#P#p1.cfg-rw-r----- 1 root root 16K Dec 29 10:57 sbtest10#P#p1.exp-rw-r----- 1 root root 9.0M Dec 29 10:11 sbtest10#P#p1.ibd-rw-r--r-- 1 root root 578 Dec 29 10:57 sbtest10#P#p2.cfg...1.2.3.4.5.6.7.8.9.10.11.12.
可以看到prepare备份文件后,过X个库多了 cfg,份恢复单exp结尾的文件
11.传输备份文件 将准备好的备份文件中后缀名为cfg,ibd,过X个库 exp的站群服务器 份恢复单文件传输到MySQL-B实例的sysbench库下
复制shell> scp -r /mysql/dbbackup/2022-12-29_10-11-07/sysbench/*.ibd /mysql/dbbackup/2022-12-29_10-11-07/sysbench/*.cfg /mysql/dbbackup/2022-12-29_10-11-07/sysbench/*.exp root@192.168.100.11:/mysql/dbdata/data5508/data/sysbench/1.
12.修改传输过来的文件的属主属组 复制shell> chown -R mysql.mysql /mysql 1.
13.登录 MySQL-B 执行导入表空间的 SQL 语句 复制mysql> source /tmp/import.sql; 1.
14.登录 MySQL-B 检查一张表是否正常 复制mysql> select count(*) from sysbench.sbtest1;+----------+| count(*) |+----------+| 10000 |+----------+1 row in set (0.01 sec)1.2.3.4.5.6.7.
15.使用 sysbench 进行压测 MySQL-B 复制shell> sysbench src/lua/oltp_read_write.lua --mysql-db=sysbench --mysql-host=192.168.100.11 --mysql-port=5508 --mysql-user=greatsql --mysql-password=greatsql --tables=10 --table_size=10000 --report-interval=2 --threads=50 --time=300 --mysql_storage_engine=innodb --partitions=3 --skip_trx=0 --mysql-ignore-errors=all runsysbench 1.1.0-df89d34 (using bundled LuaJIT 2.1.0-beta3)
...
...
SQL statistics: queries performed: read: 1702400 write: 486400 other: 243200 total: 2432000 transactions: 121600 (405.25 per sec.) queries: 2432000 (8105.04 per sec.) ignored errors: 0 (0.00 per sec.) reconnects: 0 (0.00 per sec.)Throughput: events/s (eps): 405.2522 time elapsed: 300.0601
s
total number of events: 121600Latency (ms): min: 9.04 avg: 123.36 max: 1512.19 95th percentile: 590.56 sum: 15000942.35Threads fairness: events (avg/stddev): 2432.0000/58.48 execution time (avg/stddev): 300.0188/0.011.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.
压测正常
16.重启MySQL-B并查询一张表 复制mysql> shutdown;shell> /mysql/svr/mysql/bin/mysqld_safe --defaults-file=/mysql/conf/my5508.cnf --user=mysql &mysql> select count(*) from sysbench.sbtest2;+----------+| count(*) |+----------+| 10000 |+----------+1 row in set (0.04 sec)1.2.3.4.5.6.7.8.9.
总结 通过上述方法可以快速备份恢复大数据量的库,也可以同时指定多个库,过X个库单张表或多张表进行恢复。份恢复单可参考官方文档 Partial Backups - Percona XtraBackup。企商汇 过X个库
份恢复单
上一篇5s升级至9.3.2系统后的全面优化与改进(全新升级,系统体验再进一步) 下一篇很遗憾,由于 Ubuntu 平台市场占比不高,没有微信客户端可用。但是,网页版也是个不错的选择。在 Ubuntu 15.10 中,通过 Chromium 浏览器登录和使用微信,都非常方便。软件名称:chromium浏览器 v27.0.1444软件大小:26.79MB更新时间:2013-03-191、百度“微信网页版”,选择那个中文介绍的网址登录。2、进入微信页面,显示一个二维码,提示用手机微信“扫一扫”功能扫描登录。3、打开手机微信,点按右上角的“+”号——扫一扫,成功后点按“登录”确认。电脑上的网页版微信即登录成功。4、左侧上方显示三个菜单按钮,分别是最近联系人、阅读和通讯录。默认为最近联系人,点击联系人中的一个,右侧会话窗口激活,即可发起会话。5、点击“阅读”按钮,即可阅读热门微信公众号的文章。6、紧挨着阅读的按钮是通讯录,点击可以查看手机微信上的所有联系人,点击某个联系人姓名即可开始会话。7、右侧会话窗口还提供截图和发文件功能按钮。截图估计用不了,因为需要插件。发文件倒是很正常。虽然没有语音和视频会话功能,不过对于姥姥不疼舅舅不爱的桌面 Linux 平台来说,这就不错了。相关推荐: Ubuntu中Chromium安装Flash的方法
相关推荐 CPUN2940(全面解析CPUN2940的特点、性能和应用领域) 九阳智能电饭煲的性创新——提升生活品质的必备厨房利器(高科技智能家电引领饮食健康新趋势) 华为V8处理器(探索华为V8处理器的创新科技与无限潜力) 佳能200D单反相机的优点和特点(一款适合入门级摄影爱好者的佳能单反相机) apt-get和apt-cache是Ubuntu Linux中的命令行下的包管理工具。 apt-get的GUI版本是Synaptic包管理器。该文中我们会展示apt-get和apt-cache命令的15个不同例子。示例:1 列出所有可用包复制代码代码如下:linuxtechi@localhost:~$ apt-cache pkgnames account-plugin-yahoojp ceph-fuse dvd+rw-tools e3 gnome-commander-data grub-gfxpayload-lists gweled .......................................示例:2 用关键字搜索包这个命令在你不确定包名时很有用,只要在apt-cache(LCTT 译注:这里原文是apt-get,应为笔误)后面输入与包相关的关键字即可。复制代码代码如下:linuxtechi@localhost:~$ apt-cache search web server apache2 - Apache HTTP Server apache2-bin - Apache HTTP Server (binary files and modules) apache2-data - Apache HTTP Server (common files) apache2-dbg - Apache debugging symbols apache2-dev - Apache HTTP Server (development headers) apache2-doc - Apache HTTP Server (on-site documentation) apache2-utils - Apache HTTP Server (utility programs for web servers) ......................................................................注意: 假如你安装了“apt-file”包,我们就可以像下面那样用配置文件搜索包。复制代码代码如下:linuxtechi@localhost:~$ apt-file search nagios.cfg ganglia-nagios-bridge: /usr/share/doc/ganglia-nagios-bridge/nagios.cfg nagios3-common: /etc/nagios3/nagios.cfg nagios3-common: /usr/share/doc/nagios3-common/examples/nagios.cfg.gz pnp4nagios-bin: /etc/pnp4nagios/nagios.cfg pnp4nagios-bin: /usr/share/doc/pnp4nagios/examples/nagios.cfg示例:3 显示特定包的基本信息复制代码代码如下:linuxtechi@localhost:~$ apt-cache show postfix Package: postfix Priority: optional Section: mail Installed-Size: 3524 Maintainer: LaMont Jones Architecture: amd64 Version: 2.11.1-1 Replaces: mail-transport-agent Provides: default-mta, mail-transport-agent .....................................................示例:4 列出包的依赖复制代码代码如下:linuxtechi@localhost:~$ apt-cache depends postfix postfix Depends: libc6 Depends: libdb5.3 Depends: libsasl2-2 Depends: libsqlite3-0 Depends: libssl1.0.0 |Depends: debconf Depends: cdebconf debconf Depends: netbase Depends: adduser Depends: dpkg ............................................示例:5 使用apt-cache显示缓存统计复制代码代码如下:linuxtechi@localhost:~$ apt-cache stats Total package names: 60877 (1,218 k) Total package structures: 102824 (5,758 k) Normal packages: 71285 Pure virtual packages: 1102 Single virtual packages: 9151 Mixed virtual packages: 1827 Missing: 19459 Total distinct versions: 74913 (5,394 k) Total distinct descriptions: 93792 (2,251 k) Total dependencies: 573443 (16.1 M) Total ver/file relations: 78007 (1,872 k) Total Desc/File relations: 93792 (2,251 k) Total Provides mappings: 16583 (332 k) Total globbed strings: 171 (2,263 ) Total dependency version space: 2,665 k Total slack space: 37.3 k Total space accounted for: 29.5 M示例:6 使用 “apt-get update” 更新仓库使用命令“apt-get update”, 我们可以重新从源仓库中同步文件索引。包的索引从“/etc/apt/sources.list”中检索。复制代码代码如下:linuxtechi@localhost:~$ sudo apt-get update Ign http://extras.ubuntu.com utopic InRelease Hit http://extras.ubuntu.com utopic Release.gpg Hit http://extras.ubuntu.com utopic Release Hit http://extras.ubuntu.com utopic/main Sources Hit http://extras.ubuntu.com utopic/main amd64 Packages Hit http://extras.ubuntu.com utopic/main i386 Packages Ign http://in.archive.ubuntu.com utopic InRelease Ign http://in.archive.ubuntu.com utopic-updates InRelease Ign http://in.archive.ubuntu.com utopic-backports InRelease ................................................................示例:7 使用apt-get安装包复制代码代码如下:linuxtechi@localhost:~$ sudo apt-get install icinga上面的命令会安装叫“icinga”的包。示例:8 升级所有已安装的包复制代码代码如下:linuxtechi@localhost:~$ sudo apt-get upgrade示例:9 更新特定的包在apt-get命令中的“install”选项后面接上“-only-upgrade”用来更新一个特定的包,如下所示:复制代码代码如下:linuxtechi@localhost:~$ sudo apt-get install filezilla --only-upgrade示例:10 使用apt-get卸载包复制代码代码如下:linuxtechi@localhost:~$ sudo apt-get remove skype上面的命令只会删除skype包,假如你想要删除它的配置文件,在apt-get命令中使用“purge”选项。如下所示:复制代码代码如下:linuxtechi@localhost:~$ sudo apt-get purge skype我们可以结合使用上面的两个命令:复制代码代码如下:linuxtechi@localhost:~$ sudo apt-get remove --purge skype示例:11 在当前的目录中下载包复制代码代码如下:linuxtechi@localhost:~$ sudo apt-get download icinga Get:1 http://in.archive.ubuntu.com/ubuntu/ utopic/universe icinga amd64 1.11.6-1build1 [1,474 B] Fetched 1,474 B in 1s (1,363 B/s)上面的目录会把icinga包下载到你的当前工作目录。示例:12 清理本地包占用的磁盘空间复制代码代码如下:linuxtechi@localhost:~$ sudo apt-get clean上面的命令会清空apt-get所下载的包占用的磁盘空间。我们也可以使用“autoclean”选项来代替“clean”,两者之间主要的区别是autoclean清理不再使用且没用的下载。复制代码代码如下:linuxtechi@localhost:~$ sudo apt-get autoclean Reading package lists... Done Building dependency tree Reading state information... Done示例:13 使用“autoremove”删除包当在apt-get命令中使用“autoremove”时,它会删除为了满足依赖而安装且现在没用的包。复制代码代码如下: linuxtechi@localhost:~$ sudo apt-get autoremove icinga示例:14 显示包的更新日志复制代码代码如下: linuxtechi@localhost:~$ sudo apt-get changelog apache2 Get:1 Changelog for apache2 (http://changelogs.ubuntu.com/changelogs/pool/main/a/apache2/apache2_2.4.10-1ubuntu1/changelog) [195 kB] Fetched 195 kB in 3s (60.9 kB/s)上面的命令会下载apache2的更新日志,并在你屏幕上分页显示。示例:15 使用 “check” 选项显示损坏的依赖关系复制代码代码如下:linuxtechi@localhost:~$ sudo apt-get check Reading package lists... Done Building dependency tree Reading state information... Done 戴尔P62G笔记本电脑的性能和功能(一款性价比高、功能强大的笔记本电脑) 牧马人mini(追求自由的城市驭马者) 奥林巴斯XZ-2(了解奥林巴斯XZ-2的强大功能和出色表现)