Advertisement
Guest User

Untitled

a guest
Apr 2nd, 2016
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.58 KB | None | 0 0
  1. Part I
  2.  
  3. Slide 05
  4. sudo su -
  5. service mysql start
  6. tail -n 100 /var/log/mysqld.log
  7. !ps
  8.  
  9. Slide 06
  10. grep tmpd /etc/my.cnf
  11. grep tmpd /etc/mysql/my.cnf
  12.  
  13. Slide 07
  14. strace /usr/sbin/mysqld
  15. strace -e trace=open,stat /usr/sbin/mysqld
  16.  
  17.  
  18. Slide 08
  19. strace -e stat64 /usr/sbin/mysqld --print-defaults
  20.  
  21.  
  22. Slide 09
  23. cat /usr/etc/my.cnf
  24. sed -i -e 's/tmpd1r/tmpdir/' /usr/etc/my.cnf
  25. cat /usr/etc/my.cnf
  26.  
  27.  
  28. Slide 10
  29. service mysql start
  30. tail -n 100 /var/log/mysqld.log
  31.  
  32.  
  33. Slide 12
  34. ls -l /var/lib/mysql/mysql/plugin.*
  35. chown -R mysql:mysql /var/lib/mysql/mysql/
  36. service mysql start
  37. tail -n 100 /var/log/mysqld.log
  38.  
  39. Slide 14
  40. grep datadir /etc/my.cnf
  41.  
  42. sed -i -e 's/datadir=\/var\/lib\/msql/datadir=\/var\/lib\/mysql/' /etc/my.cnf
  43.  
  44. grep datadir /etc/my.cnf
  45.  
  46. Slide 15
  47. service mysql start
  48. tail -n 100 /var/log/mysqld.log
  49.  
  50. Slide 16
  51.  
  52. ls -ld /var/tmp
  53. chmod a+rwx /var/tmp
  54. ls -ld /var/tmp
  55. service mysql start
  56. tail -n 100 /var/log/mysqld.log
  57.  
  58. Slide 18
  59. perror 12
  60. grep 100 /etc/my.cnf
  61. sed -i -e 's/100G/256M/' /etc/my.cnf
  62. grep innodb_buffer_pool_size /etc/my.cnf
  63.  
  64. service mysql start
  65. tail -n 100 /var/log/mysqld.log
  66.  
  67.  
  68. Slide 20
  69. ls -l /var/lib/mysql/ibdata1
  70. ls -l /var/lib/mysql
  71. chown -R mysql:mysql /var/lib/mysql
  72. service mysql start
  73. tail -n 100 /var/log/mysqld.log
  74.  
  75. Slide 22
  76.  
  77. mysql
  78. perror 2
  79. ls -l /tmp/mysql.sock
  80.  
  81.  
  82. Slide 23
  83. grep socket /var/log/mysqld.log | tail -n 1
  84. lsof -n | grep mysql | grep unix
  85. grep -B 1 socket /etc/my.cnf
  86. sed -i -e 's/\/tmp\/mysql.sock/\/var\/lib\/mysql\/mysql.sock/' /etc/my.cnf
  87.  
  88. grep -B 1 socket /etc/my.cnf
  89.  
  90. Slide 24
  91. mysql
  92. strace -e trace=open mysql
  93. cat ~/.my.cnf
  94.  
  95. Slide 25
  96. mysql --no-defaults
  97. mysql -p
  98.  
  99. exit
  100.  
  101. Slide 26
  102. echo "SET PASSWORD=PASSWORD('$RANDOM$RANDOM')" | mysql --no-defaults
  103. mysql --no-defaults
  104. sed -i 's/\[mysqld\]/&\nskip-grant-tables/' /etc/my.cnf
  105. cat /etc/my.cnf
  106.  
  107. service mysql restart
  108.  
  109. Slide 27
  110. mysql
  111. mysql> UPDATE mysql.user SET password=PASSWORD('newpass') WHERE user='root';
  112. mysql> FLUSH PRIVILEGES;
  113.  
  114. sed -i 's/skip-grant-tables//' /etc/my.cnf
  115. service mysql restart
  116. mysql -pnewpass
  117. cat /root/.my.cnf
  118. sed -i 's/password=adummypassword/password=newpass/' ~/.my.cnf
  119. mysql
  120.  
  121.  
  122. Slide 28
  123. grep "ERROR" /var/log/mysqld.log |tail -n 3
  124. mysql_upgrade
  125. service mysql restart
  126. tail -n 50 /var/log/mysqld.log
  127.  
  128. slide 29
  129.  
  130.  
  131. ( echo -n "SELECT '" ; for i in `seq 1 1` ; do echo -n "1234567890" ; done ; echo -n "' a") | mysql
  132.  
  133. ( echo -n "SELECT '" ; for i in `seq 1 2` ; do echo -n "1234567890" ; done ; echo -n "' a") | mysql
  134.  
  135. ( echo -n "SELECT '" ; for i in `seq 1 400000` ; do echo -n "1234567890" ; done ; echo -n "' a") | mysql | wc
  136.  
  137. ( echo -n "SELECT '" ; for i in `seq 1 450000` ; do echo -n "1234567890" ; done ; echo -n "' a") | mysql | wc
  138.  
  139. Slide 30
  140. mysql -e "SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet'"
  141.  
  142. mysql -e "SET GLOBAL max_allowed_packet=5242880"
  143. mysql -e "SHOW GLOBAL VARIABLES LIKE 'max_allowed_packet'"
  144.  
  145. ( echo -n "SELECT '" ; for i in `seq 1 450000` ; do echo -n "1234567890" ; done ; echo -n "' a") | mysql |wc
  146.  
  147.  
  148. slide 31
  149. screen
  150. mysql -e "SELECT SLEEP(1000);"
  151. #ctrl a+d
  152.  
  153. kill -6 `pidof mysqld`
  154.  
  155.  
  156.  
  157. screen -r
  158. #ctrl d
  159.  
  160.  
  161.  
  162. slide 32
  163. grep -A 50 "signal 6" /var/log/mysqld.log
  164.  
  165. ----
  166. slide 35
  167.  
  168. mysql -e "SHOW GLOBAL VARIABLES LIKE 'local_infile'"
  169.  
  170. slide 36
  171.  
  172. mysql -e "show grants for evil@localhost"
  173. mysql -u evil -p4242 test
  174. select user();
  175.  
  176. CREATE TABLE store (col1 text, col2 text,col3 text);
  177. select @@datadir;
  178.  
  179. LOAD DATA LOCAL INFILE '/var/lib/mysql/mysql/user.MYD' INTO TABLE store LINES TERMINATED BY '*';
  180.  
  181. slide 37
  182.  
  183. select * from store\G
  184.  
  185. LOAD DATA LOCAL INFILE '/root/.my.cnf' INTO TABLE store LINES TERMINATED BY '\n';
  186.  
  187. LOAD DATA LOCAL INFILE '/root/.bashrc' INTO TABLE store LINES TERMINATED BY '\n';
  188.  
  189. LOAD DATA LOCAL INFILE '/etc/passwd' INTO TABLE store LINES TERMINATED BY '\n';
  190. select * from store\G
  191.  
  192.  
  193. Slide 39
  194. cd /var/lib/mysql
  195.  
  196. rm -rf ib_logfile*
  197.  
  198. lsof -n | grep ib_logfile
  199. #or
  200. ll /proc/`pidof mysqld`/fd/
  201.  
  202.  
  203. slide 38
  204. mysql
  205.  
  206. mysql> use test;
  207. mysql> create table tbl1 (id int auto_increment primary key, v varchar(100)) engine=innodb;
  208. mysql> insert into tbl1 values(null,'aa');
  209. mysql> insert into tbl1 select null, v from tbl1;
  210. mysql> SELECT * FROM tbl1;
  211. exit
  212.  
  213. service mysql restart
  214.  
  215. tail -n 50 /var/log/mysqld.log
  216.  
  217.  
  218. Slide 42
  219. rm -f ibdata1
  220.  
  221. lsof -n | grep ibdata1
  222.  
  223.  
  224. Slide 43
  225. mysql
  226.  
  227. mysql> use test;
  228. mysql> insert into tbl1 values(null,'aa');
  229. mysql> insert into tbl1 select null, v from tbl1;
  230. mysql> SELECT * FROM tbl1;
  231. service mysql restart
  232. tail -n 50 /var/log/mysqld.log
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248. Part II
  249. cd /home/user-lab/sandboxes/repl_test
  250. ls
  251. ./start_all
  252. cd master
  253. ls -la
  254. ls data/
  255. cd ../node1
  256. ls -al data/
  257. cd /home/user-lab/sandboxes/repl_test
  258. ./m
  259. show processlist;
  260. exit
  261. ./s1
  262. show processlist;
  263.  
  264. cd /home/user-lab/sandboxes/dupl_server_id1
  265. ./start_all
  266.  
  267. ./s1 -e "start slave;show slave status \G"
  268. find ./ -name msandbox.err |xargs tail -n2
  269. ./s1
  270. select @@server_id;
  271. show global variables like 'server_id';
  272. set global server_id = 102 ;
  273. select @@server_id;
  274. show slave status \G
  275.  
  276. stop slave sql_thread;
  277. start slave;
  278. show slave status \G
  279.  
  280. cd node1
  281. grep server-id my.sandbox.cnf
  282. sed -i 's/server-id=1/server-id=102/g' my.sandbox.cnf
  283. grep server-id my.sandbox.cnf
  284.  
  285. cd ../
  286. ./s1
  287. select now();
  288.  
  289. cd /home/user-lab/sandboxes/dupl_key
  290. ./start_all
  291. ./s1
  292. show slave status \G
  293. use test;
  294. show create table dupe_test \G
  295.  
  296. select * from dupe_test where id =3;
  297. exit
  298. cd master/
  299. mysqlbinlog data/mysql-bin.000002
  300.  
  301. cd ../
  302. cd node1
  303. mysqlbinlog --server-id=101 data/mysql-bin.000002 |grep dupe_test
  304. cd ../
  305. ./s1
  306. stop slave ;set global sql_slave_skip_counter = 1; start slave;
  307. show slave status \G
  308.  
  309. cd /home/user-lab/sandboxes/dupl_key_gtid
  310. ./start_all
  311. ./s1
  312. show slave status \G
  313. set GTID_NEXT='987abf63-5454-11e4-ae18-22000af80ef3:4';
  314. begin;commit;
  315. set GTID_NEXT='AUTOMATIC';
  316. start slave;show slave status\G
  317. exit
  318.  
  319. cd ../
  320. cd dupl_key
  321. ./m
  322. use test
  323. show tables
  324. show create table dupe_test \G
  325. insert into dupe_test (val) values (uuid());
  326. select * from test.dupe_test order by id desc limit 1;
  327. insert into dupe_test (val) values (uuid());
  328. show warnings\G
  329. ./s1
  330. select * from test.dupe_test order by id desc limit 1;
  331. exit
  332.  
  333. sudo sed -i 's/localhost.localdomain/& SBslave1/' /etc/hosts
  334.  
  335. pt-table-checksum -uroot --ask-pass --replicate test.checksum --host 127.0.0.1 --port 20000
  336.  
  337. ./s1
  338.  
  339. SELECT db, tbl, SUM(this_cnt) AS total_rows, COUNT(*) AS chunks
  340. FROM test.checksum
  341. WHERE (
  342. master_cnt <> this_cnt
  343. OR master_crc <> this_crc
  344. OR ISNULL(master_crc) <> ISNULL(this_crc))
  345. GROUP BY db, tbl;
  346.  
  347. select distinct db, tbl from test.checksum where master_crc <> this_crc;
  348.  
  349.  
  350. pt-table-sync -uroot --ask-pass --print --replicate test.checksum --sync-to-master --socket=/tmp/mysql_sandbox20001.sock D=test,t=dupe_test
  351.  
  352. pt-table-sync -uroot --ask-pass --replicate test.checksum --sync-to-master --socket=/tmp/mysql_sandbox20001.sock D=test,t=dupe_test --execute
  353.  
  354.  
  355. ./m -e "checksum table test.dupe_test;"
  356. ./s1 -e "checksum table test.dupe_test;"
  357.  
  358. ./m -e "select * from test.dupe_test;"
  359. ./s1 -e "select * from test.dupe_test;"
  360.  
  361.  
  362. cd /home/user-lab/sandboxes/corrupt_relay/node1/data/
  363. ls -la mysql_sandbox24001-relay-bin.000009
  364. truncate -s 10 mysql_sandbox24001-relay-bin.000009
  365. cd ../../
  366. ./start_all
  367. tail node1/data/msandbox.err
  368.  
  369.  
  370.  
  371. Part III
  372.  
  373. Slide 07-
  374. $ vmstat 1 10
  375.  
  376. Slide 09-
  377. $ iostat -k -d -x 1 3 /dev/sd?
  378.  
  379. Slide 11-
  380. $ top
  381.  
  382. Slide 13-
  383. $ ifstat -i eth0 5 8
  384.  
  385. Slide 16-
  386. $ for i in `seq 1 120` ; do mysql –pOpsdba -e "SHOW ENGINE INNODB STATUS\G" | grep "Checkpoint age " ; sleep 1 ; done > checkpoint.txt
  387.  
  388. Slide 17-
  389. $ show global status like '%conn%';
  390.  
  391. Slide 18-
  392. mysql> pager cut -d '|' -f 4|cut -d ':' -f 1|sort|uniq -c
  393. mysql> show processlist;
  394.  
  395. Slide 19-
  396. mysql> \s
  397.  
  398. Slide 20-
  399. $ while true; do echo "show engine innodb status" | mysql –pOpsdba -A -N -r | grep -i "history"; sleep 0.5; done
  400.  
  401. Slide 21-
  402. $ mysqladmin –pOpsdba extended -i 1 -r -c 120 | egrep '(Innodb_(os_log|data)_written|Com_insert )'
  403.  
  404. Slide 22-
  405. $ mysqladmin -r -i 5 extend status >> $myadminFILENAME.txt
  406.  
  407. Slide 23-
  408. $ mysqladmin -p -r -i 5 extended-status | grep Innodb_os_log_written
  409.  
  410. Slide 24-
  411. $ mysqlbinlog proddb2-433574-bin-log.000420 | egrep '^#.*exec_time' | egrep -v 'exec_time=(4294967295|0)' | sed -e 's/exec_time=//' | sort -r -n -k 10 | head -n 20
  412.  
  413. Slide 25-
  414. $ mysqlbinlog al-db2.001079| pt-query-digest --type=binlog --group-by=distill > /tmp/writes.txt
  415. $ head –n 10000 /tmp/writes.txt > /tmp/writes_10000.txt
  416. $ egrep '^#’ /tmp/writes_1000.txt | awk '{print $10}' | grep exec_time | sort | uniq -c
  417. $ mysqlbinlog pathtobinlog | pt-query-digest --type binlog --limit 30 --order-by 'Query_time:cnt' > output.txt
  418.  
  419. Slide 26-
  420. mysql >SET GLOBAL log_slow_verbosity='standard';
  421. mysql >SET GLOBAL slow_query_log_use_global_control='long_query_time';
  422. mysql> SET GLOBAL long_query_time=0;
  423. mysql >\! mv /var/log/mysql/mysql-slow.log /var/log/mysql/mysql-slow.log__
  424. mysql> FLUSH LOGS;
  425.  
  426.  
  427.  
  428. Slide 27-
  429. #pt-query-digest --limit 100% /var/log/mysql/mysql-slow.log > /root/bb/mysql-slow-db1.time.digest
  430. #pt-query-digest --limit 100% /var/log/mysql/mysql-slow.log --order-by 'Query_time:cnt' > /root/bb/mysql-slow-db1.cnt.digest
  431. #pt-query-digest --limit 100% /var/log/mysql/mysql-slow.log --order-by 'Rows_examined:sum' > /root/palominodb/mysql-slow-db1.rows.digest
  432. #pt-query-digest mysql-slow.log.1 --filter '$event->{Query_time} > 1' > /tmp/mysql-slow.log.1_1sec.txt
  433.  
  434. Slide 28-
  435. #pt-query-digest --limit 100% --since "2013-09-10 13:00:00" --until "2013-09-10 15:00:00" > spike10sept.digest
  436. #zcat slow-log.2.gz | pt-query-digest --limit 100% --since "2013-09-10 13:00:00" --until "2013-09-10 15:00:00" > spike10sept.digest
  437. #pt-query-digest --limit 100% mysql_slow.log --since "2014-01-29 19:00:00" --until "2014-01-30 03:00:00" --order-by 'Rows_examined:sum' > 013014.spike.txt
  438.  
  439. Slide 29-
  440. #tcpdump -s 65535 -x -nn -q -tttt -i any -c 1000000 port 3306 > mysql.tcp.txt
  441. #pt-query-digest --output tcpdump.slow.log --no-report --type tcpdump mysql.tcp.txt
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement