#sed 查看范围日志
mysqlbinlog -vvv --base64-output=decode-rows --start-datetime='2023-05-22 09-30-03' --stop-datetime='2023-05-22 09-30-05 mysql-bin.00091 | sed -n '/# at 392596713/,/^COMMIT/p' >/tmp/binlog_blct.txt
#备份脚本 1
#!/bin/bash
user=username
ip=192.168.10.11
pass=`password`
port=3306
mysql -u$user -p$pass -h$ip -P$port -e "create database db_name;"
tablelist="./table.txt"
cat $tablelist|while read -r table;do
echo $table
mysql -u$user -p$pass -h$ip -P$port -e "create table db_name.$table like jingtai.$table;"
mysql -u$user -p$pass -h$ip -P$port -e "copy table from jingtai.$tavke to db_name.$table storagedb all;"
#备份脚本 2
#!/bin/bash
user=username
ip=192.168.10.11
pass=`password`
port=3306
mysql -u$user -p$pass -h$ip -P$port -e "create database db_name_bak;"
table_list=$(mysql -u$user -p$pass -h$ip -P$port -Nse "select table_name from information_schema.tables where table_schema='****_core_pet';")
for table in $table_list
do
echo $table
mysql -u$user -p$pass -h$ip -P$port -e "create table db_name_bak.$table like db_name_old.$table;"
mysql -u$user -p$pass -h$ip -P$port -e "copy table from db_name_old.$table to db_name_bak.$table storagedb all;"
echo "--------------------"
done
# mysql:
echo 10.25.239.164 -P 3406
mysql -upodiumetl -pxxxxxxx -h10.25.239.164 -P3421 "-e select round(sum((data_length+index_length+data_free)/1024/1024/1024),2) as total_GB from information_schema.tables;"
# oracle:
select round(sum(bytes/1024/1024/1024)) from dba_data_files;
恢复要点记录 :
因为文件大,网速低,网络波动导致scp传输文件失败采用rsync传输文件
#rsync解决scp大文件断点续传,将本地文件传至目标目录
rsync -auP -e ssh -p 16022 4.tar_01 root@10.10.10.10:/data/backup
rsync -auP -e ssh -p 16022 4.tar_00 root@10.10.10.10:/data/backup
传输备份文件到指定目录,搭建NFS服务器,各个节点通过NFS服务器挂载备份文件路径
|
服务端: vi /etc/exports /gdbdata/backup *(rw,sync,no_root_squash,no_subtree_check) *这里可以写前ip前两位比如10.10.* systemctl restart rpcbind systemctl start nfs-server 客户端: NFS挂载: mount -t nfs 10.10.10.10:/gdbdata/backup /gdbdata/zxdb1/backup_root --umount /gdbdata/zxdb1/backup_root |
恢复各个节点,先启动哪个节点哪个就是主
#cpu高的时候用 perf抓,怎么抓
1)实时抓:perf top -p 进程号
2)日志抓:perf record -g -p 进程号 -o perf01.data -- sleep 60
但是不能开很长时间,输出文件增长很快。5分钟估计文件就不小了
3)perf report -i xxx.data 解析data文件
perf report -i perf02.data -g
#top常用命令总结
1)top看到的用户名不全,如何展开用户工号?top回车,按下大写的‘X’,输入数字‘5’,再Enter回车就可以看到全用户名!
2)top -H -d 1 -c
3) top -Hp pid 如果发现用户进程使用cpu高,找到其pid进行分析
#iostat
1)iostat -dmx
#at
可以使用 atq 命令,也可以使用at -l命令查看当前有哪些定时任务要执行
echo "echo 'hello world' >> ~/attest.txt" | at now +1 minute/hours
echo "echo 'hello world' >> ~/attest.txt" | at now +1 hours
echo "perf record -g -p 17628 -o perf00.data -- sleep 60"|at 19:34 tomorrow
开机自启:
vi /etc/rc.local
sar -q -f /var/log/sa/sa31
sar -w -f /var/log/sa/sa31
sar -u -f /var/log/sa/sa31 #cpu
sar -r -f /var/log/sa/sa31 #内存
mysql备份
https://blog.csdn.net/qqqq494114408/article/details/138058756
查询阻塞sql:
select sql_text,c.id,d.trx_started from performance_schema.events_statements_current a
join performance_schema.threads b on a.thread_id = b.thread_id
join information_schema.processlist c on b.processlist_id =c.id
join information_schema.innodb_trx d on c.id=d.trx_mysql_thread_id
where sql_text like '%表名%' and current_schema='%库名%'
########
查询长事务
select * from infornation_schema.innodb_trx i,
performance_schema.events_statements_current c,
information_schema.processlist b,
performance_schema.threads t
where t.thread_id=c.thread_id
and i.trx_mysql_thread_id=b.id
and t.processlist_id=b.id;
查询长事务优化
select b.id,sql_text,i.trx_started from infornation_schema.innodb_trx i,
performance_schema.events_statements_current c,
information_schema.processlist b,
performance_schema.threads t
where t.thread_id=c.thread_id
and i.trx_mysql_thread_id=b.id
and t.processlist_id=b.id;
浙公网安备 33010602011771号