oracle数据库迁移到新服务器(oracle数据库迁移到sql server)

慈云数据 2023-03-29 网络资讯 769 3

今天给各位分享oracle数据库迁移到新服务器的知识,其中也会对Oracle数据库迁移到sql server进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

如何将一个oracle数据库复制成一个新的数据库

1、在数据库服务器的开始菜单中找到Datebase Configuration Assistant。

2、在创建画面第一步选择:创建新数据库,点击下一步。

3、根据需求选择自己的数据库类型(一般默认)后,跳转到全局数据库名这个画面时,重点来了:新建数据库名称不能和已经存在的任何一个数据库名称相同。

4、在管理帐户密码界面,可以与别的数据库管理帐户密码相同也可以不同,需注意的是,Oracle数据库默认是区分密码大小写的。

5、跳转到Oracle内存分配大小页面,这里建议将Oracle内存调整为物理主机内存的70%。

6、点击完成后,等待数据库创建完成。

7、数据库创建完成后,用sqlplus 语句连接数据库,在同一服务器上建立多个Oracle数据库操作完成。

怎样将oracle数据库中的一个表导入到另一个服务器数据库中?

主要通过几下命令:

exp/imp

expdp/impdp

dblink

spool/sqlldr

pl/sql导出insert语句

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的 适应高吞吐量的数据库解决方案。

怎么将数据库从Oracle迁移到SQL Server,或从Oracle迁移到MySQL

OGG全称为Oracle GoldenGate,是由Oracle官方提供的用于解决异构数据环境中数据复制的一个商业工具。相比于其它迁移工具OGG的优势在于可以直接解析源端Oracle的redo log,因此能够实现在不需要对原表结构做太多调整的前提下完成数据增量部分的迁移。本篇文章将重点介绍如何使用OGG实现Oracle到MySQL数据的平滑迁移,以及讲述个人在迁移过程中所碰到问题的解决方案。

(一)OGG逻辑架构

参照上图简单给大家介绍下OGG逻辑架构,让大家对OGG数据同步过程有个简单了解,后面章节会详细演示相关进程的配置方式,在OGG使用过程中主要涉及以下进程及文件:

Manager进程:需要源端跟目标端同时运行,主要作用是监控管理其它进程,报告错误,分配及清理数据存储空间,发布阈值报告等

Extract进程:运行在数据库源端,主要用于捕获数据的变化,负责全量、增量数据的抽取

Trails文件:临时存放在磁盘上的数据文件

Data Pump进程:运行在数据库源端,属于Extract进程的一个辅助进程,如果不配置Data Pump,Extract进程会将抽取的数据直接发送到目标端的Trail文件,如果配置了Data Pump,Extract进程会将数据抽取到本地Trail文件,然后通过Data Pump进程发送到目标端,配置Data Pump进程的主要好处是即使源端到目标端发生网络中断,Extract进程依然不会终止

Collector进程:接收源端传输过来的数据变化,并写入本地Trail文件中

Replicat进程:读取Trail文件中记录的数据变化,创建对应的DML语句并在目标端回放

二、迁移方案

(一)环境信息

OGG版本    OGG 12.2.0.2.2 For Oracle    OGG 12.2.0.2.2 For MySQL    

数据库版本    Oracle 11.2.0.4    MySQL 5.7.21  

OGG_HOME    /home/oracle/ogg    /opt/ogg  

(二)表结构迁移

表结构迁移属于难度不高但内容比较繁琐的一步,我们在迁移表结构时使用了一个叫sqlines的开源工具,对于sqlines工具在MySQL端创建失败及不符合预期的表结构再进行特殊处理,以此来提高表结构转换的效率。

注意:OGG在Oracle迁移MySQL的场景下不支持DDL语句同步,因此表结构迁移完成后到数据库切换前尽量不要再修改表结构。

(三)数据迁移

数据同步的操作均采用OGG工具进行,考虑数据全量和增量的衔接,OGG需要先将增量同步的抽取进程启动,抓取数据库的redo log,待全量抽取结束后开启增量数据回放,应用全量和增量这段期间产生的日志数据,OGG可基于参数配置进行重复数据处理,所以使用OGG时优先将增量进行配置并启用。此外,为了避免本章节篇幅过长,OGG参数将不再解释,有需要的朋友可以查看官方提供的Reference文档查询任何你不理解的参数。

1.源端OGG配置

(1)Oracle数据库配置

针对Oracle数据库,OGG需要数据库开启归档模式及增加辅助补充日志、强制记录日志等来保障OGG可抓取到完整的日志信息

查看当前环境是否满足要求,输出结果如下图所示:

(2)Oracle数据库OGG用户创建

OGG需要有一个用户有权限对数据库的相关对象做操作,以下为涉及的权限,该示例将创建一个用户名和密码均为ogg的Oracle数据库用户并授予以下权限

(3)源端OGG 管理进程(MGR)配置

(4)源端OGG 表级补全日志(trandata)配置

表级补全日志需要在最小补全日志打开的情况下才起作用,之前只在数据库级开启了最小补全日志(alter database add supplemental log data;),redolog记录的信息还不够全面,必须再使用add trandata开启表级的补全日志以获得必要的信息。

(5)源端OGG 抽取进程(extract)配置

Extract进程运行在数据库源端,负责从源端数据表或日志中捕获数据。Extract进程利用其内在的checkpoint机制,周期性地检查并记录其读写的位置,通常是写入到本地的trail文件。这种机制是为了保证如果Extract进程终止或者操作系统宕机,我们重启Extract进程后,GoldenGate能够恢复到以前的状态,从上一个断点处继续往下运行,而不会有任何数据损失。

(6)源端OGG 传输进程(pump)配置

pump进程运行在数据库源端,其作用非常简单。如果源端的Extract抽取进程使用了本地trail文件,那么pump进程就会把trail文件以数据块的形式通过TCP/IP协议发送到目标端,Pump进程本质上是Extract进程的一种特殊形式,如果不使用trail文件,那么Extract进程在抽取完数据后,直接投递到目标端。

补充:pump进程启动时需要与目标端的mgr进程进行连接,所以需要优先将目标端的mgr提前配置好,否则会报错连接被拒绝,无法传输抽取的日志文件到目标端对应目录下

(7)源端OGG 异构mapping文件(defgen)生成

该文件记录了源库需要复制的表的表结构定义信息,在源库生成该文件后需要拷贝到目标库的dirdef目录,当目标库的replica进程将传输过来的数据apply到目标库时需要读写该文件,同构的数据库不需要进行该操作。

2.目标端OGG配置

(1)目标端MySQL数据库配置

确认MySQL端表结构已经存在

MySQL数据库OGG用户创建

mysql create user 'ogg'@'%' identified by 'ogg';

mysql grant all on *.* to 'ogg'@'%';

#### 提前创建好ogg存放checkpoint表的数据库

mysql create database ogg;

(2)目标端OGG 管理进程(MGR)配置

目标端的MGR进程和源端配置一样,可直接将源端配置方式在目标端重复执行一次即可,该部分不在赘述

(3)目标端OGG 检查点日志表(checkpoint)配置

checkpoint表用来保障一个事务执行完成后,在MySQL数据库从有一张表记录当前的日志回放点,与MySQL复制记录binlog的GTID或position点类似。

#### 切换至ogg软件目录并执行ggsci进入命令行终端

shell cd $OGG_HOME

shell ggsci

ggsci edit param ./GLOBALS

checkpointtable ogg.ggs_checkpoint

ggsci dblogin sourcedb ogg@17X.1X.84.121:3306 userid ogg

ggsci add checkpointtable ogg.ggs_checkpoint

(4)目标端OGG 回放线程(replicat)配置

Replicat进程运行在目标端,是数据投递的最后一站,负责读取目标端Trail文件中的内容,并将解析其解析为DML语句,然后应用到目标数据库中。

#### 切换至ogg软件目录并执行ggsci进入命令行终端

shell cd $OGG_HOME

shell ggsci

#### 添加一个回放线程并与源端pump进程传输过来的trail文件关联,并使用checkpoint表确保数据不丢失

ggsci add replicat r_cms,exttrail /opt/ogg/dirdat/ms,checkpointtable ogg.ggs_checkpoint

#### 增加/编辑回放进程配置文件

ggsci edit params r_cms

replicat r_cms

targetdb cms@17X.1X.84.121:3306,userid ogg,password ogg

sourcedefs /opt/ogg/dirdef/cms.def

discardfile /opt/ogg/dirrpt/r_cms.dsc,append,megabytes 1024

HANDLECOLLISIONS

MAP cms.*,target cms.*;

注意:replicat进程只需配置完成,无需启动,待全量抽取完成后再启动。

至此源端环境配置完成

待全量数据抽取完毕后启动目标端回放进程即可完成数据准实时同步。

3.全量同步配置

全量数据同步为一次性操作,当OGG软件部署完成及增量抽取进程配置并启动后,可配置1个特殊的extract进程从表中抽取数据,将抽取的数据保存到目标端生成文件,目标端同时启动一个单次运行的replicat回放进程将数据解析并回放至目标数据库中。

(1)源端OGG 全量抽取进程(extract)配置

#### 切换至ogg软件目录并执行ggsci进入命令行终端

shell cd $OGG_HOME

shell ggsci

#### 增加/编辑全量抽取进程配置文件

#### 其中RMTFILE指定抽取的数据直接传送到远端对应目录下

#### 注意:RMTFILE参数指定的文件只支持2位字符,如果超过replicat则无法识别

ggsci edit params ei_cms

SOURCEISTABLE

SETENV (NLS_LANG = "AMERICAN_AMERICA.AL32UTF8")

SETENV (ORACLE_SID=cms)

SETENV (ORACLE_HOME=/data/oracle/11.2/db_1)

USERID ogg@appdb,PASSWORD ogg

RMTHOST 17X.1X.84.121,MGRPORT 7809

RMTFILE /opt/ogg/dirdat/ms,maxfiles 100,megabytes 1024,purge

TABLE cms.*;

#### 启动并查看抽取进程正常

shell nohup ./extract paramfile ./dirprm/ei_cms.prm reportfile ./dirrpt/ei_cms.rpt

## 查看日志是否正常进行全量抽取

shell tail -f ./dirrpt/ei_cms.rpt

(2)目标端OGG 全量回放进程(replicat)配置

#### 切换至ogg软件目录并执行ggsci进入命令行终端

shell cd $OGG_HOME

shell ggsci

ggsci edit params ri_cms

SPECIALRUN

END RUNTIME

TARGETDB cms@17X.1X.84.121:3306,USERID ogg,PASSWORD ogg

EXTFILE /opt/ogg/dirdat/ms

DISCARDFILE ./dirrpt/ri_cms.dsc,purge

MAP cms.*,TARGET cms.*;

#### 启动并查看回放进程正常

shell nohup ./replicat paramfile ./dirprm/ri_cms.prm reportfile ./dirrpt/ri_cms.rpt

#### 查看日志是否正常进行全量回放

shell tail -f ./dirrpt/ri_cms.rpt

三、数据校验

数据校验是数据迁移过程中必不可少的环节,本章节提供给几个数据校验的思路共大家参数,校验方式可以由以下几个角度去实现:

1.通过OGG日志查看全量、增量过程中discards记录是否为0来判断是否丢失数据;

2.通过对源端、目标端的表执行count判断数据量是否一致;

3.编写类似于pt-table-checksum校验原理的程序,实现行级别一致性校验,这种方式优缺点特别明显,优点是能够完全准确对数据内容进行校验,缺点是需要遍历每一行数据,校验成本较高;

4.相对折中的数据校验方式是通过业务角度,提前编写好数十个返回结果较快的SQL,从业务角度抽样校验。

四、迁移问题处理

本章节将讲述迁移过程中碰到的一些问题及相应的解决方式。

(一)MySQL限制

在Oracle到MySQL的表结构迁移过程中主要碰到以下两个限制:

1. Oracle端的表结构因为最初设计不严谨,存在大量的列使用varchar(4000)数据类型,导致迁移到MySQL后超出行限制,表结构无法创建。由于MySQL本身数据结构的限制,一个16K的数据页最少要存储两行数据,因此单行数据不能超过65,535 bytes,因此针对这种情况有两种解决方式:

根据实际存储数据的长度,对超长的varchar列进行收缩;

对于无法收缩的列转换数据类型为text,但这在使用过程中可能导致一些性能问题;

2. 与第一点类似,在Innodb存储引擎中,索引前缀长度限制是767 bytes,若使用DYNAMIC、COMPRESSED行格式且开启innodblargeprefix的场景下,这个限制是3072 bytes,即使用utf8mb4字符集时,最多只能对varchar(768)的列创建索引;

3. 使用ogg全量初始化同步时,若存在外键约束,批量导入时由于各表的插入顺序不唯一,可能子表先插入数据而主表还未插入,导致报错子表依赖的记录不存在,因此建议数据迁移阶段禁用主外键约束,待迁移结束后再打开。

mysqlset global foreign_key_checks=off;

(二)全量与增量衔接

HANDLECOLLISIONS参数是实现OGG全量数据与增量数据衔接的关键,其实现原理是在全量抽取前先开启增量抽取进程,抓去全量应用期间产生的redo log,当全量应用完成后,开启增量回放进程,应用全量期间的增量数据。使用该参数后增量回放DML语句时主要有以下场景及处理逻辑:

目标端不存在delete语句的记录,忽略该问题并不记录到discardfile

目标端丢失update记录

- 更新的是主键值,update转换成insert

- 更新的键值是非主键,忽略该问题并不记录到discardfile

目标端重复insert已存在的主键值,这将被replicat进程转换为UPDATE现有主键值的行

(三)OGG版本选择

在OGG版本选择上我们也根据用户的场景多次更换了OGG版本,最初因为客户的Oracle 数据库版本为11.2.0.4,因此我们在选择OGG版本时优先选择使用了11版本,但是使用过程中发现,每次数据抽取生成的trail文件达到2G左右时,OGG报错连接中断,查看RMTFILE参数详细说明了解到trail文件默认限制为2G,后来我们替换OGG版本为12.3,使用MAXFILES参数控制生成多个指定大小的trail文件,回放时Replicat进程也能自动轮转读取Trail文件,最终解决该问题。但是如果不幸Oracle环境使用了Linux 5版本的系统,那么你的OGG需要再降一个小版本,最高只能使用OGG 12.2。

(四)无主键表处理

在迁移过程中还碰到一个比较难搞的问题就是当前Oracle端存在大量表没有主键。在MySQL中的表没有主键这几乎是不被允许的,因为很容易导致性能问题和主从延迟。同时在OGG迁移过程中表没有主键也会产生一些隐患,比如对于没有主键的表,OGG默认是将这个一行数据中所有的列拼凑起来作为唯一键,但实际还是可能存在重复数据导致数据同步异常,Oracle官方对此也提供了一个解决方案,通过对无主键表添加GUID列来作为行唯一标示,具体操作方式可以搜索MOS文档ID 1271578.1进行查看。

(五)OGG安全规则

报错信息

2019-03-08 06:15:22  ERROR   OGG-01201  Error reported by MGR : Access denied.

错误信息含义源端报错表示为该抽取进程需要和目标端的mgr进程通讯,但是被拒绝,具体操作为:源端的extract进程需要与目标端mgr进行沟通,远程将目标的replicat进行启动,由于安全性现在而被拒绝连接。

报错原因

在Oracle OGG 11版本后,增加了新特性安全性要求,如果需要远程启动目标端的replicat进程,需要在mgr节点增加访问控制参数允许远程调用

解决办法

在源端和目标端的mgr节点上分别增加访问控制规则并重启

## 表示该mgr节点允许(ALLOW)10.186网段(IPADDR)的所有类型程序(PROG *)进行连接访问ACCESSRULE, PROG *, IPADDR 10.186.*.*, ALLOW

(六)数据抽取方式

报错信息

2019-03-15 14:49:04  ERROR   OGG-01192  Trying to use RMTTASK on data types which may be written as LOB chunks (Table: 'UNIONPAYCMS.CMS_OT_CONTENT_RTF').

报错原因

根据官方文档说明,当前直接通过Oracle数据库抽取数据写到MySQL这种initial-load方式,不支持LOBs数据类型,而表 UNIONPAYCMS.CMSOTCONTENT_RTF 则包含了CLOB字段,无法进行传输,并且该方式不支持超过4k的字段数据类型

解决方法

将抽取进程中的RMTTASK改为RMTFILE参数 官方建议将数据先抽取成文件,再基于文件数据解析进行初始化导入

oracle 11g 单实例数据库 怎么简便的迁移到另一台服务器

1、如果两台服务器,存在的表结构什么的都一样,可以使用冷备份全库,把所有的数据文件、日志、归档日志等全拷贝过去(如果是linux系统,要使用oracle用户操作,否则会产生文件权限问题)

2、RMAN的异机恢复

3、EXPDP/IMPDP 全库导出、全库导入(注意版本问题,低往高可以,反之不可以)!

如何将正在运行的 Oracle 数据库迁移到另一个系统

 配置详细信息 转载

在本文提供的示例中,源服务器配置有控制域和一个托管 Oracle 数据库的来宾域(名为 ldg1)。控制域名为

primary,也是一个 I/O 域。此外,控制域还用作服务域,为来宾域提供虚拟设备服务(虚拟磁盘和虚拟网络)。

作为服务域,控制域提供以下虚拟设备服务:

一个虚拟磁盘服务 (primary-vds0),将物理磁盘作为虚拟磁盘导出到来宾域。

一个虚拟控制台集中器服务 (primary-vcc0),提供对来宾域虚拟控制台的访问。此服务使用端口范围 5000–5100

来访问虚拟控制台。

一个虚拟交换机服务 (primary-vsw0),与主网络接口 (nxge0)

关联。

软件安装和配置

按照以下步骤配置您的环境以便进行实时迁移。

安装 Oracle Solaris 操作系统

新的 SPARC 服务器上预先安装了 Oracle Solaris。对于这些系统,应确保安装了相应的 Oracle Solaris

版本,并验证打了所需的补丁。

要在 SPARC 系统上重新安装 Oracle

Solaris,请参见 Oracle

Solaris 10 文档或 Oracle

Solaris 11 文档。在本文的示例中,操作系统安装在服务器的第一个内部磁盘上。

安装 Oracle Solaris 之后,可以配置并启用系统以使用 Oracle VM Server for SPARC 2.1 软件。

安装 Oracle VM

Server for SPARC 软件

新的 SPARC 服务器上也预先安装了 Oracle VM Server for SPARC 软件。对于这些系统,应确保安装了相应的 Oracle VM

Server for SPARC 版本,并验证打了所有需要的补丁。

如果在服务器上重新安装了 Oracle

Solaris,您可能必须重新安装 Oracle VM Server for SPARC 软件。参见 Oracle

VM 下载页面。

以下示例显示了在每台物理服务器上执行的操作。每台服务器已经安装了 Oracle Solaris 和所需的补丁。

应确保系统固件与您计划安装的 Oracle VM

Server for SPARC 版本匹配。参见文档的 Oracle VM

Server for SPARC 2.1 版本说明 中的“所需软件和补丁”以及 Oracle VM Server for SPARC 2.1

管理指南 中的“升级系统固件”。

从 Oracle

VM 下载页面下载 Oracle VM Server for SPARC 2.1 软件。

解压缩存档文件。

安装 SUNWldm.v

程序包。参见 Oracle VM Server for SPARC 2.1 管理指南 中的“在新系统上安装 Oracle VM Server

for SPARC 软件”。

primary# pkgadd -d OVM_Server_SPARC-2_1/Product SUNWldm.v

配置存储阵列

Sun Storage 2540-M2 存储阵列连接到控制域,控制域将两个 LUN(LUN 0 和 LUN 1)作为虚拟磁盘导出到来宾域。

来宾域使用第一个 LUN (LUN 0) 作为操作系统的系统磁盘,使用第二个 LUN (LUN 1) 作为存储 Oracle 数据库数据文件的磁盘。

配置控制域

安装 Oracle VM Server for SPARC 软件之后,重新配置当前系统使其成为控制域。在每台物理服务器上执行以下操作:

创建一个虚拟控制台集中器 (vcc)

服务以供虚拟网络终端服务器后台程序 (vntsd) 使用,并作为所有逻辑域控制台的集中器。

primary# ldm add-vcc port-range=5000-5100 primary-vcc0 primary

创建虚拟磁盘服务器

(vds)。

primary# ldm add-vds primary-vds0 primary

创建一个虚拟交换机服务 (vsw)

以便在逻辑域中的虚拟网络 (vnet) 设备之间实现联网。

primary# ldm add-vsw net-dev=igb0 primary-vsw0 primary

使用 ldm

list-services 命令验证已经创建了这些服务,如清单 1 所示。

清单 1. 验证服务

primary# ldm list-services primary

VDS

NAME VOLUME OPTIONS DEVICE

primary-vds0

VCC

NAME PORT-RANGE

primary-vcc0 5000-5100

VSW

NAME MAC NET-DEV DEVICE MODE

primary-vsw0 02:04:4f:fb:9f:0d nxge0 switch@0 prog,promisc

VCC

NAME LDOM PORT-RANGE

primary-vcc0 primary 5000-5100

VSW

NAME LDOM MAC NET-DEV ID DEVICE LINKPROP DEFAULT-VLAN-ID PVID VID ...

primary-vsw0 primary 00:14:4f:f8:28:c2 igb0 0 switch@0 1 1 1500 on

VDS

NAME LDOM VOLUME OPTIONS MPGROUP DEVICE

primary-vds0 primary

Oracle VM Server for SPARC 使用 SSL

对迁移流量进行加密,以保护敏感数据免受利用,并消除了对额外硬件和专用网络的需求;

当源计算机和目标计算机上的主域具有分配的加密单元时,迁移操作的速度会增加。速度增加的原因在于可以将 SSL 操作分流到加密单元。

注:SPARC T4 CPU

具有内置的加密指令,因此您不需要为 CPU 分配这些指令。

确定控制域中是否有加密设备。

primary# ldm list -o crypto primary

为控制域分配加密资源。

primary# ldm set-crypto 1 primary

为控制域分配 CPU 和内存。

您可以通过向源计算机上的主域中添加更多 CPU 来减少整体迁移时间。最好为每个主域至少分配 8 个 CPU。例如,以下命令为控制域分配 8 个 CPU 和

4 GB 内存。

primary# ldm start-reconf primary

primary# ldm set-vcpu 8 primary

primary# ldm set-memory 4G primary

重新启动系统。

primary# init 6

重新启动系统之后,启用 Oracle VM Server for SPARC 并为系统配置一个域:控制域

primary。在控制域中,您可以创建和配置其他域。

确保启用 Logical Domains Manager

(ldmd) 和虚拟网络终端服务器 (vntsd) 服务。

primary# svcadm enable ldmd

primary# svcadm enable vntsd

向服务处理器 (SP)

添加逻辑域计算机配置。例如,以下命令添加名为 initial 的配置。

primary# ldm add-config initial

验证该配置可以使用。

primary# ldm list-config

factory-default

initial [current]

配置来宾域

配置控制域之后,创建来宾域以用作 Oracle 数据库节点。在作为源计算机的物理服务器上,仅创建一个来宾域。另一台物理服务器最终将成为目标计算机。

最初使用以下资源创建来宾域 ldg1:

8 GB 内存。

24 个 CPU。

一个虚拟网络接口 (vnet0),它连接到虚拟交换机 primary-vsw0。

一个虚拟磁盘,它在来宾域中显示为 c0d0 并且是存储阵列中的一个 LUN。域 ldg1

使用存储阵列的 LUN 0 (c2t6d0)。

另一个虚拟磁盘,它在来宾域中显示为 c0d1 并且是存储阵列中的一个 LUN。域 ldg1

使用存储阵列的 LUN 1 (c2t6d1)。此虚拟磁盘用于存储 Oracle 数据库文件

执行以下步骤创建每个来宾域:

在源计算机上,从控制域创建

ldg1 来宾域。

注:如果您的服务器不是基于

SPARC T4 的系统,则仅执行 ldm set-crypto 命令。

primary# ldm create ldg1

primary# ldm set-vcpu 24 ldg1

primary# ldm set-memory 8G ldg1

primary# ldm set-crypto 3 ldg1

primary# ldm add-vnet vnet0 primary-vsw0 ldg1

primary# ldm add-vdsdev /dev/dsk/c2t6d0s2 vol1@primary-vds0

primary# ldm add-vdisk vol1 vol1@primary-vds0 ldg1

primary# ldm add-vdsdev /dev/dsk/c2t6d1s2 oradata@primary-vds0

primary# ldm add-vdisk oradata oradata@primary-vds0 ldg1

创建域之后,在源计算机上使用以下命令从控制域绑定并启动来宾域。

primary# ldm bind ldg1

primary# ldm start ldg1

确定域的控制台端口。

primary# ldm ls ldg1

NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME

ldg1 active -n---- 5000 24 8G 0.0% 1h 1m

使用 telnet 命令访问

ldg1 域的控制台。

primary# telnet localhost 5000

启动来宾域之后,确保在来宾域中安装了相应的 Oracle Solaris 操作系统和补丁。您可以通过网络、从 DVD 或使用 DVD ISO

映像来执行安装。参见 Oracle VM Server for SPARC 2.1 管理指南。

注:LUN

通常在不同服务器上以不同名称显示。控制域中的 LUN 名称不需要相同。但是,两个系统上的控制域必须使用相同的卷名(vol1 和

oradata)对相同的 LUN(LUN 0 和 LUN 1)进行虚拟化。

清单 2 的示例显示了如何为名为 ldg1 的域配置 8 个 CPU、24 GB 内存以及 Sun Storage

2540-M2 存储阵列中的两个 LUN。

清单 2. 域配置示例 primary# ldm ls -l ldg1

NAME STATE FLAGS CONS VCPU MEMORY UTIL UPTIME

ldg1 active -n---- 5000 24 8G 0.0% 1h 1m

SOFTSTATE

Solaris running

MAC

00:14:4f:fb:96:89

HOSTID

0x84fb9689

CONTROL

failure-policy=ignore

DEPENDENCY

master=

VCPU

VID PID UTIL STRAND

0 16 0.2% 100%

1 17 0.0% 100%

2 18 0.5% 100%

3 19 0.0% 100%

4 20 0.0% 100%

5 21 0.0% 100%

6 22 0.1% 100%

7 23 0.0% 100%

8 24 0.1% 100%

9 25 0.0% 100%

10 26 0.0% 100%

11 27 0.0% 100%

12 28 0.0% 100%

13 29 0.0% 100%

14 30 0.0% 100%

15 31 0.0% 100%

16 32 0.0% 100%

17 33 0.0% 100%

18 34 0.0% 100%

19 35 0.0% 100%

20 36 0.0% 100%

21 37 0.0% 100%

22 38 0.0% 100%

23 39 0.1% 100%

MEMORY

RA PA SIZE

0x8000000 0x408000000 8G

VARIABLES

boot-device=vdisk1

keyboard-layout=US-English

NETWORK

NAME SERVICE ID DEVICE MAC MODE PVID VID MTU LINKPROP

vnet1 primary-vsw0@primary 0 network@0 00:14:4f:f9:c0:62 1 1500

DISK

NAME VOLUME TOUT ID DEVICE SERVER MPGROUP

vdisk1 vol1@primary-vds0 0 disk@0 primary

oradata oradata@primary-vds0 1 disk@1 primary

VCONS

NAME SERVICE PORT

ldg1 primary-vcc0@primary 5000

清单 3 的示例显示了控制域的配置。使用 ldm list-services

命令验证已经创建了这些服务。

清单 3. 控制域配置示例 primary# ldm ls-services primary

VCC

NAME LDOM PORT-RANGE

primary-vcc0 primary 5000-5100

VSW

NAME LDOM MAC NET-DEV ID DEVICE LINKPROP DEFAULT-VLAN-ID ...

primary-vsw0 primary 00:14:4f:f9:32:b0 nxgeg0 0 switch@0 1 1 ...

VDS

NAME LDOM VOLUME OPTIONS MPGROUP DEVICE

primary-vds0 primary vol1 /dev/dsk/c2t6d0s2

oradata /dev/dsk/c2t6d1s2

在来宾域中安装 Oracle Solaris

确保在来宾域中安装了相应的 Oracle Solaris 版本,并验证打了所需的补丁。

在来宾域中安装 Oracle Solaris 之后,可以配置并启用系统使其使用 Oracle 数据库。

安装 Oracle Database

Oracle Database 软件的安装类似于标准 Oracle Database 安装。首先安装 Oracle

Database,然后应用最新补丁集。使用第二个 LUN 创建 UFS 或 ZFS 文件系统用于存储 Oracle 数据库数据文件。

有关针对 Oracle 数据库使用 ZFS

的更多信息,请参见针对

Oracle 数据库配置 Oracle Solaris ZFS。

准备目标服务器

按如下方式准备目标服务器。

执行以下各节中所述的步骤来准备目标计算机:

安装 Oracle VM

Server for SPARC 软件

配置控制域

确保在目标服务器上提供了供待迁移域使用的所有虚拟 I/O 服务。

确保目标服务器有权访问同一存储中的 LUN 0 和 LUN

1。

要将第一个 LUN (LUN 0) 和第二个 LUN (LUN 1) 添加到目标计算机,从目标服务器的控制域执行以下命令:

# ldm add-vdsdev /dev/dsk/c2t6d0s2 vol1@primary-vds0

# ldm add-vdsdev /dev/dsk/c2t6d1s2 oradata@primary-vds0

注:LUN

通常在不同服务器上以不同名称显示。控制域中的 LUN 名称不需要相同。但是,两个系统上的控制域必须使用相同的卷名(vol1 和

oradata)对相同的 LUN(LUN 0 和 LUN 1)进行虚拟化。

确保待迁移域中的每个虚拟网络设备在目标计算机上都有一个对应的虚拟网络交换机:

# ldm add-vsw net-dev=nxge0 primary-vsw0 primary

如何把oracle 11g的数据库移植到同版本另一台服务器上

1、如果两台服务器,存在的表结构什么的都一样,可以使用冷备份全库,把所有的数据文件、日志、归档日志等全拷贝过去(如果是linux系统,要使用oracle用户操作,否则会产生文件权限问题)

2、RMAN的异机恢复

3、EXPDP/IMPDP 全库导出、全库导入(注意版本问题,低往高可以,反之不可以)

【上面3种方法,任选其中1种,都可以,希望可以帮到你】

关于oracle数据库迁移到新服务器和oracle数据库迁移到sql server的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon