您的位置:首页 > 其它

创建DATAGUARD的主要步骤

2016-03-14 16:46 197 查看
準備工作:

分別在主庫和備庫都安裝上oracle軟件,在主庫上裝數據庫,備庫上不裝。

配置DataGuard

  1.在主備库中分別用$ netmgr命令创建监听和网络服务。

  用tnsping 相互ping,看能否ping通。

  2. 配置主庫為歸檔模式:

      查看 archive log list; 

      如果不是啟動到mount狀態,修改為歸檔模式

       alter database archivelog;

       打開數據庫:alter database open;

   3.更改主庫為強制歸檔模式

       可通過 select force_logging from v$database;查看

       alter database force logging;

       取消 alterdatbase no force logging;

    4.在主庫中創建pfile參數文件

        create pfile from spfile;

    5.編輯pfile文件,添加如下參數:
*.log_archive_dest_1='LOCATION=/data/myora/arch'
*.log_archive_dest_2='service=standby lgwr async noaffirm'
*.log_archive_dest_state_2=ENABLE
*.log_archive_format='%t_%s_%r.dbf'

    6.上一步中pfile的內容改變了,相應地要改變spfile的內容。方式新建一個spfile。

      startup pfile='/u01/product/oracle/dbs/initmyora.ora'

      create spfile from pfile;

    7.在主庫上創建備庫所用的控制文件
SQL> startup mount 
SQL> alter database create standby controlfile as '/data/myora/standby.ctl';
SQL> shutdown immediate

    8.備份主庫,複製(數據文件,剛建立standby控制文件,密碼文件,參數文件)

    9.修改備庫pfile

     *.log_archive_dest_1='LOCATION=/data/myora/arch'

     *.log_archive_dest_state_2=ENABLE

     *.log_archive_format='%t_%s_%r.dbf'

     *.standby_file_management=auto

      并將standby控制文件,改成備庫的控制文件

    10.在備庫上創建spfile

     SQL> startup pfile='/u01/product/oracle/dbs/initmyora.ora'

     SQL> create spfile from pfile;

    11. 把主庫也起來。

    12.配置standby redolog

      (最佳性能模式可以忽略,如果要轉為其他兩種模式則要建立)

        在主庫查看日誌組的數量和每個日誌文件的大小

        SQL> SELECT GROUP#, BYTES FROM V$LOG;

        在被庫中創建日誌組和redo log文件,PS:單實例日誌組數盡量比主庫多一個,大小一樣。語法如下:

        SQL>ALTER DATABASE ADD STANDBY LOGFILE group 4 ('/data/myora/standby_redo04.log') SIZE 50M;

        SQL>ALTER DATABASE ADD STANDBY LOGFILE group 5 ('/data/myora/standby_redo05.log') SIZE 50M;

        SQL>ALTER DATABASE ADD STANDBY LOGFILE group 6 ('/data/myora/standby_redo06.log') SIZE 50M;

        SQL>ALTER DATABASE ADD STANDBY LOGFILE group 7 ('/data/myora/standby_redo07.log') SIZE 50M;

        注:standby redolog的組數參考公式:(online redolog組數 + 1) * 數據庫線程數;單擊線程數為1,RAC一般為2。

        standby redolog的組成員數和大小也盡量和online redolog一樣。

   13. 在備庫上執行備庫恢復模式 

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

   14.結束這個恢復進程:

       SQL> alter database recover managed standby database cancel;

   15.將被庫啟動到open read only的狀態

       SQL> shutdown immediate

       SQL> startup mount

       SQL> alter database open read only;

   16.看主庫和備庫的日誌同步情況,確保已經同步 

        SQL> archive log list;

    檢驗:

   檢驗方法:在主庫中創建一張表,看在備庫是否可以查看。

    1.) 在主庫中創建一個表

        SQL> create table test_table(id number);

     看備庫上是否可以查到

        SQL> desc test_table;

       ERROR:  ORA-04043: 對象 test_table 不存在

    2.)備庫上接收數據,并自動同步:

       SQL> alter database recover managed standby database using current logfile disconnect from session;

       PS: disconnect from session選項是的Redo應用運行在後台會話中。

              using current logfile語句,使得Redo一旦被接收就能投入使用。

    3.) 再次验证数据是否同步。

        SQL>insert into test_table values(1);

        SQL> commit

        如果再備庫上能查到,表示數據實現了同步,說明dataguard配置成功了。

創建主備庫可以相互切換的DG需要的參數:

DB_NAME=

DB_UNIQUE_NAME=db1

LOG_ARCHIVE_CONFIG='DG_CONFIG=(db1,db2)'

LOG_ARCHIVE_DEST_1='LOCATION=/PATHT1/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=db1'

LOG_ARCHIVE_DEST_2='SERVICE=sty監聽名 ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) DB_UNIQUE_NAME=db2'

LOG_ARCHIVE_DEST_STATE_1=ENABLE

LOG_ARCHIVE_DEST_STATE_2=ENABLE

REMOTE_LOGIN_PASSWORDFILE=EXECLUSIVE

備用較色初始化參數

FAL_SERVER=db2

DB_FILE_NAME_CONVERT='db2' ,'db1'      ----如果路徑相同就不用轉換

LOG_FILE_NAME_CONVERT='db2歸檔路徑','db1歸檔路徑'.........

STANDBY_FILE_MANAGEMENT=AUTO
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: