Oracle 12C 修改字符集為AL32UTF8研究
有這樣一個問題:PDB字符集能否從ZHS16GBK修改為AL32UTF8?
答案:由於CDB為ZHS16GBK,導致PDB不能修改。
針對這個問題作了一下學習,記錄一下。
1、遷移轉換字符集方法:
12C :只有DMU這個工具
10g/11g :csscan/ csalter /部分 exp/imp
8i/9i :Alter Database Character Set () / 部分 exp/imp
2、AL32UTF8 是一個變寬度的字符集,表示為 1 個字元的程式碼可以是 1,2,3 或 4 個位元組長。
這 與 WE8ISO8859P1 或 WE8MSWIN1252 字符集中 1 字元始終是 1 個位元組有很大的區別。
3、使用 AL32UTF8資料庫會增長,最大的擴充套件將會發生在 CLOB 型別上(或者 XMLtype – 該型別後臺使用 CLOB),
如果源資料 庫是 8 bit 字符集(WE8ISO8859P1,WE8MSWIN1252 等),那麼轉換後的 Clob 列會在磁碟 大小上變成原來的兩倍。
4、CDB不能轉換字符集,只能重新建立CDB。DMU 是PDB轉換字符集的唯一工具;
5、截至2019.9.8,DMU最新版本為19.1,使用過程圖形介面有卡死現象。DMU用於轉換資料的過程是:
將資料庫置於受限模式。
禁用各種作業佇列程式。
刪除或禁用所選索引。
禁用選定的觸發器和約束。
將使用者表和選定資料字典表中的資料轉換為Unicode。
轉換CLOB資料字典中的列。
發表ALTER DATABASE CHARACTER SET宣告。
啟用觸發器和約束; 並重新建立索引和約束。
恢復資料庫例項引數。
6、使用9i 傳統方法alter database character set INTERNAL_USE AL32UTF8; 修改CDB測試成功,但oracle官方不推薦。該方法並未執行兩個步驟:將使用者表和選定資料字典表中的資料轉換為Unicode 和 轉換CLOB資料字典中的列。這兩關鍵步驟只能透過DMU實行。
測試:使用該方法切換CDB字符集從ZHS16GBK到AL32UTF8成功,同時PDB$SEED也自動變化;但按官方說法切換不完整,不贊成這樣做。
7、NLS_NCHAR_CHARACTERSET("國家字符集")定義了 NCHAR,NVARCHAR2 和 NCLOB 列 的編碼並且在 9i 及以上版本已經是 Unicode了(參見 Note 276914.1 The National Character Set in Oracle 9i 10g and 11g)。
8、NLS_CHARACTERSET("字符集")定義了"普通的" CHAR,VARCHAR2,LONG 和 CLOB列編 碼,這些也可以被用於存放 Unicode。在這樣的情況下需要 AL32UTF8 或者 UTF8 NLS_CHARACTERSET 資料庫。
參考文件:
AL32UTF8/UTF8(Unicode)資料庫字符集含義 (文件 ID 1946289.1)
如何選擇或更改資料庫字符集 (NLS_CHARACTERSET) (文件 ID 1525394.1)
The Database Migration Assistant for Unicode (DMU) Tool (文件 ID 1272374.1)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29519108/viewspace-2656416/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 字符集修改Oracle
- 修改Oracle字符集為ZHS16GBKOracle
- 修改Oracle資料庫字符集(zt)Oracle資料庫
- 「Oracle」資料庫字符集編碼修改Oracle資料庫
- MySQL修改表預設字符集行為MySql
- 修改sqlserver字符集SQLServer
- 為Zabbix MySQL修改字符集排序utf8_binMySql排序
- Oracle 12c no-CDB轉換為CDBOracle
- 修改/dev/shm大小造成Oracle 12c叢集啟動故障devOracle
- Oracle修改字符集前如何找出可能出現問題的資料?Oracle
- CentOS7.5修改字符集CentOS
- 教你玩轉Eclipse—修改字符集Eclipse
- 批次修改欄位字符集和表表字符集,sql生成SQL
- Oracle 12c Automatic ReoptimizationOracle
- Oracle 12C安裝Oracle
- Oracle 12c系列(七) | Non-CDB轉換為PDBOracle
- powershell無法修改字符集,非修改登錄檔修改powershell的方法
- Oracle 12C Database File Mapping for Oracle ASM FilesOracleDatabaseAPPASM
- 12C RAC 修改監聽埠
- MySQL檢視和修改字符集的方法MySql
- JAVA java學習(22)——————Eclipse 修改字符集JavaEclipse
- MySQL 檢視與修改預設字符集MySql
- Oracle 12c升級指南Oracle
- 12C Oracle ASM Filter DriverOracleASMFilter
- Oracle 12C Statistics on Column GroupsOracle
- sysbench壓測Oracle 12COracle
- benchmark 壓測Oracle 12cOracle
- Manage SQL Plan Baselines in Oracle 12cSQLOracle
- Oracle 12c CDB&PDBs管理Oracle
- oracle 12c rman備份pdbOracle
- Oracle 12c系列(五)|PDB RefreshOracle
- Oracle 12c系列(六)|Relocate a PDBOracle
- oracle 12c release 2 安裝Oracle
- Oracle 12C 官方文件地圖Oracle地圖
- Oracle 12C新特性-History命令Oracle
- Oracle 12C新特性In-MemoryOracle
- Oracle 12c 兩個新特性Oracle
- Oracle 12c RMAN全攻略Oracle