服务器上的SQLserver怎么把数据库备份或者复制到本地

服务器上的SQLserver怎么把数据库备份或者复制到本地,第1张

1、打开SqlServer数据库,选中要备份的数据库,【右键】选择【任务】,点击【备份】。

2、输入【数据集】名称,选择备份路径,点击【确定】就完成了数据库的备份。

3、【右键】选择【任务】,点击【还原】,选择【数据库】。

4、选择之前备份的数据库,点击【确定】。

5、至此SqlServer备份还原的 *** 作就已完成。

一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):

1、导出数据和表结构:

mysqldump

-u用户名

-p密码

数据库名

>

数据库名.sql

#/usr/local/mysql/bin/

mysqldump

-uroot

-p

abc

>

abc.sql

敲回车后会提示输入密码

2、只导出表结构

mysqldump

-u用户名

-p密码

-d

数据库名

>

数据库名.sql

#/usr/local/mysql/bin/

mysqldump

-uroot

-p

-d

abc

>

abc.sql

注:/usr/local/mysql/bin/

--->

mysql的data目录

二、导入数据库

1、首先建空数据库

mysql>create

database

abc

2、导入数据库

方法一:

(1)选择数据库

mysql>use

abc

(2)设置数据库编码

mysql>set

names

utf8

(3)导入数据(注意sql文件的路径)

mysql>source

/home/abc/abc.sql

方法二:

mysql

-u用户名

-p密码

数据库名

<

数据库名.sql

#mysql

-uabc_f

-p

abc

<

abc.sql

建议使用第二种方法导入。

注意:有命令行模式,有sql命令

通用规律只有使用 --all-databases (-A) 会 ERROR 1356,那就看看他到底备份了什么东西。于是喊上同事一起 less 看了下,上下扫了两眼。突然发现:1. 备份 SQL 文件里 DROP 掉了 mysql.proc;2. 后CREATE了一个新的 mysql.proc;3. LOCK TABLES 和 UNLOCK TABLES 中间居然没有备份 CREATE ROUTINE 任何数据?这不就是相当于每次导入全备都给我一个没有任何 sys schema routines 的全新 mysql.proc 表?那这不就异常的尴尬?

---- Table structure for table `proc`--

---- Dumping data for table `proc`-

真相大白在官方文档【sys-schema-usage】官方文档明确的告诉我们不会备份 sys 库。但在使用 mysqldump 在执行 --all-databases 会清空 mysql.proc 导致 sys 无法正常使用;这是一个 BUG,并且只存在于 MySQL 5.7.x !

1、mysql_upgrade install or upgrade sys schema

这个方案适用于 sys 库已经因为 mysqldump 导入而损坏的情况下使用。

注意:mysql_upgrade 在修理 sys 库的同时,还修理 mysql 库和用户库表(期间加锁且速度一般),有极小可能会误伤;使用 mysql_upgrade 的时候要加上 --upgrade-system-tables,不然会扫描用户库表。

2、全备时同时备份 sys 库

这个方案适用于需要还原的数据库,sys 库也不太正常的情况下使用;在全备后额外再备份一份 sys 库用于修复。

注意:不适用于做主从时使用它。

3、使用 databases 全备

这个方案适用于所有场景的全备需求,100% 安全。

4、使用 mysql-sys 开源代码

如果你的数据库 sys 全部中招了,又是生产库。那你只能用这个方法;

mysql-sys:https://github.com/mysql/mysql-sys

中记录了 sys 库的创建语句将文件下载到本地,然后根据数据库版本,执行以下命令即可。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10066950.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-04
下一篇2023-05-04

发表评论

登录后才能评论

评论列表(0条)

    保存