mysql可以使用dataguard_逻辑DataGuard的配置
1.Primary數(shù)據(jù)庫生成LogMiner字典信息(生成之前,確保待轉(zhuǎn)換的物理Standby停止REDO應用) ORCLPRI_LG execute dbms_logstdby.build; PL/SQL procedure successfully completed. 2.邏輯Standby更名 ORCLSTD_LG show parameter db_name NAME TYPE VALUE -----
1.Primary數(shù)據(jù)庫生成LogMiner字典信息(生成之前,確保待轉(zhuǎn)換的物理Standby停止REDO應用)
ORCLPRI_LG >execute dbms_logstdby.build;
PL/SQL procedure successfully completed.
2.邏輯Standby更名
ORCLSTD_LG >show parameter db_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string orcl
ORCLSTD_LG >alter database recover to logical standby ORCLLDG;
alter database recover to logical standby ORCLLDG
*
ERROR at line 1:
ORA-19953: database should not be open
ORCLSTD_LG >shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
ORCLSTD_LG >alter database recover to logical standby ORCLLDG;
alter database recover to logical standby ORCLLDG
*
ERROR at line 1:
ORA-01034: ORACLE not available
ORCLSTD_LG >startup mount
ORACLE instance started.
Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 62916852 bytes
Database Buffers 100663296 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORCLSTD_LG >alter database recover to logical standby ORCLLDG;
Database altered.
ORCLSTD_LG >show parameter db_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string orcl
ORCLSTD_LG >shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
ORCLSTD_LG >startup mount
ORACLE instance started.
Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 62916852 bytes
Database Buffers 100663296 bytes
Redo Buffers 2973696 bytes
Database mounted.
3.重啟生效
ORCLSTD_LG >show parameter db_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_name string ORCLLDG
ORCLSTD_LG >select database_role from v$database;
DATABASE_ROLE
----------------
LOGICAL STANDBY
4.創(chuàng)建本地和遠程歸檔路徑
修改Primary spfile:
orcl.__db_cache_size=92274688
orcl.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcl.__shared_pool_size=58720256
orcl.__streams_pool_size=4194304
*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'
*.background_dump_dest='/u01/app/oracle/admin/orcl/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/u01/app/oracle/oradata/orcl/control01.ctl','/u01/app/oracle/oradata/orcl/control02.ctl','/u01/app/oracle/oradata/orcl/control03.ctl'#Restore Controlfile
*.core_dump_dest='/u01/app/oracle/admin/orcl/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orclstd','/u01/rec_catalog','/u01/app/oracle/oradata/orclstd'
*.db_name='orcl'
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.db_unique_name='orclpre'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.fal_client='orcl_192.168.1.222'
*.fal_server='orcls_192.168.1.223'
*.job_queue_processes=10
*.log_archive_config='dg_config=(orclpre,orclldg)'
*.log_archive_dest_1='location=/u01/arch_orcl'
*.log_archive_dest_2='service=orcls_192.168.1.223
lgwr async valid_for=(online_logfiles, primary_role) db_unique_name=orclldg'
*.log_archive_dest_state_2='ENABLE'
*.log_archive_format='archive_%t_%s_%r.arclog'
*.log_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orclstd','/u01/rec_catalog','/u01/app/oracle/oradata/orclstd'
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=167772160
*.standby_file_management='auto'
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/u01/app/oracle/admin/orcl/udump'
lgwr async:保證Primary到邏輯Standby異步傳輸
修改Standby spfile:
orcl.__db_cache_size=96468992
orcls.__db_cache_size=100663296
orclstd.__db_cache_size=50331648
orcl.__java_pool_size=4194304
orcls.__java_pool_size=4194304
orclstd.__java_pool_size=4194304
orcl.__large_pool_size=4194304
orcls.__large_pool_size=4194304
orclstd.__large_pool_size=4194304
orcl.__shared_pool_size=54525952
orcls.__shared_pool_size=54525952
orclstd.__shared_pool_size=104857600
orcl.__streams_pool_size=4194304
orcls.__streams_pool_size=0
orclstd.__streams_pool_size=0
*.audit_file_dest='/u01/app/oracle/admin/orclstd/adump'
*.background_dump_dest='/u01/app/oracle/admin/orclstd/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/u01/app/oracle/oradata/orclstd/orclstd01.ctl','/u01/app/oracle/oradata/orclstd/orclstd02.ctl','/u01/app/oracle/oradata/orclstd/orclstd03.ctl'
*.core_dump_dest='/u01/app/oracle/admin/orclstd/cdump'
*.db_block_size=8192
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orclstd','/u01/app/oracle/oradata/orclstd','/u01/app/oracle/oradata/orcl','/u01/rec_catalog','/u01/app/oracle/oradata/orclstd','/u01/app/oracle/oradata/orclstd','/u01/rec_catalog'
*.db_name='ORCLLDG'#db_name
*.db_recovery_file_dest='/u01/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.db_unique_name='orclldg'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.fal_client='orcl_192.168.1.223'
*.fal_server='orcls_192.168.1.222'
*.job_queue_processes=10
*.log_archive_config='dg_config=(orclpre,orclldg)'
*.log_archive_dest_1='location=/u01/arch_ldg valid_for=(online_logfiles,all_roles)
db_unique_name=orclldg'
*.log_archive_dest_2='service=orcl_192.168.1.222
arch valid_for=(online_logfiles, primary_role)
db_unique_name=orclpre'
*.log_archive_dest_3='location=/u01/arch_std valid_for=(standby_logfiles,standby_role)
db_unique_name=orclldg'
*.log_archive_dest_state_2='enable'
*.log_archive_format='archive_%t_%s_%r.arclog'
*.log_file_name_convert='/u01/app/oracle/oradata/orcl','/u01/app/oracle/oradata/orclstd','/u01/app/oracle/oradata/orclstd','/u01/app/oracle/oradata/orcl','/u01/rec_catalog','/u01/app/oracle/oradata/orclstd','/u01/app/oracle/oradata/orclstd','/u01/rec_catalog'
*.open_cursors=300
*.pga_aggregate_target=16777216
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=167772160
*.standby_file_management='auto'
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS1'
*.user_dump_dest='/u01/app/oracle/admin/orclstd/udump'
ORCLSTD_LG >create spfile from pfile='/u01/pfile';
File created.
ORCLSTD_LG > startup mount
ORACLE instance started.
Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 62916852 bytes
Database Buffers 100663296 bytes
Redo Buffers 2973696 bytes
Database mounted.
ORCLSTD_LG > alterd database open;
SP2-0734: unknown command beginning "alterd dat..." - rest of line ignored.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
ORCLSTD_LG > alter database open resetlogs;
Database altered.
開始應用REDO數(shù)據(jù)
ORCLSTD_LG >alter database start logical standby apply;
Database altered.
ORCLSTD_LG >alter database stop logical standby apply;
Database altered.
ORCLSTD_LG >select * from v$logfile;
GROUP# STATUS TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
IS_
---
3 ONLINE
/u01/app/oracle/oradata/orclstd/redo03.log
NO
2 ONLINE
/u01/app/oracle/oradata/orclstd/redo02.log
NO
GROUP# STATUS TYPE
---------- ------- -------
MEMBER
--------------------------------------------------------------------------------
IS_
---
1 ONLINE
/u01/app/oracle/oradata/orclstd/redo01.log
NO
ORCLSTD_LG >alter database add standby logfile group 4 '/u01/app/oracle/oradata/orclstd/stdredo01.log' size 50m;
Database altered.
ORCLSTD_LG >alter database add standby logfile group 5 '/u01/app/oracle/oradata/orclstd/stdredo02.log' size 50m;
Database altered.
ORCLSTD_LG >alter database add standby logfile group 6 '/u01/app/oracle/oradata/orclstd/stdredo03.log' size 50m;
Database altered.
重新執(zhí)行:
ORCLSTD_LG >alter database start logical standby apply immediate;
Database altered.
測試:
Primary:
SQL> select * from scott.test;
no rows selected
SQL> insert into scott.test values(1);
1 row created.
SQL> insert into scott.test values(2);
1 row created.
SQL> insert into scott.test values(3);
1 row created.
SQL> commit;
Commit complete.
Standby:
SQL> select * from scott.test;
ID
----------
1
2
3
邏輯Standby創(chuàng)建(轉(zhuǎn)換)成功……
總結(jié):
一、Physical Standby,Logical Standby (物理Standby及邏輯Standby)
Physical standby直接從主庫接受archived log,然后直接做基于block的物理恢復(更新或調(diào)整變化的block),所以physical standby在物理文件一級完全都等同于主庫。physical standby恢復只是底層的block apply, OS層面的工作,數(shù)據(jù)庫SCHEMA,包括索引都是一樣的。它是直接應用REDO或歸檔實現(xiàn)同步的 。不會涉及temp ,undo等。物理STANDBY可能的模式:只讀模式(OPEN
READONLY)和恢復模式(MANANGED RECOVERY)。
在邏輯STANDBY中,邏輯信息是相同的,但物理組織和數(shù)據(jù)結(jié)構(gòu)可以不同,它和主庫保持同步的方法是將接收的REDO轉(zhuǎn)換成SQL語句,然后在STANDBY上執(zhí)行SQL語句(SQL
Apply)。邏輯STANDBY除災難恢復外還有其它用途,比如用于用戶進行查詢和報表。
在9i R2之前,data guard的服務器只能運行在read only或者recover模式, 一個physical standby database在物理上完全等同主庫,當physical standby database正在做恢復的時候,不能打開用作其他用途。 而logical standby database只是在logical上等同需要恢復的schema, 所以在恢復的時候,可以同時打開做report(做查詢動作),也可以用戶和主庫不一樣的
數(shù)據(jù)對象等等,極大了提高了備用庫的利用率。
二、Dataguard
都是Standby。在Oracle 9i之前稱為Standby,9i或之后的Standby被改名為Data guard。不過功能上也有了很多的改進和區(qū)別 。
三、Standby下LGWR / ARCH傳輸
查看數(shù)據(jù)庫保護模式:
SQL> select DATABASE_ROLE,PROTECTION_MODE,PROTECTION_LEVEL from v$database;
1.最大性能(maximize performance):這是data guard默認的保護模式。primay上的事務commit前不需要從standby上收到反饋信息(主數(shù)據(jù)庫的提交操作不等待STANDBY),該模式在primary故障時可能丟失數(shù)據(jù),但standby對primary的性能影響最小。 可以使用LGWR ASYNC或者ARCH兩種傳輸模式。
ARCH傳輸模式:Primary DB上的online redo log寫滿或其他條件引起redo log寫歸檔的時候,redo log生成的archived log file寫到本地歸檔目錄的同時,寫入了Standby歸檔目錄。只是Primary db上的online redo log切換不必等Standby上的寫歸檔動作結(jié)束。
2.最大可用(maximize availability):在正常情況下,最大可用模式和最大保護模式一樣;在standby不可用時,最大可用模式會自動降低成最大性能模式,所以standby故障不會導致primay不可用。在問題糾正之后,Standby和主數(shù)據(jù)庫進行再同步,至少有一個standby可用的情況下,即使primary down機,也能保證不丟失數(shù)據(jù)。(不過當問題修復,再同步之前有必要FAILOVER,那么有些數(shù)據(jù)可能會丟失)。最大可用性模式Standby必須配置Standby
Redo log,Oracle推薦最大可用模式使用LGWR ASYNC(異步)模式傳輸。
采用最大可用的data guard模式,主庫往備庫傳遞在線日志(online redo log)信息,在線日志信息寫入備用庫的standby redo log,這些standby redo log歸檔后,備用庫應用歸檔日志。
LGWR還分為LGWR ASYNC(異步)和LGWR SYNC(同步)兩種。
最大保護
最大可用
最大性能
進程
LGWR
LGWR
LGWR或ARCH
網(wǎng)絡傳輸模式
SYNC
SYNC
LGWR時設置ASYNC
磁盤寫操作
AFFIRM
AFFIRM
NOAFFIRM
備用日志
YES
物理備用需要
LGWR和物理備用時需要
備用庫類型
物理Standby
物理或邏輯
物理或邏輯
最大保護(maximize protection):最高級別的保護模式。primay上的事務在commit前必須確認redo已經(jīng)傳遞到至少一個standby上,如果所有standby不可用,則primary會掛起。該模式能保證零數(shù)據(jù)丟失。對于最大保護和最高可用性模式,Standby數(shù)據(jù)庫必須配置standby redo log,并且oracle推薦所有數(shù)據(jù)庫都使用LGWR ASYNC模式傳輸。
本文原創(chuàng)發(fā)布php中文網(wǎng),轉(zhuǎn)載請注明出處,感謝您的尊重!
總結(jié)
以上是生活随笔為你收集整理的mysql可以使用dataguard_逻辑DataGuard的配置的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查看mysql的启动日志目录下_mysq
- 下一篇: 幂等校验是什么意思_阿里面试官:接口的幂