| 導購 | 订阅 | 在线投稿
分享
 
 
 

Oracle 10g使用RMAN創建physical standby

2008-08-07 07:35:04  編輯來源:互聯網  简体版  手機版  移動版  評論  字體: ||

1.試驗環境

SQL> select * from v$version;

BANNER

----------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod

PL/SQL Release 10.2.0.1.0 - Production

CORE 10.2.0.1.0 Production

TNS for Linux: Version 10.2.0.1.0 - Production

NLSRTL Version 10.2.0.1.0 - Production

2.確認主庫處于歸檔模式

SQL> archive log list;

Database log mode Archive Mode

Automatic archival Enabled

Archive destination /u02/arch

Oldest online log sequence 154

Next log sequence to archive 156

Current log sequence 156

3.創建備庫instance

windows平台利用oradim工具創建一個新的instance,

unix/linux平台設置新的ORACLE_SID即可

4.准備好主備庫的參數文件

主庫:

orcl.__db_cache_size=184549376

orcl.__java_pool_size=4194304

orcl.__large_pool_size=4194304

orcl.__shared_pool_size=88080384

orcl.__streams_pool_size=0

*.audit_file_dest='/u01/oracle/admin/orcl/adump'

*.background_dump_dest='/u01/oracle/admin/orcl/bdump'

*.compatible='10.2.0.1.0'

*.control_files='/u01/oracle/oradata/orcl/control01.ctl','

/u01/oracle/oradata/orcl/control02.ctl','

/u01/oracle/oradata/orcl/control03.ctl'

*.core_dump_dest='/u01/oracle/admin/orcl/cdump'

*.db_block_size=8192

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_name='orcl'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'

*.job_queue_processes=10

*.log_archive_dest_1='LOCATION=/u02/arch'

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

*.nls_language='SIMPLIFIED CHINESE'

*.nls_territory='CHINA'

*.open_cursors=300

*.pga_aggregate_target=94371840

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.sga_target=285212672

*.undo_management='AUTO'

*.undo_tablespace='UNDOTBS1'

*.user_dump_dest='/u01/oracle/admin/orcl/udump'

#################################

db_unique_name=node1

service_names=orcl

log_archive_config='dg_config=(node1,node2)'

log_archive_dest_2='service=dbstandby

valid_for=(online_logfiles,primary_role) db_unique_name=node2'

log_archive_dest_state_1=enable

log_archive_dest_state_2=enable

fal_server=dbstandby

standby_file_management=AUTO

備庫:

orcl.__db_cache_size=184549376

orcl.__java_pool_size=4194304

orcl.__large_pool_size=4194304

orcl.__shared_pool_size=88080384

orcl.__streams_pool_size=0

*.audit_file_dest='/u01/oracle/admin/orcl/adump'

*.background_dump_dest='/u01/oracle/admin/orcl/bdump'

*.compatible='10.2.0.1.0'

*.control_files='/u01/oracle/oradata/orcl/control01.ctl','

/u01/oracle/oradata/orcl/control02.ctl','

/u01/oracle/oradata/orcl/control03.ctl'

*.core_dump_dest='/u01/oracle/admin/orcl/cdump'

*.db_block_size=8192

*.db_domain=''

*.db_file_multiblock_read_count=16

*.db_name='orcl'

*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'

*.job_queue_processes=10

*.log_archive_dest_1='LOCATION=/u02/arch'

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

*.nls_language='SIMPLIFIED CHINESE'

*.nls_territory='CHINA'

*.open_cursors=300

*.pga_aggregate_target=94371840

*.processes=150

*.remote_login_passwordfile='EXCLUSIVE'

*.sga_target=285212672

*.undo_management='AUTO'

*.undo_tablespace='UNDOTBS1'

*.user_dump_dest='/u01/oracle/admin/orcl/udump'

#################################

db_unique_name=node2

service_names=orcl

log_archive_config='dg_config=(node1,node2)'

log_archive_dest_2='service=dbprimary

valid_for=(online_logfiles,primary_role) db_unique_name=node1'

log_archive_dest_state_1=enable

log_archive_dest_state_2=enable

fal_server=dbprimary

fal_client=dbstandby

standby_file_management=AUTO

5.生成password file

c:/>orapwd file=d:/oracle/ora92/DATABASE/PWDtest.ORA password=pass

或者直接將主庫上的密碼文件copy一份到備庫上

6.配置網絡

配置主備庫的listener.ora,tnsnames.ora。修改完listener.ora後需要重啓監聽器。

主庫:

listener.ora

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = PLSExtProc)

(ORACLE_HOME = /u01/oracle/product/10.2.0)

(PROGRAM = extproc)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = s1.gti.com)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

tnsnames.ora

dbprimary =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.131)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl)

)

)

dbstandby =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.132)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl)

)

)

備庫:

listener.ora

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(SID_NAME = orcl)

(ORACLE_HOME = /u01/oracle/product/10.2.0)

)

)

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.132)(PORT = 1521))

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))

)

)

tnsnames.ora

dbprimary =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.131)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl)

)

)

dbstandby =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.132)(PORT = 1521))

)

(CONNECT_DATA =

(SERVICE_NAME = orcl)

)

)

7.使用rman備份主庫

[oracle@s1 ~]$ rman target /

Recovery Manager: Release 10.2.0.1.0 - Production on Thu May 29 19:52:37 2008

Copyright (c) 1982, 2005, Oracle. All rights reserved.

connected to target database: ORCL (DBID=1171867028)

RMAN> backup full format='/u02/db_%U'

database include current controlfile for standby;

...................

8.歸檔主庫當前日志

SQL> alter system archive log current;

System altered.

9.啓動備庫到nomount

sqlplus "/ as sysdba"

Connected to an idle instance.

SQL> startup nomount

Total System Global Area 285212672 bytes

Fixed Size 1218992 bytes

Variable Size 96470608 bytes

Database Buffers 184549376 bytes

Redo Buffers 2973696 bytes

10.利用rman恢複備庫

[oracle@s1 ~]$ rman target /

Recovery Manager: Release 10.2.0.1.0 - Production on Thu May 29 19:53:21 2008

Copyright (c) 1982, 2005, Oracle. All rights reserved.

connected to target database: ORCL (DBID=1171867028)

RMAN> connect auxiliary sys/a@dbstandby

connected to auxiliary database: ORCL (DBID=1171867028, not mount)

RMAN> duplicate target database for standby nofilenamecheck;

.............................

如果第8步沒有歸檔當前日志,duplicate時可能出現錯誤:

RMAN-05507: standby controlfile checkpoint (710256) is more recent than duplicat

ion point in time (709530)

至此,備庫創建成功。

11.將備庫置于自動恢複狀態

SQL> conn / as sysdba

Connected.

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

Media recovery complete.

12.switchover

物理STANDBY的SWITCHOVER切換會把當前的一個物理STANDBY切換爲PRIMARY數據庫,而PRIMARY數據庫且變成物理STNADBY數據庫。

一般SWITCHOVER切換都是計劃中的切換,特點是在切換後,不會丟失任何的數據,而且這個過程是可逆的,整個DATA GUARD環境不會被破壞,原來DATA GUARD環境中的所有物理和邏輯STANDBY都可以繼續工作。

在進行DATA GUARD的物理STANDBY切換前需要注意:

確認主庫和從庫間網絡連接通暢;

確認沒有活動的會話連接在數據庫中;

PRIMARY數據庫處于打開的狀態,STANDBY數據庫處于MOUNT狀態;

確保STANDBY數據庫處于ARCHIVELOG模式;

如果設置了REDO應用的延遲,那麽將這個設置去掉;

確保配置了主庫和從庫的初始化參數,使得切換完成後,DATA GUARD機制可以順利的運行。

主庫:

[oracle@s1 ~]$ sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.1.0 - Production on Thu May 29 19:55:02 2008

Copyright (c) 1982, 2005, Oracle. All rights reserved.

Connected to:

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

With the Partitioning, OLAP and Data Mining options

SQL> alter database commit to switchover to physical standby;

Database altered.

SQL> shutdown immediate;

ORA-01507: database not mounted

ORACLE instance shut down.

SQL> startup nomount

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

SQL> alter database mount standby database;

Database altered.

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

Database altered.

備庫:

SQL> alter database commit to switchover to primary;

Database altered.

SQL> shutdown immediate;

ORA-01109: database not open

Database dismounted.

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>

至此完成自由切換。

1.試驗環境 SQL> select * from v$version; BANNER ---------------------------------------------------------------- Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod PL/SQL Release 10.2.0.1.0 - Production CORE 10.2.0.1.0 Production TNS for Linux: Version 10.2.0.1.0 - Production NLSRTL Version 10.2.0.1.0 - Production 2.確認主庫處于歸檔模式 SQL> archive log list; Database log mode Archive Mode Automatic archival Enabled Archive destination /u02/arch Oldest online log sequence 154 Next log sequence to archive 156 Current log sequence 156 3.創建備庫instance windows平台利用oradim工具創建一個新的instance, unix/linux平台設置新的ORACLE_SID即可 4.准備好主備庫的參數文件 主庫: orcl.__db_cache_size=184549376 orcl.__java_pool_size=4194304 orcl.__large_pool_size=4194304 orcl.__shared_pool_size=88080384 orcl.__streams_pool_size=0 *.audit_file_dest='/u01/oracle/admin/orcl/adump' *.background_dump_dest='/u01/oracle/admin/orcl/bdump' *.compatible='10.2.0.1.0' *.control_files='/u01/oracle/oradata/orcl/control01.ctl',' /u01/oracle/oradata/orcl/control02.ctl',' /u01/oracle/oradata/orcl/control03.ctl' *.core_dump_dest='/u01/oracle/admin/orcl/cdump' *.db_block_size=8192 *.db_domain='' *.db_file_multiblock_read_count=16 *.db_name='orcl' *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' *.job_queue_processes=10 *.log_archive_dest_1='LOCATION=/u02/arch' *.log_archive_format='%t_%s_%r.dbf' *.nls_language='SIMPLIFIED CHINESE' *.nls_territory='CHINA' *.open_cursors=300 *.pga_aggregate_target=94371840 *.processes=150 *.remote_login_passwordfile='EXCLUSIVE' *.sga_target=285212672 *.undo_management='AUTO' *.undo_tablespace='UNDOTBS1' *.user_dump_dest='/u01/oracle/admin/orcl/udump' ################################# db_unique_name=node1 service_names=orcl log_archive_config='dg_config=(node1,node2)' log_archive_dest_2='service=dbstandby valid_for=(online_logfiles,primary_role) db_unique_name=node2' log_archive_dest_state_1=enable log_archive_dest_state_2=enable fal_server=dbstandby standby_file_management=AUTO 備庫: orcl.__db_cache_size=184549376 orcl.__java_pool_size=4194304 orcl.__large_pool_size=4194304 orcl.__shared_pool_size=88080384 orcl.__streams_pool_size=0 *.audit_file_dest='/u01/oracle/admin/orcl/adump' *.background_dump_dest='/u01/oracle/admin/orcl/bdump' *.compatible='10.2.0.1.0' *.control_files='/u01/oracle/oradata/orcl/control01.ctl',' /u01/oracle/oradata/orcl/control02.ctl',' /u01/oracle/oradata/orcl/control03.ctl' *.core_dump_dest='/u01/oracle/admin/orcl/cdump' *.db_block_size=8192 *.db_domain='' *.db_file_multiblock_read_count=16 *.db_name='orcl' *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' *.job_queue_processes=10 *.log_archive_dest_1='LOCATION=/u02/arch' *.log_archive_format='%t_%s_%r.dbf' *.nls_language='SIMPLIFIED CHINESE' *.nls_territory='CHINA' *.open_cursors=300 *.pga_aggregate_target=94371840 *.processes=150 *.remote_login_passwordfile='EXCLUSIVE' *.sga_target=285212672 *.undo_management='AUTO' *.undo_tablespace='UNDOTBS1' *.user_dump_dest='/u01/oracle/admin/orcl/udump' ################################# db_unique_name=node2 service_names=orcl log_archive_config='dg_config=(node1,node2)' log_archive_dest_2='service=dbprimary valid_for=(online_logfiles,primary_role) db_unique_name=node1' log_archive_dest_state_1=enable log_archive_dest_state_2=enable fal_server=dbprimary fal_client=dbstandby standby_file_management=AUTO 5.生成password file c:/>orapwd file=d:/oracle/ora92/DATABASE/PWDtest.ORA password=pass 或者直接將主庫上的密碼文件copy一份到備庫上 6.配置網絡 配置主備庫的listener.ora,tnsnames.ora。修改完listener.ora後需要重啓監聽器。 主庫: listener.ora SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = PLSExtProc) (ORACLE_HOME = /u01/oracle/product/10.2.0) (PROGRAM = extproc) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = s1.gti.com)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)) ) ) tnsnames.ora dbprimary = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.131)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) dbstandby = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.132)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) 備庫: listener.ora SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = orcl) (ORACLE_HOME = /u01/oracle/product/10.2.0) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.132)(PORT = 1521)) (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)) ) ) tnsnames.ora dbprimary = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.131)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) dbstandby = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.132)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) ) 7.使用rman備份主庫 [oracle@s1 ~]$ rman target / Recovery Manager: Release 10.2.0.1.0 - Production on Thu May 29 19:52:37 2008 Copyright (c) 1982, 2005, Oracle. All rights reserved. connected to target database: ORCL (DBID=1171867028) RMAN> backup full format='/u02/db_%U' database include current controlfile for standby; ................... 8.歸檔主庫當前日志 SQL> alter system archive log current; System altered. 9.啓動備庫到nomount sqlplus "/ as sysdba" Connected to an idle instance. SQL> startup nomount Total System Global Area 285212672 bytes Fixed Size 1218992 bytes Variable Size 96470608 bytes Database Buffers 184549376 bytes Redo Buffers 2973696 bytes 10.利用rman恢複備庫 [oracle@s1 ~]$ rman target / Recovery Manager: Release 10.2.0.1.0 - Production on Thu May 29 19:53:21 2008 Copyright (c) 1982, 2005, Oracle. All rights reserved. connected to target database: ORCL (DBID=1171867028) RMAN> connect auxiliary [url=mailto:sys/a@dbstandby]sys/a@dbstandby[/url] connected to auxiliary database: ORCL (DBID=1171867028, not mount) RMAN> duplicate target database for standby nofilenamecheck; ............................. 如果第8步沒有歸檔當前日志,duplicate時可能出現錯誤: RMAN-05507: standby controlfile checkpoint (710256) is more recent than duplicat ion point in time (709530) 至此,備庫創建成功。 11.將備庫置于自動恢複狀態 SQL> conn / as sysdba Connected. SQL>alter database recover managed standby database disconnect from session; Media recovery complete. 12.switchover 物理STANDBY的SWITCHOVER切換會把當前的一個物理STANDBY切換爲PRIMARY數據庫,而PRIMARY數據庫且變成物理STNADBY數據庫。 一般SWITCHOVER切換都是計劃中的切換,特點是在切換後,不會丟失任何的數據,而且這個過程是可逆的,整個DATA GUARD環境不會被破壞,原來DATA GUARD環境中的所有物理和邏輯STANDBY都可以繼續工作。 在進行DATA GUARD的物理STANDBY切換前需要注意: 確認主庫和從庫間網絡連接通暢; 確認沒有活動的會話連接在數據庫中; PRIMARY數據庫處于打開的狀態,STANDBY數據庫處于MOUNT狀態; 確保STANDBY數據庫處于ARCHIVELOG模式; 如果設置了REDO應用的延遲,那麽將這個設置去掉; 確保配置了主庫和從庫的初始化參數,使得切換完成後,DATA GUARD機制可以順利的運行。 主庫: [oracle@s1 ~]$ sqlplus "/ as sysdba" SQL*Plus: Release 10.2.0.1.0 - Production on Thu May 29 19:55:02 2008 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options SQL> alter database commit to switchover to physical standby; Database altered. SQL> shutdown immediate; ORA-01507: database not mounted ORACLE instance shut down. SQL> startup nomount 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 SQL> alter database mount standby database; Database altered. SQL> alter database recover managed standby database disconnect from session; Database altered. 備庫: SQL> alter database commit to switchover to primary; Database altered. SQL> shutdown immediate; ORA-01109: database not open Database dismounted. 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> 至此完成自由切換。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
王朝網路微信公眾號
微信掃碼關註本站公眾號 wangchaonetcn
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有