• oracle linux 7.3 下用dtrace 跟踪 mysql-community-server-5.6.20


    第一部分:oracle linux 7.3 dtrace 安装:

    http://public-yum.oracle.com/
     
    内核升极到
    [root@server1 SPECS]# uname -r
    4.1.12-94.3.8.el7uek.x86_64
     
    yum install
    kernel-uek-firmware-4.1.12-94.3.8.el7uek.noarch
    kernel-uek-debug-devel-4.1.12-94.3.8.el7uek.x86_64
    kernel-uek-doc-4.1.12-94.3.8.el7uek.noarch
    kernel-uek-devel-4.1.12-94.3.8.el7uek.x86_64
    kernel-uek-4.1.12-94.3.8.el7uek.x86_64
     
     
    安装DTRACE 程序
     
    http://www.oracle.com/technetwork/server-storage/linux/downloads/linux-dtrace-2800968.html
     
    dtrace-utils-devel-0.6.0-3.el7.x86_64      //手动下载
    dtrace-utils-0.6.0-3.el7.x86_64            //手动下载
    dtrace-modules-4.1.12-94.3.8.el7uek-0.6.0-4.el7.x86_64
     
    探针模块加载:
    [root@server1 ~]# cat probe.sh
    cd /usr/lib/modules/4.1.12-94.3.8.el7uek.x86_64/kernel/drivers/dtrace/
    modprobe fbt
    modprobe profile
    modprobe systrace
    modprobe fasttrap
    modprobe dtrace
    modprobe sdt
     
     
    测试:
    Testing function entry codes
    [root@oel65 Dtrace]# dtrace -n 'syscall::open:entry  { printf("Exec: %s  File: %s" , execname , stringof(arg0) ); }'
    dtrace: description 'syscall::open:entry  ' matched 1 probe
    CPU     ID                    FUNCTION:NAME
      0      8                       open:entry Exec: udisks-daemon  File: /dev/sr0
      0      8                       open:entry Exec: vminfo  File: /var/run/utmp
      0      8                       open:entry Exec: vminfo  File: /etc/passwd

     第二部分MYSQL 安装

    1.选择版本:mysql-community-server-5.6.20 起开始内置dtrace(但是mysql 8.0 移除)
    2.下载:
    http://public-yum.oracle.com/
    http://public-yum.oracle.com/repo/OracleLinux/OL7/MySQL56/x86_64/index.html下载四个文件
    mysql-community-client-5.6.20-4.el7.x86_64.rpm
    mysql-community-common-5.6.20-4.el7.x86_64.rpm
    mysql-community-server-5.6.20-4.el7.x86_64.rpm
    mysql-community-libs-5.6.20-4.el7.x86_64.rpm
    3.安装:
    rpm -ivh mysql-community-libs-5.6.20-4.el7.x86_64.rpm
    rpm -ivh mysql-community-common-5.6.20-4.el7.x86_64.rpm
    rpm -ivh mysql-community-client-5.6.20-4.el7.x86_64.rpm
    rpm -ivh mysql-community-server-5.6.20-4.el7.x86_64.rpm
    4.文件安装位置
    [root@server1 data]# rpm -ql  mysql-community-server-5.6.20-4.el7.x86_64
    /etc/logrotate.d/mysql
    /etc/my.cnf
    /usr/bin/innochecksum
    /usr/bin/my_print_defaults
    /usr/bin/myisam_ftdump
    /usr/bin/myisamchk
    /usr/bin/myisamlog
    /usr/bin/myisampack
    /usr/bin/mysql-systemd-start
    /usr/bin/mysql_convert_table_format
    /usr/bin/mysql_fix_extensions
    /usr/bin/mysql_install_db
    /usr/bin/mysql_plugin
    /usr/bin/mysql_secure_installation
    /usr/bin/mysql_tzinfo_to_sql
    /usr/bin/mysql_upgrade
    /usr/bin/mysql_zap
    /usr/bin/mysqlbug
    /usr/bin/mysqld_multi
    /usr/bin/mysqld_safe
    /usr/bin/mysqldumpslow
    /usr/bin/mysqlhotcopy
    /usr/bin/mysqltest
    /usr/bin/perror
    /usr/bin/replace
    /usr/bin/resolve_stack_dump
    /usr/bin/resolveip
    /usr/lib/systemd/system/mysqld.service
    /usr/lib/tmpfiles.d/mysql.conf
    /usr/lib64/mysql/plugin
    /usr/lib64/mysql/plugin/adt_null.so
    /usr/lib64/mysql/plugin/auth.so
    /usr/lib64/mysql/plugin/auth_socket.so
    /usr/lib64/mysql/plugin/auth_test_plugin.so
    /usr/lib64/mysql/plugin/daemon_example.ini
    /usr/lib64/mysql/plugin/debug
    /usr/lib64/mysql/plugin/debug/adt_null.so
    /usr/lib64/mysql/plugin/debug/auth.so
    /usr/lib64/mysql/plugin/debug/auth_socket.so
    /usr/lib64/mysql/plugin/debug/auth_test_plugin.so
    /usr/lib64/mysql/plugin/debug/innodb_engine.so
    /usr/lib64/mysql/plugin/debug/libdaemon_example.so
    /usr/lib64/mysql/plugin/debug/libmemcached.so
    /usr/lib64/mysql/plugin/debug/mypluglib.so
    /usr/lib64/mysql/plugin/debug/qa_auth_client.so
    /usr/lib64/mysql/plugin/debug/qa_auth_interface.so
    /usr/lib64/mysql/plugin/debug/qa_auth_server.so
    /usr/lib64/mysql/plugin/debug/semisync_master.so
    /usr/lib64/mysql/plugin/debug/semisync_slave.so
    /usr/lib64/mysql/plugin/debug/validate_password.so
    /usr/lib64/mysql/plugin/innodb_engine.so
    /usr/lib64/mysql/plugin/libdaemon_example.so
    /usr/lib64/mysql/plugin/libmemcached.so
    /usr/lib64/mysql/plugin/mypluglib.so
    /usr/lib64/mysql/plugin/qa_auth_client.so
    /usr/lib64/mysql/plugin/qa_auth_interface.so
    /usr/lib64/mysql/plugin/qa_auth_server.so
    /usr/lib64/mysql/plugin/semisync_master.so
    /usr/lib64/mysql/plugin/semisync_slave.so
    /usr/lib64/mysql/plugin/validate_password.so
    /usr/sbin/mysqld
    /usr/sbin/mysqld-debug
    /usr/share/doc/mysql-community-server-5.6.20
    /usr/share/doc/mysql-community-server-5.6.20/COPYING
    /usr/share/doc/mysql-community-server-5.6.20/ChangeLog
    /usr/share/doc/mysql-community-server-5.6.20/INFO_BIN
    /usr/share/doc/mysql-community-server-5.6.20/INFO_SRC
    /usr/share/doc/mysql-community-server-5.6.20/README
    /usr/share/doc/mysql-community-server-5.6.20/my-default.cnf
    /usr/share/man/man1/innochecksum.1.gz
    /usr/share/man/man1/my_print_defaults.1.gz
    /usr/share/man/man1/myisam_ftdump.1.gz
    /usr/share/man/man1/myisamchk.1.gz
    /usr/share/man/man1/myisamlog.1.gz
    /usr/share/man/man1/myisampack.1.gz
    /usr/share/man/man1/mysql.server.1.gz
    /usr/share/man/man1/mysql_convert_table_format.1.gz
    /usr/share/man/man1/mysql_fix_extensions.1.gz
    /usr/share/man/man1/mysql_install_db.1.gz
    /usr/share/man/man1/mysql_plugin.1.gz
    /usr/share/man/man1/mysql_secure_installation.1.gz
    /usr/share/man/man1/mysql_tzinfo_to_sql.1.gz
    /usr/share/man/man1/mysql_upgrade.1.gz
    /usr/share/man/man1/mysql_zap.1.gz
    /usr/share/man/man1/mysqlbug.1.gz
    /usr/share/man/man1/mysqld_multi.1.gz
    /usr/share/man/man1/mysqld_safe.1.gz
    /usr/share/man/man1/mysqldumpslow.1.gz
    /usr/share/man/man1/mysqlhotcopy.1.gz
    /usr/share/man/man1/mysqlman.1.gz
    /usr/share/man/man1/mysqltest.1.gz
    /usr/share/man/man1/perror.1.gz
    /usr/share/man/man1/replace.1.gz
    /usr/share/man/man1/resolve_stack_dump.1.gz
    /usr/share/man/man1/resolveip.1.gz
    /usr/share/man/man8/mysqld.8.gz
    /usr/share/mysql/SELinux/RHEL4/mysql.fc
    /usr/share/mysql/SELinux/RHEL4/mysql.te
    /usr/share/mysql/dictionary.txt
    /usr/share/mysql/fill_help_tables.sql
    /usr/share/mysql/innodb_memcached_config.sql
    /usr/share/mysql/magic
    /usr/share/mysql/my-default.cnf
    /usr/share/mysql/mysql-log-rotate
    /usr/share/mysql/mysql_security_commands.sql
    /usr/share/mysql/mysql_system_tables.sql
    /usr/share/mysql/mysql_system_tables_data.sql
    /usr/share/mysql/mysql_test_data_timezone.sql
    /var/lib/mysql
    /var/run/mysqld
    5. 配制my.cnf
      datadir     mysql.sock   error.log    etc
    6.测试
    dtrace -l |c++filt
    58746  mysql5011            mysqld         ha_myisam::rnd_next(unsigned char*) read-row-start
    58747  mysql5011            mysqld         ha_tina::rnd_pos(unsigned char*, unsigned char*) read-row-start
    58748  mysql5011            mysqld           ha_tina::rnd_next(unsigned char*) read-row-start
    58749  mysql5011            mysqld     ha_blackhole::rnd_next(unsigned char*) read-row-start
    58750  mysql5011            mysqld   ha_blackhole::rnd_pos(unsigned char*, unsigned char*) read-row-start
    58751  mysql5011            mysqld handle_select(THD*, select_result*, unsigned long) select-done
    58752  mysql5011            mysqld handle_select(THD*, select_result*, unsigned long) select-start
    58753  mysql5011            mysqld    mysql_execute_command(THD*) update-done
    58754  mysql5011            mysqld  handler::ha_update_row(unsigned char const*, unsigned char*) update-row-done
    58755  mysql5011            mysqld  handler::ha_update_row(unsigned char const*, unsigned char*) update-row-start
    58756  mysql5011            mysqld    mysql_execute_command(THD*) update-start

    systemtap 在ORACLE LINUX 7.3 打开DTRACE=1可以源代码编绎MYSQL,但要安装Systemtap-sdt-devel-3.0-7.el7.x86_64

    systemtap-devel-3.0-7.el7.x86_64
    systemtap-client-3.0-7.el7.x86_64
    systemtap-runtime-3.0-7.el7.x86_64
    systemtap-sdt-devel-3.0-7.el7.x86_64
    systemtap.x86_64 0:3.0-7.el7
    但在DTRACE 工具完成后,源代码会自动检测ORACLE LINUX 7.3中是否有/usr/sbin/dtrace这个文件,如果有,就会自动打开DTRACE这个选 项,但是MYSQL源代码编绎出错,没成功
    两个工具在编绎时只能使用一个,删掉另外一个安装包
    mysql 源代码安装在ORACLE LINUX 7.3 不能成功编绎,请教一下大神们

      

  • 相关阅读:
    CS1704问题汇总
    Android hdpi ldpi mdpi xhdpi xxhdpi适配详解
    Mac开发工具汇总
    Objective-C语法之代码块(block)的使用 (转载)
    iOS学习之Object-C语言属性和点语法(转载收集)
    object-c中疑问
    Android ListVeiw控件(转载整理)
    Android Studio--》Gradle Scripts配置说明
    xutils android studio引用问题
    15 个 Android 通用流行框架大全(转载)
  • 原文地址:https://www.cnblogs.com/zengkefu/p/7141767.html
Copyright © 2020-2023  润新知