Oracle資料庫從Linux x86單機遷移到Solaries雙節點RAC叢集經驗分享-測試環境驗證

neverinit發表於2018-11-08

本文分享了一次真實的遷移案例,將某業務系統生產環境Oracle資料庫進行遷移,資料庫版本為11.2.0.4。資料庫遷移之前部署在RedHat6.5作業系統中,以單機單例項檔案系統部署;遷移之後部署在Solaries11作業系統中,以ASM雙節點RAC叢集部署。本文分享的主要內容是遷移過程中對生產環境的變更和調整思路,以及遷移過程中遇到問題的解決方案,整個遷移過程包括測試環境驗證、備份策略驗證、生產環境切換等三大步驟,並未涉及資料庫的安裝部署。希望文章的整體處理思路對讀者有幫助。

測試環境驗證的目的如下:

(1)演練生產環境資料庫的遷移過程。

(2)驗證使用新資料庫,常規應用功能是否正常。

(3)部署應用程式,為後續測試做準備


目錄結構搶先看

1.選擇測試環境

2.修改rac叢集的scan ip

3.選擇其中一個節點新建directory

4.在ASM中新建表空間

5.上傳生產資料庫邏輯備份檔案

6.生產資料還原

7.修改資料庫使用者密碼

8.修改資料庫中的配置資訊

9.修改資料庫密碼永不過期

10.修改資料庫密碼錯誤不鎖定使用者

11.手工收集統計資訊

12.修改應用中的資料庫連線為Service連線

13.依次啟動應用並驗證交易


1.選擇測試環境    

(注:這裡選擇一套現成的測試環境用於驗證,減少在測試環境準備上耗費的時間。)

(1)選擇一套測試環境,資料庫IP為100.100.100.103,應用伺服器IP為100.100.100.194

(2)依次登陸應用伺服器和資料庫伺服器,關閉應用和資料庫,同時關閉資料庫伺服器100.100.100.103

(3)執行命令ping 100.100.100.103,確保資料庫伺服器已關閉。

2.修改rac叢集的scan ip

(注:這裡選擇直接修改RAC叢集的scan ip為100.100.100.103 ,確保應用中的執行緒池啟動後可連線。)

操作步驟參考文章:

http://blog.itpub.net/31394774/viewspace-2217511/

3.選擇其中一個節點新建directory

注:這裡考慮到該系統目前的生產資料量不大,使用資料泵expdp備份方便快捷。

在cwgsdb1伺服器上新建directory

oracle@cwgsdb1:~$ mkdir -p /u01/app/oracle/dump
oracle@cwgsdb1:~$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Tue Oct 23 22:08:42 2018
Copyright (c) 1982, 2013, Oracle.  All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
SQL> create or replace directory dpdata1 as '/u01/app/oracle/dump';
Directory created.
SQL> grant read,write,execute on directory dpdata1 to public;
Grant succeeded.

4.在ASM中新建表空間

(注:這裡只列舉部分表空間,將表空間建立在ASM檔案系統中)

create tablespace cams_core_idx datafile '+DATADG/CAMS/DATAFILE/CAMS_CORE_IDX_001.dbf' size 100M AUTOEXTEND ON next 200M maxsize unlimited;
create tablespace cams_core_tab datafile '+DATADG/CAMS/DATAFILE/CAMS_CORE_TAB_001.dbf' size 100M AUTOEXTEND ON next 200M maxsize unlimited;
create tablespace cams_core_lob datafile '+DATADG/CAMS/DATAFILE/CAMS_CORE_LOB_001.dbf' size 100M AUTOEXTEND ON next 200M maxsize unlimited;

5.上傳生產資料庫邏輯備份檔案

oracle@cwgsdb1:~$ cd /u01/app/oracle/dump/oracle@cwgsdb1:/u01/app/oracle/dump$ ls -lrt
total 8751362
-rw-r--r--   1 oracle   oinstall 4475846656 Oct 23 22:41 camsData20181017.dmp
-rw-r--r--   1 oracle   oinstall  335274 Oct 23 22:54 camsData20181017.log

6.生產資料還原

oracle@cwgsdb1:/u01/app/oracle/dump$ impdp \'/ as sysdba\' DIRECTORY=dpdata1 DUMPFILE=camsData20181017.dmp SCHEMAS=xxx,yyy logfile=impdp_camsData20181017.log

7.修改資料庫使用者密碼   

 (注:測試環境密碼和生產不一致,需要將生產環境使用者密碼進行修改)

alter user XXXX dientified by 123456;

8.修改資料庫中的配置資訊

(1)修改資料庫中帶使用者/密碼的配置資訊

(2)修改資料庫中帶IP地址的配置資訊

(3)修改資料庫中帶路徑的配置資訊(注:如果生產環境儲存路徑和測試不一致)

9.修改資料庫密碼永不過期    

(注:如果有DBA定期修改密碼,可不執行該步驟)

SQL> set linesize 200;
SQL> col limit for a30;
SQL> select * from dba_profiles where profile='DEFAULT' and RESOURCE_NAME like 'PASSWORD_%';
PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT
------------------------------ -------------------------------- -------- ------------------------------
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD 180
DEFAULT                        PASSWORD_REUSE_TIME              PASSWORD UNLIMITED
DEFAULT                        PASSWORD_REUSE_MAX               PASSWORD UNLIMITED
DEFAULT                        PASSWORD_VERIFY_FUNCTION         PASSWORD NULL
DEFAULT                        PASSWORD_LOCK_TIME               PASSWORD 1
DEFAULT                        PASSWORD_GRACE_TIME              PASSWORD 7
6 rows selected.

現在詳細解釋一下各引數值:

PASSWORD_LIFE_TIME   口令的生命週期,單位是天,超過這段時間口令可能會自動過期,是否過期要看是否設定了PASSWORD_GRACE_TIME

PASSWORD_REUSE_TIME   這個特性限制口令在多少天內不能重複使用,預設值為UNLIMITED

PASSWORD_REUSE_MAX 這個特性是針對PASSWORD_REUSE_TIME的,說明要想在 PASSWORD_REUSE_TIME 這個引數指定的時間內重複使用當前口令,那麼至少需要修改過口令的次數(修改過的口令當然肯定需要和當前口令不同,因為畢竟還有PASSWORD_REUSE_TIME特性的限制)

PASSWORD_VERIFY_FUNCTION 可以設定oracle使用者的密碼複雜度,比如密碼長度>=10,必須包含字母/數字等

PASSWORD_LOCK_TIME   接著FAILED_LOGIN_ATTEMPTS引數,口令被自動鎖定的時間,達到這個時間之後,下次登入時系統自動解除對這個賬戶的鎖定

PASSWORD_GRACE_TIME   接著PASSWORD_LIFE_TIME特性,如果PASSWORD_LIFE_TIME的期限已到,PASSWORD_GRACE_TIME是對口令生命週期的一個grace(寬限或延續),表示口令到期後,可以繼續使用的天數。在這段時間內如果我們登陸系統,會有提示,提示系統在幾天內過期

SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;Profile altered.
SQL> select * from dba_profiles where profile='DEFAULT' and RESOURCE_NAME like 'PASSWORD_%';
PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT
------------------------------ -------------------------------- -------- ------------------------------
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD UNLIMITED
DEFAULT                        PASSWORD_REUSE_TIME              PASSWORD UNLIMITED
DEFAULT                        PASSWORD_REUSE_MAX               PASSWORD UNLIMITED
DEFAULT                        PASSWORD_VERIFY_FUNCTION         PASSWORD NULL
DEFAULT                        PASSWORD_LOCK_TIME               PASSWORD 1
DEFAULT                        PASSWORD_GRACE_TIME              PASSWORD 7
6 rows selected.

10.修改資料庫密碼錯誤不鎖定使用者    

(注:為了防止使用者配錯密碼或者惡意攻擊導致密碼鎖定,造成生產故障)

SQL> select * from dba_profiles where profile='DEFAULT' and RESOURCE_NAME like 'FAILED%';
PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT
------------------------------ -------------------------------- -------- --------------------
DEFAULT                        FAILED_LOGIN_ATTEMPTS            PASSWORD 10

FAILED_LOGIN_ATTEMPTS   不知道口令的話嘗試登入的次數,達到這個次數之後賬戶被自動鎖定

SQL> ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;Profile altered.
SQL> select * from dba_profiles where profile='DEFAULT' and RESOURCE_NAME like 'FAILED%';
PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT
------------------------------ -------------------------------- -------- --------------------
DEFAULT                        FAILED_LOGIN_ATTEMPTS            PASSWORD UNLIMITED

11.手工收集統計資訊

exec dbms_stats.gather_schema_stats('XXXX');

12.修改應用中的資料庫連線為Service連線    

(注:之前的資料庫為單例項,部分資料庫連線配置資訊為SID連線,這裡需要全部改為Service連線,透過scan ip連線RAC叢集)

dataSource.url=jdbc:oracle:thin:@100.100.100.103:1521:cams

修改為

dataSource.url=jdbc:oracle:thin:@100.100.100.103:1521/cams

13.依次啟動應用並驗證交易

按順序依次啟動應用,測試多組跨子系統的交易,然後在資料匯流排監控平臺上檢視交易的報文以及成功狀態。



至此,測試環境驗證工作順利完成。下一步的工作是進行資料庫的備份策略驗證。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31394774/viewspace-2219302/,如需轉載,請註明出處,否則將追究法律責任。

相關文章