Linux 下建立Oracle 10g DG和Broker配置
最近有空,參考了Oracle文件和三思同學的文件,用虛擬機器在RHEL4上面做了一下ORACLE 10G 的DG和Broker,將做實驗步驟記錄下來,以備後查。
環境和基本配置如下:
配置項 |
主庫 |
備庫 |
伺服器 |
虛擬機器1 |
虛擬機器2 |
作業系統 |
Red Hat Enterprise 4 |
Red Hat Enterprise 4 |
Oracle軟體 |
Oracle 10.2.0.1 |
Oracle 10.2.0.1 |
IP |
192.168.100.21 |
192.168.100.22 |
主機名 |
plindb |
slindb |
資料儲存 |
檔案系統 |
檔案系統 |
db_name |
ordb |
ordb |
sid |
ordb |
ordb |
db_unique_name |
pordb |
sordb |
Service_name |
pordb |
sordb |
實驗內容:
1.物理StandBy建立
2.DG幾種執行模式切換
3.主備庫切換
4.BROKER配置及應用測試
物理StandBy建立
一.在主庫上操作
1.將資料庫修改為強行記錄日誌
SQL> ALTER DATABASE FORCE LOGGING;
2.如果資料沒有執行在歸檔模式下,需將資料切換到歸檔模式
SQL>alter system set LOG_ARCHIVE_DEST_1='LOCATION=/oracle/archp/';
SQL>shutdown immediate
SQL>startup mount
SQL>alter database archivelog;
SQL>alter databse open;
3.建立pfile
SQL>create pfile=’/oracle/backup/ppfile.ora’;
修改ppfile為:
ordb.__db_cache_size=83886080
ordb.__java_pool_size=4194304
ordb.__large_pool_size=4194304
ordb.__shared_pool_size=71303168
ordb.__streams_pool_size=0
*.audit_file_dest='/oracle/admin/ordb/adump'
*.background_dump_dest='/oracle/admin/ordb/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/oracle/oradata/ORDB/controlfile/o1_mf_7fc3k0fr_.ctl'
*.core_dump_dest='/oracle/admin/ordb/cdump'
*.db_block_size=8192
*.db_create_file_dest='/oracle/oradata'
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_file_name_convert='/oracle/oradata/sordb','/oracle/oradata/pordb'
*.db_name='ordb'
*.db_recovery_file_dest='/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.db_unique_name='pordb'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ordbXDB)'
*.fal_server='sordb'
*.fal_client='pordb'
*.job_queue_processes=10
*.log_archive_config='DG_CONFIG=(pordb,sordb)'
*.log_archive_dest_1='LOCATION=/oracle/archp/'
*.log_archive_dest_2='SERVICE=sordb lgwr sync affirm VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) db_unique_name=sordb'
log_archive_dest_state_1=ENABLE
log_archive_dest_state_2=ENABLE
*.log_file_name_convert='/oracle/oradata/sordb','/oracle/oradata/pordb'
*.open_cursors=150
*.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='/oracle/admin/ordb/udump'
4.使用新的pfile 啟動資料庫並建立新的spfile,使用新的spfile啟動資料庫
SQL> startup nomount pfile='/oracle/backup/ppfile.ora';
ORACLE instance started.
Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 79694068 bytes
Database Buffers 83886080 bytes
Redo Buffers 2973696 bytes
SQL> create spfile from pfile='/oracle/backup/ppfile.ora';
File created.
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 79694068 bytes
Database Buffers 83886080 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
5.建立監聽和網路服務名
使用netca建立監聽
lsnrctl status|start|stop
[oracle@plindb admin]$ cat listener.ora
# listener.ora Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC=
(SID_NAME=ordb)
(GLOBAL_DBNAME=pordb_DGMGRL)
(ORACLE_HOME=/oracle/product/10.2.0/db_1))
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = plindb)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
使用netmgr建立網路服務名,服務名為pordb
Tnsping pordb
[oracle@plindb admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
PORDB=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=plindb)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=pordb)
)
)
SORDB=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=slindb)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=sordb)
)
)
6.修改資料的/etc/hosts檔案的
cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost plindb
192.168.100.21 plindb
192.168.100.22 slindb
7.使用rman備份控制檔案,資料檔案和歸檔日誌檔案
備份控制檔案:
[oracle@plindb backup]$ rman target /
Recovery Manager: Release 10.2.0.1.0 - Production on Wed Dec 7 03:14:15 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: ORDB (DBID=588555936)
RMAN> backup format '/oracle/backup/bk_%U' current controlfile for standby;
Starting backup at 07-DEC-11
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=141 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including standby control file in backupset
channel ORA_DISK_1: starting piece 1 at 07-DEC-11
channel ORA_DISK_1: finished piece 1 at 07-DEC-11
piece handle=/oracle/backup/bk_0hmtj20r_1_1 tag=TAG20111207T031435 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 07-DEC-11
備份資料檔案和歸檔日誌檔案:
RMAN> backup format '/oracle/backup/backup_%U' database plus archivelog;
Starting backup at 07-DEC-11
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=3 recid=2 stamp=768702894
…
input archive log thread=1 sequence=42 recid=40 stamp=769230736
input archive log thread=1 sequence=43 recid=41 stamp=769230886
channel ORA_DISK_1: starting piece 1 at 07-DEC-11
channel ORA_DISK_1: finished piece 1 at 07-DEC-11
piece handle=/oracle/backup/backup_0imtj216_1_1 tag=TAG20111207T031446 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:17
Finished backup at 07-DEC-11
Starting backup at 07-DEC-11
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/oracle/oradata/ORDB/datafile/o1_mf_system_7fc3j2qj_.dbf
input datafile fno=00003 name=/oracle/oradata/ORDB/datafile/o1_mf_sysaux_7fc3j2r4_.dbf
input datafile fno=00002 name=/oracle/oradata/ORDB/datafile/o1_mf_undotbs1_7fc3j2v5_.dbf
input datafile fno=00004 name=/oracle/oradata/ORDB/datafile/o1_mf_users_7fc3j2vs_.dbf
channel ORA_DISK_1: starting piece 1 at 07-DEC-11
channel ORA_DISK_1: finished piece 1 at 07-DEC-11
piece handle=/oracle/backup/backup_0jmtj21n_1_1 tag=TAG20111207T031503 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:35
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel ORA_DISK_1: starting piece 1 at 07-DEC-11
channel ORA_DISK_1: finished piece 1 at 07-DEC-11
piece handle=/oracle/backup/backup_0kmtj22q_1_1 tag=TAG20111207T031503 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 07-DEC-11
Starting backup at 07-DEC-11
current log archived
using channel ORA_DISK_1
channel ORA_DISK_1: starting archive log backupset
channel ORA_DISK_1: specifying archive log(s) in backup set
input archive log thread=1 sequence=44 recid=42 stamp=769230941
channel ORA_DISK_1: starting piece 1 at 07-DEC-11
channel ORA_DISK_1: finished piece 1 at 07-DEC-11
piece handle=/oracle/backup/backup_0lmtj22t_1_1 tag=TAG20111207T031541 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:02
Finished backup at 07-DEC-11
8.將備份檔案,pfile,密碼檔案拷貝到備庫的機器上,目錄路徑要與主庫上一致
[oracle@plindb backup]$ scp /oracle/backup/* slindb:/oracle/backup/
oracle@slindb's password:
backup_0imtj216_1_1 100% 195MB 8.9MB/s 00:22
backup_0jmtj21n_1_1 100% 549MB 10.2MB/s 00:54
backup_0kmtj22q_1_1 100% 7040KB 6.9MB/s 00:01
backup_0lmtj22t_1_1 100% 11KB 11.0KB/s 00:00
bk_0hmtj20r_1_1 100% 7008KB 6.8MB/s 00:01
ppfile.ora 100% 1427 1.4KB/s 00:00
scp $ORACLE_HOME/dbs/orapwordb slindb:/oracle/product/10.2.0.1/db_1/dbs
oracle@slindb's password:
orapwordb 100% 1536 8.9MB/s 00:00
二.備庫上操作
1. 備庫上只安裝Oracle軟體
注:這裡測試是直接複製的虛擬機器修改的
2. 建立監聽和網路服務名
(與主庫步驟相同,不同的是機名和GLOBAL_DBNAME)
使用netca建立監聽
lsnrctl status|start|stop
[oracle@plindb admin]$ cat listener.ora
# listener.ora Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
(SID_DESC=
(SID_NAME=ordb)
(GLOBAL_DBNAME=sordb_DGMGRL)
(ORACLE_HOME=/oracle/product/10.2.0/db_1))
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = slindb)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
使用netmgr建立網路服務名,服務名為sordb
Tnsping pordb
Tnsping sordb
[oracle@plindb admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
PORDB=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=plindb)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=pordb)
)
)
SORDB=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST=slindb)(PORT=1521))
)
(CONNECT_DATA=
(SERVICE_NAME=sordb)
)
)
3. 修改資料的/etc/hosts檔案的
cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1 localhost.localdomain localhost plindb
192.168.100.21 plindb
192.168.100.22 slindb
4.重新命名從主庫機器上拷貝過來的pfile.ora為spfile.ora,修改為
ordb.__db_cache_size=83886080
ordb.__java_pool_size=4194304
ordb.__large_pool_size=4194304
ordb.__shared_pool_size=71303168
ordb.__streams_pool_size=0
*.audit_file_dest='/oracle/admin/sordb/adump'
*.background_dump_dest='/oracle/admin/sordb/bdump'
*.compatible='10.2.0.1.0'
*.control_files='/oracle/oradata/SORDB/controlfile/o1_mf_7fwtzvqw_.ctl'
*.core_dump_dest='/oracle/admin/sordb/cdump'
*.db_block_size=8192
*.db_create_file_dest='/oracle/oradata'
*.db_domain=''
*.db_file_multiblock_read_count=16
*.db_file_name_convert='/oracle/oradata/pordb','/oracle/oradata/sordb'
*.db_name='ordb'
*.db_recovery_file_dest='/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.db_unique_name='sordb'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ordbXDB)'
*.fal_server='pordb'
*.fal_client='sordb'
*.job_queue_processes=10
*.log_archive_config='DG_CONFIG=(pordb,sordb)'
*.log_archive_dest_1='LOCATION=/oracle/archp'
*.log_archive_dest_2='SERVICE=pordb lgwr sync affirm VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) db_unique_name=pordb'
log_archive_dest_state_1=ENABLE
log_archive_dest_state_2=ENABLE
*.log_file_name_convert='/oracle/oradata/pordb','/oracle/oradata/sordb'
*.open_cursors=150
*.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='/oracle/admin/sordb/udump'
5.根據pfile中的引數來建立需要的目錄
mkdir -p /oracle/admin/sordb/adump
mkdir -p /oracle/admin/sordb/bdump
mkdir -p /oracle/admin/sordb/cdump
mkdir -p /oracle/admin/sordb/udump
mkdir -p /oracle/admin/sordb/pfile
mkdir -p /oracle/admin/sordb/script
mkdir -p /oracle/archp
mkdir -p /oradata/backup
mkdir -p /oracle/flash_recovery_area
6.使用pfile將資料庫啟動到nomount狀態
SQL> startup nomount pfile='/oracle/backup/spfile.ora';
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
7.確認主庫和備庫間的網路是否正常,在主庫和備庫上都做如下檢查
檢視監聽是否啟動,如果沒啟動就執行命令啟動
$ lsnrctl status
啟動命令
$ l snrctl start
檢視網路服務名能否連通
$ tnsping pordb
$ tnsping sordb
測試從備庫上能否通過網路連線到主庫的資料庫
sqlplus /nolog
connect sys/oracle@pordb as sysdba
8.使用 rman duplicate 建立備庫
[oracle@slindb bin]$ ./rman target sys/oracle@pordb auxiliary /
Recovery Manager: Release 10.2.0.1.0 - Production on Wed Dec 7 03:23:04 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
connected to target database: ORDB (DBID=588555936)
connected to auxiliary database: ORDB (not mounted)
RMAN> duplicate target database for standby nofilenamecheck;
Starting Duplicate Db at 07-DEC-11
using target database control file instead of recovery catalog
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: sid=156 devtype=DISK
contents of Memory Script.:
{
restore clone standby controlfile;
sql clone 'alter database mount standby database';
}
executing Memory Script
Starting restore at 07-DEC-11
using channel ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: starting datafile backupset restore
channel ORA_AUX_DISK_1: restoring control file
channel ORA_AUX_DISK_1: reading from backup piece /oracle/backup/bk_0hmtj20r_1_1
channel ORA_AUX_DISK_1: restored backup piece 1
piece handle=/oracle/backup/bk_0hmtj20r_1_1 tag=TAG20111207T031435
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:03
output filename=/oracle/oradata/SORDB/controlfile/o1_mf_7fwtzvqw_.ctl
Finished restore at 07-DEC-11
sql statement: alter database mount standby database
released channel: ORA_AUX_DISK_1
contents of Memory Script.:
{
set newname for tempfile 1 to
"/oracle/oradata/ORDB/datafile/o1_mf_temp_7fc3kjhr_.tmp";
switch clone tempfile all;
set newname for datafile 1 to
"/oracle/oradata/ORDB/datafile/o1_mf_system_7fc3j2qj_.dbf";
set newname for datafile 2 to
"/oracle/oradata/ORDB/datafile/o1_mf_undotbs1_7fc3j2v5_.dbf";
set newname for datafile 3 to
"/oracle/oradata/ORDB/datafile/o1_mf_sysaux_7fc3j2r4_.dbf";
set newname for datafile 4 to
"/oracle/oradata/ORDB/datafile/o1_mf_users_7fc3j2vs_.dbf";
restore
check readonly
clone database
;
}
executing Memory Script
executing command: SET NEWNAME
renamed temporary file 1 to /oracle/oradata/ORDB/datafile/o1_mf_temp_7fc3kjhr_.tmp in control file
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting restore at 07-DEC-11
allocated channel: ORA_AUX_DISK_1
channel ORA_AUX_DISK_1: sid=156 devtype=DISK
channel ORA_AUX_DISK_1: starting datafile backupset restore
channel ORA_AUX_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /oracle/oradata/ORDB/datafile/o1_mf_system_7fc3j2qj_.dbf
restoring datafile 00002 to /oracle/oradata/ORDB/datafile/o1_mf_undotbs1_7fc3j2v5_.dbf
restoring datafile 00003 to /oracle/oradata/ORDB/datafile/o1_mf_sysaux_7fc3j2r4_.dbf
restoring datafile 00004 to /oracle/oradata/ORDB/datafile/o1_mf_users_7fc3j2vs_.dbf
channel ORA_AUX_DISK_1: reading from backup piece /oracle/backup/backup_0jmtj21n_1_1
channel ORA_AUX_DISK_1: restored backup piece 1
piece handle=/oracle/backup/backup_0jmtj21n_1_1 tag=TAG20111207T031503
channel ORA_AUX_DISK_1: restore complete, elapsed time: 00:00:35
Finished restore at 07-DEC-11
contents of Memory Script.:
{
switch clone datafile all;
}
executing Memory Script
datafile 1 switched to datafile copy
input datafile copy recid=8 stamp=769231527 filename=/oracle/oradata/SORDB/datafile/o1_mf_system_7fwv04cx_.dbf
datafile 2 switched to datafile copy
input datafile copy recid=9 stamp=769231527 filename=/oracle/oradata/SORDB/datafile/o1_mf_undotbs1_7fwv04fq_.dbf
datafile 3 switched to datafile copy
input datafile copy recid=10 stamp=769231527 filename=/oracle/oradata/SORDB/datafile/o1_mf_sysaux_7fwv04do_.dbf
datafile 4 switched to datafile copy
input datafile copy recid=11 stamp=769231527 filename=/oracle/oradata/SORDB/datafile/o1_mf_users_7fwv04go_.dbf
Finished Duplicate Db at 07-DEC-11
從輸出資訊可以看到,備庫實際已經啟動到mount狀態。
注:此處有一個問題,如果你的資料庫檔案是使用OMF管理的,那麼使用rman建立的備庫的資料檔名已經與主庫的檔名不一樣了,此時需將引數檔案裡的控制檔案的路徑和名稱修改為備庫上的實際路徑和名稱,否則啟動資料庫會報錯。
9.檢視和應用歸檔日誌
此時可以檢視得到主庫的歸檔日誌已經通過rfs程式傳輸到備庫:
ls –al /oracle/archp/
SQL> select process from v$managed_standby;
PROCESS
---------
ARCH
ARCH
RFS
RFS
應用從主庫傳輸過來的歸檔日誌:
SQL> recover managed standby database disconnect from session;
Media recovery complete.
此時檢視歸檔日誌應用狀態,已經變為已應用:
SQL> select process from v$managed_standby;
PROCESS
---------
ARCH
ARCH
MRP0
RFS
RFS
是不是發現多了一個程式:MRP0 這個就是歸檔日誌恢復程式
SQL> select sequence#,first_time,next_time,applied from v$archived_log order by sequence#;
SEQUENCE# FIRST_TIM NEXT_TIME APP
---------- --------- --------- ---
3 07-DEC-11 07-DEC-11 YES
…
48 07-DEC-11 07-DEC-11 YES
49 07-DEC-11 07-DEC-11 YES
取消歸檔日誌應用:
SQL> recover managed standby database cancel;
Media recovery complete.
10.驗證測試
在主庫上插入資料,並切換日誌
SQL> conn scott/tiger
Connected.
SQL> select * from test;
ID NAME
---------- ------------------------------
1001 zhangyang
1002 zhangshan
1003 lishi
1004 wangwu
1005 zhaoliu
1006 chengjiu
1008 zhengwu
1009 chengcheng
9 rows selected.
SQL> insert into test values (1010,' chengcheng ');
1 row created.
SQL> commit;
Commit complete.
SQL> select * from scott.test;
ID NAME
---------- ------------------------------
1001 zhangyang
1002 zhangshan
1003 lishi
1004 wangwu
1005 zhaoliu
1006 chengjiu
1008 zhengwu
1009 chengcheng
1010 zhengheng
10rows selected.
SQL> conn / as sysdba
檢視當前日誌資料:
SQL> select sequence#,first_time,next_time,applied from v$archived_log order by sequence#;
SEQUENCE# FIRST_TIM NEXT_TIME APP
---------- --------- --------- ---
3 27-OCT-11 02-NOV-11 YES
…
49 13-NOV-11 13-NOV-11 YES
50 13-NOV-11 13-NOV-11 YES
51 13-NOV-11 13-NOV-11 YES
52 13-NOV-11 13-NOV-11 NO
50 rows selected.
SQL> alter system switch logfile;
System altered.
切換日誌後,再次檢視當前日誌資料:
SQL> select sequence#,first_time,next_time,applied from v$archived_log order by sequence#;
SEQUENCE# FIRST_TIM NEXT_TIME APP
---------- --------- --------- ---
3 27-OCT-11 02-NOV-11 YES
…
49 13-NOV-11 13-NOV-11 YES
50 13-NOV-11 13-NOV-11 YES
51 13-NOV-11 13-NOV-11 YES
52 13-NOV-11 13-NOV-11 NO
53 13-NOV-11 13-NOV-11 NO
在備庫上檢視日誌應用:
SQL> select sequence#,first_time,next_time,applied from v$archived_log order by sequence#;
SEQUENCE# FIRST_TIM NEXT_TIME APP
---------- --------- --------- ---
16 03-NOV-11 04-NOV-11 NO
…
49 13-NOV-11 13-NOV-11 YES
49 13-NOV-11 13-NOV-11 YES
50 13-NOV-11 13-NOV-11 NO
50 13-NOV-11 13-NOV-11 YES
51 13-NOV-11 13-NOV-11 YES
51 13-NOV-11 13-NOV-11 NO
52 13-NOV-11 13-NOV-11 YES
53 13-NOV-11 13-NOV-11 YES
SQL> alter database recover managed standby database cancel;
Database altered.
SQL> alter database open;
Database altered.
SQL> select * from scott.test;
ID NAME
---------- ------------------------------
1001 zhangyang
1002 zhangshan
1003 lishi
1004 wangwu
1005 zhaoliu
1006 weiqi
1006 chengjiu
1008 zhengwu
1009 chengcheng
1010 zhengheng
102 rows selected.
能查詢到剛剛插入的資料,在備庫上被成功應用。
DG模式切換
Oracle DG支援執行三種模式:
最大保護 maximize protection
最大可用 maximize availability
最佳效能 maximize performance
當physical standby建立後,預設為最佳效能模式:
SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE
如果需要切換到最大可用或者最大保護模式,需要做以下改動:
1.需要對一些引數進行修改
2.需要確定standby logfile是否新增,如沒有需新增standby logfile,新增的數量為:(redo log數量+1)X instance數量,最佳效能模式下使用lgwr同步傳送日誌的話,也必須使用standby logfile,如果使用arch傳送日誌就不需要。
新增standby logfile
主庫:
SQL>alter database add standby logfile thread 1 size 50m;
SQL>alter database add standby logfile thread 1 size 50m;
SQL>alter database add standby logfile thread 1 size 50m;
SQL>alter database add standby logfile thread 1 size 50m;
備庫:
SQL>alter database add standby logfile thread 1 size 50m;
SQL>alter database add standby logfile thread 1 size 50m;
SQL>alter database add standby logfile thread 1 size 50m;
SQL>alter database add standby logfile thread 1 size 50m;
檢視新增的standby logfile:
SQL>select * from v$logfile;
SQL>select * from v$standby_log;
刪除standby logfile:
SQL>alter database drop standby logfile group 8;
切換命令:
SQL>alter database set standby database to maximize protection;
SQL>alter database set standby database to maximize availability;
SQL>alter database set standby database to maximize performance;
從最佳效能模式切換到最在可用:
檢視當前主庫和備庫的保護模式和保護級別
主庫:
SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE
備庫:
SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE
將主庫啟動到mount狀,然後修改主庫相關引數:
SQL>Shutdown immediate
SQL>Startup mount
SQL>Alter system set log_archive_dest_2='SERVICE=sordb lgwr sync affirm VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) db_unique_name=sordb'
SQL>alter database set standby database to maximize availability;
SQL>alter database open;
再次檢視主庫和備庫的保護模式和保護級別:
主庫:
SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY
備庫:
SQL> select protection_mode,protection_level from v$database;
PROTECTION_MODE PROTECTION_LEVEL
-------------------- --------------------
MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY
切換成功:可以看到保護模式和保護級別都是變成最大可用模式了。
主庫和備庫切換(Switchover)
1.在主庫上操作
檢視資料庫角色和切換狀態:
SQL> select database_role,switchover_status from v$database;
DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PRIMARY TO STANDBY
如果狀態為:to standby 表示主庫當前支援切換為standby,使用下面語句進行切換:
alter database commit to switchover to physical standby
SQL> select database_role,switchover_status from v$database;
DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PRIMARY SESSIONS ACTIVE
如果狀態為:session active表示當前有活動的會話,需先將活動的會話kill掉或者使用下面語句切換:
alter database commit to switchover to physical standby with session shutdown;
重啟資料庫到moumt
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 109053520 bytes
Database Buffers 171966464 bytes
Redo Buffers 2973696 bytes
Database mounted.
再次檢視切換狀態,狀態變為to primary:
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
2.備庫上操作
檢視切換狀態:
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
正常情況為to primary,如果狀態為swithover pending:
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
SWITCHOVER PENDING
則需要先進行一下恢復再切換:
SQL> alter database recover managed standby database disconnect from session;
Database altered
再次檢視切換狀態,狀態變為to primary:
SQL> select switchover_status from v$database;
SWITCHOVER_STATUS
--------------------
TO PRIMARY
檢視資料庫角色和切換狀態:
SQL> select database_role,switchover_status from v$database;
DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PHYSICAL STANDBY TO PRIMARY
將備庫切換成主庫:
Database altered.
SQL> alter database commit to switchover to primary;
Database altered.
重啟資料庫:
SQL> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218992 bytes
Variable Size 96470608 bytes
Database Buffers 184549376 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
再次檢視資料庫角色和切換狀態:
SQL> select database_role,switchover_status from v$database;
DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PRIMARY SESSIONS ACTIVE
資料庫角色和切換狀態都發生改變,分別為:primary,sessions active
3.在新的庫(原主庫)應用恢復歸檔日誌
SQL> alter database recover managed standby database disconnect from session;
Database altered
4.驗證
在新的主庫上插入資料,並切換日誌
SQL> conn scott/tiger
Connected.
SQL> select * from test;
ID NAME
---------- ------------------------------
1001 zhangyang
1002 zhangshan
1003 lishi
1004 wangwu
1005 zhaoliu
1006 weiqi
1006 chengjiu
1008 zhengwu
1009 chengcheng
1010 zhengheng
1011 zhangrang
11 rows selected.
SQL> insert into test values (1012,'wangfie');
1 row created.
SQL> commit;
Commit complete.
SQL> select * from scott.test;
ID NAME
---------- ------------------------------
1001 zhangyang
1002 zhangshan
1003 lishi
1004 wangwu
1005 zhaoliu
1006 weiqi
1006 chengjiu
1008 zhengwu
1009 chengcheng
1010 zhengheng
1011 zhangrang
ID NAME
---------- ------------------------------
1012 wangfie
12 rows selected.
SQL> conn / as sysdba
SQL> select sequence#,first_time,next_time,applied from v$archived_log order by sequence#;
SEQUENCE# FIRST_TIM NEXT_TIME APP
---------- --------- --------- ---
3 27-OCT-11 02-NOV-11 YES
….
49 13-NOV-11 13-NOV-11 YES
50 13-NOV-11 13-NOV-11 YES
51 13-NOV-11 13-NOV-11 YES
52 13-NOV-11 13-NOV-11 NO
50 rows selected.
SQL> alter system switch logfile;
System altered.
SQL> select sequence#,first_time,next_time,applied from v$archived_log order by sequence#;
SEQUENCE# FIRST_TIM NEXT_TIME APP
---------- --------- --------- ---
3 27-OCT-11 02-NOV-11 YES
…
49 13-NOV-11 13-NOV-11 YES
50 13-NOV-11 13-NOV-11 YES
51 13-NOV-11 13-NOV-11 YES
52 13-NOV-11 13-NOV-11 NO
53 13-NOV-11 13-NOV-11 NO
在新的備庫上檢視日誌應用:
SEQUENCE# FIRST_TIM NEXT_TIME APP
---------- --------- --------- ---
3 03-NOV-11 04-NOV-11 NO
…
49 13-NOV-11 13-NOV-11 YES
49 13-NOV-11 13-NOV-11 YES
50 13-NOV-11 13-NOV-11 NO
50 13-NOV-11 13-NOV-11 YES
51 13-NOV-11 13-NOV-11 YES
51 13-NOV-11 13-NOV-11 NO
52 13-NOV-11 13-NOV-11 YES
53 13-NOV-11 13-NOV-11 YES
SQL> alter database recover managed standby database cancel;
Database altered.
SQL> alter database open;
Database altered.
SQL> select * from scott.test;
ID NAME
---------- ------------------------------
1001 zhangyang
1002 zhangshan
1003 lishi
1004 wangwu
1005 zhaoliu
1006 weiqi
1006 chengjiu
1008 zhengwu
1009 chengcheng
1010 zhengheng
1011 zhangrang
1012 wangfieqi
12 rows selected.
能查詢到剛剛插入的資料,主備庫之間的switchover方式切換成功。
DG broker配置及應用測試
一.配置broker的先決條件
1.資料庫版本:主庫和備庫版本必須10g r2 或者更高,企業版
2.引數檔案:必須使用spfile
SQL> show parameter spfile
NAME TYPE VALUE
------------ ----------- ---------------
spfile string /oracle/product/10.2.0/db_1/db s/spfileordb.ora
3.確定主備庫的compatibe值相同
4.主備庫dg_broker_start的值必須為:true
SQL> alter system set dg_broker_start=true scope=both;
System altered.
SQL> show parameter dg_broker
NAME TYPE VALUE
--------------------------- -------- ------------------------------
dg_broker_config_file1 string /oracle/product/10.2.0/db_1/db s/dr1pordb.dat
dg_broker_config_file2 string /oracle/product/10.2.0/db_1/db s/dr2pordb.dat
dg_broker_start boolean TRUE
5.必須在監聽裡設定global_name的值
主庫:
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=ordb)
(GLOBAL_DBNAME=pordb_DGMGRL)
(ORACLE_HOME=/oracle/product/10.2.0/db_1)))
備庫:
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(SID_NAME=ordb)
(GLOBAL_DBNAME=sordb_DGMGRL)
(ORACLE_HOME=/oracle/product/10.2.0/db_1)))
6.在主備庫開啟閃回資料庫功能
SQL>SHUTDOWN IMMEDIATE;
SQL>STARTUP MOUNT;
SQL>ALTER DATABASE FLASHBACK ON;
SQL>ALTER DATABASE OPEN;
注:如果是rac模式,需要在每個節點上設定dg_broker_config_filen引數
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE1 = '+DG/DIRECTORY/DR1.DAT' SCOPE=BOTH;
ALTER SYSTEM SET DG_BROKER_CONFIG_FILE2 = '+DG/DIRECTORY/DR2.DAT' SCOPE=BOTH;
如果使用了非預設埠(1521),必須設定local_lisener以便所有成員都能訪問
二.broker配置
在從庫上配置
1.執行命令, 連線到主庫:
dgmgrl
connect sys/oracle@pordb
2.建立broker配置
[oracle@slindb archp]$ dgmgrl
DGMGRL for Linux: Version 10.2.0.1.0 - Production
Copyright (c) 2000, 2005, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
DGMGRL> connect sys/oracle@pordb
Connected.
DGMGRL> create configuration 'pordbsoulution' as primary database is 'pordb' connect identifier is 'pordb';
Configuration "pordbsoulution" created with primary database "pordb"
DGMGRL> show configuration
Configuration
Name: pordbsoulution
Enabled: NO
Protection Mode: MaxAvailability
Fast-Start Failover: DISABLED
Databases:
pordb - Primary database
Current status for "pordbsoulution":
DISABLED
新增備庫到broker配置:
DGMGRL> add database 'sordb' as connect identifier is sordb maintained as physical;
Database "sordb" added
DGMGRL> show configuration
Configuration
Name: pordbsoulution
Enabled: NO
Protection Mode: MaxAvailability
Fast-Start Failover: DISABLED
Databases:
pordb - Primary database
sordb - Physical standby database
Current status for "pordbsoulution":
DISABLED
3.使broker配置生效
DGMGRL> enable configuration;
Enabled.
DGMGRL> show configuration
Configuration
Name: pordbsoulution
Enabled: YES
Protection Mode: MaxAvailability
Fast-Start Failover: DISABLED
Databases:
pordb - Primary database
sordb - Physical standby database
Current status for "pordbsoulution":
SUCCESS
可以看到當前狀態改變了
設定資料庫狀態模式:
設定 FastStartFailoverTarget 值.
DGMGRL> edit database 'pordb' set property 'logxptmode'='sync';
Property "logxptmode" updated
DGMGRL> edit database 'sordb' set property 'logxptmode'='sync';
Property "logxptmode" updated
使 Fast-Start Failover 生效
DGMGRL> ENABLE FAST_START FAILOVER;
Enabled.
開啟 Observer
DGMGRL> start observer
注:執行開啟 Observer後,介面不會自動退出,如果要執行其它dgmgrl命令需重新開一個視窗
重新開一個視窗,進入dgmgrl,檢視fast-start failover 配置
DGMGRL> show configuration;
DGMGRL> show configuration verbose;
4.驗證fast-start failover 配置
主庫:
SQL> col FS_FAILOVER_OBSERVER_HOST for a30
SQL>select fs_failover_observer_present,fs_failover_observer_host,fs_failover_threshold
from v$database;
FS_FAIL FS_FAILOVER_OBSERVER_HOST FS_FAILOVER_THRESHOLD
------- ------------------------------ ---------------------
YES slindb 30
備庫:
SQL> col FS_FAILOVER_OBSERVER_HOST for a30
SQL>select fs_failover_observer_present,fs_failover_observer_host,fs_failover_threshold
from v$database;
FS_FAIL FS_FAILOVER_OBSERVER_HOST FS_FAILOVER_THRESHOLD
------- ------------------------------ ---------------------
YES slindb 30
修改fsfailoverthreshold值為什麼120,預設為30
DGMGRL> edit configuration set property faststartfailoverthreshold=120;
Property "faststartfailoverthreshold" updated
測試broker
檢視主庫和備庫配置資訊和狀態:
DGMGRL> show database verbose pordb;
Database
Name: pordb
Role: PRIMARY
Enabled: YES
Intended State: ONLINE
Instance(s):
ordb
Properties:
InitialConnectIdentifier = 'pordb'
LogXptMode = 'sync'
Dependency = ''
DelayMins = '0'
Binding = 'OPTIONAL'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '180'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'AUTO'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '2'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = '/oracle/oradata/sordb, /oracle/oradata/pordb'
LogFileNameConvert = '/oracle/oradata/sordb, /oracle/oradata/pordb'
FastStartFailoverTarget = 'sordb'
StatusReport = '(monitor)'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName = 'plindb'
SidName = 'ordb'
LocalListenerAddress = '(ADDRESS=(PROTOCOL=tcp)(HOST=plindb)(PORT=1521))'
StandbyArchiveLocation = '/oracle/archp/'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = '%t_%s_%r.dbf'
LatestLog = '(monitor)'
TopWaitEvents = '(monitor)'
Current status for "pordb":
SUCCESS
DGMGRL> show database verbose sordb;
Database
Name: sordb
Role: PHYSICAL STANDBY
Enabled: YES
Intended State: ONLINE
Instance(s):
ordb
Properties:
InitialConnectIdentifier = 'sordb'
LogXptMode = 'sync'
Dependency = ''
DelayMins = '0'
Binding = 'OPTIONAL'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '180'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'AUTO'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '2'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = '/oracle/oradata/pordb, /oracle/oradata/sordb'
LogFileNameConvert = '/oracle/oradata/pordb, /oracle/oradata/sordb'
FastStartFailoverTarget = 'pordb'
StatusReport = '(monitor)'
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
HostName = 'slindb'
SidName = 'ordb'
LocalListenerAddress = '(ADDRESS=(PROTOCOL=tcp)(HOST=slindb)(PORT=1521))'
StandbyArchiveLocation = '/oracle/archp/'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = '%t_%s_%r.dbf'
LatestLog = '(monitor)'
TopWaitEvents = '(monitor)'
Current status for "sordb":
SUCCESS
三.驗證和測試Broker
1.主備切換測試:switchover
檢視主庫和備庫狀態和角色
主庫:
SQL> select database_role,switchover_status from v$database;
DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PRIMARY SESSIONS ACTIVE
備庫:
SQL> select database_role,switchover_status from v$database;
DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PHYSICAL STANDBY SESSIONS ACTIVE
[oracle@slindb ~]$ dgmgrl
DGMGRL for Linux: Version 10.2.0.1.0 - Production
Copyright (c) 2000, 2005, Oracle. All rights reserved.
Welcome to DGMGRL, type "help" for information.
DGMGRL>
DGMGRL> connect sys/oracle@pordb
Connected.
DGMGRL> show configuration
Configuration
Name: pordbsoulution
Enabled: YES
Protection Mode: MaxAvailability
Fast-Start Failover: ENABLED
Databases:
pordb - Primary database
sordb - Physical standby database
- Fast-Start Failover target
Current status for "pordbsoulution":
SUCCESS
將主庫切換到sordb上,切換時同時觀察主庫,務庫,dgmgrl的告警日誌資訊:
tail -f /oracle/admin/pordb/bdump/alter*.log
tail -f /oracle/admin/sordb/bdump/alter*.log
tail -f /oracle/admin/sordb/bdump/dr*.log
形如切換:
DGMGRL> switchover to sordb;
Performing switchover NOW, please wait...
Operation requires shutdown of instance "ordb" on database "pordb"
Shutting down instance "ordb"...
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
Operation requires shutdown of instance "ordb" on database "sordb"
Shutting down instance "ordb"...
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
Operation requires startup of instance "ordb" on database "pordb"
Starting instance "ordb"...
ORACLE instance started.
Database mounted.
Operation requires startup of instance "ordb" on database "sordb"
Starting instance "ordb"...
ORACLE instance started.
Database mounted.
Switchover succeeded, new primary is "sordb"
切換成功後,檢視新的主庫和備庫的狀態和角色:
SQL> select database_role,switchover_status from v$database;
SQL> select status from v$instance;
DGMGRL> show configuration;
Configuration
Name: pordbsoulution
Enabled: YES
Protection Mode: MaxAvailability
Fast-Start Failover: ENABLED
Databases:
pordb - Primary database
sordb - Physical standby database
- Fast-Start Failover target
Current status for "pordbsoulution":
SUCCESS
2.failover測試
手動測試:
DGMGRL> failover to sordb;
Performing failover NOW. Please wait...
Operation requires shutdown of instance "sordb " on database
"sordb".
Shutting down instance "sordb"...
database not mounted
ORACLE instance shut down.
Operation requires startup of instance "pdb" on database "sordb".
Starting instance "sordb"...
ORACLE instance started.
Database mounted.
Failover succeeded. New primary is "sordb"
切換成功後,主庫自動變為sordb
自動測試:
將主庫shutdown abort
SQL> shutdown abort
ORACLE instance shut down.
此時在observer控制檯上看到:
DGMGRL> start observer
Observer started
22:26:38.10 Friday, December 09, 2011
Initiating fast-start failover to database "sordb"...
Performing failover NOW, please wait...
Failover succeeded, new primary is "sordb"
22:26:52.27 Friday, December 09, 2011
表示在主庫pordb出現故障時,自動切換,新的主庫為sordb
檢視failover後的新主庫sordb角色和狀態:
SQL> select database_role,switchover_status from v$database;
DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PRIMARY SESSIONS ACTIVE
SQL> select status from v$instance;
STATUS
------------
OPEN
切換成功。
如果此時再將pordb啟動,啟動後會自動轉化為備庫:
此時在observer控制檯上看到:
22:31:04.46 Friday, December 09, 2011
Initiating reinstatement for database "pordb"...
Reinstating database "pordb", please wait...
Operation requires shutdown of instance "ordb" on database "pordb"
Shutting down instance "ordb"...
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
Operation requires startup of instance "ordb" on database "pordb"
Starting instance "ordb"...
ORACLE instance started.
Database mounted.
Continuing to reinstate database "pordb" ...
Reinstatement of database "pordb" succeeded
22:31:59.61 Friday, December 09, 2011
檢視pordb角色和狀態:
SQL> select database_role,switchover_status from v$database;
DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PHYSICAL STANDBY SESSIONS ACTIVE
SQL> select status from v$instance;
STATUS
------------
MOUNTED
檢視sordb角色和狀態:
SQL> select database_role,switchover_status from v$database;
DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PRIMARY SESSIONS ACTIVE
SQL> select status from v$instance;
STATUS
------------
OPEN
檢視主庫和備庫歸檔日誌及應用資訊:
select sequence#,first_time,next_time,applied from v$archived_log order by sequence#;
總結:在實驗中還是遇到一些問題,不過最後都一一的順利解決,最容易遇到的以下問題:
1. ORA-01031: insufficient privileges
PING[ARC0]: Heartbeat failed to connect to standby 'sordb'. Error is 1031.
這各情況有兩個可能,一個是密碼檔案沒有拷到備庫上,另一個原因是TNS設定不正確或者監聽有問題,重新設定這兩個地方就可以解決。
2.備庫接收不到備庫的日誌
這個主要還是需要看告警日誌,主要原因還是網路和許可權的問題,當然也有可能是由其它原因導致網路和許可權問題,比如備庫的環境變數設定,我就在實驗時不小心備庫sid設定的問題引起許可權問題,導致備庫接收不到日誌
3. 資料庫檔案是使用OMF管理的,那麼使用rman建立的備庫的資料檔名已經與主庫的檔名不一樣了,此 時需將引數檔案裡的控制檔案的路徑和名稱修改為備庫上的實際路徑和名稱,否則啟動資料庫會報錯。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26175573/viewspace-1818896/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux下建立Oracle 10g DG和Broker配置LinuxOracle 10g
- Oracle DG管理Broker配置Oracle
- oracle 11g dg broker開啟和配置Oracle
- Oracle DG Broker配置的管理週期Oracle
- ORACLE 11.2.0.4 DG(Broker) for linux 部署OracleLinux
- Oracle DG 管理Broker配置成員的狀態Oracle
- Oracle物理DG自動切換——Dataguard Broker配置Oracle
- ORACLE資料庫Dataguard dg brokerOracle資料庫
- dg broker配置的問題及分析
- oracle dataguard broker 配置Oracle
- 配置dg broker的問題分析及修復
- oracle_DG+broker+Keepalived的部署文件Oracle
- oracle實驗記錄 (oracle 10G dataguard(8)rman 建立dg)Oracle
- Oracle 11g dg broker自動failoverOracleAI
- 使用DG_broker工具管理DG之switchover
- Oracle 19c Broker配置Oracle
- linux下配置oracle 10G EM Database ConsoleLinuxOracle 10gDatabase
- 使用Broker實現DG切換
- Oracle DG建立Physical Standby DatabaseOracleDatabase
- 物理DG!Oracle 10G Data Guard DemoOracle 10g
- Oracle Data Guard和Broker概述Oracle
- 【DATAGUARD】物理dg配置客戶端無縫切換 (八.1)--Data Guard Broker 的配置客戶端
- Oracle DG建立Logical Standby DatabaseOracleDatabase
- Linux 下Oracle 10G RAC 管理LinuxOracle 10g
- linux下安裝oracle 10gLinuxOracle 10g
- ORACLE10G DG配置下Physical Standby Database的管理OracleDatabase
- dataguard安裝和配置(DG)
- oracle 10g em建立Oracle 10g
- oracle 10g dg切換步驟記錄Oracle 10g
- Oracle 10g DG 主庫丟失歸檔Oracle 10g
- Linux下建立Oracle表空間LinuxOracle
- ORACLE 10g下載|ORACLE 10g下載地址|ORACLE 10g官網下載地址Oracle 10g
- oracle實驗記錄 (oracle 10G dataguard(10)flashback 與dg)Oracle
- 32位Linux下安裝Oracle 10gLinuxOracle 10g
- 11. Oracle for Linux安裝和配置—11.3. Oracle安裝和配置—11.3.2. 資料庫建立OracleLinux資料庫
- oracle9204(physical dg)配置_指南Oracle
- 10G DG SWITCH OVER
- A Oracle Data Guard Broker 升級和降級Oracle