柔中带刚,刚中带柔,淫荡中富含柔和,刚猛中荡漾风骚,无坚不摧,无孔不入!
全部博文(1669)
分类: Mysql/postgreSQL
2012-10-19 18:59:34
2011-10-09 16:24:07| 分类: my复制 | 标签: |字号大中小
一、为从数据库设置复制账号
grant REPLICATION SLAVE on *.* To identified by 'backuppwd'
flush privileges
二、导出数据
(1)直接复制数据文件目录方法
a. 停止数据库写数据
flush tables with read lock
b.显示此时master的状态
show master status
计下此时主数据库的binlog的当前文件及文件中的偏移位置(主数据库必须打开log-bin选项),这个在启动从数据库时需要,以便使从数据库启动时知道从哪里执行主数据库的改变(执行主数据的日志)
+---------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql-bin.003 | 73 | | |
+---------------+----------+--------------+------------------+
c.innodb表需要关闭数据库
mysqladmin -uroot shutdown
d.导出数据
tar cvfz data.tar.gz 数据库文件目录
e.解锁所有表
unlock tables
(2)利用mysqldump导出
nohup /usr/local/mysql/bin/mysqldump -u
三、将数据导入从数据库
(1)直接复制到数据目录
cp命令(确保数据文件目录的权限)
(2)命令导入
mysql -u
四、配置数据库配置文件
(1)主数据库
[mysqld]
log-bin=mysql-bin
server-id=1
(2)从数据库
[mysqld]
server-id=2
master-host=
master-user=
master-password=
master-port=3306
master-connect-retry=60
replicate-do-db=backup_db #要复制的数据库
log-slave-updates #可以作为master,或者是在从数据库启动命令时加入参数--logs-slave-updates,可以配置“主-->从-->从”的链式结构
read-only=1
五、启动从数据库
1.用--skip-slave-start选项启动从服务器,以便它不立即尝试连接主服务器
2.设置从数据库
在从服务器上执行下面的语句,用你的系统的实际值替换选项值:
mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name',
-> MASTER_USER='replication_user_name',
-> MASTER_PASSWORD='replication_password',
-> MASTER_LOG_FILE='recorded_log_file_name',
-> MASTER_LOG_POS=recorded_log_position;
3.开启从数据库
start slave
六、主、从数据库进程
1.主数据库进程
Binlog Dump线程
2.从数据库进程
复制从I/O线程:与主数据库连接
复制从SQL线程状态:执行从主数据库得到的binlog日志
七、从数据库日志文件
data目录下:
master.info ---- 连接的主数据库的相关信息
relay-log.info ---- 从数据库执行的相关信息
八、dump的--master-data选项
--master-data[=value]
该选项将二进制日志的位置和文件名写入到输出中。该选项要求有RELOAD权限,并且必须启用二进制日志。如果该选项值等于1,位置和文件名被写入CHANGE MASTER语句形式的转储输出,如果你使用该SQL转储主服务器以设置从服务器,从服务器从主服务器二进制日志的正确位置开始。如果选项值等于2,CHANGE MASTER语句被写成SQL注释。如果value被省略,这是默认动作。