為客戶打造RAC DG一些遇到的問題彙總

2021-09-08 11:19:55 字數 3412 閱讀 1388

昨日有建立乙個客戶rac-dg物理備用資料庫,這裡的一般過程中再次列舉一下,為了不涉及洩露隱私。的主要引數已被替換名稱。詳細路徑也不一致。因為環境的客戶端不與本機連線的網路同意,當故障不能削減各種報警日誌和trace主題檔案。顧大致寫出。

alter database force logging;

alter system set log_archive_config='dg_config=(dg,dgdg)';

alter system set log_archive_dest_1='location=use_db_recovery_file_dest valid_for=(all_logfiles,all_roles) db_unique_name=dg';

alter system set log_archive_dest_2='service=dgdg lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=dgdg';

alter system set log_archive_dest_state_1='enable';

alter system set log_archive_dest_state_2='enable';

alter system set standby_file_management='auto';

alter system set fal_server='dgdg';

需重新啟動引數:

2.建立pfile

sql> create pfile from spfile;

3.改動備庫用的pfile

*.__db_cache_size=0

4.改動tnsnamesl.ora

# generated by oracle configuration tools.

dg =

(description =

(address = (protocol = tcp)(host = dg-cluster-scan)(port = 1521))

(connect_data =

(server = dedicated)

(service_name = dg)))

dgdg =

(description =

(address_list =

(address = (protocol = dgp)(host = dgdg)(port = 1521))

)(connect_data =

(service_name = dg)))

5.改動listener.ora(僅僅給備庫用,主庫能夠不配置靜態監聽)

6.備庫建立相關資料夾

c:\archivelog --指定乙個本地歸檔路徑,備庫接收到的歸檔日誌和自己生成的歸檔日誌都放在這裡

7.主庫做rman全備

rman> backup as compressed backupset full database format 'c:\bak\full_%d_%i_%t_%u'

8.主庫建立備庫控制檔案

sql> alter database create standby controlfile as 'c:\control01.ctl';

sql> alter database create standby controlfile as 'c:\control02.ctl';

9.複製備份檔案、password檔案、pfile檔案、tnsnames.ora、listener.ora到備庫對應位置

10.備庫建立例項

oradim -new -sid dg -startmode manual -spfile;

11.啟動監聽

lsntrctl start

12.啟動例項到mount

set oracle_sid=dg

sqlplus / as sysdba

sql> startup mount

13.恢復資料庫

rman> catalog start with 'd:\bak'; --不指定會提示無法恢復資料庫

rman> restore database;

14.備庫加入standby redo logfile

sql> alter database recover managed standby database disconnect from session;

16.給備庫建立spfile(可選)

出現原因:11.2.0.3預設裝完後的opatch版本號是11.2.0.1.7,我要打的patch 27須要在這個版本號之上才幹夠

解決方法:解壓高版本號的opatch安裝包後覆蓋原opatc**件夾

2.備庫alert.log報警提示無法找到控制檔案自己主動備份路徑

出現原因:rac主庫之前部署過自己主動rman備份指令碼,指定了控制檔案自己主動備份路徑。但備庫並沒有此路徑

解決方法:進入rman,改動該項引數為備庫存在的資料夾

3.引數設定錯誤而引起gap,導致自己主動備份指令碼停止執行

出現原因:之前在設定引數時,把主庫的log_archive_dest_1引數設定了本地路徑歸檔,如:

alter system set log_archive_dest_1='location=c:\archivelog valid_for=(all_logfiles,all_roles) db_unique_name=dg';

作為rac。歸檔路徑在本地的話。其它節點就無法讀取。發現後又一次設定為use_db_recovery_file_dest後,那些在本地的歸檔日誌就成為gap而無法傳遞到備庫

解決方法:手工複製全部提示缺失的***歸檔到指定位置,再手動執行rman自己主動備份指令碼

說明:因為rman自己主動備份指令碼裡配置了冗餘7份,而之搭建dg時手動執行了全庫備份,這些手動備份也是算在7份冗餘之內的,為了不占用正常備份的配額。dg搭建完畢後建議物理刪除。然後再crossecheck並清理掉

4.主、備庫的alert.log常常會出現tns錯誤

fatal ni connect error 12547

tns-12547 tns : 丟失連線

ns secondary err code : 12560

ns main err code : 517

tns-00517 tns : 丟失連線

nt secondary err code : 54

nt os err code : 0

出現原因:節點2沒有配置tnsnames.ora,造成thread 2的歸檔日誌無法傳遞到備庫,同一時候也會造成主庫日誌能傳遞過去,但無法應用。

最近遇到的一些坑

c 邏輯判斷的順序是從左向右的。conditiona conditionb 與 conditionb conditiona並不一定等價。舉個例子 void insertsort vector arr,int length arr j 1 key 由於j是int型別,所以在key 5的那次迴圈裡,j最...

tensorflow遇到的一些錯誤

1 tensorflow dtype t.dtype.base dtype attributeerror float object has no attribute dtype 參考 我報錯的行是 disc gradients disc optimizer.compute gradients dis...

svn branch merge中遇到的一些問題

拉分支的時候,選擇svn branch 在彈出的框中需要選擇目標位址,不過這個有乙個問題就是,這個目標位址不能是已經建立好的,必須至少要有一級目錄還是未建立的,比如想要拉分支到目錄branch 那你最多只能在本地建立乙個branch目錄,這個 是必須要手動輸入到 from branch 否則就會報 ...