mysql dba常用的查询语句
查询table1表的索引show index from table1查看select语句的执行计划explain extended select * from t1;desc extended select * from t1;查看某个参数show global variables like '%XX%';查看某个状态show status like '%YY%';
mysql的sql语句执行流程
1、client和server建立连接,client发送sql至server(对应连接器这一过程)2、server如果在查询缓存中发现了该sql,则直接使用查询缓存的结果返回给client,如果查询缓存中没有,则进入下面的步骤(对应查询缓存这一过程,8.0这一过程已经不存在了,8.0完全抛弃了这个功能)3、server对sql进行语法分析,识别出sql里面的字符串是否符合标准,比如select关键
mysql关于聚集索引、非聚集索引的总结
总结:1、mysql的innodb表,就是索引组织表,表中的所有字段都放在索引上,这就约定了数据是严格按照顺序存放的,所以不管插入的先后顺序,它在那个物理上的那个位置与插入的先后顺序无关。2、聚集索引,叶子节点存的是整行数据,直接通过这个聚集索引的键值找到某行3、聚集索引,数据的物理存放顺序与索引顺序是一致的,即:只要索引是相邻的,那么对应的数据一定也是相邻地存放在磁盘上的。4、聚集索引,数据行和
my.cnf文件关于组选项的总结
1、[server]和[mysqld]的区别,没有看到官方文档,个人感觉server指整台服务器,mysqld指实例,当一台服务器上多个实例使用同一个配置文件my.cnf时,[server]通用于所有实例,[mysqld_3306] [[mysqld_3307] [mysqld_3308]对应单独实例2、mysqld从[mysqld]和[server]组中读取选项。 mysqld_safe从[my
mysql关于mysqld_safe的总结
总结1、mysqld_safe是服务端工具,用于启动mysqld,并且是mysqld的守护进程,mysqld_safe加&在后台运行$BASEDIR/bin/mysqld_safe &2、因为mysqld_safe是mysqld的守护进程,所以mysqld_safe脚本会在启动MySQL服务器后继续监控其运行情况,并在其死机时重新启动它。3、直接使用mysqld_safe启动mys
mysql关于mysql.server的总结
1、mysql.server服务端工具,主要作用就是为了方便启动和关闭mysql服务,这个脚本中调用mysqld_safe来启动mysqld2、RPM包安装时,发现/etc/rc.d/init.d/mysql和/usr/share/mysql/mysql.server里面的东西一模一样3、mysql.server脚本其实也是调用mysqld_safe脚本去启动MySQL服务器的,但此时mysqld
数据库对象比如表放入内存,行发生改变不会自动同步到内存的总结
问题:把表数据库放入DATABASE BUFFER中,把表的查询结果放入result_cache,一旦表的行更改会自动同步到这些内存中吗?答案:不会,而是重新访问数据文件进行查询。ORACLE官方支持的回复如果表中的数据有行增加或者更新,当再次访问相关的表或执行查询时, Oracle能检测到这种数据的更新,访问数据文件来进行查询。不是定时的把数据文件中的数据同步到KEEP buffer pool
expdp慢的一次处理思路,最后发现原来遇到了bug
1、检查expdp时,数据库是否负载太高,可以使用工具OSWatcher捕获历史的硬件资源使用情况,如果在负载低时,expdp还是很慢,继续下面步骤22、检查是否有大表或LOB字段,如果没有,继续下面步骤33、expdp命令增加参数metrics、trace,查看每个步骤的时间和trace文件信息中dm到dw的消耗时间,如果发现不了问题,继续下面步骤4METRICS=Y TRACE=4803004
oradebug的使用说明
oradebug是个sql*plus命令行工具,有sysdba的权限就可以登入,用于追踪进程的详细信息并生成trace文件sqlplus / as sysdbaSQL> oradebug helpexpdp很慢,增加metrics和trace参数还是看不出问题,通过10046获取等待事件,使用oradebug抓取expdp进程的这样详细信息并写入到trace文件1、timed_statist
DBA常用的linux命令
按oracleSID来查询连接数据库的客户端IPnetstat -anpT | grep oracleSID | awk '{print $5}' | grep -o -E '1.*:' | awk -F ':' '{print $1}' | sort按监听端口1521来查询连接数据库的客户端IPnetstat -anpT
11G开始voting disk自动备份到OCR了,也就是说voting disk信息合并到OCR中了
In Oracle Clusterware 11g release 2 (11.2), you no longer have to back up the voting disk. The voting disk data is automatically backed up in OCR as part of any configuration change and is automatical
OSWatcher的安装、配置、使用
参考Oracle Metlink官方文档Note:1526578.1 OSWatcher 是Oracle的一个操作系统资源和网络监控工具,它通过调用OS的一些命令,比如:top, vmstat, iostat, ps ,netstat 等来收集CPU、内存、I/O、进程以及网络等情况。 下面是启动并配置OSWatcher的例子: 1). 将下载后的压缩文件上传到主机并
expdp导出慢的解决思路__增加参数metrics记录每个步骤时间,增加参数trace记录trace
两者都是未公开的参数expdp -help看不到Majority of issues use following two data pump parameters: METRICS=Y -- this will provide timing data on number of objects TRACE=480300 -- this will trace dm and dw p
mysql关于db.opt文件的总结
总结1、create database时会自动生成一个文件db.opt,存放的数据库的默认字符集,show create database时显示数据库默认字符集即db.opt中字符集2、这个文件丢失不影响数据库运行,该文件丢失之后新建表时,找不到数据库的默认字符集,就把character_set_server当成数据库的默认字符集,show create database时显示character_
mysql关于字符集character set的总结
总结1、创建表和创建数据库时都可以指定字符集2、创建表没有指定字符集则默认使用数据库的字符集,3、创建数据库没有指定字符集则默认使用character_set_server字符集,如果character_set_server没有设置,则默认是latin14、字符序的命名,以其对应的字符集作为前缀,比如字符序utf8_general_ci,标明它是字符集utf8的字符序,所以如果character_
mysql关于表空间的总结
1.系统表空间(System Tablespace)innodb系统表空间包含innodb数据字典(innodb相关对象的元数据),undo logs、the change buffer, and the doublewrite buffer。此外,当innodb_file_per_table=OFF时系统表空间也存储表空间创建的表和索引等数据。由于系统表空间可以存储多张表,因此,其为一个共享表空
mysql关于ib_logfile事务日志和binary log二进制日志的区别
总结1、ib_logfile类似oracle的online redo log,包含commit和uncommit的数据2、binary log类似oracle的online redo log和archive redo log,但是只有commit的数据3、为什么MySQL有binlog,还要redo log?因为MySQL是多存储引擎的,不管使用那种存储引擎,都会有binlog,而不一定有redo
mysql关于redo事务日志ib_logfile的理解
总结1、redo事务日志就是ib_logfile,两个ib_logfile开头的文件,它们就是log group中的redo log file,而且它们的大小完全一致且等于变量innodb_log_file_size定义的值2、redo事务日志的作用就是用于crash recovery,crash recovery是数据库重启时自动的行为,无需为DBA执行任何额外工作3、MySQL以循环方式写入重
mysql关于memory引擎的表的总结
参加官方文档https://dev.mysql.com/doc/refman/5.7/en/memory-storage-engine.html总结1、memory引擎表数据只存放在内存中,插入数据后,文件也只有表结构文件,没有表数据文件,重启后,数据丢失,但是表结构还在,表结构文件也还在2、memory引擎表,一个会话修改了数据,其他会话可以立即看到修改后的数据,和oracle的临时表完全不同3
mysql关于ibdata文件的理解
总结1、默认情况下ibdata存放InnoDB表(InnoDB数据字典)元数据、undo logs、the change buffer, and the doublewrite buffer2、如果innodb_file_per_table=off,则ibdata也存放InnoDB表的实际数据,也就是InnoDB表建立后,不会再有单独的tablename.ibd文件3、虽然InnoDB表元数据通过