Bài viết này là Phần 1 của loạt bài gồm hai phần mô tả các bước để Thiết lập Chế độ chờ Vật lý Bảo vệ Dữ liệu Hoạt động trong Kiến trúc Một nút RAC.
Giới thiệu
Oracle Data Guard là một trong những thành phần chính của Oracle Database High Avability (HA), một bộ giải pháp tích hợp, giúp các tổ chức giảm thiểu tình trạng ngừng hoạt động, cho dù có kế hoạch hay không, để đảm bảo hoạt động kinh doanh của họ trôi chảy. Active Data Guard là một tùy chọn được cấp phép cho Oracle Database Enterprise Edition, mở rộng chức năng Data Guard [1] cơ bản bằng cách cho phép các tài nguyên nâng cao, chẳng hạn như:tham vấn, báo cáo, cập nhật cơ sở dữ liệu dự phòng không ảnh hưởng đến cơ sở dữ liệu chính, khôi phục khối dữ liệu bị hỏng tự động, sao lưu gia tăng, trong số những bản sao lưu khác.
Oracle RAC One Node sử dụng kiến trúc đĩa dùng chung để cung cấp giải pháp cơ sở dữ liệu có tính khả dụng cao, tương tự như Oracle Real Application Cluster (RAC). Không giống như Oracle RAC, thực thi nhiều phiên bản đồng thời, Oracle RAC One Node cung cấp giải pháp chuyển đổi dự phòng chỉ trong một phiên bản, ngoài ra, nó có thể làm cho cơ sở hạ tầng trong cụm dễ dàng hơn, dễ dàng cập nhật lên cài đặt Oracle Real Application Cluster với một số phiên bản.
Môi trường
- Cơ sở dữ liệu chính đang sử dụng Oracle RAC với 2 nút
- Chế độ bảo vệ được sử dụng sẽ là "Hiệu suất tối đa" bằng cách sử dụng chế độ "truyền tải làm lại không đồng bộ"
- Tính năng “Fast Start Failover” sẽ không được sử dụng.
- Cài đặt Nhà môi giới bảo vệ dữ liệu
1. Đặt db_unique_name thành Cơ sở dữ liệu chính:
sqlplus> thay đổi bộ hệ thống db_unique_name ='analytics' scope =spfile sid ='*';
2. Sao chép “tệp mật khẩu Oracle” sang chế độ chờ máy chủ:
scp orapwanalytics oracle @ hostdr:/u01/app/oracle/product/12.1.0.2/dbhome_1/dbs
3. Trong phiên bản ngân hàng Nodes 1 và 2 của máy chủ chính, hãy thêm các mục nhập vào listener.ora:
Nút 1:
(SID_DESC =(GLOBAL_DBNAME =analytics1_dgmgrl) (SID_NAME =analytics1) (ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1))
Nút 2:
(SID_DESC =(GLOBAL_DBNAME =analytics2_dgmgrl) (SID_NAME =analytics2) (ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1))
4. Trong máy chủ dự phòng, thêm mục nhập trong listener.ora
(SID_DESC =(GLOBAL_DBNAME =analytics_DG_DGMGRL) (SID_NAME =analytics_dg) (ORACLE_HOME =/u01/app/oracle/product/12.1.0.2/dbhome_1))
Sau các cài đặt này, cần thực hiện lệnh “tải lại trình nghe” để buộc người nghe đọc lại các mục listener.ora. Chú ý! Thao tác này sẽ ảnh hưởng đến tính khả dụng của người nghe.
5. Thêm các mục nhập vào tệp tnsnames.ora trong Cơ sở dữ liệu chính và dự phòng;
5.1. Nhận xét bài viết cũ
#analytics =# (DESCRIPTION =# (ADDRESS =(PROTOCOL =TCP) (HOST =hostdr-pscan1) (PORT =1521)) # (CONNECT_DATA =# (SERVER =DEDICATED) # (SERVICE_NAME =analytics) #) )
5.2. Thêm các mục mới:
analytics =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP) (HOST =hostdr-pscan1) (PORT =1521)) (CONNECT_DATA =(SERVER =DEDICATED) (SERVICE_NAME =analytics) (UR =A))) analytics1 =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP) (HOST =hostdr01vmp01-vip) (PORT =1521)) (CONNECT_DATA =(SERVER =DEDICATED) (SERVICE_NAME =analytics) (SID =analytics1) (UR =A))) analytics2 =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP) (HOST =hostdr02vmp01-vip) (PORT =1521)) (CONNECT_DATA =(SERVER =DEDICATED) (SERVICE_NAME =analytics) (SID =analytics2) (UR =A)) ) analytics1_DGMGRL =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP) (HOST =hostdr01vmp01-vip) (PORT =1521)) (CONNECT_DATA =(SERVER =DEDICATED) (SERVICE_NAME =analytics_DGMGRL) (UR =A))) analytics2_DGMGRL DESCRIPTION =(ADDRESS =(PROTOCOL =TCP) (HOST =hostdr02vmp01-vip) (PORT =1521)) (CONNECT_DATA =(SERVER =DEDICATED) (SERVICE_NAME =analytics_DGMGRL) (UR =A)))
5.3. Các mục của DG:
analytics_DG =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP) (HOST =host01vmp01-vip) (PORT =1521)) (CONNECT_DATA =(SERVER =DEDICATED) (SERVICE_NAME =analytics_dg) (UR =A))) analytics_DG_DGMGRL =(DESCRIPTION =(ADDRESS =(PROTOCOL =TCP) (HOST =host01vmp01-vip) (PORT =1521)) (CONNECT_DATA =(SERVER =DEDICATED) (SERVICE_NAME =analytics_dg_dgmgrl) (UR =A)))
6. Kiểm tra các mục nhập mới trong tệp tnsnames.ora
tnsping analyticstnsping analytics1tnsping analytics2tnsping analytics_DGtnsping analytics1_DGMGRLtnsping analytics2_DGMGRLtnsping analytics_DG_DGMGRL
7. Bật “Buộc ghi nhật ký” và “Chế độ lưu trữ” trong Cơ sở dữ liệu chính. Lưu ý:Phiên bản đã được định cấu hình ở chế độ archivelog.
sqlplus> thay đổi ghi lực cơ sở dữ liệu; sqlplus> chọn force_logging, log_mode từ v $ database; FORCE_LOGGING LOG_MODE --------------------------- ------------ ------------ CÓ ARCHIVELOG
8. Xác minh cài đặt RedoLogs trong Cơ sở dữ liệu chính. Tập lệnh đã sử dụng logfiles.sql hiện có tại oracle-base.com.
9. Thêm tệp nhật ký chờ.
Để xác định số lượng nhật ký làm lại ở chế độ chờ được khuyến nghị, hãy sử dụng công thức sau [2]:
(tối đa # nhóm tệp nhật ký +1) * số chuỗi tối đa
Cơ sở dữ liệu chính của tôi có hai luồng và mỗi luồng có bốn nhóm trực tuyến làm lại, do đó, chúng ta nên có mười nhật ký làm lại ở chế độ chờ.
(tối đa # nhóm logfile +1) * số luồng tối đa =((4 + 1) * 2 =10)
sqlplus> thay đổi cơ sở dữ liệu thêm luồng logfile dự phòng 1 nhóm 41 ('+ DG_RECO_DR') kích thước 1024M; sqlplus> thay đổi cơ sở dữ liệu thêm luồng logfile dự phòng 2 nhóm 42 ('+ DG_RECO_DR') kích thước 1024M; sqlplus> thay đổi cơ sở dữ liệu thêm logfile dự phòng luồng 1 nhóm 43 ('+ DG_RECO_DR') kích thước 1024M; sqlplus> thay đổi cơ sở dữ liệu thêm luồng logfile dự phòng 2 nhóm 44 ('+ DG_RECO_DR') kích thước 1024M; sqlplus> thay đổi cơ sở dữ liệu thêm luồng logfile dự phòng 1 nhóm 45 ('+ DG_RECO_DR') kích thước 1024M; sqlplus> thay đổi cơ sở dữ liệu thêm luồng logfile dự phòng 2 nhóm 46 ('+ DG_RECO_DR') kích thước 1024M; sqlplus> thay đổi cơ sở dữ liệu thêm luồng logfile dự phòng 1 nhóm 47 ('+ DG_RECO_DR') kích thước 1024M; sqlplus> thay đổi cơ sở dữ liệu thêm logfile dự phòng luồng 2 nhóm 48 ('+ DG_RECO_DR') kích thước 1024M; sqlplus> thay đổi cơ sở dữ liệu thêm luồng logfile dự phòng 2 nhóm 49 ('+ DG_RECO_DR') kích thước 1024M; sqlplus> thay đổi cơ sở dữ liệu thêm luồng logfile dự phòng 2 nhóm 50 ('+ DG_RECO_DR') kích thước 1024M;
10. Trong cơ sở dữ liệu chính, tạo một tệp pfile sẽ là cơ sở của tệp tham số cơ sở dữ liệu dự phòng.
tạo pfile ='/ tmp / initanalytics_dg_aux.ora' từ spfile;
11. Trong cơ sở dữ liệu Dự phòng, tạo tệp pfile với thông tin của máy chủ từ xa. Cách dễ nhất để tạo tệp này là sao chép tệp thông số của Cơ sở dữ liệu chính (mục 10) sang Cơ sở dữ liệu dự phòng và chỉnh sửa.
$ cd $ ORACLE_HOME / dbs $ vi initanalytics_dg_aux.ora # *. Audit_file_dest ='/ u01 / app / oracle / admin / analytics / adump' *. Audit_file_dest ='/ u01 / app / oracle / admin / analytics_dg / adump '* .audit_trail =' db '#. cluster_database =true * .cluster_database =false * .comp Tương thích ='12 .1.0.2.0' # *. control_files ='+ DG_DATA_DR / analytics / controlfile / current.1257.954609365', '+ DG_RECO_DR /analytics/controlfile/current.527.954609365'*.control_files='+DG_DATA/analytics_dg/controlfile/current1.ctl','+DG_RECO/analytics_dg/controlfile/current2.ctl'*.db_block_size=8192#+.db_destc DG_DATA_DR '*. Db_create_file_dest =' + DG_DATA '# *. Db_create_online_log_dest_1 =' + DG_DATA_DR '*. Db_create_online_log_dest_1 =' + DG_DATA '# *. Db_create_online_log_create_dest_2. * .db_name ='analytics' *. db_files =2000 # *. db_recovery_file_dest ='+ DG_RECO_DR' *. db_recovery_file_dest ='+ DG_RECO' *. db_recovery_file_dest_size =100G # *. db_unique 'analytics' * .name =100G # *. db_unique 'analytics' * .name =100G # *. db_unique 'analytics'. / pre>12. Tạo cấu trúc phân cấp thư mục.
12.1. Tạo một thư mục cho "kết xuất kiểm tra" trong đó các tệp và kiểm tra cơ sở dữ liệu sẽ được tạo.
mkdir -p / u01 / app / oracle / admin / analytics_dg / adump12.2. Trong ASM, tạo thư mục cho tệp điều khiển và tệp tham số:
mkdir + DG_DATA / analytics_DG / mkdir + DG_DATA / analytics_DG / PARAMETERFILEmkdir + DG_DATA / analytics_DG / CONTROLFILEmkdir + DG_DATA / analytics_DG / BROKERCFGmkdir + DG_RECOG / analytics + DERCGm_DG13. Tạo spfile và pfile trong Cơ sở dữ liệu dự phòng
$ export ORACLE_SID =analytics_dg $ sqlplus / as sysdba13.1. Khởi động cơ sở dữ liệu dự phòng với pfile initanalytics_dg_aux.ora và chuyển đổi tệp tham số (pfile) thành spfile.
sqlplus> startup nomount pfile ='/ u01 / app / oracle / product / 12.1.0.2 / dbhome_1 / dbs / initanalytics_dg_aux.ora'; sqlplus> create spfile ='+ DG_DATA / analytics_DG / PARAMETERFILE / spfileanalytics_dg.ora' từ pfile ='/ u01 / app / oracle / product / 12.1.0.2 / dbhome_1 / dbs / initanalytics_dg_aux.ora';13.2. Tạo pfile và trong tệp này, chèn mục sau:
echo "spfile ='+ DG_DATA / analytics_DG / PARAMETERFILE / spfileanalytics_dg.ora'">> initanalytics_dg.ora13.3. Khởi động của Instance với spfile để khôi phục cơ sở dữ liệu sau.
$ export ORACLE_SID =analytics_dg $ sqlplus sys as sysdbasqlplus> shutdown ngay lập tức; sqlplus> startup nomount;14. Chạy khôi phục với bản sao của cơ sở dữ liệu;
kết nối đích sys / xxxxxx @ analytics1; kết nối sys phụ / xxxxxx @ analytics_dg_dgmgrl; RUN {Phân bổ đĩa loại thiết bị pr1 kênh; Phân bổ đĩa loại thiết bị pr2 kênh; phân bổ đĩa loại stby1 kênh phụ; cấp phát đĩa loại stby2 kênh phụ; DUPLICATE CƠ SỞ DỮ LIỆU MỤC TIÊU ĐỂ CHUẨN BỊ TỪ CƠ SỞ DỮ LIỆU HOẠT ĐỘNG; TẠM DỪNG KÊNH pr1; TẠM DỪNG KÊNH pr2; TẠM DỪNG KÊNH stby1; TẠM DỪNG KÊNH stby2;}
Bài tiếp theo chúng ta sẽ tiếp tục câu chuyện này!
Tài liệu tham khảo
[1] Các phương pháp hay nhất về bảo vệ dữ liệu chủ động của Oracle. Có tại:https://www.oracle.com/database/technologies/active-data-guard-12c-best-practice.html [2] Cơ sở dữ liệu Oracle Các phương pháp hay nhất về tính khả dụng cao 11g Phiên bản 2 (11.2). Có tại:https://docs.oracle.com/cd/E24693_01/server.11203/e10803/config_dg.htm [3] Nhà môi giới bảo vệ dữ liệu. Có tại:https://docs.oracle.com/cd/E11882_01/server.112/e40771/dbpropref.htm#DGBKR3781