oracle10g跨平台迁移,Oracle 10g RMAN 跨平台迁移

RMAN异构平台迁移

1.实验环境简介

1.1  SOA生产系统

数据库名    comSOA

实例名      Comsoa

DBID        4133565260

数据库版本Windows 32bit 10.2.R2

数据文件目录E:\ORASOA\ORADATA\COMSOA\

Pfile Initcomsoa.ora

1.2  待恢SOA系统

数据库名    comSOA

实例名      Comsoa

DBID        4133565260

数据库版本Linux 64it 10.2R2

数据文件目录/U01/ORADATA/COMSOA/

Pfile Initcomsoa.ora

2  备份

2.1  备份注意事项

1. 迁移库只能在同字节顺序平台之间(即ENDIAN_FORMAT相同)且得是ORACLE所支持的平台,可以在V$TRANSPORTABLE_PLATFORM中查看。

2. 传输前需要将源库置为只读。

3. 生成的2个脚本文件要仔细根据需要修改。

2.2  源库操作

2.2.1  将库只读,并检查是否支持迁移

一.将库只读,并检查是否支持迁移

SQL> startup mount

SQL> alter database open read only;

2.2.2  检查支持迁移平台

SQL> select * from v$transportable_platform;

PLATFORM_ID PLATFORM_NAME                      ENDIAN_FORMAT

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

2 Solaris[tm] OE (64-bit)               Big

7 Microsoft Windows IA (32-bit)         Little

10 Linux IA (32-bit)                    Little

6 AIX-Based Systems (64-bit)            Big

4 HP-UX IA (64-bit)                     Big

11 Linux IA (64-bit)                    Little

15 HP Open VMS                          Little

8 Microsoft Windows IA (64-bit)         Little

17 rows selected.

2.2.3  利用dbms_tdb 包检查数据库

二.利用dbms_tdb 包检查数据库能否被传输以及列出外部表和DIRECTORY 等无法传输的对象信息,分别在windows平台数据库通过SQLPLUS执行以下两个存储过程

SQL> set serveroutput on

SQL> declare

2 db_ready boolean;

3 begin

4 /* db_ready is ignored, but with SERVEROUTPUT set to ON any

5 * conditions preventing transport will be output to console */

6 db_ready := dbms_tdb.check_db('Microsoft Windows IA (32-bit)',

7 dbms_tdb.skip_none);

8 end;

9 /

PL/SQL procedure successfully completed.

SQL> declare

2 external boolean;

3 begin

4 /* value of external is ignored, but with SERVEROUTPUT set to ON

5 * dbms_tdb.check_external displays report of external objects

6 * on console */

7 external := dbms_tdb.check_external;

8 end;

9 /

PL/SQL procedure successfully completed.

2.2.4  RMAN  ConvertDB

连接target database 查看数据库打开模式

C:\ Administrator > set oracle_sid=comsoa

C:\ Administrator > sqlplus / as sysdba

SQL> select open_mode from v$database;

OPEN_MODE

----------

READ ONLY

利用RMAN convertDB 转化数据库

C:\ Administrator > rman target /

RMAN>  convert database new database 'comsoa'

2>   transport script 'f:\transdb.sql'

3>   to platform 'Linux IA (64-bit)'

4>   db_file_name_convert 'e:\orasoa\oradata\comsoa\','f:\trans_dir\';

注:

'f:\transdb.sql':数据库转化脚本生产位置

'Linux IA (64-bit)':被转化的平台

e:\orasoa\oradata\comsoa\:源数据库数据文件位置

'f:\trans_dir\':转化后生成新的数据文件位置

启动 convert 于 08-12月-11

使用目标数据库控制文件替代恢复目录

分配的通道: ORA_DISK_1

通道 ORA_DISK_1: sid=318 devtype=DISK

在数据库中找到目录 SYS.WORK_DIR

在数据库中找到目录 SYS.ADMIN_DIR

在数据库中找到目录 SYS.DATA_PUMP_DIR

………

……….

………..

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

在目标平台上运行 SQL 脚本 F:\TRANSDB.SQL 以创建数据库

编辑 init.ora 文件 E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\INIT_00MTMNQN_1_0.ORA。

此 PFILE 将用于在目标平台上创建数据库据

要重新编译所有 PL/SQL 模块, 请在目标平台上运行 utlirp.sql 和 utlrp.sql

要更改内部数据库标识符, 请使用 DBNEWID 实用程序

完成 backup 于 03-12月-11

2.2.5  修改pfile参数文件

修改在E:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\INIT_00MTMNQN_1_0.ORA 生成的参数文件并重新命名为initcomsoa.ora

# Please change the values of the following parameters:

control_files  = "/u01/app/oracle/oradata/comsoa/control01.ctl",

"/u01/app/oracle/oradata/comsoa/control02.ctl",

"/u01/app/oracle/oradata/comsoa/control03.ctl"

db_recovery_file_dest    = "/u01/app/oracle/flash_recovery_area"

db_recovery_file_dest_size= 2147483648

audit_file_dest  = "/u01/app/oracle/comsoa/admin/adump"

background_dump_dest    = "/u01/app/oracle/comsoa/admin/bdump"

user_dump_dest          = "/u01/app/oracle/comsoa/admin/udump"

core_dump_dest          = "/u01/app/oracle/comsoa/admin/cdump"

db_name                 = "COMSOA"

# Please review the values of the following parameters:

__shared_pool_size       = 100663296

__large_pool_size        = 4194304

__java_pool_size         = 4194304

__streams_pool_size      = 0

__db_cache_size          = 205520896

remote_login_passwordfile= "EXCLUSIVE"

db_domain     = ""

dispatchers     = "(PROTOCOL=TCP) (SERVICE=COMSOAXDB)"

# The values of the following parameters are from source database:

processes                = 300

sessions                 = 335

sga_max_size             = 318767104

nls_language             = "SIMPLIFIED CHINESE"

nls_territory            = "CHINA"

sga_target               = 318767104

db_block_size            = 8192

compatible               = "10.2.0.1.0"

# log_archive_dest_1       = "location=/u01/orasoa/archive/comsoa"

db_file_multiblock_read_count= 16

undo_management          = "AUTO"

undo_tablespace          = "UNDOTBS1"

job_queue_processes      = 10

open_cursors             = 300

pga_aggregate_target     = 336870912

2.2.6  重建控制文件脚本TRANSDB.SQL

根据linux主机路径修改相应的数据文件目录

-- The following commands will create a new control file and use it

-- to open the database.

STARTUP NOMOUNT PFILE='/u01/app/oracle/product/10.2.0/db_1/dbs/initcomsoa.ora'

CREATE CONTROLFILE REUSE SET DATABASE "COMSOA" RESETLOGS  ARCHIVELOG

MAXLOGFILES 16

MAXLOGMEMBERS 3

MAXDATAFILES 100

MAXINSTANCES 8

MAXLOGHISTORY 292

LOGFILE

GROUP 1 '/u01/app/oracle/oradata/comsoa/redo01.log'  SIZE 50M,

GROUP 2 '/u01/app/oracle/oradata/comsoa/redo02.log'  SIZE 50M,

GROUP 3 '/u01/app/oracle/oradata/comsoa/redo03.log'  SIZE 50M

DATAFILE

'/u01/app/oracle/oradata/comsoa/SYSTEM01.DBF',

'/u01/app/oracle/oradata/comsoa/UNDOTBS01.DBF',

'/u01/app/oracle/oradata/comsoa/SYSAUX01.DBF',

'/u01/app/oracle/oradata/comsoa/USERS01.DBF',

'/u01/app/oracle/oradata/comsoa/TBS_IDX_COMSOA.ORA',

'/u01/app/oracle/oradata/comsoa/TBS_IDX_DXPT.ORA',

'/u01/app/oracle/oradata/comsoa/TBS_IDX_KB.ORA',

'/u01/app/oracle/oradata/comsoa/TBS_IDX_WORKFLOW.ORA',

'/u01/app/oracle/oradata/comsoa/TBS_KB.ORA',

'/u01/app/oracle/oradata/comsoa/TBS_WORKFLOW.ORA',

'/u01/app/oracle/oradata/comsoa/WORKFLOW_MAIN_1.ORA',

'/u01/app/oracle/oradata/comsoa/TBS_COMSOA.ORA',

'/u01/app/oracle/oradata/comsoa/TBS_DXPT.ORA',

'/u01/app/oracle/oradata/comsoa/WORKFLOW_MAIN.ORA'

CHARACTER SET ZHS16GBK

;

-- Database can now be opened zeroing the online logs.

ALTER DATABASE OPEN RESETLOGS;

-- Commands to add tempfiles to temporary tablespaces.

-- Online tempfiles have complete space information.

-- Other tempfiles may require adjustment.

ALTER TABLESPACE TBS_TMP_DXPT ADD TEMPFILE '/u01/app/oracle/oradata/comsoa/TS-TBS_TMP_DXPT.dbf'

SIZE 52428800  AUTOEXTEND OFF;

ALTER TABLESPACE TBS_TMP_COMSOA ADD TEMPFILE '/u01/app/oracle/oradata/comsoa/TS-TBS_TMP_COMSOA.dbf'

SIZE 52428800  AUTOEXTEND OFF;

ALTER TABLESPACE TEMP01 ADD TEMPFILE '/u01/app/oracle/oradata/comsoa/TS-TEMP01.dbf'

SIZE 52428800  AUTOEXTEND OFF;

-- End of tempfile additions.

--

set echo off

prompt ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

prompt * Your database has been created successfully!

prompt * There are many things to think about for the new database. Here

prompt * is a checklist to help you stay on track:

prompt * 1. You may want to redefine the location of the directory objects.

prompt * 2. You may want to change the internal database identifier (DBID)

prompt *    or the global database name for this database. Use the

prompt *    NEWDBID Utility (nid).

prompt ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

SHUTDOWN IMMEDIATE

STARTUP UPGRADE PFILE='/u01/app/oracle/product/10.2.0/db_1/dbs/initcomsoa.ora'

@@ /u01/app/oracle/product/10.2.0/db_1/rdbms/admin/utlirp.sql

SHUTDOWN IMMEDIATE

STARTUP PFILE='/u01/app/oracle/product/10.2.0/db_1/dbs/initcomsoa.ora'

-- The following step will recompile all PL/SQL modules.

-- It may take serveral hours to complete.

@@ /u01/app/oracle/product/10.2.0/db_1/rdbms/admin/utlrp.sql

set feedback 6;

注:在此文件中注意Linux目标数据库的路径要保证正确,目录属主权限要正确

2.3  Linux平台主机操作

2.3.1  安装oracle数据库软件,建立相关文件夹

安装好oracle后根据pfile文件内容来创建相关的目录

$mkdir –p /u01/app/oracle/comsoa/admin/adump

$mkdir –p /u01/app/oracle/comsoa/admin/bdump

$mkdir –p /u01/app/oracle/comsoa/admin/cdump

$mkdir –p /u01/app/oracle/comsoa/admin/udump

$mkdir –p /u01/app/oracle/flash_recovery_area

$mkdir –p /u01/orasoa/archive/comsoa

$mkdir –p /u01/app/oracle/oradata/comsoa/

2.3.2  迁移转化

将在windows环境中生成的文件拷贝到linux主机下包括以下文件

1.f:\trans_dir\目录下的转化后的所有数据文件,还有幻化脚本TRANSDB.SQL拷贝到/u01/app/oracle/oradata/comsoa/目录下,

2.将修改后的initcomsoa.ora拷贝到/u01/app/oracle/product/10.2.0/db_1/dbs/目录下

2.3.3 创建实例comsoa 执行转化脚本

$cd  /u01/app/oracle/oradata/comsoa

[oracle@SOA comsoa]$export ORACLE_SID=comsoa

[oracle@SOA comsoa]$ sqlplus / as sysdba

SQL > @TRANSDB.SQL

SQL脚本执行完成后提示以下信息

SQL> Rem =========================================================

SQL> Rem Run component validation procedure

SQL> Rem ==========================================================

SQL> SET serveroutput on

SQL> EXECUTE dbms_registry_sys.validate_components;

PL/SQL procedure successfully completed.

SQL> set feedback 6;

SQL>@utlip.sql 编译无效PLSQL过程

SQL> Rem =================================================

SQL> Rem END utlip.sql

SQL> Rem =================================================

2.4 数据库验证

查看数据库名称

SQL> select name from v$database;

NAME

---------

COMSOA

查询数据库实例

SQL> select status from v$instance;

STATUS

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

OPEN

查询数据库打开模式

SQL> select open_mode from v$database;

OPEN_MODE

----------

READ WRITE

数据库用户登陆验证

SQL> select username from dba_users;

USERNAME

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

DXPT

KB

WORKFLOW

WORKFLOW_YWZY

LTWG

MONITOR

……..

……..

DBSNMP

27 rows selected.

登陆验证

SQL> conn kb/*******

Connected.

KB用户在经过windows环境迁移Linux主机后可以正常登陆

表空间验证,查询迁移后的表空间

SQL> select tablespace_name,file_id from dba_data_files;

TABLESPACE_NAME                   FILE_ID

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

WORKFLOW_MAIN                          14

WORKFLOW_MAIN                          13

TBS_WORKFLOW                           12

TBS_KB                                     11

TBS_IDX_WORKFLOW                       10

TBS_IDX_KB                                 9

TBS_IDX_DXPT                               8

TBS_IDX_COMSOA                           7

TBS_DXPT                                   6

TBS_COMSOA                               5

USERS                                      4

SYSAUX                                     3

UNDOTBS1                                  2

SYSTEM                                     1

14 rows selected.

插入数据验证

SQL> create table test (i int);

Table created.

SQL> insert into test values (1);

1 row created.

SQL> select * from test;

I

----------

1

切换日志测试

SQL> alter system switch logfile;

System altered.

2.5 迁移注意事项

1.确保源库与目标数据库的字符集一致

2.数据库32bit迁移到64位后要把无效的数据库对象重新编译,确保正确执行utlrp.sql,utlirp.sql

3.数据库迁移后,确保应用系统用户可以正确连接,登陆有效

4.监听要重新配置,检查临时表空间的属主与可用性

5.迁移完成后要立即进行一次全备份

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值