SQL数据迁移问题(数据库迁移的两种方法)

SQL数据迁移问题(数据库迁移的两种方法),第1张

首先,暂停SQL2000数据库,将MDF和LDF文件备份。

这些文件复制到新机器,尝试直接附加,如果两个SQL版本一致,就这个方法最直接。但如果失败,尝试下面几个方法。

一般来说,不同SQL版本迁移数据,推荐使用两种方法进行转换:

1·使用数据库备份还原,在2000中备份成bak文件,到新系统中还原,这个方法的成功率比直接附加大的多,但如果数据库中存在特殊性不兼容的结构,此方法也可能失败,这时候使用第二种方法;

2·在2000中对数据库导出完整脚本(sql文件),在新系统中创建一个空库,执行该脚本。并使用DTS导入数据。

开始菜单--->程序,打开SQL Server Management Studio(即我们的SQL 2005)

连接服务器后,找到我们需要迁移的数据,右键点击属性

在数据库属性里面,点击文件,可查看数据库文件和数据库日志文件的存放路径

确定没有任何其它用户连接到此数据库后,点击该数据库-->任务-->分离

我们可以看到分离以后,刚刚那个数据库,已经不在此列表

进入刚刚我们第3步属性里面看到的数据库文件路径如下图把我们的ZNLCRMmdf数据库文件和ZNLCRM_LogLdf数据库日志文件拷贝到另外一台服务器

在另外台服务器上打开SQL数据库与第1步一样点击数据库--->附加

在附加数据库里面,点击添加,如下图所示

找到刚刚拷贝过来的ZNLCRMmdf文件选中该文件,依次点击确定(注意日志文件会自动一起加载过来)

然后我们就可以看到,一个完整的数据库就直接被迁移过来如下图

数据迁移是数据系统整合中保证系统平滑升级和更新的关键部分。

在信息化建设过程中,随着技术的发展,原有的信息系统不断被功能更强大的新系统所取代。

从两层结构到三层结构,从Client/Server到Browser/Server。

在新旧系统的切换过程中,必然要面临一个数据迁移的问题。

数据迁移的实现可以分为3个阶段:数据迁移前的准备、数据迁移的实施和数据迁移后的校验。

由于数据迁移的特点,大量的工作都需要在准备阶段完成,充分而周到的准备工作是完成数据迁移的主要基础。

具体而言,要进行待迁移数据源的详细说明(包括数据的存储方式、数据量、数据的时间跨度);建立新旧系统数据库的数据字典;对旧系统的历史数据进行质量分析,新旧系统数据结构的差异分析;新旧系统代码数据的差异分析;建立新老系统数据库表的映射关系,对无法映射字段的处理方法;开发、部属ETL工具,编写数据转换的测试计划和校验程序;制定数据转换的应急措施。

如果说运用101 异构数据采集技术,完全0人力成本,不需要人工 *** 作,也不需要软件厂家配合,只需要配置好,机器自动运行,就可以把历史数据抓取出来,自动写入新系统里面

本文说明如何通过把Hive中的数据备份到磁盘中,并从磁盘中恢复到Hive中。

1,把Hive中的表数据备份到磁盘中。 

备份示例:

以上语句说明,把src_companyinfo表中的数据以‘|’为分隔符号,并备份到“/root/grc_bigdata/backup/src_companyinfo”目录中。 

备份之后的目录结构如下:

在Hue中浏览的src_xtbillmx2013_st的目录结构如下: 

从以上结果可以看出,数据文件输出的个数与表在Hive中存储的文件个数不一定一致。

2,把磁盘中的文件恢复到Hive中。 

先在hive中执行建表脚本:

然后在Hive中执行如下导入命令:

3,在Hive中备份46个表、一共552GB的数据到Linux文件系统,一共耗时55386 秒,大概154个小时。 

从Linux文件系统中恢复以上数据,耗时41217秒,大概114个小时。

原文

数据迁移(又称分级存储管理,hierarchical storage management,hsm)是一种将离线存储与在线存储融合的技术。它将高速、高容量的非在线存储设备作为磁盘设备的下一级设备,然后将磁盘中常用的 数据按指定的策略自动迁移到磁带库(简称带库)等二级大容量存储设备上。当需要使用这些数据时,分级存储系统会自动将这些数据从下一级存储设备调回到上一 级磁盘上。对于用户来说,上述数据迁移 *** 作完全是透明的,只是在访问磁盘的速度上略有怠慢,而在逻辑磁盘的容量上明显感觉大大提高了。

数据迁移是将很少使用或不用的文件移到辅助存储系统(如磁带或光盘)的存档过程。这些文件通常是需在未来任何时间可进行方便访问的图像文档或历史信息。迁移工作与备份策略相结合,并且仍要求定期备份。还包括电脑数据迁移,迁移旧电脑(旧系统)中的数据、应用程序、个性化设置等到新电脑(新系统),在系统升级后很有必要。

直接导入hive表

sqoop import --connect jdbc:postgresql://ip/db_name--username user_name --table table_name --hive-import -m 5

内部执行实际分三部,1将数据导入hdfs(可在hdfs上找到相应目录),2创建hive表名相同的表,3,将hdfs上数据传入hive表中

sqoop根据postgresql表创建hive表

sqoop create-hive-table --connect jdbc:postgresql://ip/db_name --username user_name --table table_name --hive-table hive_table_name( --hive-partition-key partition_name若需要分区则加入分区名称)

导入hive已经创建好的表中

sqoop import --connect jdbc:postgresql://ip/db_name --username user_name --table table_name --hive-import -m 5 --hive-table hive_table_name (--hive-partition-key partition_name --hive-partition-value partititon_value);

使用query导入hive表

sqoop import --connect jdbc:postgresql://ip/db_name --username user_name --query "select , from retail_tb_order where \$CONDITIONS" --hive-import -m 5 --hive-table hive_table_name (--hive-partition-key partition_name --hive-partition-value partititon_value);

注意:$CONDITIONS条件必须有,query子句若用双引号,则$CONDITIONS需要使用\转义,若使用单引号,则不需要转义。

以上就是关于SQL数据迁移问题(数据库迁移的两种方法)全部的内容,包括:SQL数据迁移问题(数据库迁移的两种方法)、数据库数据如何跨服务器迁移、求助大咖们历史数据的迁移有什么好方法啊等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存