ORACLE 12C 跨平臺遷移(windows遷移linux)
阿新 • • 發佈:2020-12-10
源資料庫置於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 10Redo 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_FORMAT4 ----------- -------------------------------------------------------------------------------- -------------- 5 1 Solaris[tm] OE (32-bit) Big 6 2 Solaris[tm] OE (64-bit) Big7 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:\APP\APPLE\ORADATA\WINDB\DATAFILE\O1_MF_SYSTEM_HVNQY99M_.DBF 28 已轉換的資料檔案 = C:\DATA\DATA_D-WINDB_I-1976086287_TS-SYSTEM_FNO-1_01VH655M 29 通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:16 30 通道 ORA_DISK_1: 啟動資料檔案轉換 31 輸入資料檔案: 檔案號=00003 名稱=C:\APP\APPLE\ORADATA\WINDB\DATAFILE\O1_MF_SYSAUX_HVNQWVR9_.DBF 32 已轉換的資料檔案 = C:\DATA\DATA_D-WINDB_I-1976086287_TS-SYSAUX_FNO-3_02VH6566 33 通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:08:33 34 通道 ORA_DISK_1: 啟動資料檔案轉換 35 輸入資料檔案: 檔案號=00005 名稱=C:\APP\APPLE\ORADATA\WINDB\DATAFILE\O1_MF_UNDOTBS1_HVNR01X2_.DBF 36 已轉換的資料檔案 = C:\DATA\DATA_D-WINDB_I-1976086287_TS-UNDOTBS1_FNO-5_03VH65M7 37 通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:22 38 通道 ORA_DISK_1: 啟動資料檔案轉換 39 輸入資料檔案: 檔案號=00006 名稱=C:\APP\APPLE\ORADATA\WINDB\DATAFILE\O1_MF_USERS_HVNR00T4_.DBF 40 已轉換的資料檔案 = C:\DATA\DATA_D-WINDB_I-1976086287_TS-USERS_FNO-6_04VH65MT 41 通道 ORA_DISK_1: 資料檔案轉換完畢, 經過時間: 00:00:01 42 編輯 init.ora 檔案 C:\DATA\INIT_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.