国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

遷移數據庫時,什么才是真正的Oracle環境保持一致

IT那活兒 / 598人閱讀
遷移數據庫時,什么才是真正的Oracle環境保持一致

點擊上方“IT那活兒”公眾號,關注后了解更多內容,不管IT什么活兒,干就完了!??!

故障背景

最近在客戶現場打一個CDB環境的oracle PSU補丁時,到了最后一步要執行datapatch -verbose時,遇到了如下報錯:
Error reading descriptor from registry: Couldnt open encmap gbk.enc:
No such file or directory
at /u01/app/oracle/product/19.0.0/dbhome_1/perl/lib/site_perl/5.28.1/x86_64-linux-thread-multi/XML/Parser.pm line 187.
XML::Simple called at /u01/app/oracle/product/19.0.0/dbhome_1/sqlpatch/sqlpatch.pm line 7780.
最終排查出來的原因是這個CDB庫里的一個pdb是從其它庫克隆過來的,雖然克隆前版本是一致的,但補丁升級路徑不一致。導致在執行最后一步datapatch -verbose時執行SQL時找不到相關補丁。以前的11G版本的Oracle是沒有這個問題的。解決方案也很簡單,從源CDB的db ORACLE_HOME/sqlpatch目錄下拷貝一份與目標CDB不一樣的補丁號文件夾至目標CDB的每個節點相同目錄下。

那我們今天就來探討一下在做數據庫遷移、搭建ADG時什么才是真正的Oracle源環境與目標環境保持一致。

源環境與目標環境保持一致

1. 檢查是否都啟用LOCAL UNDO

查看數據庫是否開啟 local undo ,如果 PROPERTY_VALUE 為 true 表示已經開啟。只推薦源、目標庫都使用LOCAL UNDO,在遷移PDB前都轉換為LOCAL UNDO后再進行遷移。
alter session set container=PDB_NAME;
col PROPERTY_NAME for a25;
col PROPERTY_VALUE for a25;
select PROPERTY_NAME,PROPERTY_VALUE from database_properties where property_name=LOCAL_UNDO_ENABLED;

2. 檢查源、目標CDB的組件是否一致

源CDB的組件數量與目標CDB的組件一致或少,特別是要注意OJVM組件與RAC組件。
OJVM組件需要源、目標CDB都安裝或都不安裝。
RAC組件由RAC遷移到單機時,在pdb執行如下命令關閉RAC組件。
exec dbms_registry.OPTION_OFF(RAC);
column comp_id format a20
column comp_name format a30
column version format a20
column status format a15
set pagesize 500
set linesize 150
SELECT COMP_ID,SUBSTR(comp_name, 1, 30) comp_name, SUBSTR(version, 1, 20) version, status
 FROM dba_registry
ORDER BY comp_name;

set linesize 170
set pagesize 5000
col con_id for 99
col con_name for a10
col comp_id for a15
col comp_name for a40
col status for a10
col version for a15;
SELECT a.con_id,
      decode(a.con_id, 1, cdb$root, b.name) AS con_name,
      comp_id,
      comp_name,
      status,
      version
 FROM cdb_registry a, v$pdbs b
WHERE a.con_id = b.con_id(+)
ORDER BY 1, 3;

3. 補丁更新的當前版本與補丁更新路徑是否一致

1)請盡量保持PDB遷移的源、目標CDB的補丁版本一致。
2)如遇到補丁更新的當前版本一致,但補丁更新的路徑不一致,比如:當前源、目標CDB的當前補丁版本均為19.10,但源CDB的補丁升級路徑為19.3-->19.4-->19.10。而目標CDB的補丁升級路徑為19.3-->19.10,此時源、目標CDB的補丁更新路徑為不一致。
當然只是PDB遷移,此時補丁更新的路徑不一致并不影響。補丁更新的路徑不一致影響的是目標CDB再次進行補丁更新的datapatch -verbose。此時會遇到如下報錯:
Error reading descriptor from registry: Couldnt open encmap gbk.enc:
No such file or directory
at /u01/app/oracle/product/19.0.0/dbhome_1/perl/lib/site_perl/5.28.1/x86_64-linux-thread-multi/XML/Parser.pm line 187.
XML::Simple called at /u01/app/oracle/product/19.0.0/dbhome_1/sqlpatch/sqlpatch.pm line 7780.
解決方案:從源CDB的db ORACLE_HOME/sqlpatch目錄下拷貝一份與目標CDB不一樣的補丁號文件夾至目標CDB的每個節點相同目錄下。
set line 200
col action_time for a40
col status for a20
col description for a100
select patch_id,patch_type,action,status,action_time,description from dba_registry_sqlpatch;

4. oracle軟件版本是否一致

目標CDB的軟件版本要比源CDB的軟件高或一致。

5. 源、目標CDB所在的操作系統endianness是否一致

源、目標CDB:
set line 300
set pagesize 100
COL PLATFORM_NAME FOR a40
COL ENDIAN_FORMAT for a14
SELECT PLATFORM_ID, PLATFORM_NAME, ENDIAN_FORMAT
 FROM V$TRANSPORTABLE_PLATFORM
 3    ORDER BY PLATFORM_ID;

PLATFORM_ID PLATFORM_NAME ENDIAN_FORMAT

----------- ---------------------------------------- --------------

 1 Solaris[tm] OE (32-bit) Big
 2 Solaris[tm] OE (64-bit) Big
 3 HP-UX (64-bit) Big
 4 HP-UX IA (64-bit) Big
 5 HP Tru64 UNIX Little
 6 AIX-Based Systems (64-bit) Big
 7 Microsoft Windows IA (32-bit) Little
 8 Microsoft Windows IA (64-bit) Little
 9 IBM zSeries Based Linux Big
10 Linux IA (32-bit) Little
11 Linux IA (64-bit) Little
12 Microsoft Windows x86 64-bit Little
13 Linux x86 64-bit Little
15 HP Open VMS Little
16 Apple Mac OS Big
17 Solaris Operating System (x86) Little
18 IBM Power Based Linux Big
19 HP IA Open VMS Little
20 Solaris Operating System (x86-64) Little
21 Apple Mac OS (x86-64) Little
22 Linux OS (S64) Big

21 rows selected.

6. 源、目標CDB庫的數據庫字符集、國家字符集是否一致

特別要注意NLS_NCHAR_CHARACTERSETNLS_CHARACTERSET這兩個參數。

  • NLS_CHARACTERSET這個參數,目標CDB的值應該與源CDB一致,或是源CDB的超集。
  • NLS_NCHAR_CHARACTERSET這個參數,目標CDB的值應該與源CDB保持一致。
set linesize 300 pagesize 100
col parameter for a40
col value for a50
select * from nls_database_parameters;

7. 源、目標CDB的db_block_size 參數是否一致

1)克隆PDB時,注意檢查源、目標CDB庫的db_block_size是否一致。
2)注意檢查源PDB的表空間是否有與db_block_size不一致的情況。
解決方案:克隆時設置涉及block size相關的參數。比如:
alter system set DB_16k_CACHE_SIZE=100M scope=both;

8. 其它方面

SGA_TARGET
CPU_COUNT
PGA_AGGREGATE_TARGET
PGA_AGGREGATE_LIMIT
SESSIONS
JOB_QUEUE_PROCESSES
還有操作系統的內核參數和資源限制等等也要保持一致。


本文作者:聶文峰(上海新炬王翦團隊)

本文來源:“IT那活兒”公眾號

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129190.html

相關文章

  • 凌晨1點突發致命生產事故,人工多線程來破局!

    摘要:留下幾個人監控數據,其他人就散了,等遷移完成后再進行后續工作。突發事故凌晨的夜晚比較困,當我點起第三根煙的時候,負責遷移的這位程序員,急匆匆的跑過來找我了。這個事可大了如果在上午之前不搞定這個事情,那就完全是重大事故了。 有一個讀者問我:你認為一個程序員具備什么樣的能力,才算得上是厲害的程序員? 我答:擁有解決問題的能力的程序員。 這個回答貌似有點抽象,不要緊看下面的文章你會慢慢有所了...

    dendoink 評論0 收藏0
  • 什么是最好云策略?

    摘要:在公司的調查中,大約的組織如今使用私有云和公共云來承擔相同的工作量,另有的受訪者表示他們使用一種類型的云計算進行生產,而采用另一種類型進行測試開發備份或分析,這也被認為是一種混合云策略。混合云的定義根據企業的要求而有所不同,但它總是涉及使用私有云和公共云,而企業需要一種策略。如果讓一些IT領導人定義混合云是什么,他們的答案可能會多樣化,并將會在混合云定義中描述公共云和企業數據中心中混合應用程...

    big_cat 評論0 收藏0
  • 跨云遷移過程中數據同步及一致性校驗實踐(一)

    摘要:通過對一些客戶的跨云遷移過程進行總結,發現普遍存在的挑戰有三點數據完整性和一致性挑戰。簡而言之,跨云遷移過程中的數據一致性主要就集中在存量數據的遷移如何保證一致。前言隨著互聯網業務發展對容災以及對訪問加速、多供應商成本控制等需求的產生,互聯網公司的多云部署和跨云遷移逐漸成為剛需,而在此過程中,最困擾運維和研發人員的就是數據的遷移和同步。俗語說 上屋搬下屋,搬灑一籮谷 ,在業務的遷移過程中一旦...

    Tecode 評論0 收藏0
  • Oracle APEX 系列文章6:Oracle APEX 到底適不適合企業環境?

    摘要:很多人對是否真的適合企業環境還心存顧慮,所以我覺得有必要做個解釋。架構或技術本身并沒有絕對的好壞之分,只有適不適合。沒有一個企業或應用系統可以完美地解決所有的業務需要。 showImg(https://segmentfault.com/img/remote/1460000014841889?w=2269&h=1500); 本文是鋼哥的Oracle APEX系列文章中的第六篇,完整 Or...

    Cruise_Chan 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<