ORACLE 12C 跨平台迁移(windows迁移linux)
Posted aries0228
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ORACLE 12C 跨平台迁移(windows迁移linux)相关的知识,希望对你有一定的参考价值。
源数据库置于readonly状态
1 SQL> conn sys/oracle_4U@windb as sysdba 2 已连接到空闲例程。 3 SQL> startup mount 4 ORACLE 例程已经启动。 5 6 Total System Global Area 1728053248 bytes 7 Fixed Size 3046512 bytes 8 Variable Size 1023411088 bytes 9 Database Buffers 687865856 bytes 10 Redo Buffers 13729792 bytes 11 数据库装载完毕。 12 SQL> alter database open read only; 13 14 数据库已更改。
确定ENDIAN序列
1 SQL> select * from v$transportable_platform order by platform_id; 2 3 PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT 4 ----------- -------------------------------------------------------------------------------- -------------- 5 1 Solaris[tm] OE (32-bit) Big 6 2 Solaris[tm] OE (64-bit) Big 7 3 HP-UX (64-bit) Big 8 4 HP-UX IA (64-bit) Big 9 5 HP Tru64 UNIX Little 10 6 AIX-Based Systems (64-bit) Big 11 7 Microsoft Windows IA (32-bit) Little 12 8 Microsoft Windows IA (64-bit) Little 13 9 IBM zSeries Based Linux Big 14 10 Linux IA (32-bit) Little 15 11 Linux IA (64-bit) Little 16 12 Microsoft Windows x86 64-bit Little 17 13 Linux x86 64-bit Little 18 15 HP Open VMS Little 19 16 Apple Mac OS Big 20 17 Solaris Operating System (x86) Little 21 18 IBM Power Based Linux Big 22 19 HP IA Open VMS Little 23 20 Solaris Operating System (x86-64) Little 24 21 Apple Mac OS (x86-64) Little 25 26 20 rows selected
使用RMAN工具进行CONVERT DATABASE
1 RMAN> convert database to platform ‘Linux IA (64-bit)‘ format ‘c:data\%U‘; 2 3 启动 conversion at source 于 03-12月-20 4 使用目标数据库控制文件替代恢复目录 5 分配的通道: ORA_DISK_1 6 通道 ORA_DISK_1: SID=242 设备类型=DISK 7 8 在数据库中找到外部表 SYS.OPATCH_XML_INV 9 10 在数据库中找到目录 SYS.ORACLE_HOME 11 在数据库中找到目录 SYS.ORACLE_BASE 12 在数据库中找到目录 SYS.OPATCH_LOG_DIR 13 在数据库中找到目录 SYS.OPATCH_SCRIPT_DIR 14 在数据库中找到目录 SYS.OPATCH_INST_DIR 15 在数据库中找到目录 SYS.DATA_PUMP_DIR 16 在数据库中找到目录 SYS.XSDDIR 17 在数据库中找到目录 SYS.XMLDIR 18 在数据库中找到目录 SYS.ORACLECLRDIR 19 在数据库中找到目录 SYS.ORACLE_OCM_CONFIG_DIR 20 在数据库中找到目录 SYS.ORACLE_OCM_CONFIG_DIR2 21 22 在口令文件中找到用户 SYS (具有 SYSDBA and SYSOPER 权限) 23 在口令文件中找到用户 SYSDG (具有 SYSDG 权限) 24 在口令文件中找到用户 SYSBACKUP (具有 SYSBACKUP 权限) 25 在口令文件中找到用户 SYSKM (具有 SYSKM 权限) 26 通道 ORA_DISK_1: 启动数据文件转换 27 输入数据文件: 文件号=00001 名称=C:APPAPPLEORADATAWINDBDATAFILEO1_MF_SYSTEM_HVNQY99M_.DBF 28 已转换的数据文件 = C:DATADATA_D-WINDB_I-1976086287_TS-SYSTEM_FNO-1_01VH655M 29 通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:16 30 通道 ORA_DISK_1: 启动数据文件转换 31 输入数据文件: 文件号=00003 名称=C:APPAPPLEORADATAWINDBDATAFILEO1_MF_SYSAUX_HVNQWVR9_.DBF 32 已转换的数据文件 = C:DATADATA_D-WINDB_I-1976086287_TS-SYSAUX_FNO-3_02VH6566 33 通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:08:33 34 通道 ORA_DISK_1: 启动数据文件转换 35 输入数据文件: 文件号=00005 名称=C:APPAPPLEORADATAWINDBDATAFILEO1_MF_UNDOTBS1_HVNR01X2_.DBF 36 已转换的数据文件 = C:DATADATA_D-WINDB_I-1976086287_TS-UNDOTBS1_FNO-5_03VH65M7 37 通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:22 38 通道 ORA_DISK_1: 启动数据文件转换 39 输入数据文件: 文件号=00006 名称=C:APPAPPLEORADATAWINDBDATAFILEO1_MF_USERS_HVNR00T4_.DBF 40 已转换的数据文件 = C:DATADATA_D-WINDB_I-1976086287_TS-USERS_FNO-6_04VH65MT 41 通道 ORA_DISK_1: 数据文件转换完毕, 经过时间: 00:00:01 42 编辑 init.ora 文件 C:DATAINIT_00VH655L_1_0.ORA。此 PFILE 将用于在目标平台上创建数据库据 43 要重新编译所有 PL/SQL 模块, 请在目标平台上运行 utlirp.sql 和 utlrp.sql 44 要更改内部数据库标识符, 请使用 DBNEWID 实用程序 45 完成 conversion at source 于 03-12月-20
文件迁移及处理
编辑参数文件(initorcl2)及创建控制文件脚本(createctl.sql)
db_recovery_file_dest = ‘/u01/app/oracle/fast_recovery_area‘ db_recovery_file_dest_size= 6731857920 audit_file_dest = ‘/u01/app/oracle/admin/orcl2/adump‘ db_name = ‘windb‘ memory_target = 2G undo_tablespace = ‘UNDOTBS1‘ control_files =‘/u01/app/oracle/oradata/orcl2/control01.ctl‘,‘/u01/app/oracle/oradata/orcl2/control02.ctl‘,‘/u01/app/oracle/oradata/orcl2/control03.ctl‘ processes = 300 db_block_size = 8192 compatible = ‘12.1.0.2.0‘ open_cursors = 300
CREATE CONTROLFILE REUSE SET DATABASE "windb" RESETLOGS NOARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 292 LOGFILE GROUP 1 ‘/u01/app/oracle/oradata/orcl2/redo01.log‘ SIZE 500M BLOCKSIZE 512, GROUP 2 ‘/u01/app/oracle/oradata/orcl2/redo02.log‘ SIZE 500M BLOCKSIZE 512, GROUP 3 ‘/u01/app/oracle/oradata/orcl2/redo03.log‘ SIZE 500M BLOCKSIZE 512 DATAFILE ‘/u01/app/oracle/oradata/orcl2/system01.dbf‘, ‘/u01/app/oracle/oradata/orcl2/sysaux01.dbf‘, ‘/u01/app/oracle/oradata/orcl2/undotbs1.dbf‘, ‘/u01/app/oracle/oradata/orcl2/users01.dbf‘ CHARACTER SET ZHS16GBK ;
启动实例到nomount状态
1 SQL> startup nomount 2 ORACLE instance started. 3 4 Total System Global Area 2147483648 bytes 5 Fixed Size 2926472 bytes 6 Variable Size 1358956664 bytes 7 Database Buffers 771751936 bytes 8 Redo Buffers 13848576 bytes
使用创建控制文件脚本创建控制文件,控制文件创建成功后,实例进入到mount状态
1 SQL> @/u01/app/oracle/oradata/orcl2/createctl.sql
开启数据库
1 SQL> alter database open resetlogs
重新编译数据库对象
1 SQL> shutdown immediate 2 SQL> startup upgrade 3 SQL> @@ ?/rdbms/admin/utlirp.sql 4 SQL> shutdown immediate 5 SQL> startup 6 SQL> @@ ?/rdbms/admin/utlrp.sql
数据库更名
1 $ nid TARGET=sys/oracle_4U DBNAME=orcl2 2 3 DBNEWID: Release 12.1.0.2.0 - Production on Thu Dec 10 13:59:42 2020 4 5 Copyright (c) 1982, 2014, Oracle and/or its affiliates. All rights reserved. 6 7 Connected to database WINORCL (DBID=2205384718) 8 9 Connected to server version 12.1.0 10 11 Control Files in database: 12 /u01/app/oracle/oradata/orcl2/control01.ctl 13 /u01/app/oracle/oradata/orcl2/control02.ctl 14 /u01/app/oracle/oradata/orcl2/control03.ctl 15 16 Change database ID and database name WINORCL to ORCL2? (Y/[N]) => y 17 18 Proceeding with operation 19 Changing database ID from 2205384718 to 1039567438 20 Changing database name from WINORCL to ORCL2 21 Control File /u01/app/oracle/oradata/orcl2/control01.ctl - modified 22 Control File /u01/app/oracle/oradata/orcl2/control02.ctl - modified 23 Control File /u01/app/oracle/oradata/orcl2/control03.ctl - modified 24 Datafile /u01/app/oracle/oradata/orcl2/system01.db - dbid changed, wrote new name 25 Datafile /u01/app/oracle/oradata/orcl2/sysaux01.db - dbid changed, wrote new name 26 Datafile /u01/app/oracle/oradata/orcl2/undotbs1.db - dbid changed, wrote new name 27 Datafile /u01/app/oracle/oradata/orcl2/users01.db - dbid changed, wrote new name 28 Datafile /u01/app/oracle/oradata/orcl2/temp01.db - dbid changed, wrote new name 29 Control File /u01/app/oracle/oradata/orcl2/control01.ctl - dbid changed, wrote new name 30 Control File /u01/app/oracle/oradata/orcl2/control02.ctl - dbid changed, wrote new name 31 Control File /u01/app/oracle/oradata/orcl2/control03.ctl - dbid changed, wrote new name 32 Instance shut down 33 34 Database name changed to ORCL2. 35 Modify parameter file and generate a new password file before restarting. 36 Database ID for database ORCL2 changed to 1039567438. 37 All previous backups and archived redo logs for this database are unusable. 38 Database is not aware of previous backups and archived logs in Recovery Area. 39 Database has been shutdown, open database with RESETLOGS option. 40 Succesfully changed database name and ID. 41 DBNEWID - Completed succesfully.
以上是关于ORACLE 12C 跨平台迁移(windows迁移linux)的主要内容,如果未能解决你的问题,请参考以下文章