我有两个数据库,一个大小为 170 MB,第二个为 15 MB,都具有 INNODB 表并innodb_buffer_pool_size设置为 8 MB。
我的查询现在响应良好,即在几毫秒内。如果我设置的innodb_buffer_pool_size比默认值多,对性能有什么影响吗?
我需要将不同的 MySQL 数据库从多个服务器复制到单个从服务器中。如何才能做到这一点?有没有办法定义多个主主机?
我已经下载.sql了我的数据库服务器的文件。它在D:我的 Windows 机器的驱动器中。
我想在我的这台机器上恢复备份。我用了:
mysql database -u root < backupfile.sql
Run Code Online (Sandbox Code Playgroud)
其中 database 是我在这台机器上的新数据库名称。我的困惑是我backupfile.sql在D:驱动器中,因此我猜有错误。
ERROR 1064 <42000>:You have an error in your SQL syntax;Check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql database -u root < backupfile.sql' at line 1.
Run Code Online (Sandbox Code Playgroud) mysql服务器系统变量差不多有277个。在这些变量中,有些变量是动态的,而很少是动态的。
我不明白只读变量背后的原因是什么。为什么mysql系统变量很少是只读的。如果他们使这些变量动态化将会发生什么。
只读变量有什么深层原因吗?
现在我们可以考虑:
我们还可以在http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html找到许多其他变量
当然,我知道我们不能像这样改变变量version。但许多其他变量log-bin都不是动态的。general_log对我来说,如果和是动态的就没有意义log_slow_queries。为什么 log-bin 不是动态的?同样,还有许多其他变量。
不久前,运行 MySQL Server 5.5.31 的 Windows 7 系统崩溃并损坏了 InnoDB 数据库。可用的每周备份并未涵盖在此期间创建的所有表,因此我将努力从数据中尽可能多地恢复。崩溃后,我将 MySQL 的整个数据文件夹复制到外部驱动器。我想以此作为我的救援尝试的起点。
在下面,我将描述我的(尚未令人信服的)救援尝试的步骤,并感谢您对如何改进它的任何评论或指导:
AUTOCOMMIT = 0如果插入查询看起来像这样,在 MySQL 中批量插入数据之前使用(用于性能调整)是否更好
INSERT INTO SomeTable (column1, column2) VALUES (val1,val2),(val3,val4),... ?
需要帮助在 RAC 环境中找到与数据库实例对应的 Oracle 主路径。我知道实现相同目标的方法很少。在下面列出它们以避免相同的答案。
/etc/oratab
此文件不是强制性的,因此可能不包含所有实例信息。
解析 Listener.ora 的内容 在 RAC 环境中,listener.ora 可以位于非默认位置。
使用 TNS_ADMIN 查找 Listener.ora 位置并解析文件。
ORACLE_HOME 环境变量可能不会始终设置。
ps -ef | grep tns从服务名称获取主路径。提供当前正在运行的侦听器的路径
select "SYSMAN"."MGMT$TARGET_COMPONENTS"."HOME_LOCATION"
from "SYSMAN"."MGMT$TARGET_COMPONENTS"
where "SYSMAN"."MGMT$TARGET_COMPONENTS"."TARGET_NAME" = <Database SID>
首次登录 oracle 后,可以删除架构 sysman。
SELECT NVL(SUBSTR(FILE_SPEC, 1, INSTR(FILE_SPEC, '\', -1, 2) -1) , SUBSTR(FILE_SPEC, 1, INSTR(FILE_SPEC, '/', -1, 2) -1)) FOLDER
FROM DBA_LIBRARIES
WHERE LIBRARY_NAME = 'DBMS_SUMADV_LIB';
因此,如果 DBA 在安装 Oracle 后更改 Oracle Home(以及 libqsmashr.so 的位置),则从上述查询中检索到的路径将无效。
. oraenv
仅适用于 11g
我试图找出一种适用于所有 Oracle 版本的通用方法,它不应该依赖于对 DBA …
无论使用的实际 SQL 数据库系统如何,是否有统一的方法来检查给定列的 INDEX 是否存在?
例如,对于 MySQL,可以使用SHOW CREATE TABLE mytable. 如果列mycolumn有一个索引,结果会是这样的:KEY 'Index_1' ('mycolumn')。
这个指标KEY是所有SQL数据库系统统一的吗?
有没有更好的方法来检查索引?
我正在估算 Mysql 5.6 [innodb 存储引擎] 上有多少 i/o [磁盘读写],以了解如何计算磁盘读写总数,我已经在 DA 上搜索了很多,并且还用谷歌搜索了在此链接上遇到一个帖子,这很有帮助。
它说我必须使用 SHOW STATUS
mysql>SHOW STATUS;
Run Code Online (Sandbox Code Playgroud)
并监视Key_read和Key_write物理索引读写、Created_tmp_disk_tables 和Created_tmp_files 创建临时文件以在磁盘上创建临时表和文件。
当我使用 innodb 时,缓冲池大小也影响磁盘读取操作的总数 [这完全取决于热页的可用性] 所以在这里我很困惑
1>>.计算磁盘读写时应该考虑的Innodb“服务器状态变量”是什么?
2>>.在计算磁盘读写时,我还应该考虑其他“服务器状态变量”吗?
3>>。我在这里还缺少其他因素吗?
4>>。硬盘类型和速度会影响总的 i/o 磁盘读写吗?
提前致谢!!!
我们有一个主动/被动拓扑,其中有两个共享原始存储的 x86 复合体,其中在给定时刻只有一个节点可以访问共享存储(也称为主动节点)。如果主动节点发生故障转移,被动节点将启动接管并成为可以访问共享存储的主动节点。每个节点都有自己的带有文件系统的引导设备存储。但是,共享存储上不能安装文件系统。
我们有兴趣在两个节点上安装 MySQL,它的数据驻留在共享存储中,只有活动节点运行服务器。
带有 InnoDB 的 MySQL 能够在原始设备上运行,并且还有关于如何在类似于我们的拓扑的集群上运行MySQL的指南。但是,在第二个示例中,它们确实在共享存储上安装了一个文件系统。文件系统问题引起了一个主要问题:
ib_logfile* 仍然需要一个文件系统。所以原始的 MySQL 功能并不完全是原始的。如果我错了,请纠正我。是否有将这些文件存储在原始存储中的解决方法?我们可以将重做日志 ( ib_logfile0, ib_logfile1)保存在节点的引导设备中,并始终在服务器启动之前删除这些文件(因此在多次故障转移的情况下我们不会有旧的日志文件)。但是,这可能会导致未提交的事务在事务中间失败的情况下被部分提交,从而与事务的整体思想相矛盾。
在此拓扑中,是否还有其他文件/功能可能会影响 mysql 的行为?
mysql ×9
innodb ×4
restore ×2
auto-commit ×1
backup ×1
failover ×1
ibdata ×1
index ×1
oracle ×1
performance ×1
recovery ×1
replication ×1
unix ×1