(1) 创建物理备用数据库
(2) 激活主数据库和备用数据加的补充日志特征
(3) 建立逻辑备用控制文件
(4) 复制逻辑备用控制文件到备用数据库
(5) 激活逻辑备用数据库
(6) 修改逻辑备用数据库的数据库名
(7) 改变参数文件的数据库名
(8) 启动逻辑备用数据库, 并修改全局数据库名
创建物理备用数据库:
C:/>mkdir c:/standby1
C:/>mkdir d:/standby1
C:/>mkdir d:/standby1/adump
C:/>mkdir d:/standby1/bdump
C:/>mkdir d:/standby1/cdump
C:/>mkdir d:/standby1/udump
C:/>mkdir d:/standby1/archive
C:/>oradim -new -sid standby1 -syspwd orcl
实例已创建。
C:/>sqlplus sys/orcl@demo as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 2月 19 13:50:12 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> create pfile='%oracle_home%/database/initstandby1.ora' from spfile;
文件已创建。
SQL> create pfile='%oracle_home%/database/initdemo.ora' from spfile;
文件已创建。
SQL> create spfile='%oracle_home%/database/spfilestandby1.ora'
2 from pfile='%oracle_home%/database/initstandby1.ora';
文件已创建。
listener.ora
(SID_DESC =
(GLOBAL_DBNAME = standby1)
(ORACLE_HOME = D:/oracle/product/10.2.0/db_1)
(SID_NAME = standby1)
)
tnsnames.ora
standby1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = Renovo-Colin)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = standby1)
)
)
initdemo.ora
db_unique_name='demo'
fal_server=standby1
fal_client=demo
log_archive_dest_1='location=d:/demo/archive valid_for=(all_logfiles,all_roles) db_unique_name=demo'
log_archive_dest_2='location=c:/demo/archive valid_for=(all_logfiles,all_roles) db_unique_name=demo'
log_archive_dest_3='service=standby1 valid_for=(online_logfiles,primary_roles) db_unique_name=standby1'
log_archive_config='dg_config=(demo,standby1)'
standby_file_management=auto
initstandby1.ora
db_unique_name=standby1
service_names=standby1
instance_name=standby1
audit_file_dest='D:/standby1/adump'
background_dump_dest='D:/standby1/bdump'
control_files='d:/standby1/control01.ctl'
core_dump_dest='D:/standby1/cdump'
log_archive_dest_1='location=d:/standby1/archive valid_for=(all_logfiles,all_roles) db_unique_name=standby1'
log_archive_dest_2='service=demo valid_for=(online_logfiles,primary_role) db_unique_name=demo'
log_archive_config='dg_config=(demo,standby1)'
fal_server=demo
fal_client=standby1
standby_file_management=auto
db_file_name_convert='d:/demo','d:/standby1'
log_file_name_convert='d:/demo','d:/standby1','c:/demo','c:/standby1'
standby_archive_dest='d:/standby1/archive'
user_dump_dest='D:/standby1/udump'
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> create spfile from pfile;
文件已创建。
SQL> conn sys/orcl@standby1 as sysdba
ERROR:
ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
警告: 您不再连接到 ORACLE。
SQL> host lsnrctl
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 19-2月 -2009 14:2
9:08
Copyright (c) 1991, 2005, Oracle. All rights reserved.
欢迎来到LSNRCTL, 请键入"help"以获得信息。
LSNRCTL> stop
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Renovo-Colin)(PORT=1521)))
命令执行成功
LSNRCTL> start
启动tnslsnr: 请稍候...
TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
系统参数文件为D:/oracle/product/10.2.0/db_1/network/admin/listener.ora
写入D:/oracle/product/10.2.0/db_1/network/log/listener.log的日志信息
监听: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Renovo-Colin)(PORT=1521)))
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Renovo-Colin)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Produ
ction
启动日期 19-2月 -2009 14:29:22
正常运行时间 0 天 0 小时 0 分 1 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 D:/oracle/product/10.2.0/db_1/network/admin/listener.o
ra
监听程序日志文件 D:/oracle/product/10.2.0/db_1/network/log/listener.log
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Renovo-Colin)(PORT=1521)))
服务摘要..
服务 "ORCL" 包含 1 个例程。
例程 "ORCL", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "demo" 包含 1 个例程。
例程 "demo", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "standby1" 包含 1 个例程。
例程 "standby1", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
命令执行成功
LSNRCTL> exit
SQL> conn sys/orcl@standby1 as sysdba
已连接到空闲例程。
SQL> conn sys/orcl@demo as sysdba
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 603979776 bytes
Fixed Size 1250380 bytes
Variable Size 281021364 bytes
Database Buffers 314572800 bytes
Redo Buffers 7135232 bytes
数据库装载完毕。
数据库已经打开。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
D:/DEMO/SYSTEM01.DBF
D:/DEMO/UNDOTBS01.DBF
D:/DEMO/SYSAUX01.DBF
D:/DEMO/USERS01.DBF
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' reuse;
数据库已更改。
SQL> host copy d:/backup/*.dbf d:/standby1/*.*
d:/backup/SYSAUX01.DBF
d:/backup/SYSTEM01.DBF
d:/backup/UNDOTBS01.DBF
d:/backup/USERS01.DBF
已复制 4 个文件。
SQL> host copy d:/backup/*.ctl d:/standby1/*.*
d:/backup/CONTROL01.CTL
已复制 1 个文件。
SQL> conn sys/orcl@standby1 as sysdba
已连接到空闲例程。
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:/STANDBY1/ARCHIVE/ARC00125_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00126_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00093_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00094_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00095_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00096_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00097_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00098_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00099_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00100_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00101_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00102_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00103_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00104_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00105_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00106_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00107_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00108_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00109_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00110_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00111_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00112_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00113_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00114_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00115_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00116_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00117_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00118_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00119_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00120_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00121_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00122_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00123_0674493001.001
D:/STANDBY1/ARCHIVE/ARC00124_0674493001.001
已选择34行。
SQL> recover standby database until cancel
ORA-00279: 更改 1966738 (在 02/19/2009 14:31:15 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:/STANDBY1/ARCHIVE/ARC00122_0674493001.001
ORA-00280: 更改 1966738 (用于线程 1) 在序列 #122 中
指定日志: { =suggested | filename | AUTO | CANCEL}
ORA-00279: 更改 1967091 (在 02/19/2009 14:42:09 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:/STANDBY1/ARCHIVE/ARC00123_0674493001.001
ORA-00280: 更改 1967091 (用于线程 1) 在序列 #123 中
ORA-00278: 此恢复不再需要日志文件 'D:/STANDBY1/ARCHIVE/ARC00122_0674493001.001'
指定日志: { =suggested | filename | AUTO | CANCEL}
ORA-00279: 更改 1967112 (在 02/19/2009 14:43:08 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:/STANDBY1/ARCHIVE/ARC00124_0674493001.001
ORA-00280: 更改 1967112 (用于线程 1) 在序列 #124 中
ORA-00278: 此恢复不再需要日志文件 'D:/STANDBY1/ARCHIVE/ARC00123_0674493001.001'
指定日志: { =suggested | filename | AUTO | CANCEL}
ORA-00279: 更改 1967162 (在 02/19/2009 14:44:32 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:/STANDBY1/ARCHIVE/ARC00125_0674493001.001
ORA-00280: 更改 1967162 (用于线程 1) 在序列 #125 中
ORA-00278: 此恢复不再需要日志文件 'D:/STANDBY1/ARCHIVE/ARC00124_0674493001.001'
指定日志: { =suggested | filename | AUTO | CANCEL}
ORA-00279: 更改 1967623 (在 02/19/2009 14:47:15 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:/STANDBY1/ARCHIVE/ARC00126_0674493001.001
ORA-00280: 更改 1967623 (用于线程 1) 在序列 #126 中
ORA-00278: 此恢复不再需要日志文件 'D:/STANDBY1/ARCHIVE/ARC00125_0674493001.001'
指定日志: { =suggested | filename | AUTO | CANCEL}
ORA-00279: 更改 1967626 (在 02/19/2009 14:47:21 生成) 对于线程 1 是必需的
ORA-00289: 建议: D:/STANDBY1/ARCHIVE/ARC00127_0674493001.001
ORA-00280: 更改 1967626 (用于线程 1) 在序列 #127 中
ORA-00278: 此恢复不再需要日志文件 'D:/STANDBY1/ARCHIVE/ARC00126_0674493001.001'
指定日志: { =suggested | filename | AUTO | CANCEL}
cancel
介质恢复已取消。
SQL> alter database open;
数据库已更改。
SQL> select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
D:/STANDBY1/TEMP01.DBF
SQL> conn sys/orcl@standby1 as sysdba
已连接。
SQL> alter database recover managed standby database disconnect from session;
数据库已更改。
SQL> select name from v$archived_log where applied='NO';
未选定行
SQL> conn sys/orcl@demo as sysdba
已连接。
SQL> alter database add supplemental log data (primary key,unique index) columns;
数据库已更改。
SQL> conn sys/orcl@standby1 as sysdba
已连接。
SQL> alter database add supplemental log data (primary key,unique index) columns;
数据库已更改。
SQL> select supplemental_log_data_pk,supplemental_log_data_ui from v$database;
SUP SUP
--- ---
YES YES
SQL> conn sys/orcl@demo as sysdba
已连接。
SQL> alter database create logical standby controlfile as 'd:/backup/control01.ctl' reuse;
数据库已更改。
SQL> conn sys/orcl@standby1 as sysdba
已连接到空闲例程。
SQL> host copy d:/backup/control01.ctl d:/standby1
已复制 1 个文件。
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> alter database recover managed standby database disconnect from session;
数据库已更改。
SQL> conn sys/orcl@demo as sysdba
已连接。
SQL> alter system archive log current;
系统已更改。
SQL> conn sys/orcl@standby1 as sysdba
已连接。
SQL> alter database activate standby database;
数据库已更改。
SQL> shutdown immediate
ORA-01109: 数据库未打开
已经卸载数据库。
ORACLE 例程已经关闭。
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> host nid target=sys/orcl@standby1 dbname=standby1
DBNEWID: Release 10.2.0.1.0 - Production on 星期四 2月 19 15:41:59 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接数据库 DEMO (DBID=3411805505)
已连接服务器版本 10.2.0
数据库中的控制文件数:
D:/STANDBY1/CONTROL01.CTL
是否将数据库 ID 和数据库名 DEMO 更改为 STANDBY1? (Y/[N]) => y
操作继续进行
将数据库 ID 从 3411805505 更改为 347490440
将数据库名从 DEMO 更改为 STANDBY1
控制文件 D:/STANDBY1/CONTROL01.CTL - 已修改
数据文件 D:/STANDBY1/SYSTEM01.DBF - dbid 已更改, 已写入新名称
数据文件 D:/STANDBY1/UNDOTBS01.DBF - dbid 已更改, 已写入新名称
数据文件 D:/STANDBY1/SYSAUX01.DBF - dbid 已更改, 已写入新名称
数据文件 D:/STANDBY1/USERS01.DBF - dbid 已更改, 已写入新名称
数据文件 D:/STANDBY1/TEMP01.DBF - dbid 已更改, 已写入新名称
控制文件 D:/STANDBY1/CONTROL01.CTL - dbid 已更改, 已写入新名称
实例关闭
数据库名已更改为 STANDBY1。
修改参数文件并在重新启动前生成新的口令文件。
数据库 STANDBY1 的数据库 ID 已更改为 347490440。
此数据库的所有以前的备份和归档重做日志均不可用。
数据库无法识别恢复区中以前的备份和归档日志。
数据库已关闭, 用 RESETLOGS 选项打开数据库。
已成功更改数据库名和 ID。
DBNEWID - 已成功完成。
SQL> host del %oracle_home%/database/pwdstandby1.ora
SQL> host orapwd file=%oracle_home%/database/pwdstandby1.ora password=orcl
SQL> create pfile from spfile;
create pfile from spfile
*
第 1 行出现错误:
ORA-03113: 通信通道的文件结束
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@standby1 as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on 星期四 2月 19 15:46:16 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
已连接到空闲例程。
SQL> create pfile from spfile;
文件已创建。
修改initstandby1.ora
db_name='standby1'
SQL> create spfile from pfile;
文件已创建。
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> alter database open resetlogs;
数据库已更改。
SQL> alter database rename global_name to standby1;
数据库已更改。
SQL> select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
D:/STANDBY1/TEMP01.DBF