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

資訊專欄INFORMATION COLUMN

單機DG的搭建

IT那活兒 / 2041人閱讀
單機DG的搭建

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


Data Guard不只是一個備份恢復的工具,某些情況下它甚至可以與primary數據庫完全一模一樣。

但是,它存在的目的并不僅僅是為了恢復數據,應該說它的存在是為了確保企業數據的高可用性,數據保護以及災難恢復。



01


dg提供全面的服務包括:
創建,維護,管理以及監控standby數據庫,確保數據安全,管理員可以通過將一些操作轉移到standby數據庫執行的方式改善數據庫性能 ,構建高可用的企業數據庫應用環境。
在Data Gurad 環境中,至少有兩個數據庫:
  • 一個處于Open 狀態對外提供服務,這個數據庫叫作Primary Database;

  • 第二個處于恢復狀態,叫作Standby Database。 

運行時Primary Database 對外提供服務,用戶在Primary Database 上進行操作,操作被記錄在聯機日志和歸檔日志中,這些日志通過網絡傳遞給Standby Database。 
這個日志會在Standby Database 上重演,從而實現Primary Database 和Standby Database 的數據同步。
如果是可預見因素需要關閉Primary Database,比如軟硬件升級,可以把Standby Database 切換為Primary Database 繼續對外服務,這樣即減少了服務停止時間,并且數據不會丟失。
如果異常原因導致Primary Database 不可用,也可以把Standby Database 強制切換為Primary Database繼續對外服務,這時數據損失都和配置的數據保護級別有關系。
因此Primary 和Standby 只是一個角色概念,并不固定在某個數據庫中。

02


2.1 DG有三大保護模式:
  • Maximum Availability 
  • Maximum Performance 
  • Maximum Protection
2.1.1 最大性能模式(Maximum Performance)
1)該模式是默認模式,可以保證主數據庫的最高可用性;
2)保證主庫運行過程中不受備庫的影響,主庫事務正常提交,不因備庫的任何問題影響到主庫的運行;
4)優點:避免了備庫對主數據庫的性能和可用性影響;
5)缺點:如果與主庫提交的事務相關的恢復數據沒有發送到備庫,這些事務數據將被丟失,不能保證數據無損失;
如果不設置,數據庫默認是最大性能模式。
通常工作在LGWR ASYNC方式下 或 ARCH方式下,它是一種異步的,所以數據不能保證完全一致,一旦異步發送數據過程中異常,或者主庫出現異常,備庫會有一小部分數據損失。
2.1.2 最大可用模式(Maximum Availability)
1)該模式提供了僅次于“最大保護模式”的數據保護能力;
2)要求至少一個物理備庫收到重做日志后,主庫的事務才能夠提交;
3)主庫找不到合適的備庫寫入時,主庫不會關閉,而是臨時降低到“最大性能模式”模式,直到問題得到處理;
該模式只能工作在LGWR SYNC方式下。
需要說明的是,即使設置了系統為最大可用模式,但是沒有LGWR SYNC方式的配置支持,它會默認轉為最大性能模式。
2.1.3 最大保護模式(Maximum Protection)
1)這種模式提供了最高級別的數據保護能力;
2)要求至少一個物理備庫收到重做日志后,主庫的事務才能夠提交;
3)主庫找不到合適的備庫寫入時,主庫會自動關閉,防止未受保護的數據出現;
4)優點:該模式可以保證備庫沒有數據丟失;
5)缺點:主庫的自動關閉會影響到主庫的可用性,同時需要備庫恢復后才能提交,對網絡等客觀條件要求非常的高,主庫的性能會因此受到非常大的沖擊。
2.2 查看當前保護模式:
select protection_mode,protection_level from v$database;


03


3.1 搭建前準備:
  • 操作系統:Centos7.9

  • 數據庫版本11.2.0.4

  • 主庫IP:192.168.13.30   pri    SID=pri

  • 備庫IP:192.168.13.40   std    SID=std

3.2 查看數據庫角色以及是否開啟強制日志:
select name,log_mode,force_logging from v$database;
開啟主庫強制日志:

alter database force logging;

復制密碼文件給備庫并改名(此步驟只在主庫上做)(注意改名):
[oracle@pri dbs]$ scp orapwpri 192.168.13.40:$ORACLE_HOME/dbs/orapwstd

3.3 創建redolog日志組(此步驟只在主庫上做):
[oracle@pri dbs]$ cd /home/oracle/u01/app/oracle/oradata/
[oracle@pri oradata]$ mkdir standbylog
[oracle@pri oradata]$ sqlplus / as sysdba
查看standby 日志組的信息:
SQL> set pagesize 100
SQL>  col member for a60
SQL> select group#,member from v$logfile order by group#;
修改主庫的pfile參數文件(此步驟只在主庫上做):
SQL> show parameter spfile;
SQL> create pfile from spfile;
修改主庫的pfile(注意目錄結構修改前請仔細對比):
[oracle@pri dbs]$ vi initpri.ora


pri.__db_cache_size=2919235584
pri.__java_pool_size=33554432
pri.__large_pool_size=50331648
pri.__oracle_base=/home/oracle/u01/app/oracle#ORACLE_BASE set from environment
pri.__pga_aggregate_target=1241513984
pri.__sga_target=3724541952
pri.__shared_io_pool_size=0
pri.__shared_pool_size=687865856
pri.__streams_pool_size=0
*.audit_file_dest=/home/oracle/u01/app/oracle/admin/pri/adump
*.audit_trail=db
*.compatible=11.2.0.4.0
*.control_files=/home/oracle/u01/app/oracle/oradata/pri/control01.ctl,/home/oracle/u01/app/oracle/fast_recovery_area/pri/control02.ctl
*.db_block_size=8192
*.db_domain=
*.db_name=pri
*.db_recovery_file_dest=/home/oracle/u01/app/oracle/fast_recovery_area
*.db_recovery_file_dest_size=4385144832
*.diagnostic_dest=/home/oracle/u01/app/oracle
*.dispatchers=(PROTOCOL=TCP) (SERVICE=priXDB)
*.open_cursors=300
*.pga_aggregate_target=1240465408
*.processes=150
*.remote_login_passwordfile=EXCLUSIVE
*.sga_target=3721396224
*.undo_tablespace=UNDOTBS1
*.db_unique_name=pri
*.log_archive_config=dg_config=(pri,std)
*.log_archive_dest_1=location=/home/oracle/u01/app/oracle/arch valid_for=(all_logfiles,all_roles) db_unique_name=pri
*.log_archive_dest_2=service=std valid_for=(online_logfiles,primary_role) db_unique_name=std
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
*.log_archive_max_processes=4
*.fal_server=std
*.fal_client=pri
*.db_file_name_convert=/home/oracle/u01/app/oracle/oradata/std,/home/oracle/u01/app/oracle/oradata/pri
*.log_file_name_convert=/home/oracle/u01/app/oracle/oradata/std,/home/oracle/u01/app/oracle/oradata/pri
*.standby_file_management=auto


手工創建/home/oracle/u01/app/oracle/arch:
此目錄是上面配置文件里面后加的:
[oracle@pri dbs]$ mkdir -p /home/oracle/u01/app/oracle/arch
用修改過的pfile重新創建一個spfile,用于重啟數據庫(此步驟只在主庫上做):
SQL> shu immediate
SQL> startup mount;
SQL> alter database archivelog;
SQL>  alter database open;
查看是否啟用歸檔模式:
SQL>  archive log list
查看當前數據庫是否使用spfile啟動:
SQL>  show parameter spfile;
3.4 添加靜態監聽(主庫、備庫都要做)
主庫配置監聽:
[oracle@pri dbs]$ vi /home/oracle/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.13.30)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = pri)
(ORACLE_HOME = /home/oracle/u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = pri)
)
)

ADR_BASE_LISTENER = /home/oracle/u01/app/oracle
~
[oracle@pri dbs]$ vi /home/oracle/u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora
pri =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.13.30)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pri)
)
)

std =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.13.40)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = std)
)
)



備庫配置監聽:
[oracle@std dbs]$ vi /home/oracle/u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.13.40)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)


SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = std)
(ORACLE_HOME = /home/oracle/u01/app/oracle/product/11.2.0/db_1)
(SID_NAME = std)
)
)

ADR_BASE_LISTENER = /home/oracle/u01/app/oracle

3.5 主備庫開啟監聽并測試網絡聯通性:
[oracle@pri dbs]$ lsnrctl start
[oracle@pri dbs]$ tnsping pri
[oracle@pri dbs]$ tnsping std
3.6 主庫端把pfile拷貝給備庫端的$ORACLE_HOME/dbs目錄下,并重命名:
[oracle@pri dbs]$ scp initpri.ora 192.168.13.40:$ORACLE_HOME/dbs/initstd.ora
3.7 備庫端進行修改(注意目錄結構):
[oracle@std dbs]$ vi initstd.ora
pri.__db_cache_size=2919235584
pri.__java_pool_size=33554432
pri.__large_pool_size=50331648
pri.__oracle_base=/home/oracle/u01/app/oracle#ORACLE_BASE set from environment
pri.__pga_aggregate_target=1241513984
pri.__sga_target=3724541952
pri.__shared_io_pool_size=0
pri.__shared_pool_size=687865856
pri.__streams_pool_size=0
*.audit_file_dest=/home/oracle/u01/app/oracle/admin/pri/adump
*.audit_trail=db
*.compatible=11.2.0.4.0
*.control_files=/home/oracle/u01/app/oracle/oradata/pri/control01.ctl,/home/oracle/u01/app/oracle/fast_recovery_area/pri/control02.ctl
*.db_block_size=8192
*.db_domain=
*.db_name=pri
*.db_recovery_file_dest=/home/oracle/u01/app/oracle/fast_recovery_area
*.db_recovery_file_dest_size=4385144832
*.diagnostic_dest=/home/oracle/u01/app/oracle
*.dispatchers=(PROTOCOL=TCP) (SERVICE=priXDB)
*.open_cursors=300
*.pga_aggregate_target=1240465408
*.processes=150
*.remote_login_passwordfile=EXCLUSIVE
*.sga_target=3721396224
*.undo_tablespace=UNDOTBS1
*.db_unique_name=pri
*.log_archive_config=dg_config=(pri,std)
*.log_archive_dest_1=location=/home/oracle/u01/app/oracle/arch valid_for=(all_logfiles,all_roles) db_unique_name=pri
*.log_archive_dest_2=service=std valid_for=(online_logfiles,primary_role) db_unique_name=std
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
pri.__db_cache_size=1392508928
pri.__java_pool_size=16777216
pri.__large_pool_size=33554432
pri.__oracle_base=/home/oracle/u01/app/oracle#ORACLE_BASE set from environment
pri.__pga_aggregate_target=620756992
pri.__sga_target=1862270976
pri.__shared_io_pool_size=0
pri.__shared_pool_size=402653184
pri.__streams_pool_size=0
*.audit_file_dest=/home/oracle/u01/app/oracle/admin/std/adump
*.audit_trail=db
*.compatible=11.2.0.4.0
*.control_files=/home/oracle/u01/app/oracle/oradata/std/control01.ctl,/home/oracle/u01/app/oracle/oradata/std/control02.ctl
*.db_block_size=8192
*.db_domain=
*.db_name=pri
*.db_recovery_file_dest=/home/oracle/u01/app/oracle/fast_recovery_area
*.db_recovery_file_dest_size=4385144832
*.diagnostic_dest=/home/oracle/u01/app/oracle
*.dispatchers=(PROTOCOL=TCP) (SERVICE=stdXDB)
*.open_cursors=300
*.pga_aggregate_target=2423259136
*.processes=150
*.remote_login_passwordfile=EXCLUSIVE
*.sga_target=4294967296
*.undo_tablespace=UNDOTBS1
*.db_unique_name=std
*.log_archive_config=dg_config=(pri,std)
*.log_archive_dest_1=location=/home/oracle/u01/app/oracle/arch valid_for=(all_logfiles,all_roles) db_unique_name=std
*.log_archive_dest_2=service=pri valid_for=(online_logfiles,primary_role) db_unique_name=pri
*.log_archive_dest_state_1=enable
*.log_archive_dest_state_2=enable
*.log_archive_max_processes=4
*.fal_server=pri
*.fal_client=std
*.db_file_name_convert=/home/oracle/u01/app/oracle/oradata/pri,/home/oracle/u01/app/oracle/oradata/std
*.log_file_name_convert=/home/oracle/u01/app/oracle/oradata/pri,/home/oracle/u01/app/oracle/oradata/std
*.standby_file_management=auto
3.8 備庫操作:
[oracle@std dbs]$ mkdir -pv /home/oracle/u01/app/oracle/admin/std/adump
[oracle@std dbs]$ mkdir -pv /home/oracle/u01/app/oracle/oradata/std/
[oracle@std dbs]$ mkdir -pv /home/oracle/u01/app/oracle/fast_recovery_area
[oracle@std dbs]$ mkdir -pv /home/oracle/u01/app/oracle/arch
[oracle@std dbs]$ mkdir -pv /home/oracle/u01/app/oracle/diag/rdbms/std/std/trace
[oracle@std dbs]$ mkdir -pv /home/oracle/u01/app/oracle/oradata/standbylog
用修改后的pfile創建一個spfile,用于啟動數據庫(備庫端做):
SQL>  create spfile from pfile;
SQL>  startup nomount;
利用RMAN在備庫上恢復主庫(備庫端做):
[oracle@std dbs]$ rman target sys/123456@pri auxiliary sys/123456@std
RMAN> duplicate target database for standby from active database nofilenamecheck;
錄備庫啟用日志:
SQL> select status from v$instance;
SQL> alter database recover managed standby database disconnect from session;
分別查看主庫和備庫的Current log sequence歸檔序列號是否一致:
SQL> archive log list
開啟備庫:
SQL> alter database recover managed standby database cancel;
SQL> shu immediate
SQL> alter database mount standby database;
SQL>  alter database open read only;
SQL>  alter database recover managed standby database using current logfile disconnect from session;
查看日志是否同步:
SQL> archive log list
3.9 主備切換
查看主備角色:
SQL> select switchover_status,database_role,open_mode from v$database;
主庫切備庫:
SQL> alter database commit to switchover to physical standby;
切完之后,主庫會變成備庫并關閉,用備庫的方式打開新備庫,查詢狀態:
備庫切主庫:
alter database commit to switchover to primary;
回切:


end



本文作者:王 剛

本文來源:IT那活兒(上海新炬王翦團隊)

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

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

相關文章

  • 19C?DG?Broker配置和測試

    19C?DG?Broker配置和測試 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; ...

    IT那活兒 評論0 收藏2941
  • DG備庫讀寫測試方案

    DG備庫讀寫測試方案 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%; margin:0...

    IT那活兒 評論0 收藏856
  • Redis單機搭建

    摘要:因為是在虛擬機上面模擬搭建,所以我們可以設置六個不同的端口來模擬六臺虛擬機。官網然后將壓縮包上傳的虛擬機的服務器上,這里我用的是版本。把這了的改為接下來執行執行這條命令就可以后臺啟動了查看進程是否啟動成功好了,單機版的版的已經搭建成功了。 首先放一張Redis的架構圖: showImg(https://segmentfault.com/img/remote/14600000174635...

    CODING 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

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