Oracle從Windows 11.2.0.1升級並遷移到Linux 19c
環境介紹
專案 |
源端 |
目標端 |
作業系統 |
Windows Server 2008R2 64bit |
Oracle Linux 7.8 64bit |
資料庫版本 |
Oracle 11.2.0.1 |
Oracle 19c |
儲存系統 |
檔案系統 |
ASM |
位元組序 |
little |
little |
準備測試資料
create tablespace mytbs1 datafile 'C:\oradata\mytbs1.dbf' size 500M autoextend on maxsize 30G;
create tablespace mytbs2 datafile 'C:\oradata\mytbs2.dbf' size 500M autoextend on maxsize 30G;
create user testuser identified by "testuser" default tablespace mytbs1 temporary tablespace temp;
grant unlimited tablespace to testuser;
grant resource, connect to testuser;
create table testuser.tb1(id number, name varchar2(100)) tablespace mytbs1;
alter table testuser.tb1 add constraint pk_tb1 primary key(id) using index TABLESPACE mytbs2;
insert into testuser.tb1 select object_id, object_name from all_objects;
預檢查
檢查字符集:
SELECT * FROM NLS_DATABASE_PARAMETERS T WHERE T.PARAMETER LIKE '%CHARACTERSET';
檢查DBTIMEZONE
SELECT version FROM v$timezone_file;
在這次測試中,windows主機的version為11,linux主機為32
因為這次測試的時候,目標端是19c,所以這個沒有關係。Timezone不同的問題可能導致匯入時出現ORA-39322錯誤,在11.2.0.4版本中已經解決
檢查表空間是否自包含
EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('mytbs1', TRUE);
EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK('mytbs2', TRUE);
SELECT * FROM TRANSPORT_SET_VIOLATIONS;
這個例子當中,我們需要處理兩個表空間。
源端匯出表空間後設資料
將源端表空間設定為只讀:
alter tablespace mytbs1 read only;
alter tablespace mytbs2 read only;
建立目錄物件
create directory mydump_dir as 'C:\dumpfile';
匯出後設資料
expdp \"/ as sysdba\" dumpfile=tts_test.dmp directory=mydump_dir transport_tablespaces=mytbs1,mytbs2 transport_full_check=y logfile=tts_test.dmp.log
將資料檔案從源端拷貝至目標端
目標端處理
建立使用者
create user testuser identified by "testuser" default tablespace users temporary tablespace temp;
grant unlimited tablespace to testuser;
grant resource, connect to testuser;
不預先建立好使用者的話,會出錯
拷貝資料檔案至ASM
在ASMCMD下執行:
cp /tmp/MYTBS1.DBF +data/orcl/datafile/MYTBS1.DBF
cp /tmp/MYTBS2.DBF +data/orcl/datafile/MYTBS2.DBF
匯入
impdp \' sys/sys as sysdba\' directory=mydump_dir dumpfile=TEST_TTS.DMP transport_datafiles=+data/orcl/datafile/MYTBS1.DBF,+data/orcl/datafile/MYTBS2.DBF logfile=impdp_tts.log
注意,windows下使用expdp匯出時,檔名是大寫, linux下面大小寫是敏感的
匯入完成:
修改表空間
alter tablespace mytbs1 read write;
alter tablespace mytbs2 read write;
修改使用者預設表空間
alter user testuser default tablespace mytbs1;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8520577/viewspace-2885057/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- ORACLE11G從WINDOWS到LINUX跨平臺遷移並升級OracleWindowsLinux
- oracle for windows 11.2.0.1升級到11.2.0.4OracleWindows
- oracle版本升級:從11.2.0.1到11.2.0.3Oracle
- oracle從10.2.0.4升級到11.2.0.1的三種升級方法Oracle
- 靜默升級oracle 11g (從11.2.0.1升級到11.2.0.4)Oracle
- 從過時的 Windows 機器遷移到 LinuxWindowsLinux
- 利用 Kylix3 從 Windows 遷移到 Linux(轉)WindowsLinux
- Oracle 11.2.0.1 升級到11.2.0.3Oracle
- ORACLE 11.2.0.1升級到11.2.0.3Oracle
- Oracle 11.2.0.1升級到11.2.0.3Oracle
- gitlab遷移到docker並升級大版本到10.1.1和漢化GitlabDocker
- 將表 從mysql 遷移到oracleMySqlOracle
- ORACLE11.2.0.1升級到11.2.0.3Oracle
- Oracle 11.2.0.1升級到11.2.0.4.171017Oracle
- 【UP_ORACLE】Oracle 19c之從19.3升級到19.9Oracle
- 如果需要從Oracle遷移到MS SQLServer (2)OracleSQLServer
- 如果需要從Oracle遷移到MS SQLServer (1)OracleSQLServer
- Oracle 9i升級19C 邏輯遷移詳細方法(一)Oracle
- Oracle 9i升級19C 邏輯遷移詳細方法(二)Oracle
- Oracle:Oracle RAC 11.2.0.4 升級為 19cOracle
- 【Oracle升級】Oracle指令碼升級11g to 19c non-CDBOracle指令碼
- 從Perforce遷移到GitGit
- Oracle 9i升級19C 遷移關於失效索引的梳理方法Oracle索引
- Oracle 18C升級到19COracle
- 將應用程式從Sql Server遷移到OracleSQLServerOracle
- windows 下oracle從10.2.0.1升級到10.2.0.4WindowsOracle
- Oracle使用RMAN從Windows遷移資料到LinuxOracleWindowsLinux
- 從單體架構遷移到 CQRS 後,DDD 並不可怕架構
- 圖形化升級單機oracle 11.2.0.1 到 11.2.0.4Oracle
- 從 golang flag 遷移到 cmdrGolang
- 從 Nginx 遷移到 Envoy ProxyNginx
- 平安科技從 Oracle 遷移到 UbiSQL 的實踐OracleSQL
- Oracle11g使用rman從rac遷移到racOracle
- 單機升級11.2.0.1到12.1.0.2的實戰_11.2.0.1不能直接升級到到12.1.0.2
- 使用 .NET 升級助手將.NET Framework應用遷移到.NET 5Framework
- 怎麼把達夢資料庫例項從Windows遷移到Linux系統資料庫WindowsLinux
- 【資料庫升級】Oracle指令碼升級12c CDB to 19c CDB資料庫Oracle指令碼
- 從Oracle遷移到MySQL的各種坑及自救方案OracleMySql