oracle将表空间转移到其他文件,Oracle垮操作系统平台直接迁移数据库和数据文件、表空间...

SQL> select * from v$transportable_platform order by

3;

PLATFORM_ID PLATFORM_NAME  ENDIAN_FORMAT

----------- ----------------------------------------

--------------------------

3 HP-UX (64-bit)

Big

6 AIX-Based Systems (64-bit)

Big

18 IBM Power Based Linux

Big

2 Solaris[tm] OE (64-bit)

Big

4 HP-UX IA (64-bit)

Big

16 Apple Mac OS

Big

1 Solaris[tm] OE (32-bit)

Big

9 IBM zSeries Based Linux

Big

17 Solaris Operating System

(x86)  Little

19 HP IA Open VMS

Little

20 Solaris Operating System

(x86-64)  Little

PLATFORM_ID PLATFORM_NAME  ENDIAN_FORMAT

----------- ----------------------------------------

--------------------------

12 Microsoft Windows x86

64-bit  Little

13 Linux x86 64-bit

Little

8 Microsoft Windows IA

(64-bit)  Little

21 Apple Mac OS (x86-64)

Little

11 Linux IA (64-bit)

Little

5 HP Tru64 UNIX

Little

10 Linux IA (32-bit)

Little

7 Microsoft Windows IA

(32-bit)  Little

15 HP Open VMS

Little

已选择 20 行。

******************************

Tablespace

******************************

CONVERT TABLESPACE andzen1

TO PLATFORM 'AIX-Based Systems

(64-bit)'

FORMAT='F:/TMP/%U';

CONVERT TABLESPACE andzen1

TO PLATFORM 'Linux IA

(32-bit)'

FORMAT='F:/TMP/%U';

CONVERT TABLESPACE andzen1

TO PLATFORM 'Linux x86

64-bit'

FORMAT='F:/TMP/%U';

RMAN> CONVERT tablespace users

2> TO

PLATFORM 'Linux x86 64-bit'

3> FORMAT='F:/TMP/%U';

启动 conversion at source 于 30-11月-16

使用通道 ORA_DISK_1

RMAN-00571:

===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS

===============

RMAN-00571:

===========================================================

RMAN-03002: conversion at source 命令 (在 11/30/2016 12:17:02 上)

失败

RMAN-06599: 表空间 USERS

不是只读的

RMAN> CONVERT tablespace users

2> TO

PLATFORM 'Linux x86 64-bit'

3> FORMAT='F:/TMP/%U';

启动 conversion at source 于 30-11月-16

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 启动数据文件转换

输入数据文件: 文件号=00004 名称=F:\APP\ORACLE12C\ORADATA\TX\USERS01.DBF

已转换的数据文件 =

F:\TMP\DATA_D-TX_I-2137294257_TS-USERS_FNO-4_0GRM78AU

通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:01

完成 conversion at source 于

30-11月-16

RMAN> .

RMAN> CONVERT TABLESPACE andzen1

2> TO

PLATFORM 'AIX-Based Systems (64-bit)'

3> FORMAT='F:/TMP/%U';

启动 conversion at source 于 30-11月-16

使用通道 ORA_DISK_1

通道 ORA_DISK_1: 启动数据文件转换

输入数据文件: 文件号=00005 名称=F:\APP\ORACLE12C\ORADATA\TX\ANDZEN1.DBF

已转换的数据文件 =

F:\TMP\DATA_D-TX_I-2137294257_TS-ANDZEN1_FNO-5_0ERM7737

通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:01:35

完成 conversion at source 于

30-11月-16

RMAN>

******************************

Data

file

******************************

RMAN> CONVERT DATAFILE 'F:\APP\ORACLE12C\ORADATA\TX\USERS01.DBF'

2> TO

PLATFORM 'Linux x86 64-bit'

3> FORMAT='F:/TMP/%U';

启动 conversion at target 于 30-11月-16

使用通道 ORA_DISK_1

RMAN-00571:

===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS

===============

RMAN-00571:

===========================================================

RMAN-03002: conversion at target 命令 (在 11/30/2016 12:18:48 上)

失败

RMAN-06595: 平台名 'Linux x86 64-bit' 与数据库平台名

'Microsoft Windows x86 64-bit' 不匹配

RMAN>

RMAN> CONVERT DATAFILE 'F:\APP\ORACLE12C\ORADATA\TX\ANDZEN1.DBF'

2> TO

PLATFORM 'AIX-Based Systems (64-bit)'

3> FORMAT='F:/TMP/%U';

启动 conversion at target 于 30-11月-16

使用通道 ORA_DISK_1

RMAN-00571:

===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS

===============

RMAN-00571:

===========================================================

RMAN-03002: conversion at target 命令 (在 11/30/2016 12:13:48 上)

失败

RMAN-06595: 平台名 'AIX-Based Systems (64-bit)'

与数据库平台名 'Microsoft Windows x86 64-bit' 不匹配

RMAN>

奇怪所有的covert datafile 都不成功!??

platform_name支持的值可以从V$TRANSPORTABLE_PLATFORM查询到,并没有错误。

答:

CONVERT

TABLESPACE命令必须用在源平台,必须转换整个表空间

CONVERT DATAFILE命令用在目的地平台(不能在源数据库), 只转换一个数据文件。

******************************

DATABASE

******************************

使用RMAN CONVERT DATABASE命令转换整个数据库文件。

下面是转换步骤:

1).准备传输数据库,源数据库必须以只读方式打开。

SQL> STARTUP MOUNT;

SQL> ALTER DATABASE OPEN READ ONLY;

2).使用DBMS_TDB.CHECK_DB检查数据库状态。

使用DBMS_TDB包的CHECK_DB函数检查数据库是否准备好了。

set serveroutput on

declare

db_ready boolean;

begin

db_ready :=

dbms_tdb.check_db('Microsoft Windows IA (32-bit)',

dbms_tdb.skip_none);

end;

3).使用DBMS_TDB.CHECK_EXTERNAL标识外部对象。

SQL> set serveroutput on

SQL> declare

external boolean;

begin

external :=

dbms_tdb.check_external;

end;

当数据库准备好传输后,执行RMAN CONVERT

DATABASE命令,指定目的地平台和输出文件名称。RMAN处理需要移动到目的地数据库的文件,包括以下:

*数据库数据文件的完整拷贝,准备传输。

*用于目的地平台新数据库的PFILE,包括源数据库PFILE或者SPFILE的设置:

# Please change the values of the following parameters:

control_files  =

"/tmp/convertdb/cf_D-NEWDBT_id-1778429277_00gb9u2s"

db_recovery_file_dest  = "/tmp/convertdb/orcva"

db_recovery_file_dest_size=

10737418240

instance_name  = "NEWDBT"

service_names  =

"NEWDBT.regress.rdbms.dev.us.oracle.com"

plsql_native_library_dir =

"/tmp/convertdb/plsqlnld1"

db_name  = "NEWDBT"

*transport script,包含用于在目的地平台创建新数据库SQL语句。

4).执行CONVERT DATABASE操作。

以下是在源平台使用CONVERT DATABASE的例子:

RMAN> CONVERT DATABASE NEW DATABASE 'newdb'

transport script

'/tmp/convertdb/transportscript'

to platform 'Microsoft Windows IA

(32-bit)'

db_file_name_convert

'/disk1/oracle/dbs' '/tmp/convertdb'

;

Starting convert at 25-JAN-05

using channel ORA_DISK_1

External table SH.SALES_TRANSACTIONS_EXT found in the

database

Directory SYS.DATA_PUMP_DIR found in the database

Directory SYS.MEDIA_DIR found in the database

Directory SYS.DATA_FILE_DIR found in the database

Directory SYS.LOG_FILE_DIR found in the database

BFILE PM.PRINT_MEDIA found in the database

User SYS with SYSDBA and SYSOPER privilege found in password

file

User OPER with SYSDBA privilege found in password file

channel ORA_DISK_1: starting datafile conversion

input datafile fno=00001 name=/disk1/oracle/dbs/tbs_01.f

converted datafile=/tmp/convertdb/tbs_01.f

channel ORA_DISK_1: datafile conversion complete, elapsed

time: 00:00:15

channel ORA_DISK_1: starting datafile conversion

input datafile fno=00002 name=/disk1/oracle/dbs/tbs_ax1.f

converted datafile=/tmp/convertdb/tbs_ax1.f

channel ORA_DISK_1: datafile conversion complete, elapsed

time: 00:00:03

.

.

.

channel ORA_DISK_1: starting datafile conversion

input datafile fno=00016 name=/disk1/oracle/dbs/tbs_52.f

converted datafile=/tmp/convertdb/tbs_52.f

channel ORA_DISK_1: datafile conversion complete, elapsed

time: 00:00:01

Run SQL script /tmp/convertdb/transportscript on the target

platform

to create database

Edit init.ora file init_00gb3vfv_1_0.ora.This PFILE will be

used to

create the database on the target

platform

To recompile all PL/SQL modules, run utlirp.sql and utlrp.sql

on

the target platform

To change the internal database identifier, use DBNEWID

Utility

Finished backup at 25-JAN-05

5).将所有处理的文件拷贝到目的地主机。

放置数据文件到目的地主机期望的位置,如果在目的地的数据文件路径和源不同,编辑transport

script引用新的数据文件位置。同时编辑PFILE修改任何针对目的地数据库的设置。

6).在目的地主机的SQL*PLUS中执行transport

scirpt创建新数据库。

SQL> @transportscript

当transport sciprt完成,新数据库即创建完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值