mysqlストレージ・プロシージャおよびログとデータ・リカバリ
3595 ワード
MySQLストアド・プロシージャ
Mysqlストアド・プロシージャは、特定の機能を達成するためのSQL文セットのセットであり、コンパイルされた後にデータベースに格納されます.
SQL文のグループを使用する必要がある場合、ユーザーはストレージ・プロシージャの名前を指定し、パラメータを指定するだけで実行を呼び出すことができます.
簡単に言えば、すでに書かれたコマンドのセットで、使う必要があるときに出して使えばいいのです.
実行ストレージ:call p 1ストレージの詳細を表示する:show create procedure p 1G削除トリガ:drop procedure p 1;
このストレージ・プロシージャは、ifの後ろに2つの文が処理され、c#のカッコに相当するため、beginとendが必要です.
bin-logログを開く
データベースのリカバリ
bin-logログを開き、定期的にバックアップすることを前提としています.
考え方:
Mysqlストアド・プロシージャは、特定の機能を達成するためのSQL文セットのセットであり、コンパイルされた後にデータベースに格納されます.
SQL文のグループを使用する必要がある場合、ユーザーはストレージ・プロシージャの名前を指定し、パラメータを指定するだけで実行を呼び出すことができます.
簡単に言えば、すでに書かれたコマンドのセットで、使う必要があるときに出して使えばいいのです.
\d //( )
create procedure p1()
begin
set @i=0;
while @i<10 do
insert into user values(null,concat('user',@i),@i,concat('user',@i,'@qq.com'),1,99);
set @i=@i+1;
end while;
end;
//
実行ストレージ:call p 1ストレージの詳細を表示する:show create procedure p 1G削除トリガ:drop procedure p 1;
このストレージ・プロシージャは、ifの後ろに2つの文が処理され、c#のカッコに相当するため、beginとendが必要です.
bin-logログを開く
1, vim mysql
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
2,
server-id = 123456
log_bin = /var/log/mysql/mysql-bin
3,
4, mysql
sudo service mysql restart
5, bin-log :
mysql>show binary logs;
6,ls mysql
cd /var/lib/mysql
mysql>reset master;
7, bin-log
8,-- binlog
mysqlbinlog mysql-bin.000001
:
mysqldump -uroot -pwei test -l -F '/tmp/test.sql'
:-F flush logs, , log-bin
データベースのリカバリ
bin-logログを開き、定期的にバックアップすることを前提としています.
考え方:
1,
2,
--
mysql> reset master;
Query OK, 0 rows affected (0.39 sec)
--
show binary logs;
--
mysql> create database ops;
Query OK, 1 row affected (0.28 sec)
--
mysql> use ops;
Database changed
--
create table user(
id int not null auto_increment,
name char(20) not null,
age int not null,
primary key(id)
)engine=InnoDB;
--
insert into user values(1,"wangbo","24"),(2,"guohui","22"),(3,"zhangheng","27");
--
mysql> select * from user;
+----+-----------+-----+
| id | name | age |
+----+-----------+-----+
| 1 | wangbo | 24 |
| 2 | guohui | 22 |
| 3 | zhangheng | 27 |
+----+-----------+-----+
3 rows in set (0.00 sec)
--
mysqldump -uroot -p -B -F -R -x --master-data=2 ops >/home/yc/py08/04-mysql/ops.sql
-----------------
:
-B:
-F:
-R:
-x:
--master-data: CHANGE MASTER binlog
--
insert into user values(4,"liupeng","21"),(5,"xiaoda","31"),(6,"fuaiai","26");
--
mysql> select * from user;
+----+-----------+-----+
| id | name | age |
+----+-----------+-----+
| 1 | wangbo | 24 |
| 2 | guohui | 22 |
| 3 | zhangheng | 27 |
| 4 | liupeng | 21 |
| 5 | xiaoda | 31 |
| 6 | fuaiai | 26 |
+----+-----------+-----+
6 rows in set (0.00 sec)
-- , test
drop database ops;
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| python4 |
| sys |
| wx |
+--------------------+
6 rows in set (0.00 sec)
1, binlog
-- binlog sql , vim drop
-- [root@vm-002 backup]# mysqlbinlog -d ops /var/lib/mysql/mysql-bin.000002> /home/yc/002bin.sql
sudo mysqlbinlog -d ops /var/log/mysql/mysql-bin.000002> /home/yc/py08/04-mysql/002bin.sql
2,-- drop
vim 002bin.sql
3,-- ,
mysql -uroot -p < /home/yc/py08/04-mysql/ops.sql
4,-- drop binlog
mysql -uroot -p ops < /home/yc/py08/04-mysql/002bin.sql