跨平臺遷移oracle資料庫指南
Oracle 10g開始提供了強大的資料庫跨平臺遷移功能,可以對不同體系架構,不同作業系統間的oracle資料庫進行遷移!但endianess必須要相同,11g開始不同的endianess之間也可以進行相互遷移!下面演示下將windows 32位上的oracle資料庫遷移到rhel6 64位上。
一:準備windows環境
這裡採取32位winxp系統,如果之前安裝過oracle伺服器或者客戶端需要解除安裝乾淨(清登錄檔),否則安裝會報錯,oracle版本為10.2.0.1
- SQL> select * from v$transportable_platform;
- PLATF PLATFORM_NAME ENDIAN_FORMAT
- ----- ---------------------------------------- --------------
- 1 Solaris[tm] OE (32-bit) Big
- 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
- 3 HP-UX (64-bit) Big
- 5 HP Tru64 UNIX Little
- 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
- 9 IBM zSeries Based Linux Big
- 13 Linux 64-bit for AMD Little
- 16 Apple Mac OS Big
- 12 Microsoft Windows 64-bit for AMD Little
- 17 Solaris Operating System (x86) Little
- 18 IBM Power Based Linux Big
- 17 rows selected
1.1 新建一個自定義的表空間,並在表空間上建表,插資料
- SQL> create tablespace win_migrate
- 2 datafile 'E:\oracle\product\10.2.0\oradata\winorcl\win_migrate01.dbf'
- 3 size 10M;
- 表空間已建立。
- SQL> create table t_migrate (a number) tablespace win_migrate;
- 表已建立。
- SQL> insert into t_migrate values (1);
- 已建立 1 行。
- SQL> commit;
- 提交完成
1.2 在源伺服器上將資料庫變成自讀模式並使用rman轉換副本
- SQL> shutdown immediate
- 資料庫已經關閉。
- 已經解除安裝資料庫。
- ORACLE 例程已經關閉。
- SQL> startup mount
- ORACLE 例程已經啟動。
- Total System Global Area 612368384 bytes
- Fixed Size 1292036 bytes
- Variable Size 188745980 bytes
- Database Buffers 415236096 bytes
- Redo Buffers 7094272 bytes
- 資料庫裝載完畢。
- SQL> alter database open read only;
- 資料庫已更改。
- C:\Users\Naruto>rman target /
- 恢復管理器: Release 10.2.0.3.0 - Production on 星期日 7月 17 19:57:49 2011
- Copyright (c) 1982, 2005, Oracle. All rights reserved.
- 連線到目標資料庫: WINORCL (DBID=1904834971)
- RMAN> convert database to platform 'Linux 64-bit for AMD' format 'e:\data\%U';
- 啟動 convert 於 17-7月 -11
- 使用目標資料庫控制檔案替代恢復目錄
- 分配的通道: ORA_DISK_1
- 通道 ORA_DISK_1: sid=147 devtype=DISK
- 在資料庫中找到外部表 SH.SALES_TRANSACTIONS_EXT
- 在資料庫中找到目錄 SYS.SUBDIR
- 在資料庫中找到目錄 SYS.XMLDIR
- 在資料庫中找到目錄 SYS.MEDIA_DIR
- 在資料庫中找到目錄 SYS.LOG_FILE_DIR
- 在資料庫中找到目錄 SYS.DATA_FILE_DIR
- 在資料庫中找到目錄 SYS.WORK_DIR
- 在資料庫中找到目錄 SYS.ADMIN_DIR
- 在資料庫中找到目錄 SYS.DATA_PUMP_DIR
- 在資料庫中找到 BFILE PM.PRINT_MEDIA
- 在口令檔案中找到使用者 SYS (具有 SYSDBA and SYSOPER 許可權)
- 通道 ORA_DISK_1: 啟動資料檔案轉換
- 輸入資料檔案 fno=00001 name=E:\ORACLE\PRODUCT\10.2.0\ORADATA\WINORCL\SYSTEM01.DBF
- ——————————其他輸出省略————————————
二:將e:\data目錄下的所有檔案和控制檔案的跟蹤指令碼複製到linux伺服器上,可以使用winscp和ftp等工具,這裡直接採用samba共享
- SQL> select p.spid from v$session s ,v$process p
- 2 where p.addr=s.paddr
- 3 and s.username='SYS' and s.program like '%rman%';
- SPID
- ------------
- 476
- 3488
- 4056
三.在linux伺服器上準備相應的目錄,並將上傳的檔案移動到相關的目錄,修改控制檔案指令碼和初始化引數檔案
- [root@rhel6 ~]# mount -t cifs -o username=yang //192.168.50.195/data /mnt
- Password:
- [root@rhel6 ~]# ls /mnt
- DATA_D-WINORCL_I-1904915064_TS-EXAMPLE_FNO-5_03MHMQUN DATA_D-WINORCL_I-1904915064_TS-UNDOTBS1_FNO-2_04MHMQUU INIT_00MHMQTE_1_0.ORA
- DATA_D-WINORCL_I-1904915064_TS-SYSAUX_FNO-3_02MHMQU8 DATA_D-WINORCL_I-1904915064_TS-USERS_FNO-4_06MHMQV3 winorcl_ora_4056.trc
- DATA_D-WINORCL_I-1904915064_TS-SYSTEM_FNO-1_01MHMQTF DATA_D-WINORCL_I-1904915064_TS-WIN_MIGRATE_FNO-6_05MHMQV2
- [oracle@rhel6 ~]$ mkdir -p /u01/app/admin/winorcl/{adump,bdump,cdump,udump}
- [oracle@rhel6 ~]$ mkdir -p /u01/app/oradata/winorcl
- [oracle@rhel6 ~]$ mkdir -p /u01/app/flash_recovery_area/WINORCL
- [oracle@rhel6 ~]$ cp /mnt/DATA_D-WINORCL_I-1904915064_TS-* /u01/app/oradata/winorcl/
- [oracle@rhel6 ~]$ cp /mnt/INIT_00MHMQTE_1_0.ORA $ORACLE_HOME/dbs/initwinorcl.ora
- [oracle@rhel6 ~]$ cp /mnt/winorcl_ora_4056.trc ~/winorcl.sql
- [oracle@rhel6 ~]$ cd /u01/app/oradata/winorcl
- [oracle@rhel6 winorcl]$ mv DATA_D-WINORCL_I-1904915064_TS-EXAMPLE_FNO-5_03MHMQUN example01.dbf
- [oracle@rhel6 winorcl]$ mv DATA_D-WINORCL_I-1904915064_TS-SYSAUX_FNO-3_02MHMQU8 sysaux01.dbf
- [oracle@rhel6 winorcl]$ mv DATA_D-WINORCL_I-1904915064_TS-SYSTEM_FNO-1_01MHMQTF system01.dbf
- [oracle@rhel6 winorcl]$ mv DATA_D-WINORCL_I-1904915064_TS-UNDOTBS1_FNO-2_04MHMQUU undotbs1.dbf
- [oracle@rhel6 winorcl]$ mv DATA_D-WINORCL_I-1904915064_TS-USERS_FNO-4_06MHMQV3 users01.dbf
- [oracle@rhel6 winorcl]$ mv DATA_D-WINORCL_I-1904915064_TS-WIN_MIGRATE_FNO-6_05MHMQV2 win_migrate01.dbf
- [oracle@rhel6 ~]$ cat winorcl.sql
- CREATE CONTROLFILE REUSE SET DATABASE "winorcl" RESETLOGS ARCHIVELOG
- MAXLOGFILES 16
- MAXLOGMEMBERS 3
- MAXDATAFILES 100
- MAXINSTANCES 8
- MAXLOGHISTORY 292
- LOGFILE
- GROUP 1 '/u01/app/oradata/winorcl/redo01.dbf' SIZE 50M,
- GROUP 2 '/u01/app/oradata/winorcl/redo02.dbf' SIZE 50M,
- GROUP 3 '/u01/app/oradata/winorcl/redo03.dbf' SIZE 50M
- DATAFILE
- '/u01/app/oradata/winorcl/system01.dbf',
- '/u01/app/oradata/winorcl/undotbs1.dbf',
- '/u01/app/oradata/winorcl/sysaux01.dbf',
- '/u01/app/oradata/winorcl/users01.dbf',
- '/u01/app/oradata/winorcl/example01.dbf',
- '/u01/app/oradata/winorcl/win_migrate01.dbf'
- CHARACTER SET ZHS16GBK
- ;
- [oracle@rhel6 dbs]$ grep -v '^$' initwinorcl.ora
- # Please change the values of the following parameters:
- control_files = "/u01/app/oradata/winorcl/control01.dbf","/u01/app/oradata/winorcl/control02.dbf"
- db_recovery_file_dest = "/u01/app/flash_recovery_area"
- db_recovery_file_dest_size= 21474836480
- audit_file_dest = "/u01/app/admin/winorcl/adump"
- background_dump_dest = "/u01/app/admin/winorcl/bdump"
- user_dump_dest = "/u01/app/admin/winorcl/udump"
- core_dump_dest = "/u01/app/admin/winorcl/cdump"
- db_name = "winorcl"
- # Please review the values of the following parameters:
- __shared_pool_size = 167772160
- __large_pool_size = 4194304
- __java_pool_size = 16777216
- __streams_pool_size = 0
- __db_cache_size = 415236096
- remote_login_passwordfile= "EXCLUSIVE"
- db_domain = "766.com"
- dispatchers = "(PROTOCOL=TCP) (SERVICE=winorclXDB)"
- # The values of the following parameters are from source database:
- processes = 150
- nls_language = "SIMPLIFIED CHINESE"
- nls_territory = "CHINA"
- sga_target = 612368384
- db_block_size = 8192
- compatible = "10.2.0.1.0"
- log_archive_format = "ARC%S_%R.%T"
- db_file_multiblock_read_count= 16
- undo_management = "AUTO"
- undo_tablespace = "UNDOTBS1"
- job_queue_processes = 10
- open_cursors = 300
- pga_aggregate_target = 203423744
四:開始遷移
- [oracle@rhel6 ~]$ export ORACLE_SID=winorcl
- [oracle@rhel6 ~]$ sqlplus /nolog
- SQL*Plus: Release 10.2.0.1.0 - Production on Sun Jul 17 20:25:10 2011
- Copyright (c) 1982, 2005, Oracle. All rights reserved.
- SQL> conn /as sysdba
- Connected to an idle instance.
- SQL> create spfile from pfile;
- File created.
- SQL> startup nomount
- ORACLE instance started.
- Total System Global Area 612368384 bytes
- Fixed Size 2022696 bytes
- Variable Size 188744408 bytes
- Database Buffers 415236096 bytes
- Redo Buffers 6365184 bytes
- SQL> @/home/oracle/winorcl.sql;
- Control file created.
- SQL> alter database open resetlogs;
- Database altered.
- SQL> select dbid,name from v$database;
- DBID NAME
- ---------- ---------------------------
- 1904915064 WINORCL
- SQL> select * from t_migrate;
- A
- ----------
- 1
- SQL> select tablespace_name from dba_tablespaces;
- TABLESPACE_NAME
- --------------------------------------------------------------------------------
- SYSTEM
- UNDOTBS1
- SYSAUX
- TEMP
- USERS
- EXAMPLE
- WIN_MIGRATE
- 7 rows selected.
- SQL> alter tablespace temp add tempfile '/u01/app/oradata/winorcl/temp01.dbf' size 50M;
- Tablespace altered.
五:收尾工作
- SQL> shutdown immediate
- Database closed.
- Database dismounted.
- ORACLE instance shut down.
- SQL> startup upgrade
- ORACLE instance started.
- Total System Global Area 268435456 bytes
- Fixed Size 2020056 bytes
- Variable Size 83889448 bytes
- Database Buffers 176160768 bytes
- Redo Buffers 6365184 bytes
- Database mounted.
- Database opened.
- SQL> @?/rdbms/admin/utlirp.sql;
- SQL> spool /tmp/upgrade.log
- SQL> @?/rdbms/admin/utlrp.sql;
- SQL> startup force
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28673746/viewspace-757949/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 利用RMAN跨平臺遷移資料庫資料庫
- 大型資料庫跨平臺遷移總結資料庫
- 利用Oracle Data Guard完成跨平臺的資料庫遷移案例Oracle資料庫
- ORACLE 跨平臺遷移方法Oracle
- 資料庫中跨平臺遷移方法介紹資料庫
- RMAN同位元組序跨平臺跨版本遷移資料庫資料庫
- 跨 OS 平臺遷移 Oracle DBOracle
- 使用RMAN完成跨平臺資料遷移
- rman進行跨平臺資料遷移
- RMAN同位元組序跨平臺跨版本遷移資料庫(一)資料庫
- RMAN同位元組序跨平臺跨版本遷移資料庫(二)資料庫
- zt 跨平臺 跨版本 大規模資料遷移
- 資料庫跨平臺遷移方法彙總 (for EBS, Oracle10.2, 11.2)資料庫Oracle
- 應用RMAN Transportable Database進行資料庫跨平臺遷移Database資料庫
- Oracle跨平臺遷移的簡單總結Oracle
- 用傳輸表空間跨平臺遷移資料
- 一個跨平臺資料遷移的方案優化優化
- 跨平臺遷移支援檢視
- 同位元組序跨平臺資料庫遷移和升級的測試資料庫
- ORACLE資料庫遷移Oracle資料庫
- 利用RMAN Convert database特性進行跨平臺遷移資料Database
- 資料庫-oracle-資料庫遷移資料庫Oracle
- hp-ux利用rman將資料庫跨平臺遷移到aix平臺上UX資料庫AI
- Oracle資料庫資料遷移流程Oracle資料庫
- 【資料遷移】XTTS跨平臺傳輸表空間v4TTS
- oracle 遷移資料庫到asmOracle資料庫ASM
- rman將linux平臺資料庫遷移到window平臺資料庫Linux資料庫
- 使用 Velero 跨雲平臺遷移叢集資源到 TKE
- datapump跨平臺升級遷移的總結
- 動手為王 | Oracle 資料庫跨版本升級遷移實踐Oracle資料庫
- Oracle資料庫(資料泵)遷移方案(上)Oracle資料庫
- Oracle資料庫(資料泵)遷移方案(下)Oracle資料庫
- 【資料遷移】XTTS跨平臺傳輸表空間(1.傳統方式)TTS
- Sentry 開發者貢獻指南 - 資料庫遷移資料庫
- 無外網Oracle資料庫遷移Oracle資料庫
- Oracle資料庫(DataGuard)遷移方案(上)Oracle資料庫
- Oracle資料庫(DataGuard)遷移方案(中)Oracle資料庫
- Oracle資料庫(DataGuard)遷移方案(下)Oracle資料庫