SqlServer向Oracle数据库迁移方案
2、撰写sql_loader导入的控制文件。
3、测试数据导出导入。
3.21-3.31
提前导入历史数据。
1、按照年份建表。(跑建表脚本)
2、通过sql_loader导入历史数据。
3、检查数据。
4.4-4.8
模拟切换:
4.5
按照已准备的脚本,批量导入当前值数据,核对数据,考察效率。
3.17-3.22
VIP卡更新作业改为Oracle版本
3.17
莱斯后台系统连接ORACLE数据库,并修改取数据的过程
3.17
第二轮系统程序测试
3.8-3.25
收集和整理条码卡系统使用范围。
3.15-3.18
条码系统和莱斯系统测试。
3.21-3.25
提供业务部门验收模版
3.26-3.31
组织业务人员验收程序
***
系统切换实施方案
2011年3月
***
2011-3-15
实施计划:
项目
系统切换实施方案
项目负责人
项目组成员
序号
工作内容
时间
操作人
复核人1备注
准备阶段
3.1-4.1
现有作业修改为oracle版本(除:VIP卡更新作业)
3.1-3.8
现有触发器改成oracle版本
3.1-3.8
数据转储方案改为Oracle版本
3.26-3.31
整理oracle环境、oracle配置文件为一个安装包。
3.16-3.18
安装环境包到门店工作站、自助充值机、总部卡室工作站。
3.21-3.25
整理正式bin文件夹、config配置文件为一个安装包
4.1
安装程序包到门店工作站、自助充值机、总部工作站。
4.1-4.8
移动POS影响方案确认。
按照脚本,导入非当前值数据。
邮件给门店、总部卡室,说明升级事项。
1、 令牌登录之前,将配置文件拷贝到windows下。
2、令牌第一次登录,会自动同步。
正式切换(当天)
4.12
运行everyday作业,并确认完成。
修改自助充值机的登录配置。
确认无人操作,4.101处理完毕,关闭。
按照既定方案,批量导入数据。
修改新安装的应用服务器IP地址
新建共享目录放置新程序。
正式切换(后一天)
4.13
按照脚本导入剩下数据
跟踪和问题处理。
4.13-4.22
3.1-3.8
准备移动pos台。
3.15-3.25
罗列webservice列表
3.21-3.25
webservice安装Oracle环境
3.21-3.25
JK库增加EMS用户,并赋权。
3.8-3.25
EMS改为Oracle驱动,并测试。
3.8-3.25
修改消费数据处理程序
3.15-3.25
历史库数据的合并:
移动pos测试。
Webservice的配置修改为oracle。
启用新程序。
EMS启用Oracle驱动。
发送黑名单。
到庆春店测试工作站、前台、自助充值机。测试令牌登录。
重建oracle作业
重建视图(一些查询用的,历年转储的数据)
实施备份。
修改SqlServer服务器的IP地址,停止Sqlserver服务。
移动pos测试。
Webservice的配置修改为oracle。
EMS切换为Oracle版本。
发送黑名单。
系统令牌资料导入,并测试。
到庆春店测试工作站、前台、自助充值机
测试打印模板。
EMS切回Sqlserver版本。
正式切换(前1天)
4.11
删除测试库
建立正式库,配置备份策略。
系统令牌资料导入。
检查奥特莱斯后台系统连接ORACLE作业。
3.1-3.8
打印模板修改为Oracle版本。
3.1-3.8
数据库服务器和Oracle数据库准备
3.15
新建数据库
3.16
文件服务器(兼:透明网关服务器)准备
3.16
安装透明网关
3.16
明确提前导入的表,切换当晚导入的表、以及切换之后再导入的表。
3.17-3.22
确认通过DB-Link导入和通过Sql_loader导入的表,撰写导入脚本, 测试并最终形成批量执行脚本。
sqlserver到oracle数据无损迁移
sqlserver到oracle数据无损迁移编者:liuli10@版本:V1.7最后修订日期:2015-11-21第一章简介1.1数据迁移随着时代发展数据越来越被重视,而很多时候,当系统需要更新换代的时候,升级后系统所是有的数据库与当前系统的数据库并不一致,此时不仅需要数据割接,最重要的是:如何能将老系统中的数据无损的割接到新系统、新数据库中。
因此,结合项目实战经验,针对从windows平台下数据库sqlserver到linux平台下oracle数据库的数据无损迁移进行总结。
1.2数据库简介一般此处会有很多数据库以及出品公司的历史以及发展历程,在编者看来然而并没有什么大用途,百度百科都可以搜索的到,因此本章结束,直接进入实战总结环节。
第二章sqlserver数据导出2.1sqlserver数据导出命令当然不可否认windows为sqlserver提供了强大的图形化平台,导出数据变得只需要点一点就能完成,然而这样的数据导出对于大批量有要求的操作,是极其劳神伤财的,因此,必须要通过命令行进行格式化导出,因此,这里介绍sqlserver 本机数据库导出命令。
2.1.1bcp命令以及参数介绍/liyanmingkong/article/details/6087674/uid-25472509-id-4304562.html/link?url=WV2JJM4JHxR7Qct8rr_-499zPc3aP_7E5rOt5l yEnG_Mj_tE9_-ZN1JPE2Vc2wRpkO8QkNGNLVznDfMgniCOnxXhK5jQppNpZk8 Jo1x8o23为了将文档尽可能精简,bcp命令的参数以及介绍请自行去以上任意网址查询。
或者自行baidu或者google搜索。
2.2实战语句解析实战语句为:bcp"select*from gwbnboss.dbo.ACCOUNT_BUSINESS"queryout "C:\Users\liuli9\Desktop\sqlserverdata_mov\textfile\ACCOUNT_BUSINESS.txt"-c -r"{#$&}"-t"{@#$}"-S"127.0.0.1"-U"数据库用户名"-P"密码"最终导出的结果存在于C:\Users\liuli9\Desktop\sqlserverdata_mov\textfile\ACCOUNT_BUSINESS.txt 文件中,当出现“{#$&}”时表示接下来是下一行数据,出现“{@#$}”时表示接下来是下一列数据。
将SQLSERVER中的数据同步到ORACLE中
如何将SQLServer2005中的数据同步到Oracle中有时由于项目开发的需要,必须将SQLServer2005中的某些表同步到Oracle数据库中,由其他其他系统来读取这些数据。
不同数据库类型之间的数据同步我们可以使用链接服务器和SQLAgent来实现。
假设我们这边(SQLServer2005)有一个合同管理系统,其中有表contract 和contract_project是需要同步到一个MIS系统中的(Oracle9i)那么,我们可以按照以下几步实现数据库的同步。
1.在Oracle中建立对应的contract 和contract_project表,需要同步哪些字段我们就建那些字段到O racle表中。
这里需要注意的是Oracle的数据类型和SQLServer的数据类型是不一样的,那么他们之间是什么样的关系拉?我们可以在SQLServer下运行:SELECT*FROM msdb.dbo.MSdatatype_mappingsSELECT*FROM msdb.dbo.sysdatatypemappings来查看SQLServer和其他数据库系统的数据类型对应关系。
第一个SQL语句是看SQL转Oracle的类型对应,而第二个表则更详细得显示了各个数据库系统的类型对应。
根据第一个表和我们的SQLServer中的字段类型我们就可以建立好Oracle表了。
ORACLE bigint NUMBER1931ORACLE binary BLOB NULL01ORACLE binary RAW-141ORACLE bit NUMBER131ORACLE char CHAR-141ORACLE char CLOB NULL01ORACLE char VARCHAR2-141ORACLE datetime DATE NULL01ORACLE decimal NUMBER-131ORACLE double precision FLOAT NULL01ORACLE float FLOAT NULL01ORACLE image BLOB NULL01ORACLE int NUMBER1031ORACLE money NUMBER1931ORACLE nchar NCHAR-141ORACLE nchar NCLOB NULL01ORACLE ntext NCLOB NULL01ORACLE numeric NUMBER-131ORACLE nvarchar NCLOB NULL01ORACLE nvarchar NVARCHAR2 -141ORACLE nvarchar(max) NCLOB NULL01ORACLE real REAL NULL01ORACLE smalldatetime DATE NULL01ORACLE smallint NUMBER531ORACLE smallmoney NUMBER1031ORACLE sysname NVARCHAR2 12841ORACLE text CLOB NULL01ORACLE timestamp RAW841ORACLE tinyint NUMBER331ORACLE uniqueidentifier CHAR3841ORACLE varbinary BLOB NULL01ORACLE varbinary RAW-141ORACLE varbinary(max) BLOB NULL01ORACLE varchar CLOB NULL01ORACLE varchar VARCHAR2-141ORACLE varchar(max) CLOB NULL01ORACLE xml NCLOB NULL01ORACLE bigint NUMBER1931ORACLE binary BLOB NULL01ORACLE binary RAW-141ORACLE bit NUMBER131ORACLE char CHAR-141ORACLE char CLOB NULL01ORACLE char VARCHAR2-141ORACLE datetime DATE NULL01ORACLE decimal NUMBER-131ORACLE double precision FLOAT NULL01ORACLE float FLOAT NULL01ORACLE image BLOB NULL01ORACLE int NUMBER1031ORACLE money NUMBER1931ORACLE nchar CHAR-141ORACLE nchar CLOB NULL01ORACLE ntext CLOB NULL01ORACLE numeric NUMBER-131ORACLE nvarchar CLOB NULL01ORACLE nvarchar VARCHAR2-141ORACLE nvarchar(max) CLOB NULL01ORACLE real REAL NULL01ORACLE smalldatetime DATE NULL01ORACLE smallint NUMBER531ORACLE smallmoney NUMBER1031ORACLE sysname VARCHAR212841ORACLE text CLOB NULL01ORACLE timestamp RAW841ORACLE tinyint NUMBER331ORACLE uniqueidentifier CHAR3841ORACLE varbinary BLOB NULL01ORACLE varbinary RAW-141ORACLE varbinary(max) BLOB NULL01ORACLE varchar CLOB NULL01ORACLE varchar VARCHAR2-141ORACLE varchar(max) CLOB NULL01ORACLE xml CLOB NULL01ORACLE bigint NUMBER1931ORACLE binary BLOB NULL01ORACLE binary RAW-141ORACLE bit NUMBER131ORACLE char CHAR-141ORACLE char CLOB NULL01ORACLE char VARCHAR2-141ORACLE datetime DATE NULL01ORACLE decimal NUMBER-131ORACLE double precision FLOAT NULL01ORACLE float FLOAT NULL01ORACLE image BLOB NULL01ORACLE int NUMBER1031ORACLE money NUMBER1931ORACLE nchar NCHAR-141ORACLE nchar NCLOB NULL01ORACLE ntext NCLOB NULL01ORACLE numeric NUMBER-131ORACLE nvarchar NCLOB NULL01ORACLE nvarchar NVARCHAR2 -141ORACLE nvarchar(max) NCLOB NULL01ORACLE real REAL NULL01ORACLE smalldatetime DATE NULL01ORACLE smallint NUMBER531ORACLE smallmoney NUMBER1031ORACLE sysname NVARCHAR2 12841ORACLE text CLOB NULL01ORACLE timestamp RAW841ORACLE tinyint NUMBER331ORACLE uniqueidentifier CHAR3841ORACLE varbinary BLOB NULL01ORACLE varbinary RAW-141ORACLE varbinary(max) BLOB NULL01ORACLE varchar CLOB NULL01ORACLE varchar VARCHAR2-141ORACLE varchar(max) CLOB NULL01ORACLE xml NCLOB NULL012.建立链接服务器。
SqlServer2005移植到Oracle
从SQL server 2005中移植数据到Oracle 10g1.移植前准备在移植前,需要安装必需的各种软件,如下:(1).安装好SQL server 2005的补丁包和SP2。
(2).安装Oracle安装包里的oracle客户端浏览器(PL/SQL Developer)。
(可以根据需要按照汉化补丁,汉化包不安装也可)(3).硬件要求:在Oracle数据库所在的硬盘保持足够剩余空间(至少有2GB的空间剩余);建议在启用Oracle服务时机器的内存不少于2GB。
没有特别说明的情况下,本文的数据移植是针对普通的属性数据。
2.移植2.1.创建数据库打开Oracle中的Database Configuration Assistant进行数据库的创建,如图所示:图表1 打开Database Configuration Assistant进入Database Configuration Assistant后点击“下一步”,然后出现如图表2所示的界面,选择“创建数据库”后点击“下一步”:如图表3所示选择第一个“一般用途”然后点击下一步:图表3 选择模板如图标2所示在创建数据库过程中的第3步,在“全局数据库名”中输入数据库名称,SID则会自动默认为全局数据库名,然后点击“下一步”;点击如图表5所示界面中的“确定”按钮系统就开始创建数据库了。
图表5图表6 正在传教数据库最后点击如图表4所示中的“退出”按钮就创建数据库完成了。
图表7 创建数据库完成2.2.登录Oracle打开PL/SQL Developer并用system(数据库默认的用户名)用户身份登录到XQ2DSGN并选择连接为SYSDBA,如图所示:图表8 登录到PLSQL2.2.1.创建表空间创建表空间的sql语句:SQL>create tablespace xq2dsgn datafile 'G:\oracle\product\10.2.0\ oradata\xq2dsgn\xq2dsgn.dbf' size 2048m autoextend on next 10m maxsize unlimited ;(参考:通过PL/SQL Developer登录到Oracle数据库上后,打开菜单:文件/新建/命令窗口,打开一个命令窗口然后在该命令窗口中执行脚本创建和删除表空间,新建用户和授权的操作,如图所示:图表9 打开命令窗口创建表空间Sql>create tablespace xqds2gn datafile ' D:\oradata\xq2dsgn\ xq2dsgn.dbf ' size 200m autoextend on next 10m maxsize unlimited;Sql>alter database datafile ' D:\oradata\xq2dsgn\ xq2dsgn.dbf ' autoexte nd on;1 DATAFILE: 表空间数据文件存放路径2 SIZE: 起初设置为200M3 UNIFORM: 指定区尺寸为128k,如不指定,区尺寸默认为64k4 空间名称xq2dsgn 与数据文件名称xq2dsgn.dbf 不要求相同,可随意命名.5 AUTOEXTEND ON/OFF表示启动/停止自动扩展表空间6alter database datafile ' D:\oradata\xq2dsgn\ xq2dsgn.dbf ' resize 500 m;//手动修改数据文件大小为500M图表10 表空间创建完成删除表空间语句如下:DROP TABLESPACE xq2dsgn INCLUDING CONTENTS AND DATAFILES;2.2.2.创建用户1.建立用户并为用户指定缺省的永久表空间和临时表空间SQL> create user xq2dsgn identified by xq2dsgndefault tablespace xq2dsgntemporary tablespace temp;用户已创建。
用SQL DTS实现SQL Server到Oracle的数据迁移
用SQL DTS实现SQL Server到Oracle的数据迁移陈拓 chentuo@2005 年 2月 15 日 最后修改日期 2005 年 3月 27 日以下的操作以 SQL Server2000 和 Oracle 10g 为例。
一、 在Oracle数据库中建立一个新帐户如果已有可用用户,跳过这一部分。
1.用SQL*plus创建新用户l建立一个新帐户 ct,PL/SQL 脚本如下:SET ECHO OFFPROMPTPROMPT specify password for ct as parameter 1 (ct):DEFINE pass = &1PROMPTPROMPT specify default tablespeace for ct as parameter 2 (USERS):DEFINE tbs = &2PROMPTPROMPT specify temporary tablespace for CT as parameter 3 (TEMP):DEFINE ttbs = &3PROMPTPROMPT specify password for SYS as parameter 4 (sys):DEFINE pass_sys = &4PROMPTPROMPT specify log path as parameter 5 (D:\oracle\product\10.1.0\):DEFINE log_path = &5PROMPT-- The first dot in the spool command below is-- the SQL*Plus concatenation characterDEFINE spool_file = &log_path.ct_main.logSPOOL &spool_fileREM =======================================================REM 删除用户及其方案REM =======================================================DROP USER CT CASCADE;REM =======================================================REM 创建新用户,指定默认表空间和临时表空间REM =======================================================CREATE USER CT IDENTIFIED BY &pass;ALTER USER CT DEFAULT TABLESPACE &tbsQUOTA UNLIMITED ON &tbs;ALTER USER CT TEMPORARY TABLESPACE &ttbs;REM =======================================================REM 授权 CONNCET AND RESOURCE 角色REM =======================================================GRANT CONNECT TO CT;GRANT RESOURCE TO CT;REM =======================================================REM 从 sys方案授权(方案\SYS\源类型\程序包\dbms_stats)REM =======================================================CONNECT sys/&pass_sys AS SYSDBA;GRANT execute ON sys.dbms_stats TO ct;REM =======================================================REM 设置本次会话的语言和区域REM =======================================================CONNECT ct/&passALTER SESSION SET NLS_LANGUAGE='SIMPLIFIED CHINESE';ALTER SESSION SET NLS_TERRITORY=CHINA;spool offl查看相关信息用 DBA_ROLES 视图查看角色信息:SQL> conn sys/sys@oract as sysdbaSQL> select * from DBA_ROLES;用 DBA_ROLE_PRIVS 视图查看授予授予用户的角色:SQL> select * from DBA_ROLE_PRIVS where GRANTEE='CT'; 用 ROLE_SYS_PRIVS 视图查看授予角色的系统权限:SQL> select * from ROLE_SYS_PRIVS where ROLE='CONNECT';SQL> select * from ROLE_SYS_PRIVS where ROLE='RESOURCE'; 用 SESSION_ROLES 视图查看用户当前已启用的角色:SQL> conn ct/ct@oractSQL> select * from SESSION_ROLES;l将此脚本存为文件 ct_main.sqll以 SYS 或 SYSTEM 登录C:\>sqlplus sys/sys as sysdbal运行脚本 ct_main.sqlSQL> @D:\lecture\oracle\ct_main.sqll查看操作日志文件:D:\oracle\product\10.1.0\ ct_main.log2.用JDeveloper创建新用户The user name you use to create a connection must have adequate privilege to create a user, either by having been granted CREATE USER privilege or having been granted a role such as administrator that contains that privilege. If you did not create the connection with a user with the correct privileges, you will not be able to select User from the New Gallery.用于创建一个连接的用户名必须有足够的权限来创建用户,即可以是1) 选择 View | Connection Navigator2) 展开 Database 并且选择一个 database connection3) 在 connection中,右击schema 或者其中的任一项,选择 NewFrom the New Gallery, in Filter By, choose All TechnologiesFrom the New Gallery, in Categories , expand Database Tier and choose Database Objects从 Database Objects,选择 User,并且 and click OK to open the New Database User wizardIn the pages of the wizard enter parameters and select options to define the tableClick NextOn the Finish page, click Finish to create the table.二、用 Microsoft DST 将数据从SQL Server 导出到 Oracle1.启动DST开始 > 程序 > Microsoft SQL Server > 导入和导出数据:图1 启动DST2.出现“DTS导入/导出向导”界面,下一步:图2 DTS导入/导出向导3.选择数据源在数据源中选取“用于 SQLServer 的Microsoft OLE DB 提供程序”。
sqlserver迁移到oracle具体实现
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数据导成文件--预先创建导出表格式文件:exec master..xp_cmdshell 'bcp master.dbo.sysusers format nul -T -c -f "c:\students.fmt"'--根据格式文件导出表数据(可以导成txt或csv文件格式)修改格式文件,用逗号分隔符declare @sql varchar(8000)set @sql='bcp "SELECT * FROM master..sysusers" queryout "c:\aa.csv" /f "c:\students.fmt"' exec master..xp_cmdshell @sql2)通过sqlload工具将初始数据导入oracle数据库服务器--sqlload直接导入命令示例result.csv文件内容1,默认 Web 站点,192.168.2.254:80:,RUNNING2,other,192.168.2.254:80:,STOPPED3,third,192.168.2.254:81:,RUNNINGresult.ctl文件内容:load datainfile 'c:\result.csv'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:\result.ctl log=c:\resulthis.out四、增量交换1.业务数据业务数据增量交换将利用数据库导出功能将数据以文件的方式拷贝到oracle 数据库服务器进行导入。
SQLServer到Oracle的数据迁移
《高级数据库应用》课程项目报告《数据库迁移》姓名:组员:班级学号:指导教师:完成报告时间:数据库迁移1.实验环境:硬件环境:⏹Intel(R) Core(TM)2 Duo CPU P4200 2.13GHz⏹ 2.00GHz 2.00GB 内存软件环境:⏹windowsXP Professional sp3⏹oracle 9i⏹SQL server 2005⏹Oracle SQL Developer2.前提:是要在oracle中建立一个和SQL Server中名字一样的数据库,并创建新的用户名和密码3迁移过程:(1)一般情况:只迁移表,而不是存储过程、函数等,可以使用SQL Server 2005自带的导入导出工具。
1)迁移方法:右键单击SQL Server中你要导出的数据库--》任务--》导出数据--》下一步--》添好各选项(SQL Server数据源的)下一步--》数据源等默认——》下一步,目标选择Microsoft OLE DB Provider for Oracle,属性中填入你要导入的oracle数据库的名字,用户名,密码------>下一步------>选中全部表,下一步------>下一步------>下一步. 将会将表结构和表中的数据一同导入到oracle中去。
2)实例:将SQL Server数据库aaa导出到Oracle中<1>首先在Oracle中创建数据库aaa.:图(1):在Oracle中创建数据库aaa.<2>下一步:选择创建数据库:图(2):选择创建数据库<3>创建数据库名称aaa:图(3)创建数据库名称aaa<4>右键单击SQL Server中的aaa数据库,选择任务,导出数据:图(4)从SQL的aaa数据库中导出数据<5>运行数据库导出向导:<6>选择目标Microsoft OLE DB Provider for Oracle:<7>数据库连接属性:图(7)输入连接属性图(8)选择要迁移的内容<8>选择要复制的表或者视图:<9>是否保存SSIS包:<10>完成该向导:<11>执行成功:<12>具体表的迁移:图(14)具体表的迁移,已经完成奖惩信息表的迁移。
Sql server 迁移到oracle 方案
Sql server 迁移到oracle 方案1.系统目前运行情况系统目前采用的数据库是sql server 2005操作系统平台是windows server 2003操作系统的配置:16cpu,32g内存诊断:目前系统运行较慢,windows server 2003和sql server 2005不能充分利用现有的硬件配置,已经形成瓶颈,导致资源浪费。
2.sql server和oracle的产品比较1).Oracle为客户端开启会话有两种方式:共享服务和专用服务。
在专用服务情况下,监听器为连接请求创建新进程(Unix环境下是Process,Windows下我想应该是Thread吧);共享服务情况下,监听器将客户请求交给Dispatcher,由Dispatcher安排多客户的作业。
SQL Server在默认情况下自动为客户端连接创建线程,当有非常多的客户连接时,SQL Server可以使用线程池管理多会话,这类似于Oracle的共享服务。
2).Oracle的内存管理分三块:SGA、PGA、UGA;在MSDN中并没有提及怎样控制SQL Server的内存分配,只是提到SQL Server的虚拟地址空间分成缓冲池占用空间和其余空间,且SQL Server有动态内存管理机制。
3). Oracle的实例一次只能管理一个数据库,数据库在集群环境下可由多个实例管理。
而SQL Server单个实例一次能管理多个数据库。
Oracle数据库存储方式有OS文件、裸分区、ASM等,SQL Server的数据库存储只能是系统文件。
4). Oracle数据库包含表空间,表空间可以使用多个文件存储数据,表空间就类似于SQL Server中的文件组。
区是物理连续上连接的存储空间,区中包括最小I/O单位——块(Oracle)或页(SQL Server)。
但SQL Server页大小是8KB,区包含8个页;Oracle不同表空间可以有不同的块大小,区的大小和保护块的数量也不固定。
使用Oracle 移植工作台从 Microsoft SQL Server 移植到 Oracle 数据
使用Oracle 移植工作台从Microsoft SQL Server 移植到Oracle 数据库10g目的本模块介绍了如何使用 Oracle 移植工作台从 Microsoft SQL Server 数据库移植到 Oracle 数据库 10g。
所需时间大约 2 个小时主题本教程将讨论下列主题:概述情景前提条件安装和配置Oracle 移植工作台创建源模型创建Oracle 模型自定义Oracle 模型将表空间、用户以及用户表移植到目标数据库中将数据移植到目标数据库中将其余模式对象移植到目标数据库中验证成功移植了存储过程和触发器生成和查看Oracle 移植工作台报告总结概述Oracle 移植工作台是什么?Oracle 移植工作台是一种简化从第三方数据库系统到Oracle 平台(Oracle9i 和 Oracle 数据库 10g)移植过程的工具。
Oracle 移植工作台在集成环境中移植整个数据库模式(包括触发器和存储过程)。
通过 Oracle 移植工作台,您可以:•使用向导和脚本在各个阶段进行移植•使用联机捕获或脱机捕获检索源数据库信息•自定义信息库中的 Work In Progress 数据库对象•分析存储过程、触发器以及视图,并将它们转换为Oracle PL/SQL•通过报告和消息监视移植的状态。
Oracle 移植工作台从源数据库库(如 SQL Server)提取信息,并创建 Oracle 目标数据库。
为了移植不同的源数据库,Oracle 移植工作台针对其所能移植的每一个数据库使用专门的插件。
通过脱机捕获方法,Oracle 移植工作台从源数据库检索元数据,并将它们存储到您载入到工作台信息库的一组文件中。
工作台信息库是 Oracle 数据库中的一组表,包含有关移植的所有信息。
工作台信息库由源模型(表示源数据库)和 Oracle 模型(表示 Oracle 数据库)组成。
您可以在工作台信息库对源模型和 Oracle 模型进行修改,而不会影响生产环境。
如何从SQLSERVER迁移大批量数据到ORACLE
分析:
微软DTS在异种数据库之间传送数据时,采用ODBC开放数据连接方式,而ODBC的速度慢是众所周知的缺点,导致异种数据库间传送数据慢。而SQLSERVER是微软自己的数据库系统,采用DTS导SQLSERVER的时候能很快,这是一个优点;oracle使用工具sqlldr能够很快的将文本数据导入oracle自己的数据库也是一个优点。结合两个工具,可以提供快速的对大量数据进行迁移。
在例一中字符串由 "标志,所以需要加optionally enclosed by '"',在例二中不需
在例一中日期格式需要在域名后加 'date "yyyy-mm-dd hh24:mi:ss",
即
LOAD DATA
INITFILE 'tbilllog1.txt'
insert into table tbilllog1
insert into table tbilllog1
fields terminated by ',' optionally enclosed by '"'
(
callid,
callidnum,
callerno,
calleeno,
waitbegin date "yyyymmdd",
waitend date "yyyymmdd",
text= double quote{"} (缺省)
在comumn和text选项会影响到oracle的controlfile的设置
使用OracleSqlDeveloper将SQLSERVER2008数据库移植到Oracle11g
使用OracleSqlDeveloper将SQLSERVER2008数据库移植到Oracle11g上一次,我使用手工转换SQL脚本的方式进行数据库的迁移,其间过程相当繁琐,特别是标识符长度的限制让我焦头烂额,因为我们的系统中长标识符真是多如繁星,另外,表结构建好之后,数据的迁移又是一个相当复杂的过程,因为修改了不少的表名,需要把导出的数据和表一一对应上。
但是,除了手工的方式之外,其实我们还有更为简便和自动化的解决方案,那就是ORACLE官方提供的Sql Developer自带的Oracle Migration Workbench。
下面就把我使用这个工具迁移Microsoft SQL Server 2008数据库到Oracle 11G的过程记录下来,为了积累也为分享。
第一部分:获取工具第二部分:建立资料档案库(Migration Repository)第三部分:数据库移植向导第四部分:SqlServer中的架构到Oracle中的模式,名称的处理第五部分:转移数据第六部分:存储过程和函数首先,当然是获得工具,该工具在Oracle Sql Developer官方下载页面里面可以直接下载到。
Windows 32位直连地址:Windows 32bit Sql Developer。
Oracle Sql Developer需要JDK的支持,在下载页面中提供了包含JDK的下载包,还有支持各种操作系统的下载选项。
下载后,解压到任意位置。
直接运行程序。
第一次运行,需要指定JDK的目录。
启动后,我们要做的第一件事,不干别的,先下载SQL SERVER 的驱动程序。
点击菜单帮助,选择检查更新,弹出检查更新向导窗口,第一页一般是废话,直接下一步,等更新中心列表加载完毕后,只选择“Third Party SQL Developer extensions”,点击下一步,等待更新搜索完毕后,中列表中找到并选中 JTDS JDBC Driver,如下图:下一步,在许可协议页面,点击“我同意”按钮后再点下一步,等下载完毕后关闭窗口,弹出提示需要重启程序才能完成更新,点击“是”。
