Oracle數據保護DataGuard安裝和配置二
續接上一篇。
主庫上的操作
強制日誌
Alter database force logging;
開啓歸檔,指定歸檔路徑
Shutdown immediate;
Startup mount;
Alter database archivelog;
Alter system set log_archive_dest_1 = ‘’;
Alter database open;
設置相關參數,通過pfile方式設置
create pfile='/home/oracle/pfile.txt' from spfile;
Shutdown immediate;
編輯pfile文件
Vi /home/oracle/pfile.txt
orcl.__large_pool_size=16777216
orcl.__oracle_base='/u01/oracle'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=754974720
orcl.__sga_target=2231369728
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=486539264
orcl.__streams_pool_size=0
*.audit_file_dest='/u01/oracle/admin/orcl/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/oracle/oradata/orcl/control01.ctl','/u01/oracle/fast_recovery_area/orcl/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl'
*.db_unique_name='prim'
*.fal_client='prim'
*.fal_server='pdg'
*.db_file_name_convert='/u01/oracle/oradata/orcl','/u01/oracle/oradata/orcl'
*.log_file_name_convert='/u01/oracle/oradata/orcl','/u01/oracle/oradata/orcl'
*.db_recovery_file_dest='/u01/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4322230272
*.diagnostic_dest='/u01/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.log_archive_config='DG_CONFIG=(prim,pdg)'
*.log_archive_dest_1='LOCATION=/u01/oracle/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=prim'
log_archive_dest_2 = 'SERVICE=pdg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=pdg'
*.log_archive_format='%t_%s_%r.arc'
*.standby_file_management='AUTO'
*.open_cursors=300
*.pga_aggregate_target=739246080
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=2217738240
*.undo_tablespace='UNDOTBS1'
編寫listener.ora
# Gracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/oracle/product/11.2.0)
(PROGRAM = extproc)
)
(SID_DESC =
(SID_NAME = orcl)
(ORACLE_HOME = /u01/oracle/product/11.2.0)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = prim_new.com)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
編寫tnsnames.ora
prim =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = prim_new.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prim)
)
)
pdg =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = pdg_new.com)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdg)
)
)
這裏的名字就是對應pfile中參數service後面的服務名。
select name,remote_archive,database_role,guard_status,db_unique_name from v$database;
查看主狀態,是否已經就緒:
NAME REMOTE_A DATABASE_ROLE GUARD_S DB_UNIQUE_NAME
--------- -------- ---------------- ------- ------------------------------
ORCL ENABLED PRIMARY NONE prim
備庫需要的相關文件
密碼文件
在主庫上:
生成:
[oracle@prim_new database]$ cd $ORACLE_HOME/dbs
[oracle@prim_new dbs]$ orapwd file=./orapw$ORACLE_SID password=oracle123 force=y
然後scp傳輸到備庫,需要在同一個目錄下:
[oracle@prim_new dbs]$ scp ./orapw$ORACLE_SID pdg.up.com:$ORACLE_HOME/dbs/
控制文件
在主庫上生成控制文件:
alter database create standby controlfile as '/u01/control01.ctl';
然後傳輸到與主庫同一個目錄下。由於備機上時安裝了與主機上完全相同目錄的數據庫,那麼只需要將原來的文件刪除保留目錄就行,先備機上(相應目錄上)刪除oradata下面的所有文件。
備機上:
Shutdown immediate;
主機上:
scp /u01/control01.ctl pdg_new.com:/u01/oracle/oradata/orcl/control01.ctl
scp /u01/control01.ctl pdg_new.com:/u01/oracle/fast_recovery_area/orcl/control02.ctl
其他核心文件
數據文件,redo,歸檔文件全部傳輸到備庫上,此時我將主庫處於mount狀態
主機上:shutdown immediate;
Startup mount;
Redo:
[oracle@prim_new orcl]$ scp *.log pdg_new.com:/u01/oracle/oradata/orcl/
Dbf:
[oracle@prim_new orcl]$ scp *.dbf pdg_new.com:/u01/oracle/oradata/orcl/
Archivelog:
[oracle@prim_new orcl]$ scp /u01/oracle/archivelog/*.arc pdg_new.com:/u01/oracle/archivelog/
Listener,tnsnames.ora
從主庫上傳輸給備機,並且適當修改
[oracle@prim_new orcl]$ cd /u01/oracle/product/11.2.0/network/admin/
[oracle@prim_new admin]$ ll
total 16
-rw-r--r--. 1 oracle oinstall 475 Jan 8 06:58 listener.ora
drwxr-xr-x. 2 oracle oinstall 4096 Jan 8 03:29 samples
-rw-r--r--. 1 oracle oinstall 205 May 11 2011 shrept.lst
-rw-r--r--. 1 oracle oinstall 350 Jan 8 06:52 tnsnames.ora
[oracle@prim_new admin]$ scp *.ora pdg_new:$ORACLE_HOME/network/admin/
Pfile
將主機上的pfile文件傳輸到備機
[oracle@prim_new admin]$ scp /home/oracle/pfile.txt pdg_new:/home/oracle/pfile.txt
oracle@pdg_new's password:
pfile.txt
修改pfile.txt:
orcl.__large_pool_size=16777216
orcl.__oracle_base='/u01/oracle'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=754974720
orcl.__sga_target=2231369728
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=486539264
orcl.__streams_pool_size=0
*.audit_file_dest='/u01/oracle/admin/orcl/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/oracle/oradata/orcl/control01.ctl','/u01/oracle/fast_recovery_area/orcl/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl'
*.db_unique_name='pdg'
*.fal_client='pdg'
*.fal_server='prim'
*.db_file_name_convert='/u01/oracle/oradata/orcl','/u01/oracle/oradata/orcl'
*.log_file_name_convert='/u01/oracle/oradata/orcl','/u01/oracle/oradata/orcl'
*.db_recovery_file_dest='/u01/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4322230272
*.diagnostic_dest='/u01/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.log_archive_config='DG_CONFIG=(prim,pdg)'
*.log_archive_dest_1='LOCATION=/u01/oracle/archivelog VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=pdg'
*.log_archive_dest_2='SERVICE=prim LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=prim'
*.log_archive_format='%t_%s_%r.arc'
*.open_cursors=300
*.pga_aggregate_target=739246080
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sga_target=2217738240
*.undo_tablespace='UNDOTBS1'
啓動備庫到mount
備庫:startup pfile=’/home/oracle/pfile.txt’ mount
主機:alter database open;因爲剛纔是mount狀態
alter database set standby database to maximize availability;
完成後,在備庫上查看狀態:
SQL> select name,remote_archive,database_role,guard_status,db_unique_name from v$database;
NAME REMOTE_A DATABASE_ROLE GUARD_S DB_UNIQUE_NAME
--------- -------- ---------------- ------- ------------------------------
ORCL ENABLED PHYSICAL STANDBY NONE pdg
備庫開啓日誌應用
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;