复制数据库(怎么将数据库的数据复制到另一个数据库)
大家好,复制数据库相信很多的网友都不是很明白,包括怎么将数据库的数据复制到另一个数据库也是一样,不过没有关系,接下来就来为大家分享关于复制数据库和怎么将数据库的数据复制到另一个数据库的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
怎么复制MySQL数据库
项目上 MySQL还原 SQL备份经常会碰到一个错误如下,且通常出现在导入视图、函数、存储过程、事件等对象时,其根本原因就是因为导入时所用账号并不具有SUPER权限,所以无法创建其他账号的所属对象。ERROR 1227(42000): Access denied; you need(at least one of) the SUPER privilege(s) for this operation常见场景:1.还原 RDS时经常出现,因为 RDS不提供 SUPER权限;2.由开发库还原到项目现场,账号权限等有所不同。
处理方式:
1.在原库中批量修改对象所有者为导入账号或修改SQL SECURITY为Invoker;2.使用 mysqldump导出备份,然后将 SQL文件中的对象所有者替换为导入账号。
二、问题原因我们先来看下为啥会出现这个报错,那就得说下 MySQL中一个很特别的权限控制机制,像视图、函数、存储过程、触发器等这些数据对象会存在一个DEFINER和一个SQL SECURITY的属性,如下所示:
--视图定义CREATEALGORITHM=UNDEFINEDDEFINER=`root`@`%`SQLSECURITYDEFINERVIEWv_test
--函数定义CREATEDEFINER=`root`@`%`FUNCTION`f_test()`RETURNSvarchar(100)SQLSECURITYDEFINER
--存储过程定义CREATEDEFINER=`root`@`%`PROCEDURE`p_test`()SQLSECURITYDEFINER
--触发器定义CREATE DEFINER=`root`@`%` trigger t_test
--事件定义CREATE DEFINER=`root`@`%` EVENT `e_test`
DEFINER:对象定义者,在创建对象时可以手动指定用户,不指定的话默认为当前连接用户;
SQL SECURITY:指明以谁的权限来执行该对象,有两个选项,一个为DEFINER,一个为INVOKER,默认情况下系统指定为 DEFINER;DEFINER:表示按定义者的权限来执行;INVOKER:表示按调用者的权限来执行。
如果导入账号具有 SUPER权限,即使对象的所有者账号不存在,也可以导入成功,但是在查询对象时,如果对象的SQL SECURITY为DEFINER,则会报账号不存在的报错。ERROR 1449(HY000): The user specified as a definer('root'@'%') does not exist
改写好处:1.可以避免还原时遇到 DEFINER报错相关问题;2.根据输出信息知道备份是否正常进行,防止备份中遇到元数据锁无法获取然后一直卡住的情况。
怎么将数据库的数据复制到另一个数据库
第一步:首先,打开并连接Sql
Server,在源数据库Source_db(源数据库名称)上右键,然后依次点击“编写表脚本为”→“CREATE到”→“新查询编辑器窗口”。
第二步:在第1步产生的编辑器中按”crtl+a“组合键全选内容,然后右键“复制“(或按"crtl+c"键)。
第三步:新建查询,然后右键”粘贴“(或ctrl+v);如图所示,将代码中Source_db(源数据库名)改为target_db(目标数据库名)。接着右键单击”执行“执行代码。
第四步:然后,在目标数据库的表结构中就可以看到被复制过来的表了。
表的数据内容复制:
第一步:选中目标数据库target_db,然后点击”任务“→”导入数据“。
第二步:进入”SQL
Server导入导出向导“,根据提示步骤操作。
第三步:选择数据源(源数据库)。
第四步:选择目标(目标数据库)、指定表复制或查询。
第五步:选择源表和源视图:设置源表和目标表后,单击“编辑映射”按钮,在弹出窗口中选中“启用标识插入”。(否则后面会出错)
第六步:一直点击“下一步”至最后完成操作。
如何复制数据库文件
一
配置发布服务器
在发布服务器上执行以下步骤:
(1)
从[工具]下拉菜单的[复制]子菜单中选择[配置发布、订阅服务器和分发]出现配置发布和分发向导
(2)
[下一步]
选择分发服务器
可以选择把发布服务器自己作为分发服务器或者其他sql的服务器
(3)
[下一步]
设置快照文件夹
一般采用默认\\servername\d$\Program
Files\Microsoft
SQL
Server\MSSQL\ReplData
**(4)
[下一步]
自定义配置
可以选择:
是,让我设置分发数据库属性启用发布服务器或设置发布设置
否,使用下列默认设置
建议采用自定义设置
(5)
[下一步]
设置分发数据库名称和位置
采用默认值
(6)
[下一步]
启用发布服务器
选择作为发布的服务器
(7)
[下一步]
选择需要发布的数据库和发布类型
(8)
[下一步]
选择注册订阅服务器
(9)
[下一步]
完成配置
sqlserver怎么复制数据库
sqlserver复制数据库为了简洁起见,源库以下简称为 S,目标库简称为 T。
方法中需要用到 SqlDelta
1.在源S上右键,产生创建数据库的脚本;
2.修改脚本用以创建目标库T,主要是将原来的数据库名、文件路径改为实际的。
3. sqlserver2014支持直接查看分区函数和分区方案,直接右键产生相关的创建语句再在T上执行即可。
4.打开 SqlDelta的下图界面, Source为旧DB, Target为新DB。注意源的连接权限至少应该是 dbowner,否则存储过程之类的无法产生脚本。
配置完成没有问题,点击右上角的 Run。
5.如下图,去掉不需要的项(如 users),然后点击右上角产生脚本。
6.将产生的脚本复制到新的DB的“新建查询”窗口,开始执行就完成一半了。
7.执行完成之后,点击上图中的 Refresh按钮,再次对比表、视图之等信息,看是否有不同的项。
如果有区别,则复制相应的脚本重新执行,直到两次完全一致为止。
复制数据库的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于怎么将数据库的数据复制到另一个数据库、复制数据库的信息别忘了在本站进行查找哦。