
这个问题有点笼统了,是Oracle迁移到Mysql?还是Oracle迁移到DB2?如果只讨论迁移方式的话,大致有以下几种
1、数据泵(Data Pump):数据泵是 Oracle 官方提供的一个数据迁移工具,它可以将数据库对象以二进制格式导出并导入到另一个数据库中。使用数据泵可以快速高效地将大量数据迁移至另一个数据库。
2、Oracle GoldenGate:Oracle GoldenGate 是一种实时数据复制和数据集成解决方案,它可以在源和目标数据库之间实现实时的、高效的数据同步,支持跨平台和异构数据库之间的数据迁移。
3、Oracle 迁移工具(Migration Workbench):Oracle 迁移工具是 Oracle 公司提供的一套数据库迁移工具,可以将非 Oracle 数据库的数据迁移到 Oracle 数据库。它支持多种非 Oracle 数据库系统,包括 MySQL、SQL Server、DB2、Sybase 等。
4、外部表(External Table):外部表是 Oracle 数据库中的一种特殊表,它可以通过访问外部文件来存取数据,也可以通过外部表将数据从一个数据库移动到另一个数据库。
5、数据库链接(Database Link):数据库链接可以在不同的 Oracle 数据库之间建立网络连接,可以通过 SQL 语句在不同的数据库之间进行数据传输和同步。
6、第三方工具:还有一些第三方数据迁移工具,如 dbForge Studio、Toad for Oracle、SQL Developer 等,可以帮助用户更方便地进行数据迁移。
以上几种方式,在不同量级数据,不同目标数据库类型上,都有效率的差异,需要结合实际情况进行选择。
通过工具DTS的设计器进行导入或导出
DTS的设计器功能强大 支持多任务 也是可视化界面 容易 *** 作 但知道的人一般不多 如果只是进行SQL Server数据库中部分表的移动 用这种方法最好 当然 也可以进行全部表的移动 在SQL Server Enterprise Manager中 展开服务器左边的+ 选择数据库 右击 选择All tasks/Import Data (或All tasks/Export Data ) 进入向导模式 按提示一步一步走就行了 里面分得很细 可以灵活的在不同数据源之间复制数据 很方便的 而且可以另存成DTS包 如果以后还有相同的复制任务 直接运行DTS包就行 省时省力
也可以直接打开DTS设计器 方法是展开服务器名称下面的Data Transformation Services 选Local Packages 在右边的窗口中右击 选New Package 就打开了DTS设计器 值得注意的是:如果源数据库要拷贝的表有外键 注意移动的顺序 有时要分批移动 否则外键主键 索引可能丢失 移动的时候选项旁边的提示说的很明白 或者一次性的复制到目标数据库中 再重新建立外键 主键 索引
其实建立数据库时 建立外键 主键 索引的文件应该和建表文件分开 而且用的数据文件也分开 并分别放在不同的驱动器上 有利于数据库的优化
利用Bcp工具
这种工具虽然在SQL Server 的版本中不推荐使用 但许多数据库管理员仍很喜欢用它 尤其是用过SQL Server早期版本的人 Bcp有局限性 首先它的界面不是图形化的 其次它只是在SQL Server的表(视图)与文本文件之间进行复制 但它的优点是性能好 开销小 占用内存少 速度快 有兴趣的朋友可以查参考手册
利用备份和恢复
先对源数据库进行完全备份 备份到一个设备(device)上 然后把备份文件复制到目的服务器上(恢复的速度快) 进行数据库的恢复 *** 作 在恢复的数据库名中填上源数据库的名字(名字必须相同) 选择强制型恢复(可以覆盖以前数据库的选项) 在选择从设备中进行恢复 浏览时选中备份的文件就行了 这种方法可以完全恢复数据库 包括外键 主键 索引
直接拷贝数据文件
把数据库的数据文件( mdf)和日志文件( ldf)都拷贝到目的服务器 在SQL Server Query Analyzer中用语句进行恢复:
EXEC sp_attach_db @dbname = ’test’
@filename = ’d:mssql data est_data mdf’
@filename = ’d:mssql data est_log ldf’
这样就把test数据库附加到SQL Server中 可以照常使用 如果不想用原来的日志文件 可以用如下的命令:
EXEC sp_detach_db @dbname = ’test’
EXEC sp_attach_single_file_db @dbname = ’test’
@physname = ’d:mssql data est_data mdf’
这个语句的作用是仅仅加载数据文件 日志文件可以由SQL Server数据库自动添加 但是原来的日志文件中记录的数据就丢失了
在应用程序中定制
可以在应用程序(PB VB)中执行自己编写的程序 也可以在Query Analyzer中执行 这种方法比较灵活 其实是利用一个平台连接到数据库 在平台中用的主要时SQL语句 这种方法对数据库的影响小 但是如果用到远程链接服务器 要求网络之间的传输性能好 一般有两种语句:
>select into new_tablename where
>insert (into) old_tablename select from
where
区别是前者把数据插入一个新表(先建立表 再插入数据) 后者是把数据插入已经存在的一个表中 我个人喜欢后者 因为在编程的结构上 应用的范围上 第二条语句强于前者
SQL Server的复制功能
SQL Server提供了强大的数据复制功能 也是最不易掌握的 具体应用请参考相关资料 值得注意的是要想成功进行数据的复制工作 有些条件是必不可少的:
>SQL Server Agent必须启动 MSDTC必须启动
>所有要复制的表必须有主键
>如果表中有text或image数据类型 必须使用with log选项 不能使用with no_log选项
另外max text repl size选项控制可以复制的文本和图像数据的最大规模 超过这个限制的 *** 作将失败
>在要进行复制的计算机上 应该至少是隐含共享 即共享名是C$或D$…
>为SQL Server代理使用的Windows NT帐号不能是一个本地的系统帐号 因为本地的系统帐号不允许网络存取
lishixinzhi/Article/program/SQLServer/201311/22358
如果是php 就用phpmyadmin 把表一 导出成sql文件,再到导入到b数据库里
如果是jsp, 可以用一款软件 mysql-front,可视化的mysql数据库 *** 作系统。通过这个你可以把表一导出,在导入到b数据库
以上就是关于oracle数据库如何迁移全部的内容,包括:oracle数据库如何迁移、SQL Server的六种数据移动方法、mysql怎样将a数据库表1移动到b数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)