sql server 怎么复制一个整个数据库到另一个数据库

sql server 怎么复制一个整个数据库到另一个数据库,第1张

首先,新建一个数据库,数据库名字为fuzhi

然后右击选择想要从中获取数据的数据库,选择任务,选择导入数据

然后进入导入第一个页面,然后点击下一步

然后填写想要从中导入数据的数据库配置信息,点击下一步

然后填写fuzhi的配置信息,点击下一步

然后选择第一个,点击下一步

然后选择所有的表数据,点击下一步

选中立即运行,点击下一步

然后都是下一步,然后完成,就可以导入数据了

导入完成之后,就可以看到fuzhi的数据里的表数据了

或者把SQL服务先停止,然后拷出来mdf文件和ldf文件,然后"分离和附加",提示改名,就OK了。

1、既复制表结构也复制表内容的SQL语句:

CREATETABLEtab_newASSELECTFROMtab_old;

2、只复制表结构不复制表内容的SQL语句:

CREATETABLEtab_newASSELECTFROMtab_oldWHERE1=2;

3、不复制表结构,只复制内容的sql语句:

SELECTvale1,value2intoTable2fromTable1

扩展资料:

SQL中常用的语句:

1、说明:创建数据库

CREATEDATABASEdatabase-name

2、说明:删除数据库

dropdatabasedbname

3、说明:创建新表

createtabletabname(col1type1[notnull][primarykey],col2type2[notnull],)

根据已有的表创建新表:

A:createtabletab_newliketab_old(使用旧表创建新表)

B:createtabletab_newasselectcol1,col2fromtab_olddefinitiononly

4、说明:删除新表

droptabletabname

5、说明:增加一个列

Altertabletabnameaddcolumncoltype

6、说明:添加主键

Altertabletabnameaddprimarykey(col)

7、说明:删除主键

Altertabletabnamedropprimarykey(col)

8、说明:创建索引

create[unique]indexidxnameontabname(col)

9、删除索引

dropindexidxname

两个方式,选一个。

1、导出\导入的方式

2、打开数据库后台企业管理器 ->找到你要复制的表->点鼠标右键-点所有任务->点生成SQL脚本->把代码复制出来->把代码黏贴到查询分析器内 把表名改成你需要的表名运行即可

如果从库上表 t 数据与主库不一致,导致复制错误,整个库的数据量很大,重做从库很慢,如何单独恢复这张表的数据?通常认为是不能修复单表数据的,因为涉及到各表状态不一致的问题。下面就列举备份单表恢复到从库会面临的问题以及解决办法:

场景 1

如果复制报错后,没有使用跳过错误、复制过滤等方法修复主从复制。主库数据一直在更新,从库数据停滞在报错状态(假设 GTID 为 aaaa:1-100)。

修复步骤:

在主库上备份表 t (假设备份快照 GTID 为 aaaa:1-10000);

恢复到从库;

启动复制。

这里的问题是复制起始位点是 aaaa:101,从库上表 t 的数据状态是领先其他表的。aaaa:101-10000 这些事务中只要有修改表 t 数据的事务,就会导致复制报错 ,比如主键冲突、记录不存在(而 aaaa:101 这个之前复制报错的事务必定是修改表 t 的事务)

解决办法:启动复制时跳过 aaaa:101-10000 这些事务中修改表 t 的事务。

正确的修复步骤:

1 在主库上备份表 t (假设备份快照 GTID 为 aaaa:1-10000),恢复到从库;

2 设置复制过滤,过滤表 t:

CHANGE REPLICATION FILTER REPLICATE_WILD_IGNORE_TABLE = ('db_namet');

3 启动复制,回放到 aaaa:10000 时停止复制(此时从库上所有表的数据都在同一状态,是一致的);

START SLAVE UNTIL SQL_AFTER_GTIDS = 'aaaa:10000';

4 删除复制过滤,正常启动复制。

注意事项:这里要用 mysqldump --single-transaction --master-data=2,记录备份快照对应的 GTID

场景 2

如果复制报错后,使用跳过错误、复制过滤等办法修复了主从复制。主、从库数据一直在更新。

修复步骤:

在主库上备份表 t (假设备份快照 GTID为 aaaa:1-10000);

停止从库复制,GTID为 aaaa:1-20000;

恢复表 t 到从库;

启动复制。

这里的问题是复制起始位点是 aaaa:20001,aaaa:10000-20000 这些事务将不会在从库上回放,如果这里面有修改表 t 数据的事务,从库上将丢失这部分数据。

解决办法:从备份开始到启动复制,锁定表 t,保证 aaaa:10000-20000 中没有修改表 t 的事务。

正确修复步骤:

对表 t 加读锁;

在主库上备份表 t;

停止从库复制,恢复表 t;

启动复制;

解锁表 t。

如果是大表,这里可以用可传输表空间方式备份、恢复表,减少锁表时间。

在表上面点编辑,然后看到下面有个sqlscript,那里面是建这个表的结构语句,弄出来 放到一个TXT文件里,然后打开一个新的库,把这些语句粘贴进去,执行,所有你想要的空表就都建起来了!

循环冗余检查,是校验算法,为了保证传输无错,文件的完整性。

除硬件问题外,出现死循环,包括:正在使用,写保护,只读,权限,文件部分损坏,之前没有正确校验,磁盘碎片,都有可能造成这样错误。

不是大事儿,检查一下,看是哪个错误。

解决办法固然很多,但一时间想不起来那么全

1,检查原文件的是否完整,有没有错误可以修复

例如:碎片整理 (针对磁盘,缩短传输时间从而减少错误)

2,文件权限,察看文件属性,更改合理之后再传输

3,多线程传输,有可能你的文件已经传输了一部分,但由于后面的错误,导致前面已经过去的文件也被删除

例如:启动IIS,建立虚拟目录,利用软件(迅雷之类)进行多线程下载(针对部分文件错误,但可能会有文件因错误而丢失)

4,DOS命令,用系统模拟的DOS 命令来进行COPY指令(可能会起到走小道抄小路的效果)

5,点对点传输,两台计算机连接,建立来宾用户,进行简单的上传与共享(速度很快相似于单磁盘文件转移)

6,系统干预,由于系统设置不当,导致传输被阻止

例如:本地安全策略,服务,等其他计算机管理设置

7,硬盘跳线设置,接线不能松动

数据库是不是被绑定了?被绑定后我没试过移动它,把它解除试试。数据库一般不大,用U盘传啊,用得着兴师动众的双硬盘么?

坏道了?不会吧,这么严重,既然资料重要,就去修复扇片吧,价格和买块新的差不多。也不一定是坏道。

以上就是关于sql server 怎么复制一个整个数据库到另一个数据库全部的内容,包括:sql server 怎么复制一个整个数据库到另一个数据库、如何复制表SQL、如何在sql 2000中将数据库A的所有表完全复制到数据库B,只需要表不需要表里的数据。最好有详细步骤等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址: http://outofmemory.cn/sjk/9854238.html

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

发表评论

登录后才能评论

评论列表(0条)

保存