导航

(1) 建立存放备用数据库相关的OS 目录

(2) 建立例程服务

(3) 配置监听程序和网络服务名

(4) 准备主数据库参数文件

(5) 准备备用数据库参数文件

(6) 复制相关文件到备用主机

(7) 启用备用数据库

 

复制数据库所在的主机操作:

C:\>mkdir d:\standby2

C:\>mkdir d:\standby2\adump

C:\>mkdir d:\standby2\bdump

C:\>mkdir d:\standby2\cdump

C:\>mkdir d:\standby2\udump

C:\>mkdir d:\standby2\archive

C:\>oradim -new -sid standby2 -syspwd orcl
实例已创建。

修改 listener.ora :

(SID_DESC =
  (GLOBAL_DBNAME = standby2)
  (ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
  (SID_NAME = standby2)
)

修改 tnsnames.ora :

STANDBY2 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = testpc)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = standby2)
    )
  )

 

主数据库所在的主机操作:

修改 tnsnames.ora :

STANDBY2 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = testpc)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = standby2)
    )
  )

SQL> conn sys/orcl@demo as sysdba
已连接。
SQL> create pfile from spfile;

文件已创建。

修改主数据库的参数文件:

*.db_unique_name='demo'
*.fal_client='demo'
*.fal_server='standby1,standby2'
*.log_archive_dest_4='service=standby2 valid_for=(online_logfiles,primary_role) db_unique_name=standby2'
*.log_archive_config='dg_config=(demo,standby1,standby2)'
*.standby_file_management='auto'

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> create spfile from pfile;

文件已创建。

SQL> create pfile='%oracle_home%\database\initstandby2.ora' from spfile;

文件已创建。

修改复制数据库的参数文件:

audit_file_dest='D:\standby2\adump'
control_files='d:\standby2\control01.ctl'
background_dump_dest='D:\standby2\bdump'
core_dump_dest='D:\standby2\cdump'
db_unique_name='standby2'
user_dump_dest='D:\standby2\udump'
fal_client='standby2'
fal_server='demo'
log_archive_config='dg_config=(demo,standby1,standby2)'
log_archive_dest_1='location=d:\standby2\archive valid_for=(all_logfiles,all_roles) db_unique_name=standby2'
log_archive_dest_3='service=demo valid_for=(online_logfiles,primary_role) db_unique_name=demo'
standby_file_management='auto'
server_names=standby2
instance_name=standby2
db_file_name_convert='d:\demo','d:\standby2'
log_file_name_convert='d:\demo','d:\standby2','c:\demo','d:\standby2'
standby_archive_dest='d:\standby2\archive'

SQL> create spfile='%oracle_home%\database\spfilestandby2.ora'
  2  from pfile='%oracle_home%\database\initstandby2.ora';

文件已创建。

SQL> alter database begin backup;

数据库已更改。

SQL> host copy D:\DEMO\SYSTEM01.DBF d:\backup
已复制         1 个文件。

SQL> host copy D:\DEMO\UNDOTBS01.DBF d:\backup
已复制         1 个文件。

SQL> host copy D:\DEMO\SYSAUX01.DBF d:\backup
已复制         1 个文件。

SQL> host copy D:\DEMO\USERS01.DBF d:\backup
已复制         1 个文件。

SQL> alter database end backup;

数据库已更改。

SQL> alter database create standby controlfile as 'd:\backup\control01.ctl';

数据库已更改。

SQL> host copy d:\backup\*.* \\testpc\standby2
d:\backup\CONTROL01.CTL
d:\backup\SYSAUX01.DBF
d:\backup\SYSTEM01.DBF
d:\backup\UNDOTBS01.DBF
d:\backup\USERS01.DBF
已复制         5 个文件。

SQL> host copy %oracle_home%\database\spfilestandby2.ora \\testpc\oracle_home\da
tabase\*.*

已复制         1 个文件。

SQL> alter system switch logfile;

系统已更改。

SQL> exit
从 Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options 断开

C:\>sqlplus sys/orcl@standby2 as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on 星期一 2月 16 16:47:05 2009

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

已连接到空闲例程。

SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area  603979776 bytes
Fixed Size                  1250380 bytes
Variable Size             163580852 bytes
Database Buffers          432013312 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
SQL> select name from v$archived_log;

NAME
--------------------------------------------------------------------------------

D:\STANDBY2\ARCHIVE\ARC00093_0674493001.001
D:\STANDBY2\ARCHIVE\ARC00094_0674493001.001
D:\STANDBY2\ARCHIVE\ARC00095_0674493001.001
D:\STANDBY2\ARCHIVE\ARC00096_0674493001.001
D:\STANDBY2\ARCHIVE\ARC00097_0674493001.001
D:\STANDBY2\ARCHIVE\ARC00098_0674493001.001
D:\STANDBY2\ARCHIVE\ARC00099_0674493001.001
D:\STANDBY2\ARCHIVE\ARC00100_0674493001.001

已选择8行。

SQL> recover standby database until cancel
ORA-00279: 更改 1844242 (在 02/16/2009 16:29:36 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\STANDBY2\ARCHIVE\ARC00100_0674493001.001
ORA-00280: 更改 1844242 (用于线程 1) 在序列 #100 中

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}

ORA-00279: 更改 1844848 (在 02/16/2009 16:45:19 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:\STANDBY2\ARCHIVE\ARC00101_0674493001.001
ORA-00280: 更改 1844848 (用于线程 1) 在序列 #101 中
ORA-00278: 此恢复不再需要日志文件 'D:\STANDBY2\ARCHIVE\ARC00100_0674493001.001'

指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> alter database open;

数据库已更改。

SQL> select name from v$tempfile;

NAME
--------------------------------------------------------------------------------

D:\STANDBY2\TEMP01.DBF