mysql,sqlsever,oracle,redis,mongo,postgres等数据库备份及恢复指令整理_MySQL
下列仅整理给出各个数据库备份及恢复最简单的用法,更多详细的参数及配置请查阅相关资料 一、mysql:
参数说明:
备份:mysqldump --single-transaction -l -u $user -p'$password' -h $targethost -P $port --default-character-set=$charset $dbname $table > $filename 恢复:mysql $dbname -u $user -p'$password' -h $targethost -P $port --default-character-set=$charset < $filename 二、sqlserver: 说明:sqlserver2003及以下仅支持osql,sqlserver2005及以上同时支持osql及sqlcmd,以下方法对sqlcmd及osql均通用。
参数说明:
全量备份:osql -U $user -P "$password" -d master -S $instance -Q "ALTER DATABASE $dbname SET OFFLINE WITH ROLLBACK IMMEDIATE; RESTORE DATABASE $dbname FROM DISK='$filename' WITH REPLACE; ALTER DATABASE $dbname SET ONLINE" 增量备份:osql -U $user -P "$password" -d master -S $instance -Q "ALTER DATABASE $dbname SET OFFLINE WITH ROLLBACK IMMEDIATE; RESTORE DATABASE $dbname FROM DISK='$filename' WITH REPLACE,NORECOVERY; RESTORE DATABASE $dbname FROM DISK='$diff_filename' WITH RECOVERY; ALTER DATABASE $dbname SET ONLINE" 全量恢复:osql -U $user -P "$password" -d master -S $instance -Q "ALTER DATABASE $dbname SET OFFLINE WITH ROLLBACK IMMEDIATE; RESTORE DATABASE $dbname FROM DISK='$filename' WITH REPLACE; ALTER DATABASE $dbname SET ONLINE" 增量恢复:osql -U $user -P "$password" -d master -S $instance -Q "ALTER DATABASE $dbname SET OFFLINE WITH ROLLBACK IMMEDIATE; RESTORE DATABASE $dbname FROM DISK='$filename' WITH REPLACE,NORECOVERY; RESTORE DATABASE $dbname FROM DIST='$diff_filename' WITH RECOVERY; ALTER DATABASE $dbname SET ONLINE" 三、oracle: oracle的备份及恢复主要使用rman,感兴趣的可以详细去了解rman的具体使用 四、redis: 说明:redis的数据备份文件存储在配置文件中的dir+dbfilename组成的全路径文件名中; 备份:redis-cli -h targethost -p $port -a $password save 恢复:只需要将备份的文件放置原目录,重启redis即可。 五、mongo: 参数说明:
备份:mongodump --host $targethost:$port -d $dbname -o $backup_dir -u $user -p $password 恢复:mongorestore --host $targethost:$port -d $dbname -u $user -p$password -c $table $recovery_dir 六、postgres:
备份:pg_dump -c -b -h $targethost -p $port -U "$user" $dbname > $filename 恢复:psql -h $targethost -p $port -U "$user" -d $dbname -f $recovery_file |