Oracle数据库迁移,oracle数据库迁移到sql server
为什么要迁移数据库?您可能出于以下一个或多个原因迁移数据库。
同构——迁移到不同平台但相同类型的数据库引擎。同构迁移可用于备份数据库。异构迁移3354迁移到不同的数据库引擎,比如Oracle数据库迁移到MySQL数据库。如果我们需要利用另一个数据库的功能(例如,源数据库不支持某些数据类型),我们需要执行异构迁移。商业数据库可以迁移到开源数据库,反之亦然。关系数据库可以迁移到NoSQL数据库。数据复制——不断将数据复制到不同的目标数据库,用于数据库的测试和开发以及区域分布。数据库整合——可以将多个源数据库迁移到单个数据库进行整合。平台迁移——本地机器上的数据可以迁移到云数据库服务。基于云的数据库即服务(DBaaS)提供了许多好处:无需DBA的完整托管服务、具有故障转移能力的高可用性、可扩展性以及与其他云服务的集成(自动监控和日志记录)。在本文中,我们将把Oracle数据库迁移到MySQL数据库。如果您更喜欢开源MySQL数据库而不是商业Oracle数据库,那么您可能需要进行迁移。MySQL和Oracle数据库完全不同。您可能出于一个或多个原因迁移到MySQL,例如不同的数据类型支持、操作系统支持和部署规模。步骤1:在RDS上创建Oracle和MySQL数据库实例。因为我们分别使用Oracle和MySQL RDS DB实例作为DMS迁移的源和目标,所以我们需要创建两个RDS实例,一个用于Oracle数据库,另一个用于MySQL。在创建RDS实例之前,我们需要创建一个新的VPC(虚拟私有云)、一个新的DB子网组和一个安全组(可选)。我们也可以使用默认的VPC安全组。如果AWS帐户中VPC的最大数量有限,请在创建RDS实例之前删除一些未使用的VPC。创建RDS实例时,将public access选项设置为“Yes ”,因为我们需要直接访问这些实例,运行一些命令,并在迁移完成后验证迁移的数据。因为默认情况下RDS不创建数据库,所以我们需要选择额外的配置,并为每个RDS实例指定初始数据库名称。MySQL实例数据库的名称是mysqldb,Oracle RDS实例数据库的名称是orcl。一些保留的关键字,如mysql RDS实例的“MySQL”不能在配置中使用(如数据库名、数据库实例标识符、主用户名、主密码)。Oracle MySQL的源和目标RDS实例如图1所示。
图1\。RDS数据库示例
如果安全组没有符合要求的入站/出站规则,则可能需要修改它们。在RDS控制台中,单击每个数据库实例的安全组链接。检查安全组的类型、协议、端口范围和来源是否都是流量、全部和全部以及任何地方(0.0.0.0/0)。如果没有,请单击编辑入站规则按钮并修改设置,然后单击保存。同样,出站规则应该允许所有流量。记录每个数据库实例的主用户名和口令。
步骤2:为DMS准备Oracle和MySQL数据库为了能够使用RDS上的Oracle DB作为DMS源,我们需要在DB实例上配置一些东西。我们可以在命令行中连接到Oracle实例来配置它。要在命令行中连接到RDS DB实例,我们需要获得RDS实例的端点。RDS上DB实例的端点可以从RDS控制台获得。
安装Oracle即时客户端。使用以下sqlplus命令连接到Oracle DB实例,其中主机、SID和端口因用户而异。是主机端点删除端口后缀后剩下的内容。
sqlplus admin @(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ORCL。crbmlbxmp 8 qi。美国东部1号公路。rds。亚马逊AWS。com)(PORT=1521))(CONNECT _ DATA=(SID=ORCL)))SQL * Plus命令行连接到无线电数据系统上的神谕数据库,并启用数据库管理系统(数据库管理系统)数据库级别的补充日志。
执行rds管理。rds admin _ utilalter _ supplemental _ logging( ADD );PL/SQL过程执行完毕。
使用下面的命令启用数据库级别的主关键字日志。
执行rds管理。rds admin _ utilalter _ supplemental _ logging( ADD , PRIMARY KEY );由于源数据库是甲骨文,要复制正在进行的变更,需要打开补充日志。我们需要确保存档日志在服务器上保留足够长的时间(通常是24 小时)。要在无线电数据系统数据库上设置存档日志保留期限,可以使用下面的命令。
执行rds管理。rds admin _ utilset _ configuration(归档日志保留时间,24);在迁移数据库时,表和数据也会被迁移。为数据库迁移专门创建一个新的架构。为新用户授予创建会话和创建表格权限。
创建由dms _用户_密码标识的用户dms _用户
默认表空间用户
对用户的配额无限制;
将创建会话,创建表授予dms _用户.在神谕数据库中创建一张叫作wlslog的数据库表。
创建表DMS _ user。WLS日志(时间戳VARCHAR2(255)主键,类别VARCHAR2(255),类型VARCHAR2(255),服务器名VARCHAR2(255),代码varchar 2(255),消息varchar 2(255));
插入到dms_user.wlslog(时间戳,类别,类型,服务器名,代码,消息)值( Apr-8-2014-7:06:16-PM-PDT , Notice , WebLogicServer , AdminServer , BEA-000365 ,服务器状态已更改为备用);
插入到dms_user.wlslog(时间戳,类别,类型,服务器名,代码,消息)值( Apr-8-2014-7:06:17-PM-PDT , Notice , WebLogicServer , AdminServer , BEA-000365 ,服务器状态已更改为正在启动);
插入到dms_user.wlslog(时间戳,类别,类型,服务器名,代码,消息)值( Apr-8-2014-7:06:18-PM-PDT , Notice , WebLogicServer , AdminServer , BEA-000365 ,服务器状态已更改为ADMIN’);
插入dms_user.wlslog(时间戳,类别,类型,服务器名,代码,消息)值( Apr-8-2014-7:06:19-PM-PDT , Notice , WebLogicServer , AdminServer , BEA-000365 ,服务器状态已更改为恢复);
插入到dms_user.wlslog(时间戳,类别,类型,服务器名,代码,消息)值( Apr-8-2014-7:06:20-PM-PDT , Notice , WebLogicServer , AdminServer , BEA-000361 , Started WebLogic AdminServer );
插入到dms_user.wlslog(时间戳,类别,类型,服务器名,代码,消息)值( Apr-8-2014-7:06:21-PM-PDT , Notice , WebLogicServer , AdminServer , BEA-000365 ,服务器状态已更改为正在运行);
插入到dms_user.wlslog(时间戳,类别,类型,服务器名,代码,消息)值( Apr-8-2014-7:06:22-PM-PDT , Notice , WebLogicServer , AdminServer , BEA-000360 ,服务器在运行模式下启动);若要为没有主关键字日志的表添加补充日志,或者如果未设置数据库级别的主关键字日志,可以为表添加补充日志。
更改表dms_user.wlslog添加补充日志数据(全部)列;我们还可以直接在创建表格语句中启用补充日志。
创建表DMS _ user。WLS日志(时间戳varchar 2(255)主键,category VARCHAR2(255),type VARCHAR2(255),servername VARCHAR2(255),code VARCHAR2(255),msg VARCHAR2(255),补充日志数据(全部)列);第3步:创建复制实例在本小节中,我们将创建一个复制实例,将无线电数据系统上的神谕数据库实例迁移到关系型数据库数据库实例。在自动警报系统控制台中选择数据库管理系统(数据库管理系统)服务。单击创建复制实例,如图2所示。
图2\.创建复制实例
打开"创建复制实例"向导,在"名称"字段中指定复制实例名(ora-mysql-repl)。选择一个实例类,我们选择了dms.t3。中等。在"引擎版本"下拉框中选择AWS DMS版本(3.4.7)。选择"分配得存储空间“(50吉卜)。选择运行复制实例的亚马逊VPC。将"多阿兹"下拉框改为"单AZ”,我们只使用单个可用分区。选择"公众可访问"选项。
在“高级安全和网络配置”中选择“复制子网组”。保持“可用性区域”的默认值“无首选项”不变。选择默认的VPC安全组。选择KMS键作为默认值(aws/dms)。点击“创建”。创建的复制实例如图3所示。
图3\。复制例子
步骤4:创建端点接下来,配置端点,它们是源数据库和目标数据库的端点。在左栏中选择“端点”,然后单击“创建端点”。源端点和目标端点是分别创建的。在DMS- Endpoints-创建端点向导中,选择端点类型作为源端点,单击选择RDS DB复选框,并从下拉菜单中选择orcl RDS实例。在“端点配置”中指定端点标识符orcl。“源引擎”应该是Oracle,因为我们选择了Oracle数据库的RDS引擎。在“访问端点数据库”中选择“手动提供访问信息”选项。“服务器名称”和“端口”应自动添加。指定管理员用户的密码。用户名必须大写,因为Oracle数据库区分大小写。安全套接字层(SSL)模式设置为无。“SID/服务名”应自动填充Oracle RDS实例中配置的值(ORCL)。单击测试端点连接中的运行测试(可选)。复制实例ora-mysql-repl用于端点连接。“状态”为“成功”表示连接成功建立。单击Create endpoint,源数据库的端点就创建好了,如图4所示。
图4\。源端点
要创建目标端点,请再次单击创建端点以启动创建端点向导。这一次,选择“目标端点”作为“端点类型”。单击选择RDS DB复选框,然后选择mysqldb实例。“端点标识符”应自动添加到“端点配置”中。“目标引擎”设置为MySQL。选择手动提供访问端点数据库的访问信息。“服务器名称”和“端口”应自动添加。指定管理员用户的密码。用户名必须用小写字母指定,因为MySQL使用小写字母。安全套接字层(SSL)模式设置为无。单击测试端点连接中的运行测试(可选)。复制实例ora-mysql-repl用于端点连接。“状态”为“成功”表示连接成功建立。单击Create endpoint,目标数据库的端点就创建好了,如图5所示。
图5\。目标端点
步骤5:创建任务接下来,我们需要创建一个迁移任务,但在此之前,我们需要创建一个复制实例,如前所述。在左栏中选择“数据库迁移任务”。单击DMS-数据库迁移任务表中的创建任务。在“创建数据库迁移任务”向导的“任务配置”中指定一个“任务标识符”(orcl-to-mysql)。在复制实例下拉框中选择之前创建的复制实例。在源数据库端点中选择为Oracle数据库RDS实例创建的orcl端点。对于目标数据库端点,选择前面创建的mysqldb端点。为迁移类型选择“迁移现有数据并复制正在进行的更改”。
我们必须为任务配置至少一个选择规则,否则任务创建将会失败。单击“表映射”中“选择规则”的下拉框。点击“添加新的选择规则”按钮。在规则详细信息中配置位置选择规则。从模式下拉框中选择输入模式。将“源名”指定为DMS_USER,将“源表名”指定为WLSLOG。模式/表/视图/列名必须大写,因为Oracle数据库区分大小写。%是模式/表名的通配符,表示所有模式/表。对于操作字段,我们可以通过选择包括或排除来包括或排除对象。排除操作在包含操作之后处理。将“操作”选择为“包括”。源筛选器限制可从源添加到目标的记录的数量和类型。选择规则的配置如图6所示。
图6\。选择规则
您可以使用转换规则来修改或转换某些或所有选定对象的模式、表或列名。我们可以单击“添加转换规则”按钮来添加转换规则。假设我们想要转换表名。在规则目标的下拉框中选择表。在“源名称”中选择“输入模式”。将模式指定为DMS_USER。将“源表名”指定为WLSLOG。在动作下拉框中选择一个可用的动作,如添加/删除/替换前缀/后缀等。选择“使小写”作为动作,因为MySQL以小写存储模式/表名。表转换规则如图7所示。
图7\。将表名转换为小写的转换规则
类似地,添加另一个转换规则,将模式名转换成小写,如图8所示。
图8\。将模式名转换为小写的转换规则
在“任务设置-高级任务设置-控制表设置”中,将“使用模式在目标中创建控制表”设置为“mysqldb”。如果选中了“启用预迁移评估运行”复选框,则可能会执行预迁移评估。在迁移任务启动配置中选择稍后手动。另一个选项是“创建时自动”,该选项仅在未启用预迁移时可用。然后,单击“创建任务”。
添加了一个新任务。任务的状态在开始时是“Create ”,在创建后状态变为“Ready ”,如图9所示。
图9\。任务状态更改为就绪
步骤6:运行任务要运行迁移任务,请选中表中的任务和复选框,然后单击操作下拉框中的重新启动/恢复。任务的状态应该更改为正在启动。启动后,状态将变为Running,当迁移完成时,状态将变为Load complete,如图10所示。“表统计”选项卡应该列出迁移的表。
图10\。任务完成了。
步骤7:查询迁移的数据库模式。使用MySQL客户端列出迁移的数据库和表。首先,连接到MySQL RDS实例。要连接MySQL DB,可以从其配置信息中获取端点,然后使用MySQL客户端的命令行连接MySQL。出现提示时输入密码:
MySQL-h mysqldb . crbmlbxmp 8 qi . us-east-1 . rds . amazonaws . com-P 3306-U adminP使用SHOW SCHEMAS命令列出所有模式,包括dms_user的模式。
~ $ MySQL-h mysqldb.crbmlbxmp8qi.us-east-1.rds.amazonaws.com-P 3306-u admin-P
输入密码:
MySQL [(无)]显示模式;
-
数据库
-
dms_user
信息模式
mysql
mysqldb
性能模式
系统
-
集合中的6行(0.078秒)使用use dms_user命令选择dms_user数据库。使用show tables命令列出这些表,您可以看到以前在Oracle数据库中创建的wlslog表已经被迁移。
MySQL [(无)]使用dms _ user
读取表信息以完成表名和列名
您可以关闭这个特性,以便用-A更快地启动
数据库已更改
MySQL [dms_user]显示表格;
-
Tables_in_dms_user
-
wlslog
-
集合中的一行(0.078秒)迁移的wlslog表中包含了数据,如查询结果所示。
MySQL[DMS _ user]SELECT *来自WLS日志;
- - - - - -
时间戳类别类型服务器名代码消息
- - - - - -
太平洋时间2014年4月8日7时06分16秒通知 WebLogic Server AdminServer BEA-000365 服务器状态已更改为待机
太平洋时间2014年4月8日7时06分17秒通知 WebLogic Server AdminServer BEA-000365 服务器状态已更改为正在启动
太平洋时间2014年4月8日7:06:18-PM 通知 WebLogic Server AdminServer BEA-000365 服务器状态已更改为管理
太平洋时间2014年4月8日7时06分19秒通知 WebLogic Server AdminServer BEA-000365 服务器状态已更改为正在恢复
太平洋时间2014年4月8日7时06分20秒通知 WebLogic server AdminServer BEA-000361 已启动的WebLogic AdminServer
太平洋时间2014年4月8日7时06分21秒通知 WebLogic Server AdminServer BEA-000365 服务器状态已更改为正在运行
Apr-8-2014-7:06:22-PM-PDT 通知 WebLogic Server AdminServer BEA-000360 服务器以运行模式启动
- - - - - -
一组七行(0.078秒)
MySQL [dms_user]默认情况下,迁移进程不会主动轮询源数据库来获取数据变更。如果对源数据库做了修改,例如将数据添加到表中或创建了新表,必须再次运行迁移任务。我们有时候可能需要修改迁移任务,例如添加/删除选择规则或修改其他任务设置。任务在未运行时可以被修改。我们可以单击"修改"来修改任务。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。