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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 從過時的 Windows 機器遷移到 LinuxWindowsLinux
- Oracle使用RMAN從Windows遷移資料到LinuxOracleWindowsLinux
- 平安科技從 Oracle 遷移到 UbiSQL 的實踐OracleSQL
- 將 CentOS 8 作業系統遷移到 Oracle LinuxCentOS作業系統OracleLinux
- 怎麼把達夢資料庫例項從Windows遷移到Linux系統資料庫WindowsLinux
- 從單體架構遷移到 CQRS 後,DDD 並不可怕架構
- 從 Nginx 遷移到 Envoy ProxyNginx
- 從 golang flag 遷移到 cmdrGolang
- centos遷移到rocky linux方法CentOSLinux
- oracle 19c pdb遷移Oracle
- gitlab遷移到docker並升級大版本到10.1.1和漢化GitlabDocker
- 使用DynamoShake從dynamodb遷移到mongodbMongoDB
- 從mpvue遷移到uni-appVueAPP
- [譯]從 SQLite 逐步遷移到 RoomSQLiteOOM
- [譯] 從 SQLite 逐步遷移到 RoomSQLiteOOM
- EF Core從TPH遷移到TPT
- 【UP_ORACLE】Oracle 19c之從19.3升級到19.9Oracle
- Gradle指南之從Groovy遷移到KotlinGradleKotlin
- 多租戶:在Oracle12.2中 從Non-CDB遷移到PDB,從PDB遷移另一個CDB中Oracle
- Spring Boot 從1.5遷移到2.0.5 - DZone JavaSpring BootJava
- 從eclipse遷移到idea(1 安裝篇)EclipseIdea
- 案例:微服務從Java/SpringBoot遷移到Golang微服務JavaSpring BootGolang
- 如何從 AWS CodeCommit 遷移到極狐GitLab?MITGitlab
- 從Firebase+Redis遷移到PlanetScale+MySQLRedisMySql
- Oracle 9i升級19C 邏輯遷移詳細方法(一)Oracle
- Oracle 9i升級19C 邏輯遷移詳細方法(二)Oracle
- Oracle:Oracle RAC 11.2.0.4 升級為 19cOracle
- Android技術棧(一)從Activity遷移到FragmentAndroidFragment
- 從eclipse遷移到idea(2 使用習慣篇)EclipseIdea
- 從RabbitMQ平滑遷移到RocketMQ技術實戰MQ
- 記錄從vuecli打包庫遷移到rollup打包Vue
- 從 CRUD 遷移到事件溯源的祕訣 - eventstore事件
- 從 Newtonsoft.Json 遷移到 System.Text.JsonJSON
- Oracle 9i升級19C 遷移關於失效索引的梳理方法Oracle索引
- Oracle 19c adg全庫遷移資料Oracle
- Oracle Linux 7.1 silent install 19cOracleLinux
- Oracle 遷移到 OB 過程中的函式改造案例Oracle函式
- Oracle優化案例-從Exadata遷移到國產一體機一般方法探究(四)Oracle優化