kenken0807_DBメモ

つば九郎が好きなDBAです。Oracle Standard Editionでの運用やツールとかとかの備忘録。特に記載がない場合はoracle11gR2です。時々MySQL

MySQL

pt-online-schema-changeとgh-ostの比較(データが損失するかもしれないAlterTable編)

こちらのエントリーは MySQL Advent Calendar 2021の14日目の記事になります。 今年はオンラインスキーママイグレーションツールのpt-online-schema-change(pt-osc)とgh-ostをよく調べていたので、その中から一つ。 mysqlコマンドではエラーになるけど、制約…

performance_schema.events_statements_historyを使って直近に実行されたクエリを見る

さくっと、直近で実行されたクエリの情報がみたいです。 それにはperformance_schema.events_statements_historyテーブルを使います。 performance_schema.events_statements_historyはスレッドごとにperformance_schema_events_statements_history_size(def…

mysqldumpがFLUSH TABLESでタイムアウトしたので調べた話

この記事は MySQL Advent Calendar 2019 11日目の記事です。 mysqldumpがFLUSH TABLESでタイムアウトしたので調べたという記録です。 (SQLステートメントや出力結果は一部省略しています) 問題 とある日、スレーブが壊れましてmysqldumpを使ってマスターか…

Instant Add Columnして全行UPDATEしてみる

MySQL8.0の Instant Add Columnで追加したカラムを全行updateするとデータサイズとか実行時間ととかどうなるか試してみた。 まず、 Instant Add Columnとは... データディクショナリのみを変更することで、add column処理が即時で完了する操作。 ALTER TABLE…

InnoDBで行ロックを取得してるSQLを調べる

InnoDBでSELECT FOR UPDATEでセッションが溢れて、原因のpidはわかるけど、ロック取得しているSQLがなんとかとれないかなと調べてみた。 MySQL5.7以降であれば下のSQLでとれるかも。たぶんいけるはず。 SELECT lo.*, t.thread_id AS blocking_thread_id, GRO…

最近知ったSET型について

MySQL Casual Advent Calendar 2017の15日目の記事です。 MySQLには古くからSET型というカラムの型がありまして、知らない人もいるかもしれません。 私は聞いたことあるぐらいで、使ったこと、使っている現場に遭遇したことなかったです。 今回は初めてめぐ…

xtrabackupが終わらない

xtrabackupでバックアップとっていたがいつまでたっても終わる気配ないという状況に。 バージョンはxtrabackup2.4.7。 xtrabackupにはIOを制御するための--throttleオプションがあって、これにやられた。 マニュアルの情報。 --throttle=# This option limit…

sysbench1.0でMySQLベンチマークするメモ

sysbench1.0でMySQLのベンチマークとったのでその方法のメモ。 OSはCentOS7.3 MySQLをyumでインストールする # wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm # rpm -i mysql57-community-release-el7-11.noarch.rpm # yum i…

xtrabackupの--ftwrl-wait-timeoutと--ftwrl-wait-thresholdのメモ

xtrabackupの–ftwrl-wait-timeoutと–ftwrl-wait-thresholdをいつも忘れてしまうのでメモ。 xtrabackup2.4で試す。 –ftwrl-wait-threshold Flush table with read lockを実行するタイミングでのクエリの実行時間。デフォルト60秒。 –ftwrl-wait-timeout –ftwr…

MySQLのsql_modeにあるORACLEとは

これはJPOUG Advent Calendar 2016の16日目の記事です。 最初に言っておきますが、この記事はなんも役に立ちません! では始めます。 MySQLのsql_modeにはいろいろとsqlの動作の設定ができるんですが、 ここにORACLEというのが選択できます。 たぶんOracle d…

MySQLのInnoDBセカンダリインデックスのロック

MySQLのセカンダリインデックスのロックで嵌ったのでメモ。 isolationがREPEATABLE-READのときギャップロックやらネクストキーロックはセカンダリーインデックスの場合どうなるかよくわかってなかった。 例えば、こんなテーブル作ってcol2にインデックスを作…

MySQLにgdbアタッチするメモ

MySQLにgdbアタッチしてソースコードからいろいろ追う方法を教わったので自分メモ。 gdbアタッチ gdb -p mysqldのプロセス番号 この時点でmysqldが一時停止される。 ブレイクポイント (gdb) b function_name mysqld再開 (gdb) c ステップ実行 (gdb) n 変数確…

MyDumperを使ってみた

MySQLのデータインポートツールMyDumperを試したのでメモ。 mysqldump・・・データのエクスポート・インポートをシングルスレッドで実行 mydumper・・・データのエクスポート・インポートをパラレルスレッドで実行 エクスポートしたファイルごとにパラレルで…

OracleとMySQLのalter table column動作の違い(データがある場合)

OracleとMySQLを使用しているとカラム変更の動作がいろいろと違ってくるので、 どっちがどっちかわからなくなることか多いのでまとめ。 OracleDatabaseSE(11.2.0.4)とMySQL5.6.29(INNODB)で調査。 1. 実行可能なものは(可) 2. 実行が即時で終了するもの…

MySQLのSHOW構文をORACLE(SQL*Plus)でも実行したい

JPOUG Advent Calendar 2015の3日目のエントリーです。 昨日はShinnosuke Akitaさんの「Oracle DatabaseのASMディスクグループの空き容量を調べる」でした。 普段ORACLEとMySQLを使用してるとよくSQL*PlusでもSHOW構文を使ってしまって、こうなっちゃうので…

OracleからMySQLへODBC経由のデータベースリンクで接続したメモ

Oracle Standard Editionで可能なDatabase Gateway for ODBC (DG4ODBC)を使用してMySQLに接続したのでメモ。 Database Gateway for ODBC (DG4ODBC)を使用すれば ODBC接続でOracleから他のDB(MySQL)などにデータベースリンク経由で接続可能となる。 環境 DB…

OracleでMySQLのshow processlistっぽいやつ

ふと、oracleのセッション情報もmysqlのshow processlistみたいにSQL文やクエリの実行時間を表示させたいなと考えた。 その場合はv$sessionとv$sqlをsql_idで結合させて表示させればいいんだけど、v$sqlに問い合わせるのは、なんせ共有プールにアクセスする…