admin 管理员组

文章数量: 1184232


2024年1月22日发(作者:手机网页浏览器在线使用)

sqlserver迁移到oracle具体实现

一、需求背景

因系统业务发展需要,需要对各地数据进行集中管理,其中各地系统都是sqlserver2000数据库,数据大量集中,需要使用oracle数据库,因此涉及sqlserver数据迁移至oracle数据库的问题。

二、处理步骤

处理步骤分为初始导出和增量交换两个操作步骤进行。

1 、其中初始导出设定一个时间截止时间将之前的业务数据利用数据库导出功能将数据导出,数据导出后由文件交换服务器传送的方式将初始导出数据导入到oracle数据库服务器中,然后通过SQLLOAD工具将数据导入。

2、增量交换在初始导出设定一个时间截止后开始启用,增量交换就是在初始导出完成后,将有变更的数据形成文件,由文件交换服务器传送,最终同步到oracle数据库服务器中,然后通过SQLLOAD工具将数据导入,与初始导出不同的是,这里要通过程序控制导出的增量数据和导出文件名。

三、初始导出

1.业务数据

业务数据初始导出将利用数据库导出功能将数据以文件的方式拷贝到oracle数据库服务器进行导入。

步骤:

1) 业务数据导成文件

2) 业务数据文件拷贝到oracle数据库服务器进行导入

2.实现

2.1.利用导出导入工具实现异构数据迁移

1)sqlserver初始数据利用bcp工具导成csv格式文件

--sqlserver数据导成文件

--预先创建导出表格式文件:

p_cmdshell 'bcp rs format nul -T -c -f "c:"'

--根据格式文件导出表数据(可以导成txt或csv文件格式)

修改格式文件,用逗号分隔符

declare @sql varchar(8000)

set @sql='bcp "SELECT * FROM master..sysusers" queryout "c:" /f "c:"'

p_cmdshell @sql

2)通过sqlload工具将初始数据导入oracle数据库服务器

--sqlload直接导入命令示例

文件内容

1,默认 Web 站点,192.168.2.254:80:,RUNNING

2,other,192.168.2.254:80:,STOPPED

3,third,192.168.2.254:81:,RUNNING

文件内容:

load data

infile 'c:'

into table resultxt

(resultid char terminated by ',',

website char terminated by ',',

ipport char terminated by ',',

status char terminated by whitespace)

创建表:

create table resultxt

(resultid varchar2(500),

website varchar2(500),

ipport varchar2(500),

status varchar2(500))

/

执行文件导入命令

sqlldr hr/hr@orcl c: log=c:

四、增量交换

1.业务数据

业务数据增量交换将利用数据库导出功能将数据以文件的方式拷贝到oracle数据库服务器进行导入。

步骤:

3) 业务数据导成文件

4) 业务数据文件拷贝到oracle数据库服务器进行导入

2.实现

2.1.利用导出导入工具实现异构数据迁移

1)sqlserver初始数据利用bcp工具导成csv格式文件(程序控制)

--sqlserver数据导成文件

--预先创建导出表格式文件:

p_cmdshell 'bcp rs format nul -T -c -f "c:"'

--根据格式文件导出表数据(可以导成txt或csv文件格式)

修改格式文件,用逗号分隔符

declare @sql varchar(8000)

set @sql='bcp "SELECT * FROM master..sysusers" queryout "c:" /f "c:"'

p_cmdshell @sql

2)通过sqlload工具将初始数据导入oracle数据库服务器(程序控制)

--sqlload直接导入命令示例

文件内容

1,默认 Web 站点,192.168.2.254:80:,RUNNING

2,other,192.168.2.254:80:,STOPPED

3,third,192.168.2.254:81:,RUNNING

文件内容:

load data

infile 'c:'

into table resultxt

(resultid char terminated by ',',

website char terminated by ',',

ipport char terminated by ',',

status char terminated by whitespace)

创建表:

create table resultxt

(resultid varchar2(500),

website varchar2(500),

ipport varchar2(500),

status varchar2(500))

/

执行文件导入命令

sqlldr hr/hr@orcl c: log=c:


本文标签: 数据 导出 数据库 初始 导入