我正在运行5.5.60-MariaDB,我需要在服务器上上传一个DB。.sql文件位于SSD驱动器(本地)上,它包含大约7亿行,4列被索引。所有内容都包含在转储文件中。
我的问题是,它是正常的,它已经花了24小时,但仍然数据库是没有?服务器不忙做其他事情,有16个核心和125 GB的RAM。
我使用的命令是:
mysql -u root myDB < database_dump.sql我的配置文件如下:
[mysqld]
datadir=/home/ssd/mysql_datadir
tmpdir=/home/ssd/mysql_tmdir
socket=/var/lib/mysql/mysql.sock
innodb_buffer_pool_size=4GB
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
# include all files from the config directory
!includedir /etc/my.cnf.dtmp和data目录都位于同一个SSD磁盘上,sql转储也在同一个磁盘上。我不知道这是否是一个正常的时间期待,或者我应该改变我的设置,这是为什么我伸出手。要上传的数据库的引擎是InnoDB。
谢谢!
发布于 2019-08-15 13:55:40
如果您不确定在还原过程中发生了什么事情,以下是检查活动的几种方法:
使用顶层
从命令行运行top。它会告诉你现在在系统上发生了什么。然后,您可以通过按下MySQL并键入COMMAND=mysql来筛选列表以查找D4。
如果RAM和CPU使用率看起来相当低,这可能表明瓶颈是系统的IO是完成恢复过程中最慢的部分。在顶部的标题中,您将看到wa值,这是CPU等待I/O完成的时间。
您可以使用linux iostat命令更多地询问IO子系统。您可能遇到了IO瓶颈,但是,除非您计划定期这样做,否则这个导入任务将不会是典型的系统使用,因此不要太担心IO性能。您正在导入一个157 to的文件--这是大量的数据需要读取、插入和构建索引!
使用mysql登录到服务器。运行命令show processlist查看当前正在运行的查询的列表。在每次执行查询时,您都应该看到正在发生的插入和更改。
查看/home/ssd/mysql_datadir目录,看看在插入数据时物理数据库文件是否正在增长。这将每两秒钟显示一次文件大小。随着数据的输入,它们会增长得很好。
watch -n 2 ls -la /home/ssd/mysql_datadir/ibdata1将是数据库的数据。MySQL\MariaDB使用ib_logfile0和ib_logfile0来帮助确保在不干净的关闭之后确保数据一致性。
重新启动导入为时已晚,但将来您可以使用一个名为管道查看器的小实用程序来查看导入在备份文件中的位置。
pv database_dump.sql | mysql -u root myDB它会给你一个花哨的进度条,显示文件的读取率,并给出一个估计的完成时间。这只是测量文件的读取量,而不是MariaDB处理文件所需的时间。
我希望这能帮上忙!
https://dba.stackexchange.com/questions/245417
复制相似问题