搭建環境:
Red Hat Linux Enterprise 5.4
Oracle 10g R2
主機作業系統主要資訊為192.168.199.128.
搭建準備:
已存在主庫(生產庫)DB_NAME=mustang SID=april
開始搭建Data Guard
首先需要準備好參數檔案,設定一些必要的參數。在主庫,先通過spfile產生pfile檔案:
SQL>create pfile=’/home/oracle/product/10.2initapril.ora’ from spfile;
然後修改主庫新產生的initapril.ora參數檔案。在原有的基礎上添加如下內容:
- db_unique_name=mustang
-
- log_archive_config='DG_CONFIG=(mustang,standby)'
-
- log_archive_dest_2='service=standby arch async valid_for=(online_logfiles,primary_role)
-
- db_unique_name=standby'
-
- log_archive_dest_1='location=/home/oracle/archive valid_for=(all_logfiles,all_roles)
-
- db_unique_name=mustang'
-
- log_archive_dest_state_1=enable
-
- log_archive_dest_state_2=enable
-
- log_archive_format=%t_%s_%r.arc
-
- log_archive_max_processes=30
-
- fal_server=standby
-
- fal_client=mustang
-
- db_file_name_convert='standby','mustang'
-
- log_file_name_convert='/home/oracle/','/home/oracle/standby/'
-
- standby_file_management=auto
修改完參數檔案之後,要重新開啟主庫,然後通過iniapril.ora來建立spfile。如下:
- SQL>create spfile=’/home/oracle/product/10.2.0/db_1/dbs/spfileapril.ora’ from pfile=’
- /home/oracle/product/10.2.0/db_1/dbs/initapril.ora’;
接下來的工作就是要通過主庫的參數檔案,建立備庫需要的參數檔案,在主庫上運行:
- SQL>create pfile=’ /home/oracle/product/10.2.0/db_1/dbs/initstandby.ora’ from spfile;
編輯initstandby.ora。如下所示:
- standby.__db_cache_size=213909504
-
- standby.__large_pool_size=4194304
-
- *.control_files='/home/oracle/standby/standby.ctl'
-
- *.db_file_multiblock_read_count=8
-
- *.db_file_name_convert='standby','mustang'
-
- *.db_files=80
-
- *.db_name='mustang'
-
- *.db_unique_name='standby'
-
- *.fal_client='standby'
-
- *.fal_server='mustang'
-
- *.global_names=TRUE
-
- *.instance_name='standby'
-
- *.log_archive_config='DG_CONFIG=(mustang,standby)'
-
- *.log_archive_dest_1='location=/home/oracle/standby/archive'
-
- *.log_archive_dest_2='service=mustang arch async valid_for=(online_logfiles,primary_role)
-
- db_unique_name=mustang'
-
- *.log_archive_dest_state_1='enable'
-
- *.log_archive_dest_state_2='enable'
-
- *.log_archive_format='%t_%s_%r.arc'
-
- *.log_archive_max_processes=30
-
- *.log_buffer=32768
-
- *.log_checkpoint_interval=10000
-
- *.log_file_name_convert='/home/oracle/','/home/oracle/standby/'
-
- *.max_dump_file_size='10240'
-
- *.parallel_max_servers=5
-
- *.processes=50
-
- *.service_names='standby'
-
- *.sga_max_size=300M
-
- *.sga_target=300M
-
- *.standby_file_management='auto'
-
- *.undo_management='auto'
- *.undo_tablespace='undotbs'
儲存initstandby.ora參數檔案。通過initstandby.ora產生動態檔案spfilestandby.ora:
- SQL>create spfile=’/home/oracle/product/10.2.0/db_1/dbs/spfilestandby.ora’ from pfile=’
-
- /home/oracle/product/10.2.0/db_1/dbs/initstandby.ora’;
在主庫上建立我們的密碼檔案:
- [oracle@localhost dbs]$orapwd file=’ /home/oracle/product/10.2.0/db_1/dbs/orapwstandby’ password=oracle entries=10
通過主庫的控制檔案產生我們備庫的控制檔案:
- SQL>alter database create standby controlfile as ‘/home/oracle/standby.ctl’;