資料庫升級-物理重新整理資料字典
說明
環境說明
資料庫為 10gRAC 環境 (10.2.0.5.4) ,作業系統為 6100-07
目標升級為 11gRAC 環境 (11.2.0.4) ,作業系統為 6100-07
例項名稱: crmdb1 crmdb2
新需求:
1. 需要新分配一個 IP (作為 scan IP 用)
2. 需要劃三塊共享磁碟,每塊 1G 大小(用作 ocrvote 磁碟組)
IP 規劃:
目前 IP 規劃:
IP |
Alias |
備註 |
|
crmdb01 |
一節點 public IP |
|
crmdb02 |
二節點 public IP |
|
crmdb01-vip |
一節點 VIP |
|
crmdb02-vip |
二節點 VIP |
|
crmdb01-priv |
一節點心跳 IP |
|
crmdb02-priv |
二節點心跳 IP |
11g 後新增 SCAN-IP :
IP |
Alias |
備註 |
|
crmdb01 |
一節點 public IP |
|
crmdb02 |
二節點 public IP |
|
crmdb01-vip |
一節點 VIP |
|
crmdb02-vip |
二節點 VIP |
|
crmdb01-priv |
一節點心跳 IP |
|
crmdb02-priv |
二節點心跳 IP |
|
crmdb-scan |
SCAN-IP(IP 待定 ) |
升級流程
整體升級流程 :
( 11 月 18 號)
步驟 |
流程計劃 |
時間估算 |
1 |
CRM 10gRAC 環境開始備份,上傳安裝介質 |
1 個小時(不停機做) |
2 |
檢查 OS 資源 雙節點檢查 建立 grid 使用者 |
30 分鐘 (不停機做) |
3 |
停止 CRM 雙節點資源 |
10 分鐘 (業務停止) |
4 |
刪除 10g RAC 啟動檔案 |
5 分鐘 (業務停止) |
5 |
安裝 11g R2 Grid |
2 小時 (業務停止) |
6 |
新增 10g 軟體至 11g 叢集中管理 |
10 分鐘 (業務停止) |
7 |
正常業務測試 |
30 分鐘 (業務停止) |
11 月 21 號
步驟 |
流程計劃 |
時間估算 |
1 |
安裝 11g rdbms 軟體( 11.2.0.4 ) |
線上操作 (業務不停止) |
2 |
升級前檢查環境 utlu112i.sql 指令碼 |
線上操作 (業務不停止) |
3 |
正式升級(刷資料字典,刷 RAC 元件) |
80 分鐘 (業務停止) |
4 |
編譯無效物件 |
20 分鐘 (業務停止) |
5 |
刪除原先 10g rdbms 服務,重新註冊 11g 環境的服務 |
20 分鐘 (業務停止) |
7 |
正常業務測試 |
|
總結時間:
總計花費 2 天時間
業務停止時間 5 小時(資料庫層面)
18 號詳細操作流程
前期準備
前期準備包括備份及介質上傳等:
備份包括備份10g RAC啟動項檔案等:
cp /etc/init.cssd /oracle/bak/.
cp /etc/init.crs /oracle/bak/.
cp /etc/init.crsd /oracle/bak/.
cp /etc/init.evmd /oracle/bak/.
cp /etc/inittab.crs /oracle/bak/.
cp /etc/inittab /oracle/bak/.
tar -cvf /oracle/bak/rc2.d.tar /etc/rc.d/rc2.d
tar -cvf /oracle/bak/oracle.tar /etc/oracle
將 $ORACLE_BASE/ 下的 orainventory 也備份並刪除
上傳 11.2.0.4 grid 及 rdbms 介質
更新檢查 OS 環境
no -a|egrep "tcp_recvspace| tcp_sendspace | udp_recvspace | rfc1323| sb_max | ipqmaxlen |udp_sendspace"
透過以上值確認,對於不正確的進行修改:
no -p -o tcp_recvspace=65536
no -p -o tcp_sendspace=65536
no -p -o udp_sendspace=135168
no -p -o udp_recvspace=1351680
no -p -o rfc1323=1
no -p -o sb_max=4194304
no -r -o ipqmaxlen=512
建立grid使用者並修改oracle使用者引數
mkuser -a id=1001 pgrp=oinstall groups=oinstall,dba fsize=-1 cpu=-1 data=-1 core=-1 rss=-1 stack=-1 stack_hard=-1 capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE grid
chuser pgrp=oinstall groups=oinstall,dba fsize=-1 cpu=-1 data=-1 rss=-1 stack=-1 stack_hard=-1 capabilities=CAP_NUMA_ATTACH,CAP_BYPASS_RAC_VMM,CAP_PROPAGATE oracle
ssh 關係設定(設定grid 檢查oracle)
#su – grid
$mkdir .ssh
$cd .ssh
$ssh-keygen –t rsa // 一路回車
$ssh-keygen –t dsa
$cat id_dsa.pub>authorized_keys
$cat id_rsa.pub>>authorized_keys
去除時間同步:
使用oracle時間同步服務
mv /etc/ntp.conf /etc/ntp.conf.bak
檢查時區:
$ echo $TZ
$date
確保時區一致,兩臺主機的時間相差不超過 1 分鐘
停止 CRM 雙節點資源
雙節點停止DBRA資源
雙節點停止rdbms nodeapps asm crs資源
srvctl stop nodeapps –n crmdb01
srvctl stop nodeapps –n crmdb02
srvctl stop asm –n crmdb01
srvctl stop asm –n crmdb02
srvctl stop database –d crmdb
雙節點root使用者關閉crs
crsctl stop crs
刪除 10g RAC 啟動檔案
刪除啟動配置檔案:
rm /etc/init.cssd
rm /etc/init.crs
rm /etc/init.crsd
rm /etc/init.evmd
rm /etc/rc.d/rc2.d/K96init.crs
rm /etc/rc.d/rc2.d/S96init.crs
rm -Rf /etc/oracle/scls_scr
rm -Rf /etc/oracle/oprocd
rm /etc/inittab.crs
cp /etc/inittab.orig /etc/inittab
刪除 /var/tmp/.oracle/ 下面檔案
刪除 /tmp/.oracle/ 下面的檔案
rm –rf /var/tmp/.oracle/*
rm –rf /tmp/.oracle/*
重啟雙節點主機:
shutdown –Fr
重啟後檢查是否還存在oracle程式
安裝 11.2.0.4 grid 軟體
解壓介質: 11.2.0.4 grid
雙節點執行 grid 下面的 rootpre .sh
雙節點環境檢查
./runcluvfy.sh stage -pre crsinst -n crmdb01,crmdb02 -verbose
開始安裝:
su – grid
./runInstaller
安裝截圖略
住 css
11g grid 使用者下 root 使用者:
# crsctl pin css -n crmdb01 crmdb02
CRS-4664: Node crmdb01 successfully pinned.
CRS-4664: Node crmdb02 successfully pinned.
新增 10g 軟體至 11g 叢集中管理
1. 修改磁碟的許可權,建議保持磁碟屬主暫時不修改,確保許可權為 660
2. 雙節點修改 asm_diskstring 新增所有資料磁碟路徑
3. 雙節點 mount 磁碟組
由於在11g 的grid軟體下管理10g的rdbms
所以我們在新增database 和instace 的時候需要用10g的rdbms 使用者環境新增 即oracle使用者的10g rdbms環境
srvctl add database -d crmdb -o /oracle/app/product/10.2.0/db_1
srvctl add instance -d crmdb -i crmdb1 -n crmdb01
srvctl add instance -d crmdb -i crmdb2 -n crmdb02
透過10g rdbms srvctl 命令啟動資料庫
檢查local _listener 和remot_listener
確保local_listener 和remot_listener 配置正確
remote_listener :crmdb-scan:1521
local_listener : (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=130.36.23.7)(PORT=1521))))
回退採用刪除 11g grid 安裝介質 回退 10g 啟動項 重新作業系統
透過 grid 使用者 $ORACLE_HOME/deinstall 刪除雙節點 grid 安裝資訊
還原 10g RAC 啟動檔案
cp /oracle/bak/inittab /etc/inittab
cp /oracle/bak/inittab.crs /etc/inittab.crs
cp /oracle/bak/init.evmd /etc/init.evmd
cp /oracle/bak/init.crsd /etc/init.crsd
cp /oracle/bak/init.crs /etc/init.crs
cp /oracle/bak/init.cssd /etc/init.cssd
tar –xvf /oracle/bak/rc2.d.tar
tar –xvf /oracle/bak/oracle.tar
刪除雙節點/var/tmp/.oracle/下檔案
重啟作業系統:
Shutdown –Fr
21 號詳細操作流程
軟體安裝
安裝 11.2.0.4 rdbms 軟體 可以在晚上 12 點前業務正常執行期間安裝,不影響業務正常使用
切換到 oracle 使用者
su – oracle
設定 DISPLAY 環境變數
export DISPLAY=
啟動 OUI 開始安裝
圖形介面略
升級前環境檢查
執行該指令碼,檢測升級環境
sqlplus '/as sysdba'
SQL> spool Database_Info.log
SQL> @ utlu112i.sql
。。。。。
Spool off
透過create pfile=’/tmp/upgrade/initzhcj.ora’ from spfile;
remote_listener crmdb-scan:1521
local_listener (DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=172. 16.10.46)(PORT=1521))))
開始透過產生的日誌資訊進行引數檔案spfile的修改
無效物件表建立
在原生產庫建立物件表
sqlplus “/as sysdba”
spool invald.lst
select owner,object_name,object_type,status from dba_objects where status<>'VALID';
select count(*),status from dba_objects group by status;
create table invalid_object_201311 as select * from dba_objects where status<>’VALID’;
create table old_objects as select * from dba_objects;
建立回退方案
1. 關閉資料庫,停監聽,停 dbconsole 停容災
2. 建立閃回區及閃回區大小
3. startup mount
create restore point upgrade_point guarantee flashback database;
正式升級
複製原先生產庫下dbs目錄中檔案至新的11g目錄中,修改部分廢棄引數,用pfile啟動startup upgrade
升級資料庫刷資料字典
SQL> STARTUP UPGRADE
SQL> SPOOL patch.log
SQL> @?/rdbms/admin/catupgrd.sql
SQL> SPOOL OFF
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
SQL> EXEC DBMS_STATS.GATHER_DICTIONARY_STATS; (收集系統資料字典統計資訊)
重新整理 RAC 組建
SQL>spool off
SQL>spool catclust.txt
SQL>@?/rdbms/admin/catclust.sql
SQL>spool off
無效物件編譯
複製原 10g 中的密碼檔案, tnsnames .ora 檔案等等 準備無效物件編譯:
SQL> @?/rdbms/admin/utlrp.sql
在嘗試指令碼編譯不成功的情況可以透過手動編譯無效物件
select 'alter '||object_type|| ' ' || owner ||'.'||object_name || ' compile;' from dba_objects where status='INVALID';
升級失敗的回退
1. 重定向到 10g rdbms 目錄
$sqlplus / as sysdba
SQL>shutdown immediate
將profile重新指定到對應的原先10g目錄
2. 閃回資料庫
SQL>startup mount
SQL>select flashback_on from v$database;
SQL>flashback database to restore point upgrade_point;
SQL>shutdown immediate
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23732248/viewspace-2710657/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【資料庫】mysql5.6升級至5.7(物理方式)資料庫MySql
- 資料庫升級之-資料泵資料庫
- 資料庫升級之-XTTS資料庫TTS
- 資料庫升級和工具資料庫
- android資料庫如何進行版本升級?架構之資料庫框架升級Android資料庫架構框架
- 資料庫升級之-Dataguard滾動升級資料庫
- 靜默方式安裝、升級oracle(三): 升級資料庫軟體及資料庫Oracle資料庫
- iOS 資料庫升級資料遷移解決方案iOS資料庫
- oracle資料庫資料字典應用Oracle資料庫
- 2.12 資料庫資料字典檢視資料庫
- oracle資料庫11.2.0.3升級到11.2.0.4Oracle資料庫
- 13 使用SQL Apply 升級資料庫SQLAPP資料庫
- 故障分析 | MySQL 資料庫升級後,資料庫怎麼卡住了MySql資料庫
- Android 資料庫綜述(一) 資料庫片的升級與資料的遷移操作Android資料庫
- Oracle資料庫升級或資料遷移的方法探討Oracle資料庫
- 自定義開發資料庫升級程式資料庫
- 2.8.3 資料庫服務的資料字典檢視資料庫
- 易優cms網站CMS資料字典資料庫-Eyoucms網站資料庫
- phpStudy2018 升級資料庫 MySQL5.7PHP資料庫MySql
- mssql生成資料庫字典指令碼-MarkDownSQL資料庫指令碼
- 資料流圖 和 資料字典
- iOS CoreData (二) 版本升級和資料庫遷移iOS資料庫
- Android 中的升級資料庫最佳方法實踐Android資料庫
- 成為MySQL DBA 部落格系列-資料庫升級MySql資料庫
- 如何理解騰訊雲資料庫戰略升級?資料庫
- ThinkCMF資料字典
- MySQL資料字典MySql
- 大資料:小白升級版大資料
- Eolink Apikit :資料字典功能上線、支援 MongoDB 資料庫操作...APIMongoDB資料庫
- 【資料庫升級】Oracle指令碼升級12c CDB to 19c CDB資料庫Oracle指令碼
- 達夢資料庫基礎知識(一)資料庫物理儲存結構資料庫
- 資料庫,邏輯刪還是物理刪?資料庫
- 不起介面,用response file的方式升級資料庫資料庫
- 靜默方式安裝、升級oracle(二): 建立資料庫Oracle資料庫
- 巨杉資料庫:金融級資料庫未來方向資料庫
- 資料庫索引層級資料庫索引
- java實現“資料平滑升級”Java
- LinkedIn大資料工程的升級大資料