mysqldump备份不锁表:加上--lock-tables=false参数,如果是innodb,则加上--single-transcation比较好。 问下,如果一个数据库中既有 myisam存储引擎的表,也有innodb存储引擎的表,那么怎么选择,可以两个一起加吗?

解决方案 »

  1.   


    不是还有bin-log吗?
    我们公司的客户都是select为主的。
    数据全是我们公司员工导入的,我们是金融咨询性质的服务业务。
      

  2.   

    加上--single-transcation
    对innodb来说是锁了,不锁的话,不要加
      

  3.   

    锁住,然后加上FLUSH LOGS;产生新的日志文件。
      

  4.   


    大家看下我的示例命令:
    Shell> $mysqlDir/bin/mysqldump -uroot -p123456 --opt --default-character-set=utf8 --extended-insert=false --triggers -R --hex-blob --all-databases --flush-logs --delete-master-logs --delete-master-logs --lock-tables=false --single-transcation -x > /tmp/mysqlbackup/backup_20101215_adb.sql有没有漏洞,告诉我下。
      

  5.   


    那么,这个时候,还可以操作innodb表吗?
      

  6.   


    不行啊,我都加了,报错了:
    [root@ldap-mysql-svn-trac script]# /usr/script/mysqlFull.sh
    /usr/script/mysqlFull.sh: line 1: :MySQL: command not found
    ++ scriptsDir=/usr/script
    ++ mysqlDir=/usr/local/mysql
    ++ user=root
    ++ userPWD=123456
    ++ dataBackupDir=/tmp/mysqlbackup
    ++ eMailFile=/tmp/mysqlbackup/email.txt
    ++ [email protected]
    ++ [email protected]
    ++ logFile=/tmp/mysqlbackup/mysqlbackup.log
    ++ echo ''
    +++ date +%Y-%m-%d-%H:%M:%S
    ++ echo 2010-12-16-14:41:54
    ++ cd /tmp/mysqlbackup
    +++ date +%Y%m%d_%H%M%S
    ++ dumpFile=mysql_20101216_144155.sql
    +++ date +%Y%m%d_%H%M%S
    ++ GZDumpFile=mysql_20101216_144155.sql.tar.gz
    ++ /usr/local/mysql/bin/mysqldump -uroot -p123456 --opt --default-character-set=utf8 --extended-insert=false --triggers -R --hex-blob --all-databases --flush-logs --delete-master-logs --delete-master-logs --lock-tables=false --single-transaction -x
    mysqldump: You can't use --single-transaction and --lock-all-tables at the same time.++ [[ 1 == 0 ]]
    ++ echo 'DataBase Backup Fail!'
    /usr/script/mysqlFull.sh: line 56: $emailFile: ambiguous redirect
    ++ echo --------------------------------------------------------
    ++ cat /tmp/mysqlbackup/email.txt
    ++ cat /tmp/mysqlbackup/email.txt
    ++ mail -s 'MySQL Backup' [email protected]
    ++ cat /tmp/mysqlbackup/email.txt
    ++ mail -s 'MySQL Backup' [email protected]
    狼哥,你看红色部分,提示了不能混在一起用啊!
      

  7.   

    [code=SQL]$mysqlDir/bin/mysqldump -uroot -p123456 --opt --default-character-set=utf8 --extended-insert=false --triggers -R --hex-blob --all-databases --flush-logs --delete-master-logs --delete-master-logs --lock-tables=false --single-transaction -x > /tmp/mysqlbackup/bac--lock-tables=false --single-transaction  放在一起报错了啊!
      

  8.   

    --lock-all-tables 对所有表锁定,不管它是什么引擎的。
      

  9.   

    --single-transaction and --lock-all-tables是互斥的