Wednesday, September 14, 2016

Restore Single table from full backup

Restore single table from complete backup
====================================

Pr-requisite: Using percona Xtrabackup

a) echo Starts innobackupex
   innobackupex --defaults-file=/u01/app/mysql/$DB_NAME/etc/my.cnf --user=$DB_ROOT_USER --password=$ROOT_USERPSW --apply-log --export $RESTORE_PATH_DIR/

b) echo Create table schema and discard tablespace
   mysql -u$DB_ROOT_USER -p$ROOT_USERPSW -D$DB_NAME -e"set FOREIGN_KEY_CHECKS=0;source $TABLESTR_FILE;ALTER TABLE $TABLE_NAME DISCARD TABLESPACE;"

c) echo copy files
   cp -p /u99/mysqldata/${DB_NAME}/${BACKUP_DIREC}/${DB_NAME}/$TABLE_NAME.ibd /u99/mysqldata/${DB_NAME}/${BACKUP_DIREC}/${DB_NAME}/$TABLE_NAME.exp /u99/mysqldata/${DB_NAME}/${BACKUP_DIREC}/${DB_NAME}/$TABLE_NAME.cfg /u02/mysqldata/$DB_NAME/data/$DB_NAME/

d) echo change permissions
   chown mysql:mysql /u02/mysqldata/$DB_NAME/data/$DB_NAME/$TABLE_NAME.*
   chmod 660 /u02/mysqldata/$DB_NAME/data/$DB_NAME/$TABLE_NAME.*

e) echo Import tablespace  
   mysql -u$DB_ROOT_USER -p$ROOT_USERPSW -D$DB_NAME -e"set FOREIGN_KEY_CHECKS=0;ALTER TABLE $TABLE_NAME IMPORT TABLESPACE;"

Note: To achieve above result, innodb_file_per_table should be enabled.

No comments:

Post a Comment