mysql有dataguard吗_DataGuard部署
SQL> archive log list;
2.創建歸檔目錄
mkidr /oradata/arch
3.開啟歸檔
SQL> alter databasemount;
SQL>alter databasearchivelog;
SQL>alter system switch logfile;
4.修改主庫屬性
SQL> alter databaseforce logging;
SQL>select FORCE_LOGGING from v$database;
5.在主庫創建密碼文件、參數文件、以及standby控制文件
SQL> create pfile='/home/oracle/pfile.ora' from spfile;
6.密碼文件可以直接用現有的
ls $ORACLE_HOME/dbs/orapw*
7.創建standby控制文件
SQL> alter database create standby controlfile as '/home/oracle/controlstd.ctl';
8.主庫TNS配置
TEST=(DESCRIPTION=(ADDRESS= (PROTOCOL = TCP)(HOST = 10.63.230.10)(PORT = 1521))
(CONNECT_DATA=(SERVER=DEDICATED)
(SERVICE_NAME=TEST)
)
)
TESTBAK=(DESCRIPTION=(ADDRESS= (PROTOCOL = TCP)(HOST = 10.63.230.13)(PORT = 1521))
(CONNECT_DATA=(SERVER=DEDICATED)
(SERVICE_NAME=TESTBAK)
)
)
9.主庫備份數據庫
RMAN>run {
crosscheck backup ;
crosscheck archivelog all;
crosscheck backupset ;
delete noprompt obsolete device type disk;
delete noprompt expired backup device type disk;
backup as compressed backupset full database format'/oradata/rman/full_%d_%t_%s_%p' plus archivelog format '/oradata/rman/arch_%d_%t_%s_%p.bkp';
}
10.備份完畢后將rman備份文件,standby控制文件,密碼文件,參數文件一起傳到備庫
參數文件和standby控制文件放在/home/oracle/目錄下
密碼文件放在 $ORACLE_HOME/dbs/目錄下
注:如果目錄屬主不是 oracle.oinstall或者oracle.dba 需要修改目錄權限,文件傳完后,檢查下文件的用戶和組。
--備庫
1.創建數據庫目錄,根據自己的參數文件中的參數目錄而定
mkdir -p /u01/app/oracle/admin/test/adump
mkdir -p /oradata/rmanmkdir -p /oradata/arch
mkdir -p /oradata/test
2.使用參數文件開啟數據庫
SQL> startup nomount pfile='/home/oracle/pfile.ora';
3.導入standby控制文件
RMAN> restore controlfile from '/home/oracle/controlstd.ctl';
4.恢復數據文件
SQL> alter database mount;
RMAN> catalog start with '/oradata/rman/';
RMAN> restore database;
5.恢復歸檔文件
RMAN> recover database;
6.備庫TNS配置
TEST=(DESCRIPTION=(ADDRESS= (PROTOCOL = TCP)(HOST = 10.63.230.10)(PORT = 1521))
(CONNECT_DATA=(SERVER=DEDICATED)
(SERVICE_NAME=TEST)
)
)
TESTBAK=(DESCRIPTION=(ADDRESS= (PROTOCOL = TCP)(HOST = 10.63.230.13)(PORT = 1521))
(CONNECT_DATA=(SERVER=DEDICATED)
(SERVICE_NAME=TESTBAK)
)
)
7.創建standby redo log
在使用最大保護模式或是最大可用模式的時候需要在standby數據庫創建standby redo log,對于最大性能模式可以不用創建standby redo log
SQL> alter database addstandby logfilegroup 4 ('/oradata/test/std_redo04a.log') size 100m,group 5 ('/oradata/test/std_redo05a.log') size 100m,group 6 ('/oradata/test/std_redo06a.log') size 100m,group 7 ('/oradata/test/std_redo07a.log') size 100m;
SQL> alter database clear logfile group 1;
SQL> alter database clear logfile group 2;
SQL> alter database clear logfile group 3;
添加standby日志文件的規則:
standby日志最少應該比redo log 多一組。推薦的備重做日志數依賴于主數據庫上的線程數。
(每線程日志文件最大數目 + 1 ) * 線程數
否則standby日志在應用時報如下信息:
RFS[1]: No standby redo logfiles created
RFS[1]: Archived Log: '/oradata/arch/1_30_633287861.dbf'
在主庫添加完standby logfile后,當主庫切換為standby角色后會自動使用standby redo logfile,具體應用信息如下:
RFS[1]: Successfully opened standby log 4: '/oradata/test/std_redo04a.log'
修改主備庫參數
主庫primary
SQL> alter system set db_unique_name='test' scope=spfile;
SQL> alter system set fal_server='testbak' sid='*'scope=both;
SQL> alter system set fal_client='test' sid='*' scope=both;
SQL> alter system set standby_file_management=auto sid='*' scope=both;
SQL> alter system set log_archive_config='dg_config=(test,testbak)' sid='*' scope=both;
SQL> alter system set log_archive_dest_2='service=testbak lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=testbak' sid='*' scope=both;
SQL>alter system set log_archive_dest_state_2=enable;
備庫standby
SQL> alter system set db_unique_name='testbak' scope=spfile;
SQL> alter system set fal_server='test' sid='*'scope=both;
SQL> alter system set fal_client='testbak' sid='*' scope=both;
SQL> alter system set standby_file_management=auto sid='*' scope=both;
SQL> alter system set log_archive_config='dg_config=(test,testbak)' sid='*' scope=both;
SQL> alter system set log_archive_dest_2='service=test lgwr async valid_for=(online_logfiles,primary_role) db_unique_name=test' sid='*' scope=both;
SQL> alter system set log_archive_dest_state_2=enable;
開啟DG(10g不open)
SQL> alter database open;
SQL> alter database recover managed standby database disconnect from session using currentlogfile;
SQL> select process,client_process,sequence#,status from v$managed_standby;
停用DG
SQL> alter database recover managed standby database cancel;
如果主庫傳不過來歸檔,可以通過在主庫側手工修改參數如下:
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2='DEFER' SCOPE=MEMORY;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2='ENABLE' SCOPE=MEMORY;
至此dg搭建完畢
查詢dg延遲
SQL> col value fora20
SQL> col time_computedfora30
SQL> col namefora25
SQL>col unitfora30
SQL>col datum_timefora30
SQL>set line 400
SQL>select * from v$dataguard_stats;
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的mysql有dataguard吗_DataGuard部署的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win7装mysql5.5_Win7下m
- 下一篇: Mac OS X新建窗口的快捷键是什么(