• 关于

    如何连接oracle数据库

    的搜索结果

问题

如何处理无法连接数据源的情况?

LiuWH 2020-03-21 09:21:54 2 浏览量 回答数 1

问题

ORACLE 创建数据库

a123456678 2019-12-01 19:41:23 796 浏览量 回答数 1

回答

本文介绍如何使用数据传输服务DTS(Data Transmission Service),将自建Oracle数据迁移至RDS MySQL实例。DTS支持结构迁移、全量数据迁移以及增量数据迁移,同时使用这三种迁移类型可以实现在本地应用不停服的情况下,平滑地完成Oracle数据库的数据迁移。 源库支持的实例类型 进行数据迁移操作的Oracle数据库支持以下实例类型: 有公网IP的自建数据库 ECS上的自建数据库 通过专线/VPN网关/智能网关接入的自建数据库 本文以有公网IP的自建数据库为例介绍配置流程,其他实例类型的自建Oracle数据库配置流程与该案例类似。 前提条件 自建Oracle数据库的版本为9i、10g或11g版本。 自建Oracle数据库已开启Supplemental Logging,且要求supplemental_log_data_pk,supplemental_log_data_ui已开启,详情请参见Supplemental Logging。 自建Oracle数据库已开启ARCHIVELOG(归档模式),设置合理的归档日志保持周期且归档日志能够被访问,详情请参见ARCHIVELOG。 自建Oracle数据库的服务端口已开放至公网。 RDS MySQL实例的存储空间须大于自建Oracle数据库占用的存储空间。 注意事项 DTS在执行全量数据迁移时将占用源库和目标库一定的读写资源,可能会导致数据库的负载上升,在数据库性能较差、规格较低或业务量较大的情况下(例如源库有大量慢SQL、存在无主键表或目标库存在死锁等),可能会加重数据库压力,甚至导致数据库服务不可用。因此您需要在执行数据迁移前评估源库和目标库的性能,同时建议您在业务低峰期执行数据迁移(例如源库和目标库的CPU负载在30%以下)。 如果源数据库没有主键或唯一约束,且所有字段没有唯一性,可能会导致目标数据库中出现重复数据。 RDS MySQL实例对表名的英文大小写不敏感,如果使用大写英文建表,RDS MySQL会先把表名转为小写再执行建表操作。 如果源Oracle数据库中存在表名相同仅大小写不同的表,可能会导致迁移对象重名并在结构迁移中提示“对象已经存在”。如果出现这种情况,请在配置迁移对象的时候,使用DTS提供的对象名映射功能对重名的对象进行重命名,详情请参见库表列映射。 如果待迁移的数据库在目标RDS MySQL实例中不存在,DTS会自动创建。但是对于如下两种情况,您需要在配置迁移任务之前在目标RDS MySQL实例中创建数据库。 数据库名称不符合RDS定义规范,详细规范请参见创建数据库。 待迁移数据库在源Oracle数据库与目标RDS MySQL实例中的名称不同。 费用说明 迁移类型 链路配置费用 公网流量费用 结构迁移/全量数据迁移 不收费。 通过公网将数据迁移出阿里云时将收费,详情请参见产品定价。 增量数据迁移 收费,详情请参见产品定价。 迁移类型说明 结构迁移 DTS支持结构迁移的对象为表和索引,暂不支持视图、同义词、触发器、存储过程、存储函数、包、自定义类型等。表和索引的结构迁移存在以下限制: 表:不支持嵌套表;对于聚簇表和索引组织表,会在目标端转换成普通的表。 索引:不支持Function-Based Index、Domain Index、Bitmap Index和ReverseIndex。 全量数据迁移 DTS会将自建Oracle数据库迁移对象的存量数据,全部迁移到目标RDS MySQL实例数据库中 。 说明 为保障数据一致性,全量数据迁移期间请勿在自建Oracle数据库中写入新的数据。 增量数据迁移 在全量迁移的基础上,DTS会轮询并捕获自建Oracle数据库产生的redolog,将自建Oracle数据库的增量更新数据同步到目标RDS MySQL实例数据库中。通过增量数据迁移可以实现在本地应用不停服的情况下,平滑地完成Oracle数据库的数据迁移工作。 增量数据迁移支持同步的SQL操作 INSERT、DELETE、UPDATE CREATE TABLE 说明 表内定义不能包含函数。 ALTER TABLE、ADD COLUMN、DROP COLUMN、RENAME COLUMN、ADD INDEX DROP TABLE RENAME TABLE、TRUNCATE TABLE、CREATE INDEX 数据库账号权限要求 数据库 结构迁移 全量迁移 增量数据迁移 自建Oracle数据库 schema的owner权限 schema的owner权限 SYSDBA RDS MySQL实例 待迁入数据库的写权限 待迁入数据库的写权限 待迁入数据库的写权限 数据库账号创建及授权方法: 自建Oracle数据库请参见CREATE USER和GRANT。 RDS MySQL实例请参见创建账号和修改账号权限。 数据类型映射关系 详情请参见异构数据库间的数据类型映射关系。 操作步骤 登录数据传输控制台。 在左侧导航栏,单击数据迁移。 在迁移任务列表页面顶部,选择迁移的目标实例所属地域。选择地域 单击页面右上角的创建迁移任务。 配置迁移任务的源库及目标库信息。 源库和目标库连接配置 类别 配置 说明 任务名称 - DTS会自动生成一个任务名称,建议配置具有业务意义的名称(无唯一性要求),便于后续识别。 源库信息 实例类型 选择有公网IP的自建数据库。 实例地区 当实例类型选择为有公网IP的自建数据库时,实例地区无需设置。 说明 如果您的自建Oracle数据库进行了白名单安全设置,您需要在实例地区配置项后,单击获取DTS IP段来获取到DTS服务器的IP地址,并将获取到的IP地址加入自建Oracle数据库的白名单安全设置中。 数据库类型 选择Oracle。 主机名或IP地址 填入自建Oracle数据库的访问地址,本案例填入公网地址。 端口 填入自建Oracle数据库的服务端口,默认为1521。 实例类型 非RAC实例:选择该项后,您还需要填写SID信息。 RAC实例:选择该项后,您还需要填写ServiceName信息。 数据库账号 填入自建Oracle的数据库账号,权限要求请参见迁移账号权限要求。 数据库密码 填入该数据库账号对应的密码。 说明 源库信息填写完毕后,您可以单击数据库密码后的测试连接来验证填入的源库信息是否正确。源库信息填写正确则提示测试通过;如果提示测试失败,单击测试失败后的诊断,根据提示调整填写的源库信息。 目标库信息 实例类型 选择RDS实例。 实例地区 选择目标RDS实例所属地域。 RDS实例ID 选择目标RDS实例ID。 数据库账号 填入目标RDS实例的数据库账号,权限要求请参见迁移账号权限要求。 数据库密码 填入该数据库账号对应的密码。 说明 目标库信息填写完毕后,您可以单击数据库密码后的测试连接来验证填入的目标库信息是否正确。目标库信息填写正确则提示测试通过;如果提示测试失败,单击测试失败后的诊断,根据提示调整填写的目标库信息。 配置完成后,单击页面右下角的授权白名单并进入下一步。 说明 此步骤会将DTS服务器的IP地址自动添加到目标RDS实例的白名单中,用于保障DTS服务器能够正常连接目标RDS实例。 选择迁移对象及迁移类型。 选择迁移类型和迁移对象 配置 说明 迁移类型 如果只需要进行全量迁移,同时勾选结构迁移和全量数据迁移。 说明 为保障数据一致性,全量数据迁移期间请勿在自建Oracle数据库中写入新的数据。 如果需要进行不停机迁移,同时勾选结构迁移、全量数据迁移和增量数据迁移。 迁移对象 在迁移对象框中选中待迁移的对象,单击向右小箭头将其移动到已选择对象框。 说明 迁移对象选择的粒度可以为库、表、列三个粒度。 默认情况下,迁移完成后,迁移对象名跟自建Oracle数据库一致。如果您需要迁移对象在目标RDS实例上名称不同,那么需要使用DTS提供的对象名映射功能。使用方法请参见库表列映射。 单击页面右下角的预检查并启动。 说明 在迁移任务正式启动之前,会先进行预检查。只有预检查通过后,才能成功启动迁移任务。 如果预检查失败,单击具体检查项后的提示,查看失败详情。根据提示修复问题后,重新进行预检查。 预检查通过后,单击下一步。 在购买配置确认页面,选择链路规格并勾选数据传输(按量付费)服务条款。 单击购买并启动,迁移任务正式开始。 全量数据迁移 请勿手动结束迁移任务,否则可能导致数据不完整。您只需等待迁移任务完成即可,迁移任务会自动结束。 增量数据迁移 迁移任务不会自动结束,您需要手动结束迁移任务。 说明 请选择合适的时间手动结束迁移任务,例如业务低峰期或准备将业务切换至目标实例时。 观察迁移任务的进度变更为增量迁移,并显示为无延迟状态时,将源库停写几分钟,此时增量迁移的状态可能会显示延迟的时间。 等待迁移任务的增量迁移再次进入无延迟状态后,手动结束迁移任务。无延迟 将业务切换至RDS实例。 后续操作 用于数据迁移的数据库帐号拥有读写权限,为保障数据库安全性,请在数据迁移完成后,删除自建Oracle数据库和RDS MySQL实例中的数据库帐号。 更多信息 DTS支持在自建Oracle数据迁移至RDS MySQL实例时的数据反向回流,您可以使用该功能将RDS MySQL实例中产生的数据变化同步回自建Oracle数据库。如您有相关需求,请提交工单申请开通。

游客yl2rjx5yxwcam 2020-03-08 14:04:46 0 浏览量 回答数 0

阿里云高校特惠,助力学生创业梦!0元体验,快速入门云计算!

学生动手场景应用,快速了解并掌握云服务器的各种新奇玩法!

问题

Django可以连接四种数据库之外的的其他数据库吗??报错

爱吃鱼的程序员 2020-06-08 09:57:34 0 浏览量 回答数 1

回答

在基本级别上,mysql,mysqli和PDO扩展都回答了如何与数据库对话的问题?它们都提供了连接数据库以及从数据库发送和检索数据的功能。您可以同时使用它们,一次建立到数据库的多个连接,但这通常是胡说八道。 mysql *是一个非常简单的扩展,基本上可以让您连接到数据库,向其发送SQL查询,而没有太多其他事情。 mysqli通过添加参数化查询和其他一些东西来改善这一点(顾名思义)。 PDO是将多个数据库驱动程序抽象到一个包中的扩展,即它允许您使用相同的代码连接到MySQL,Oracle,MS SQL Server和许多其他数据库,而无需使用特定于数据库的扩展或在需要时重写代码您切换数据库(至少在理论上)。它还支持参数化查询。 如果您知道将专门使用MySQL,那么mysqli是一个不错的选择。特别是因为您可以按程序方式使用它,所以您已经习惯了mysql扩展。如果您不熟悉OOP,那会很有帮助。否则,PDO是一个不错的面向对象的灵活数据库连接器。 *请注意,现在不建议使用 mysql扩展名,以后将在某个时候删除它。这是因为它是古老的,充满了不良做法,并且缺乏一些现代功能。不要用它来编写新代码。来源:stack overflow

保持可爱mmm 2020-05-17 18:03:38 0 浏览量 回答数 0

问题

Node如何连接SQLServer和Oracle数据库? 400 请求报错 

kun坤 2020-05-30 22:58:26 0 浏览量 回答数 1

回答

dblink, 建立 dblink,如在A库 里面又本地 A表 B库 有B表, 在A库建一个 DBlink 直接连到该库,B@Dblink名字,insert   into   table a   select  from table b@Dblink名 。  如何建立 dblink--create database link Dblink名称(自己任意写)  connect to  username(连b库用户名) identitfied by password(连B库的密码) using ' 在tnsnames 配置连接B库的连接名'。######我用的而是mysql该如何建立dblink######同一台数据库服务器的话   数据库名.tableb   可以实现。不同服务器的话初步想法是做个同步表的脚本,公司虽然读写分离,暂时没有多服务器的需求######sharding-jdbc 之类的或许可以帮助你######http://huqiji.iteye.com/blog/2068613 mysql类似Oracle 的dblink实现。

kun坤 2020-05-31 18:19:49 0 浏览量 回答数 0

问题

如何使用本地客户端连接分析型数据库?

nicenelly 2019-12-01 21:25:56 1374 浏览量 回答数 0

问题

rpa4.0下如何导入python的扩展包啊

游客fanthowfzajju 2020-10-14 10:53:46 69 浏览量 回答数 1

问题

谁说阿里云不能跑Oracle,让驻云架构师告诉你怎么办!

驻云科技 2019-12-01 21:37:32 14181 浏览量 回答数 4

回答

Linux开源稳定免费 Linux相信大多数小伙伴都知道,一个开源稳定免费的操作系统,这些特征都是相对于我们熟悉的Windows系统而言的。 今天我们来说一下学数据库的人为什么也要学Linux? 很多刚学习数据库的小伙伴第一次接触数据库应该都是微软的Access或者SQL Server系列。 它的界面友好,操作简单,跟着书本上多操作几次就会了。这容易给我们一个错觉:所有的数据库应该都是这样运行在Windows上的! 大部分数据库软件其实都运行在Linux上的,而且基本都是命令界面,没有友好的图形化界面。 Linux支持大部分数据库软件 经常会有一些教程是让我们记命令大全之类的,原因就在这里,命令界面是没有相关操作命令的提示符的。 而工作中我们常用的数据库Mysql,Oracle都是运行在Linux服务器上的,即使是微软的SQL Server也在2016版以后也开始支持Linux操作系统。 在这样一个现实面前,我们还是要有一点Linux的基础知识,至少你需要知道如何在Linux系统下安装数据库,启动数据库,连接数据库等等。 有感于最近公司Oracle数据库出现故障,会Linux真的会让你的价值翻倍。未来如果你有幸转行做DBA,那Linux更是需要你去深究的一个操作系统,它里面的学问真的太多了,说句不客气的话,一个不擅长Linux系统的DBA不是一个好DBA。 此外好多开发工具也支持Linux但不支持Windows,我所了解的一款数据库测试工具sysbench是如此。这只是其中一个例子,当你深入研究会发现,实际工作中的好多工具必须在Linux环境才能运行。所以学习和使用Linux是作为开发人员的必修课。

茶什i 2019-12-31 10:11:52 0 浏览量 回答数 0

问题

c的静态库包含的错误?报错

爱吃鱼的程序员 2020-06-22 14:39:21 0 浏览量 回答数 1

问题

调用中的无效参数 : 配置报错 

kun坤 2020-06-04 11:51:00 4 浏览量 回答数 1

问题

通过自动重连方式解决RDS闪断问题

nono20011908 2019-12-01 21:07:16 27529 浏览量 回答数 1

回答

druid什么版本?只出错一次还是一直出错?我也遇到同样的问题。druid-1.0.5.jar有这个问题,升级到最新druid-1.0.29.jar仍然有这个问题。 @ wenshao 这是我的数据源信息,您看哪里需要调整? BasicInfoForDataSource-16171097 ViewJSONAPI * 用户名dqbxuser指定建立连接时使用的用户名* 连接地址jdbc:oracle:thin:@192.168.128.201:1521:dqsitestdbjdbc连接字符串* 数据库类型oracle数据库类型* 驱动类名oracle.jdbc.OracleDriverjdbc驱动的类名* filter类名com.alibaba.druid.wall.WallFilter,com.alibaba.druid.filter.stat.StatFilterfilter的类名* 获取连接时检测false是否在获得连接后检测其可用性* 空闲时检测true是否在连接空闲一段时间后检测其可用性* 连接放回连接池时检测false是否在连接放回连接池后检测其可用性* 初始化连接大小10连接池建立时创建的初始化连接数* 最小空闲连接数10连接池中最小的活跃连接数* 最大连接数100连接池中最大的活跃连接数* 查询超时时间0查询超时时间* 事务查询超时时间0事务查询超时时间* 登录超时时间0 * 连接有效性检查类名com.alibaba.druid.pool.vendor.OracleValidConnectionChecker * ExceptionSorter类名com.alibaba.druid.pool.vendor.OracleExceptionSorter * 默认autocommit设置true * 默认只读设置null * 默认事务隔离null * MinEvictableIdleTimeMillis1800000 * MaxEvictableIdleTimeMillis25200000 * KeepAlivefalse * FailFastfalse * PoolPreparedStatementsfalse *MaxPoolPreparedStatementPerConnectionSize-1 * MaxWait-1 * MaxWaitThreadCount-1 * LogDifferentThreadtrue * UseUnfairLockfalse * InitGlobalVariantsfalse * InitVariantsfalse 等待次数0获取连接时最多等待多少次等待最大时长0获取连接时最多等待多长时间等待线程数量0当前等待获取连接的线程数事务启动数0事务开始的个数事务时间分布0,0,0,0,0,0,0事务运行时间分布,分布区间为[0-10ms,10-100ms,100-1s,1-10s,10-100s,>100s]池中连接数10当前连接池中的数目池中连接数峰值10连接池中数目的峰值池中连接数峰值时间2017-04-1306:24:15连接池数目峰值出现的时间活跃连接数0当前连接池中活跃连接数活跃连接数峰值1连接池中活跃连接数峰值活跃连接数峰值时间2017-04-1306:24:15活跃连接池峰值出现的时间逻辑连接打开次数1产生的逻辑连接建立总数逻辑连接关闭次数1产生的逻辑连接关闭总数逻辑连接错误次数0产生的逻辑连接出错总数逻辑连接回收重用次数0逻辑连接回收重用次数物理连接打开次数10产生的物理连接建立总数物理关闭数量0产生的物理关闭总数物理连接错误次数0产生的物理连接失败总数执行数0 错误数0 提交数0事务提交次数回滚数0事务回滚次数真实PreparedStatement打开次数0真实PreparedStatement打开次数真实PreparedStatement关闭次数0真实PreparedStatement关闭次数PSCache访问次数0PSCache访问总数PSCache命中次数0PSCache命中次数PSCache不命中次数0PSCache不命中次数连接持有时间分布1,0,0,0,0,0,0,0连接持有时间分布,分布区间为[0-1ms,1-10ms,10-100ms,100ms-1s,1-10s,10-100s,100-1000s,>1000s]Clob打开次数0Clob打开数Blob打开次数0Blob打开数KeepAlive检测次数0KeepAlive检测次数活跃连接堆栈查看 View StackTraceforactiveConnection. [ViewJSONAPI] 连接池中连接信息 View Infoforpollingconnection.  [ViewJSONAPI] sql列表 View InfoforSQL. [ViewJSONAPI] 请问这个问题如何解决

爱吃鱼的程序员 2020-06-08 15:44:04 0 浏览量 回答数 0

问题

请问用java 如何连接 mysql fabric ?报错

爱吃鱼的程序员 2020-06-14 21:52:27 0 浏览量 回答数 1

问题

ECS Windows 实例如何安装 Oracle Database

boxti 2019-12-01 21:32:07 1994 浏览量 回答数 0

问题

2018MySQL技术问答集锦,希望能给喜欢MySQL的同学一些帮助

技术小能手 2019-12-01 19:31:11 1856 浏览量 回答数 0

回答

重启数据库呢?回复<aclass='referer'target='_blank'>@小赵的开源社区:那就不知道了,没玩过oracle不好使 用sqlplus连接试试贴出报错信息回复<aclass='referer'target='_blank'>@小赵的开源社区:用sqlplus连接的错误信息我现在连这个数据库就报这个错误上面的截图就是杀毒软件杀掉进程了吧。回复<aclass='referer'target='_blank'>@&Tracker:什么???链接太多如何查看?但是有一点可以肯定我连其他服务器上的数据库没有任何问题。只有连这一个的时候老报这个错误。回复<aclass='referer'target='_blank'>@小赵的开源社区:那是不是你本机上TCP/IP链接太多导致。没杀毒软件了 <imgsrc="http://static.oschina.net/uploads/space/2013/0227/173255_44KU_115804.jpg"alt=""/> 在这里连接贴出报错信息

爱吃鱼的程序员 2020-06-22 21:38:23 0 浏览量 回答数 0

问题

如何配置迁移任务(一)

云栖大讲堂 2019-12-01 21:27:21 958 浏览量 回答数 0

问题

具有一些公用表的多个模式-Spring JPA

养狐狸的猫 2019-12-01 20:00:30 3 浏览量 回答数 0

问题

【精品问答】云数据库十大经典案例总结和反思

问问小秘 2020-01-02 13:09:08 8 浏览量 回答数 1

问题

【精品问答】带你进入数据库领域

谙忆 2020-04-07 20:45:48 12 浏览量 回答数 1

回答

6月30日打卡,今日学习第四讲云端运维/监控/容器及DevOps实践”。 作业如下: 1. 关注云端架构带来的运维挑战, A单服务变更性能影响如何评估? B性能瓶颈在各微服务间漂移,如何做好性能测试? C应对突发流量需求,扩容能否解决问题,如何扩容? D服务实例数量众多,如何收集信息,快速定位性能问题? 2. 搭建成本高,学习成本大,监控不全 3. 未来一站式监控,全局埋点 4. 快速弹性伸缩 5. 构建仓库,采用模型化容器监控方案。通过对监控对象、监控过程进行建模,基于模型来驱动整个监控场景 #6月23日打卡,今日学习第三讲,《云端五大类热门技术实践》 ---作业1. 云平台已经充分考虑了各种场景下的应用的搭建,且为之实现了高可用,且能动态弹性伸缩 。 作业2. 负载均衡,多数据中心。 作业3. 前端负载均衡一般考虑七层,后端应用要充分考虑未来的压力,做好应用的高并发处理等 。 作业4. 主备、热备、冷备 。 作业5. 读写操作 。 6月21打卡读书汇第二讲:云端系统热门技术选型及配置容量规划实战”。 作业1 因为是入口流量,所以不收取流量费用; 作业2 Nginx可以作为Web服务器、或者负载均衡,有以下优势: 稳定性好,云端架构中LNMP(Linux+Nginx+MySQL+PHP)应用很广泛; 支持四层、七层的负载均衡、反向代理的功能; 性能高,高并发,系统资源占用少; 支持插件和灵活的二次开发; 前端静态数据缓存; 作业3 不可以;因为LVS(Linux Virtual Server)在四层和二层,不能识别封装在七层中的数据包内容。 作业4 一次连接:LVS的DR模式、NAT模式对数据包的处理都做一次连接,负载均衡对数据包仅做转发; 二次连接:Ngnix/HAProxy四层的二次连接是客户端和负载均衡进行TCP三次握手后,负载均衡和后端服务器会进行新的TCP连接; Nginx/HAProxy七层的二次连接是客户端和负载均衡进行TCP三次握手后,还需要等客户端Pushdata传输数据后,负载均衡和后端服务器会进行新的TCP连接; 作业5 I/O 5分钟法则:如果一天记录频繁被访问,就应该考虑放到缓存里。否则的话,客户端就按需要直接去访问数据源,这个的临界点是5分钟。 作业6 数据库的三大分类:关系型数据库(ACID模型)、BASE模型、非关系型数据库。 热门关系型数据库:Microsoft Access,Oracle、MySQL、SQL Server; 热门非关系型数据库:Redis; 作业7 2台 8核16G,10Mbps; 6月9日打卡今日学习《第一讲:云计算带来的技术变革》 作业一. B 作业二.有更强大的技术支持,对业务的满足更加充分,环境配置方面非常方便,自动化运维。 作业三. IaaS基础设施即服务 ,将软件的开发、管理、部署都交给第三方。Pass:平台即服务,提供软件部署平台,抽象了硬件和操作系统细节,可以无缝地扩展。开发者只需要关注自己的业务逻辑,不需要关注底层;Sass:软件即服务 ,是云服务的最底层,主要提供一些基础资源 作业四:编程语言是java,技术架构是Devops。作业

创造001 2020-06-09 23:36:25 0 浏览量 回答数 0

问题

在was6.1上部署一个web应用,使用Oracle10g数据库,使用连接池方式连接数据库,使用qu

游客ufivfoddcd53c 2020-01-04 10:49:52 0 浏览量 回答数 1

问题

centos6.5安装oraclexe11g完全教程分享

何懮 2019-12-01 21:44:35 10535 浏览量 回答数 0

问题

centos6.5安装oraclexe11g完全教程分享

何懮 2019-12-01 21:44:36 10535 浏览量 回答数 4

回答

Java - Java编程语言(新版)介绍 Java 基本语法、Java 平台应用、 Java 的核心概念:JVM、JDK、JRE以及 java 面向对象思想,同时会学到如何在系统中搭建 Java 开发环境,以及如何利用第三方工具进行 Java 程序的开发。Java - Java进阶之设计模式介绍常用的设计模式以及 Java 语言的实现实例来学习 java 设计模式。从中我们可以学习到很多类型的设计模式,其中包括工厂模式、抽象工厂模式、单例模式、适配器模式、观察者模式、装饰者模式等等。Java - JDK 核心 API学习包括 java.lang 包,java.util 包,http://java.io 包以及泛型的相关知识SQL - MySQL基础课程该教程实验内容从MySQL的安装开始,介绍了MySQL基础、常用的操作,内容较为简单,如果想要更深入地学习SQL,请学习实验楼其他相关课程。Linux - 正则表达式基础在Linux Shell环境中学习正则表达式基本概念,并实践如何使用正则表达式对文本字符串进行处理。Java - JDBC 入门教程本实验通过学习 JDBC 定义和架构,回顾 SQL 语法,搭建 JDBC 的环境,通过实例来深入学习 JDBC。从中我们将学习到如何用 java 连接到数据库,并练习编写了一个信息管理的程序,在此基础上可以提高自己的数据库管理能力。Java - Java 8 新特性指南Java 8是近年来一个Java编程语言发行版本,由Oracle 2014年3月发布。该版本为Java带来许多新特性,是一个具有重大改变的版本。 本教程适用于Java初学者或者是具有一定编程经验的开发者,学习该课为自己的技能升级打补丁。Java - J2SE核心开发实战java基础的进阶课程,主要讲解IO、Util等常用类库的使用、Swing图形化编程、多线程编程等知识点。

inzaghi1984 2019-12-02 00:32:32 0 浏览量 回答数 0

回答

本文档介绍如何使用Sqoop工具实现文件存储HDFS和关系型数据库MySQL之间的双向数据迁移。 背景信息 Sqoop是一款开源的工具,主要用于在Hadoop和结构化数据存储(如关系数据库)之间高效传输批量数据 。既可以将一个关系型数据库(MySQL 、Oracle 、Postgres等)中的数据导入HDFS中,也可以将HDFS的数据导入到关系型数据库中。 准备工作 现在Sqoop分为Sqoop1和Sqoop2,两个版本并不兼容。本案例选择使用sqoop1的稳定版本Sqoop 1.4.7 版本。 下载Sqoop 1.4.7 版本。 解压安装包。 tar -zxf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /home/hadoop/ 配置环境变量。 执行vim /etc/profile命令,打开配置文件,添加如下内容。 export SQOOP_HOME=/home/hadoop/sqoop-1.4.7.bin__hadoop-2.6.0 export PATH=$PATH:$SQOOP_HOME/bin 执行source /etc/profile命令,使配置生效。 添加数据库驱动。 下载MySQL链接包。 wget http://central.maven.org/maven2/mysql/mysql-connector-java/5.1.38/mysql-connector-java-5.1.38.jar 将MySQL链接包存放到Sqoop安装目录的lib目录下。 cp mysql-connector-java-5.1.38.jar /home/hadoop/sqoop-1.4.7.bin__hadoop-2.6.0/lib/ 修改配置文件。 执行如下命令进入/home/hadoop/sqoop-1.4.7.bin__hadoop-2.6.0/conf目录。 cd /home/hadoop/sqoop-1.4.7.bin__hadoop-2.6.0/conf 执行如下命令复制sqoop-env-template.sh,并命名为sqoop-env.sh。 cp sqoop-env-template.sh sqoop-env.sh 执行vim sqoop-env.sh命令打开配置文件,添加如下内容。 export HADOOP_COMMON_HOME=/home/hadoop/hadoop-2.7.2 export HADOOP_MAPRED_HOME=/home/hadoop/hadoop-2.7.2 export HIVE_HOME=/home/hadoop/hive-2.1.0 #若没有安装hive、hbase可不必添加此配置 export HBASE_HOME=/home/hadoop/hbase-1.2.2 #若没有安装hive、hbase可不必添加此配置 执行如下命令验证数据库是否连接成功。 sqoop list-databases --connect jdbc:mysql:// --username 'username' --password 'password' 参数 说明 dburi 数据库的访问连接,例如: jdbc:mysql://0.0.0.0:3306/。 username 数据库登录用户名。 password 用户密码。 如果回显信息中显示MySQL数据库的名称,则表示连接成功。 将MySQL的数据迁移到HDFS上 在集群Sqoop节点上,使用sqoop import命令将MySQL中的数据迁移到HDFS上。 此处以迁移MySQL中的employee表为例,employee表中已写入如下数据。 01,测试用户1,1990-01-01,男 02,测试用户2,1990-12-21,男 03,测试用户3,1990-05-20,男 04,测试用户4,1990-08-06,男 05,测试用户5,1991-12-01,女 执行以下命令迁移数据。 sqoop import --connect jdbc:mysql://172.x.x.x:3306/sqoop_migrate --username 'userid' --password 'userPW' --table employee --target-dir /mysql2sqoop/table/sqoop_migrate --num-mappers 1 --columns "e_id,e_name,e_birth,e_sex" --direct 命令格式:sqoop import --connect jdbc:mysql:// / --username --password --table --check-column --incremental --last-value --target-dir 参数说明如下所示,更多详情请参见Sqoop Import。 参数 说明 dburi 数据库的访问连接。例如:jdbc:mysql://172.x.x.x:3306/ 。如果您的访问连接中含有参数,则请加上单引号,例如:'jdbc:mysql://172.x.x.x.235:3306/mydatabase?useUnicode=true&characterEncoding=UTF-8'。 dbname 数据库的名字,例如:user。 username 数据库登录用户名。 password 用户密码。 tablename MySQL数据库中表的名称。 col 迁移表中列的名称。 mode 该模式决定Sqoop如何定义哪些行为新的行。取值:append或lastmodified。 value 前一个导入中检查列的最大值。 hdfs-dir HDFS的写入目录,此处以/mysql2sqoop/table/sqoop_migrate为例。 检查迁移结果。 执行hadoop fs -ls /mysql2sqoop/table/sqoop_migrate命令,获取迁移文件,此处以part-m-00000为例。 Found 2 items -rwxrwxrwx 3 root root 0 2019-08-21 14:42 /mysql2sqoop/table/sqoop_migrate/_SUCCESS -rwxrwxrwx 3 root root 200 2019-08-21 14:42 /mysql2sqoop/table/sqoop_migrate/part-m-00000 执行hadoop fs -cat /mysql2sqoop/table/sqoop_migrate/part-m-00000命令查看文件中的内容。 如果part-m-00000文件中有如下内容,则表示迁移成功。 01,测试用户1,1990-01-01,男 02,测试用户2,1990-12-21,男 03,测试用户3,1990-05-20,男 04,测试用户4,1990-08-06,男 05,测试用户5,1991-12-01,女 将HDFS的数据迁移到MySQL上 将HDFS的数据迁移到MySQL上,需要先在MySQL上创建好对应HDFS数据结构的表,然后在集群Sqoop节点上使用sqoop export命令进行迁移。 此处以迁移HDFS上mysqltest.txt中的数据为例,mysqltest.txt中已写入如下数据。 6,测试用户6,2019-08-10,男 7,测试用户7,2019-08-11,男 8,测试用户8,2019-08-12,男 9,测试用户9,2019-08-13,女 10,测试用户10,2019-08-14,女 创建数据库。 create database sqoop_migrate; 使用已创建的数据库。 use sqoop_migrate; 创建表。 CREATE TABLE employee ( e_id varchar(20) NOT NULL DEFAULT '', e_name varchar(20) NOT NULL DEFAULT '', e_birth varchar(20) NOT NULL DEFAULT '', e_sex varchar(10) NOT NULL DEFAULT '', PRIMARY KEY (e_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 执行以下命令迁移数据。 sqoop export --connect jdbc:mysql://172.0.0.0:3306/sqoop_migrate --username 'userid' --password 'userPW' --num-mappers 1 --table employee --columns "e_id,e_name,e_birth,e_sex" --export-dir '/sqoop2mysql/table/mysqltest.txt' --fields-terminated-by ',' 迁移命令格式:sqoop export --connect jdbc:mysql:// / --username --password --table --export-dir 参数 说明 dburi 数据库的访问连接。例如:jdbc:mysql://172.x.x.x:3306/ 。如果您的访问连接中含有参数,则请加上单引号,例如:'jdbc:mysql://172.x.x.x.235:3306/mydatabase?useUnicode=true&characterEncoding=UTF-8'。 dbname 数据库的名字,例如:user。 username 数据库登录用户名。 password 用户密码。 tablename MySQL数据库中表的名称。 hdfs-dir 存放待迁移数据的HDFS目录,此处以/sqoop2mysql/table/mysqltest.txt为例。 验证迁移结果。 执行以下命令进入数据库。 mysql -uroot -p 执行以下命令使用数据库。 use sqoop_migrate; 执行select * from employee;命令查看表数据。 如果表中有如下数据,则表示迁移成功。 ... | 6 | 测试用户6 | 2019-08-10 | 男 | | 7 | 测试用户7 | 2019-08-11 | 男 | | 8 | 测试用户8 | 2019-08-12 | 男 | | 9 | 测试用户9 | 2019-08-13 | 女 | | 10 | 测试用户10 | 2019-08-14 | 女 | +------+---------------+------------+-------+ 10 rows in set (0.00 sec) 将MySQL的数据迁移到Hive上 在集群Sqoop节点上使用sqoop import命令可以将MySQL上的数据迁移到Hive上。 此处以迁移MySQL中的employee表为例,employee表中已写入如下数据。 1,测试用户1,2019-08-10,男 2,测试用户2,2019-08-11,男 3,测试用户3,2019-08-12,男 4,测试用户4,2019-08-13,女 5,测试用户5,2019-08-14,女 执行以下命令迁移数据。 sqoop import --connect jdbc:mysql://172.0.0.0:3306/sqoop_migrate --username 'userid' --password 'PW' --table employee --hive-import --hive-database default --create-hive-table --hive-overwrite -m 1 ; 迁移命令格式:sqoop import --connect jdbc:mysql:// / --username --password --table --check-column --incremental --last-value --fields-terminated-by "\t" --lines-terminated-by "\n" --hive-import --target-dir --hive-table 参数 说明 dburi 数据库的访问连接。例如:jdbc:mysql://172.x.x.x:3306/ 。如果您的访问连接中含有参数,则请加上单引号,例如:'jdbc:mysql://172.x.x.x.235:3306/mydatabase?useUnicode=true&characterEncoding=UTF-8'。 dbname 数据库的名字,例如:user。 username 数据库登录用户名。 password 用户密码。 tablename MySQL数据库中表的名称。 col 迁移表中列的名称。 mode 该模式决定Sqoop如何定义哪些行为新的行。取值:append或lastmodified。 value 前一个导入中检查列的最大值。 hdfs-dir HDFS的写入目录。 hive-tablename 对应的Hive中的表名。 验证迁移结果。 执行select * from default.employee;命令查看表数据,如果表中有如下数据,则表示迁移成功。 1 测试用户1 2019-08-10 男 2 测试用户2 2019-08-11 男 3 测试用户3 2019-08-12 男 4 测试用户4 2019-08-13 女 5 测试用户5 2019-08-14 女 ... Time taken: 0.105 seconds, Fetched: 14 row(s) 将Hive的数据迁移到MySQL上 将Hive的数据迁移到MySQL上,需要先在MySQL上创建好对应Hive数据结构的表,然后在集群Sqoop节点上使用sqoop export命令进行迁移。 此处以迁移Hive上hive_test.txt中的数据为例,hive_test.txt中已写入如下数据。 1,测试用户1,2019-08-10,男 2,测试用户2,2019-08-11,男 3,测试用户3,2019-08-12,男 4,测试用户4,2019-08-13,女 5,测试用户5,2019-08-14,女 在MySQL上的sqoop_migrate库中创建好要导入的表。 use sqoop_migrate ; CREATE TABLE employeeOnHive( id VARCHAR(20), name VARCHAR(20) NOT NULL DEFAULT '', birth VARCHAR(20) NOT NULL DEFAULT '', sex VARCHAR(10) NOT NULL DEFAULT '', PRIMARY KEY(id) ); 执行以下命令迁移数据。 sqoop export --connect jdbc:mysql://172.0.0.0:3306/sqoop_migrate --username 'userid' --password 'userPW' --table employeeOnHive -m 1 --fields-terminated-by ',' --export-dir /user/hive/warehouse/employeeonhive 迁移命令格式:sqoop export --connect jdbc:mysql:// / --username --password --table --export-dir --fields-terminated-by 参数 说明 dburi 数据库的访问连接。例如:jdbc:mysql://172.x.x.x:3306/ 。如果您的访问连接中含有参数,则请加上单引号,例如:'jdbc:mysql://172.x.x.x.235:3306/mydatabase?useUnicode=true&characterEncoding=UTF-8'。 dbname 数据库的名字,例如:user。 username 数据库登录用户名。 password 用户密码。 tablename MySQL数据库中表的名称。 hive-dir 存放待迁移数据的HDFS目录,此处以/sqoop2mysql/table/mysqltest.txt为例。 Splitter Hive中表中数据分隔符。hive默认为“\001”。 验证迁移结果。 执行以下进入数据库。 mysql -uroot -p 执行以下命令使用数据库。 use sqoop_migrate; 执行select * from sqoop_migrate.employeeOnHive;命令查看表数据。 如果表中有如下数据,则表示迁移成功。 +----+---------------+------------+-----+ | id | name | birth | sex | +----+---------------+------------+-----+ | 1 | 测试用户1 | 2019-08-10 | 男 | | 2 | 测试用户2 | 2019-08-11 | 男 | | 3 | 测试用户3 | 2019-08-12 | 男 | | 4 | 测试用户4 | 2019-08-13 | 女 | | 5 | 测试用户5 | 2019-08-14 | 女 | +----+---------------+------------+-----+ 5 rows in set (0.00 sec)

1934890530796658 2020-03-31 02:35:38 0 浏览量 回答数 0

问题

干货分享:DBA专家门诊一期:索引与sql优化问题汇总

xiaofanqie 2019-12-01 21:24:21 74007 浏览量 回答数 38
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 企业建站模板