- 2.Step-by-Step Instructions for Creating a Physical Standby Database
准备工作:
创建转储目录
[oracle@ocm2 dbs]$ mkdir -p /u01/app/oracle/admin/PRODSTD/adump
[oracle@ocm2 dbs]$ mkdir -p /u01/app/oracle/admin/PRODSTD/bdump
[oracle@ocm2 dbs]$ mkdir -p /u01/app/oracle/admin/PRODSTD/cdump
[oracle@ocm2 dbs]$ mkdir -p /u01/app/oracle/admin/PRODSTD/udump
Table 3-2 Creating a Physical Standby Database
Reference | Task | Database |
---|---|---|
Primary | ||
Primary | ||
Prepare an Initialization Parameter File for the Standby Database | Primary | |
Primary | ||
Standby | ||
Standby | ||
Standby |
- 2.1.Create a Backup Copy of the Primary Database Datafiles
冷备份主库
SYS@PROD>!
[oracle@ocm1 ~]$ cd /u01/app/oracle/oradata/
[oracle@ocm1 oradata]$ ll
total 4
drwxr-xr-x 7 oracle oinstall 4096 Mar 19 13:16 PROD
[oracle@ocm1 oradata]$
tar -czvf PROD.tar.gz PROD
PROD/
PROD/Disk1/
PROD/Disk1/temp01.dbf
PROD/Disk1/standby07.log
PROD/Disk1/standby11.log
PROD/Disk1/redo03.log
PROD/Disk1/standby10.log
PROD/Disk1/standby09.log
PROD/Disk1/system01.dbf
PROD/Disk1/redo01.log
PROD/Disk1/standby08.log
PROD/Disk1/standby06.log
PROD/Disk1/control01.ctl
PROD/Disk1/users01.dbf
PROD/Disk1/sysaux01.dbf
PROD/Disk1/example01.dbf
PROD/Disk1/redo02.log
PROD/Disk1/redo05.log
PROD/Disk1/redo04.log
PROD/Disk1/undotbs01.dbf
PROD/Disk2/
PROD/Disk2/standby07_1.log
PROD/Disk2/standby06_1.log
PROD/Disk2/redo03_1.log
PROD/Disk2/standby09_1.log
PROD/Disk2/standby08_1.log
PROD/Disk2/control02.ctl
PROD/Disk2/redo05_1.log
PROD/Disk2/redo02_1.log
PROD/Disk2/redo01_1.log
PROD/Disk2/redo04_1.log
PROD/Disk2/standby10_1.log
PROD/Disk2/standby11_1.log
PROD/Disk2/arch/
PROD/Disk2/arch/arc_05p3jeqe_1_1.bak
PROD/Disk3/
PROD/Disk3/control03.ctl
PROD/Disk4/
PROD/Disk5/
PROD/Disk5/bak/
PROD/Disk5/bak/PROD_04p3jeq8_1_1.bak
PROD/Disk5/bak/PROD_03p3jemu_1_1.bak
[oracle@ocm1 oradata]$ exit
exit
- 2.2.Create a Control File for the Standby Database
成备库的控制文件
SYS@PROD>startup mount
ORACLE instance started.
Total System Global Area 524288000 bytes
Fixed Size 1220360 bytes
Variable Size 171966712 bytes
Database Buffers 348127232 bytes
Redo Buffers 2973696 bytes
Database mounted.
SYS@PROD>
SYS@PROD>
ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/home/oracle/control01.ctl';
Database altered.
SYS@PROD> ALTER DATABASE OPEN;
Database altered.
- 2.3.Prepare an Initialization Parameter File for the Standby Database
准备备库的参数文件
initPRODSTD.ora
①在主库中将主库的pfile文件传输到备库中
[oracle@ocm1 ~]$ cd /u01/app/oracle/product/10.2.0/db_1/dbs
[oracle@ocm1 dbs]$ ll
total 6744
-rw-rw---- 1 oracle oinstall 1544 Mar 25 09:59 hc_PROD.dat
-rw-r----- 1 oracle oinstall 12920 May 3 2001 initdw.ora
-rw-r----- 1 oracle oinstall 8385 Sep 11 1998 init.ora
-rw-r--r-- 1 oracle oinstall 1827 Mar 25 09:39 initPROD.ora
-rw-rw---- 1 oracle oinstall 24 Mar 18 10:18 lkPROD
-rw-r----- 1 oracle oinstall 5120 Mar 18 09:54 orapwPROD
-rw-r--r-- 1 oracle oinstall 318 Mar 17 20:37 pfile.ora
-rw-r----- 1 oracle oinstall 6832128 Mar 19 19:51 snapcf_PROD.f
-rw-r----- 1 oracle oinstall 4608 Mar 25 09:57 spfilePROD.ora
[oracle@ocm1 dbs]$ scp initPROD.ora ocm2.localdomain:/u01/app/oracle/product/10.2.0/db_1/dbs
The authenticity of host 'ocm2.localdomain (192.168.1.156)' can't be established.
RSA key fingerprint is de:2a:4c:d0:b2:20:88:4c:a2:72:24:11:50:4b:d6:74.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ocm2.localdomain,192.168.1.156' (RSA) to the list of known hosts.
oracle@ocm2.localdomain's password:
initPROD.ora 100% 1827 1.8KB/s 00:00
[oracle@ocm1 dbs]$
②,在备库中修改pfile
[oracle@ocm2 ~]$ cd /u01/app/oracle/product/10.2.0/db_1/dbs
[oracle@ocm2 dbs]$ ll
total 48
-rw-rw---- 1 oracle oinstall 1544 Mar 24 14:10 hc_EMREP.dat
-rw-r----- 1 oracle oinstall 12920 May 3 2001 initdw.ora
-rw-r----- 1 oracle oinstall 8385 Sep 11 1998 init.ora
-rw-r--r-- 1 oracle oinstall 1827 Mar 25 10:08 initPROD.ora
-rw-rw---- 1 oracle oinstall 24 Mar 20 15:14 lkEMREP
-rw-r----- 1 oracle oinstall 1536 Mar 20 16:16 orapwEMREP
-rw-r----- 1 oracle oinstall 2560 Mar 24 14:10 spfileEMREP.ora
[oracle@ocm2 dbs]$ mv initPROD.ora initPRODSTD.ora
[oracle@ocm2 dbs]$ vi initPRODSTD.ora
修改内容如下:
PRODSTD.__db_cache_size=331350016
PRODSTD.__java_pool_size=4194304
PRODSTD.__large_pool_size=4194304
PRODSTD.__shared_pool_size=180355072
PRODSTD.__streams_pool_size=0
*.BACKGROUND_DUMP_DEST='/u01/app/oracle/admin/
PRODSTD/bdump'
*.control_files='/u01/app/oracle/oradata/
PRODSTD/Disk1/control01.ctl','/u01/app/oracle/oradata/
PRODSTD/Disk2/control02.ctl','/u01/app/oracle/oradata/
PRODSTD/Disk3/control03.ctl'
*.CORE_DUMP_DEST='/u01/app/oracle/admin/
PRODSTD/cdump'
*.DB_BLOCK_SIZE=8192
*.DB_CREATE_FILE_DEST='/u01/app/oracle/oradata/
PRODSTD/Disk1'
*.DB_CREATE_ONLINE_LOG_DEST_1='/u01/app/oracle/oradata/
PRODSTD/Disk1'
*.DB_NAME='
PROD'
*.db_recovery_file_dest_size=4294967296
*.db_recovery_file_dest='/home/oracle/flash'
*.job_queue_processes=15
*.max_dispatchers=10
*.max_shared_servers=30
*.processes=135
*.sessions=300
*.SGA_TARGET=500M
*.shared_server_sessions=200
*.shared_servers=10
*.UNDO_MANAGEMENT='auto'
*.undo_retention=5400
*.UNDO_TABLESPACE='undotbs1'
*.USER_DUMP_DEST='/u01/app/oracle/admin/
PRODSTD/udump'
*.utl_file_dir='/home/oracle','/home/oracle/temp','/home/oracle/scripts'
##parameter for Primary Database
DB_NAME=
PROD
DB_UNIQUE_NAME=
PRODSTD
LOG_ARCHIVE_CONFIG='DG_CONFIG=(PROD,PRODSTD)'
CONTROL_FILES='/u01/app/oracle/oradata/
PRODSTD/Disk1/control01.ctl','/u01/app/oracle/oradata/
PRODSTD/Disk2/control02.ctl','/u01/app/oracle/oradata/
PRODSTD/Disk3/control03.ctl'
LOG_ARCHIVE_DEST_1='location=/u01/app/oracle/oradata/
PRODSTD/Disk2/arch VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=
PRODSTD'
LOG_ARCHIVE_DEST_2='SERVICE=
PROD LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=
PROD'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
LOG_ARCHIVE_MAX_PROCESSES=30
##parameter for Standby Database
FAL_SERVER=
PROD
FAL_CLIENT=
PRODSTD
DB_FILE_NAME_CONVERT='
PROD','
PRODSTD'
LOG_FILE_NAME_CONVERT='
PROD','
PRODSTD'
STANDBY_FILE_MANAGEMENT=AUTO
Note:
此处需注意参数文件里的路径必须存在
[oracle@ocm2 dbs]$ mkdir /home/oracle/flash
[oracle@ocm2 dbs]$ mkdir /home/oracle/temp
[oracle@ocm2 dbs]$ mkdir /home/oracle/scripts
- 2.4.Copy Files from the Primary System to the Standby System
从主库拷贝文件到备库
①password parameter file created in 1.2
[oracle@ocm2 ~]$ cd /u01/app/oracle/product/10.2.0/db_1/dbs
[oracle@ocm1 dbs]$ scp orapwPROD ocm2.localdomain:/u01/app/oracle/product/10.2.0/db_1/dbs
oracle@ocm2.localdomain's password:
orapwPROD 100% 5120 5.0KB/s 00:01
[oracle@ocm1 dbs]$
在备库中修改密码文件名称
[oracle@ocm2 ~]$ cd /u01/app/oracle/product/10.2.0/db_1/dbs
[oracle@ocm2 dbs]$ ll
total 56
-rw-rw---- 1 oracle oinstall 1544 Mar 24 14:10 hc_EMREP.dat
-rw-r----- 1 oracle oinstall 12920 May 3 2001 initdw.ora
-rw-r----- 1 oracle oinstall 8385 Sep 11 1998 init.ora
-rw-r--r-- 1 oracle oinstall 1960 Mar 25 10:13 initPRODSTD.ora
-rw-rw---- 1 oracle oinstall 24 Mar 20 15:14 lkEMREP
-rw-r----- 1 oracle oinstall 1536 Mar 20 16:16 orapwEMREP
-rw-r----- 1 oracle oinstall 5120 Mar 25 10:17 orapwPROD
-rw-r----- 1 oracle oinstall 2560 Mar 24 14:10 spfileEMREP.ora
[oracle@ocm2 dbs]$
mv orapwPROD orapwPRODSTD
②Backup datafiles created in Section 2.1
[oracle@ocm1 dbs]$
scp /u01/app/oracle/oradata/PROD.tar.gz ocm2.localdomain:/u01/app/oracle/oradata/
oracle@ocm2.localdomain's password:
PROD.tar.gz 100% 225MB 2.8MB/s 01:20
[oracle@ocm1 dbs]$
在备库中恢复
[oracle@ocm2 ~]$ cd /u01/app/oracle/oradata/
[oracle@ocm2 oradata]$ ll
total 230872
drwxr-x--- 2 oracle oinstall 4096 Mar 20 15:16 EMREP
-rw-r--r-- 1 oracle oinstall 236170241 Mar 25 10:21 PROD.tar.gz
[oracle@ocm2 oradata]$ tar -xzvf PROD.tar.gz
PROD/
PROD/Disk1/
PROD/Disk1/temp01.dbf
PROD/Disk1/standby07.log
PROD/Disk1/standby11.log
PROD/Disk1/redo03.log
PROD/Disk1/standby10.log
PROD/Disk1/standby09.log
PROD/Disk1/system01.dbf
PROD/Disk1/redo01.log
PROD/Disk1/standby08.log
PROD/Disk1/standby06.log
PROD/Disk1/control01.ctl
PROD/Disk1/users01.dbf
PROD/Disk1/sysaux01.dbf
PROD/Disk1/example01.dbf
PROD/Disk1/redo02.log
PROD/Disk1/redo05.log
PROD/Disk1/redo04.log
PROD/Disk1/undotbs01.dbf
PROD/Disk2/
PROD/Disk2/standby07_1.log
PROD/Disk2/standby06_1.log
PROD/Disk2/redo03_1.log
PROD/Disk2/standby09_1.log
PROD/Disk2/standby08_1.log
PROD/Disk2/control02.ctl
PROD/Disk2/redo05_1.log
PROD/Disk2/redo02_1.log
PROD/Disk2/redo01_1.log
PROD/Disk2/redo04_1.log
PROD/Disk2/standby10_1.log
PROD/Disk2/standby11_1.log
PROD/Disk2/arch/
PROD/Disk2/arch/arc_05p3jeqe_1_1.bak
PROD/Disk3/
PROD/Disk3/control03.ctl
PROD/Disk4/
PROD/Disk5/
PROD/Disk5/bak/
PROD/Disk5/bak/PROD_04p3jeq8_1_1.bak
PROD/Disk5/bak/PROD_03p3jemu_1_1.bak
[oracle@ocm2 oradata]$
[oracle@ocm2 oradata]$ ll
total 230876
drwxr-x--- 2 oracle oinstall 4096 Mar 20 15:16 EMREP
drwxr-xr-x 7 oracle oinstall 4096 Mar 19 13:16 PROD
-rw-r--r-- 1 oracle oinstall 236170241 Mar 25 10:21 PROD.tar.gz
[oracle@ocm2 oradata]$ mv PROD PRODSTD
[oracle@ocm2 oradata]$ ll
total 230876
drwxr-x--- 2 oracle oinstall 4096 Mar 20 15:16 EMREP
drwxr-xr-x 7 oracle oinstall 4096 Mar 19 13:16 PRODSTD
-rw-r--r-- 1 oracle oinstall 236170241 Mar 25 10:21 PROD.tar.gz
[oracle@ocm2 oradata]$ rm -rf PROD.tar.gz
[oracle@ocm2 oradata]$ ll
total 8
drwxr-x--- 2 oracle oinstall 4096 Mar 20 15:16 EMREP
drwxr-xr-x 7 oracle oinstall 4096 Mar 19 13:16
PRODSTD-路径和PROD的路径一致
删除PRODSTD中原主库控制文件
[oracle@ocm2 oradata]$ pwd
/u01/app/oracle/oradata
[oracle@ocm2 oradata]$ rm -rf PRODSTD/Disk1/control01.ctl
[oracle@ocm2 oradata]$ rm -rf PRODSTD/Disk2/control02.ctl
[oracle@ocm2 oradata]$ rm -rf PRODSTD/Disk3/control03.ctl
③Standby control file created in Section2.2
[oracle@ocm1 dbs]$ scp /home/oracle/control01.ctl ocm2.localdomain:/u01/app/oracle/oradata/PRODSTD/Disk1
oracle@ocm2.localdomain's password:
control01.ctl 100% 6672KB 3.3MB/s 00:02
[oracle@ocm1 dbs]$
④Initialization parameter file created in Section2.3,已经拷贝
- 2.5 Set Up the Environment to Support the Standby Database
Step 1 Create a Windows-based service.-linux操作下面不用操作这一步
Step 2 Create a password file. 2.4.1已经创建
Step 3 Configure listeners for the primary and standby databases.
Step 4 Create Oracle Net service names.
ocm1
[oracle@ocm1 dbs]$ cd /u01/app/oracle/product/10.2.0/db_1/network/admin/
[oracle@ocm1 admin]$ ll
total 20
-rw-r--r-- 1 oracle oinstall 712 Mar 18 12:30 listener.ora
drwxr-x--- 2 oracle oinstall 4096 Mar 16 19:17 samples
-rw-r----- 1 oracle oinstall 172 Dec 26 2003 shrept.lst
-rw-r--r-- 1 oracle oinstall 41 Mar 18 13:38 sqlnet.ora
-rw-r--r-- 1 oracle oinstall 589 Mar 18 18:47 tnsnames.ora
[oracle@ocm1 admin]$ cat listener.ora
LISTENER=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=ocm1.localdomain)(PORT=1521))
(ADDRESS=(PROTOCOL=ipc)(KEY=extproc))))
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=PROD)
(ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1)
(SID_NAME=PROD))
(SID_DESC=
(GLOBAL_DBNAME=PRODSTD)
(ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1)----添加
(SID_NAME=PRODSTD))
(SID_DESC=
(SID_NAME=plsextproc)
(ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1)
(PROGRAM=extproc)))
LSNR2=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=tcp)(HOST=ocm1.localdomain)(PORT=1526))
(ADDRESS=(PROTOCOL=ipc)(KEY=extproc1))))
[oracle@ocm1 admin]$ cat tnsnames.ora
prod=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=ocm1.localdomain)(PORT=1521))
(CONNECT_DATA=
(SERVICE_NAME=PROD)
(SERVER=dedicated)))
PRODSTD=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=ocm2.localdomain)(PORT=1521))-添加
(CONNECT_DATA=
(SERVICE_NAME=PRODSTD)
(SERVER=dedicated)))
[oracle@ocm1 admin]$
[oracle@ocm1 admin]$
lsnrctl start
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 25-MAR-2014 10:48:36
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ocm1.localdomain)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ocm1.localdomain)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 25-MAR-2014 10:48:38
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ocm1.localdomain)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=extproc)))
Services Summary...
Service "EMREP" has 1 instance(s).
Instance "EMREP", status UNKNOWN, has 1 handler(s) for this service...
Service "PROD" has 1 instance(s).
Instance "PROD", status UNKNOWN, has 1 handler(s) for this service...
Service "PRODSTD" has 1 instance(s).
Instance "PRODSTD", status UNKNOWN, has 1 handler(s) for this service...
Service "plsextproc" has 1 instance(s).
Instance "plsextproc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[oracle@ocm1 admin]$
ocm2:
[oracle@ocm2 admin]$ cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC=
(GLOBAL_DBNAME=PROD)
(ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1)
(SID_NAME=PROD))
(SID_DESC=
(GLOBAL_DBNAME=PRODSTD)
(ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1) ----------添加
(SID_NAME=PRODSTD))
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = /u01/app/oracle/product/10.2.0/db_1)
(PROGRAM = extproc)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ocm2.localdomain)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
)
[oracle@ocm2 admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
PROD =
(description =
(address=(protocol=tcp)(host=ocm1.localdomain)(port=1521))
(connect_data=
(server = dedicated)
(service_name = PROD)
)
)
PRODSTD =
(description =
(address=(protocol=tcp)(host=ocm2.localdomain)(port=1521)) --添加
(connect_data=
(server = dedicated)
(service_name = PRODSTD)
)
)
[oracle@ocm2 admin]$
[oracle@ocm2 admin]$
lsnrctl start
LSNRCTL for Linux: Version 10.2.0.1.0 - Production on 25-MAR-2014 11:03:00
Copyright (c) 1991, 2005, Oracle. All rights reserved.
Starting /u01/app/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
System parameter file is /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Log messages written to /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ocm2.localdomain)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=ocm2.localdomain)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.1.0 - Production
Start Date 25-MAR-2014 11:03:02
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
Listener Log File /u01/app/oracle/product/10.2.0/db_1/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=ocm2.localdomain)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "PROD" has 1 instance(s).
Instance "PROD", status UNKNOWN, has 1 handler(s) for this service...
Service "PRODSTD" has 1 instance(s).
Instance "PRODSTD", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
[oracle@ocm2 admin]$
Step 5 Create a server parameter file for the standby database.
[oracle@ocm2 ~]$ export ORACLE_SID=PRODSTD
[oracle@ocm2 ~]$ sqlplus "/as sysdba"
SQL*Plus: Release 10.2.0.1.0 - Production on Tue Mar 25 11:06:14 2014
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
SYS@PRODSTD>
create spfile from pfile;
File created.
- 2.6.Start the Physical Standby Database
启动备库
Step 1 Start the physical standby database.
SYS@PRODSTD>startup mount
ORACLE instance started.
Total System Global Area 524288000 bytes
Fixed Size 1220360 bytes
Variable Size 188743928 bytes
Database Buffers 331350016 bytes
Redo Buffers 2973696 bytes
Database mounted.
SYS@PRODSTD>
备库
SYS@PRODSTD>select database_role,switchover_status from v$database;
DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PHYSICAL STANDBY RECOVERY NEEDED
主库
SYS@PROD>select database_role,switchover_status from v$database;
DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PRIMARY SESSIONS ACTIVE
Step 2 Start Redo Apply.
备库只有在mount状态的时候可以应用日志,read only状态不能应用日志
应用日志调用2个MRP进程启动LEO3库日志应用并后台运行
alter database recover managed standby database disconnect from session parallel 2;
备库
SYS@PRODSTD>alter database recover managed standby database disconnect from session parallel 2;
Database altered.
SYS@PRODSTD>select database_role,switchover_status from v$database;
DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PHYSICAL STANDBY SESSIONS ACTIVE
主库
SYS@PROD>select database_role,switchover_status from v$database;
DATABASE_ROLE SWITCHOVER_STATUS
---------------- --------------------
PRIMARY SESSIONS ACTIVE
Step 3 Test archival operations to the physical standby database.
SYS@PROD>alter system switch logfile;
System altered.
tail -f alert_PROD.log
LNS1 started with pid=59, OS id=9381
Tue Mar 25 11:23:53 2014
Thread 1 advanced to log sequence 13
Current log# 5 seq# 13 mem# 0: /u01/app/oracle/oradata/PROD/Disk1/redo05.log
Current log# 5 seq# 13 mem# 1: /u01/app/oracle/oradata/PROD/Disk2/redo05_1.log
Tue Mar 25 11:23:54 2014
******************************************************************
LGWR: Setting 'active' archival for destination LOG_ARCHIVE_DEST_2
******************************************************************
LNS: Standby redo logfile selected for thread 1 sequence 13 for destination LOG_ARCHIVE_DEST_2
Tue Mar 25 11:23:55 2014
ARC4: Standby redo logfile selected for thread 1 sequence 12 for destination LOG_ARCHIVE_DEST_2
tail -f alert_PRODSTD.log
Tue Mar 25 11:23:54 2014
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS[2]: Assigned to RFS process 4259
RFS[2]: Identified database type as 'physical standby'
Tue Mar 25 11:23:54 2014
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS[3]: Assigned to RFS process 4257
RFS[3]: Identified database type as 'physical standby'
Primary database is in MAXIMUM PERFORMANCE mode
Primary database is in MAXIMUM PERFORMANCE mode
RFS[3]: Successfully opened standby log 6: '/u01/app/oracle/oradata/PRODSTD/Disk1/standby06.log'
Tue Mar 25 11:23:55 2014
RFS[2]: Successfully opened standby log 7: '/u01/app/oracle/oradata/PRODSTD/Disk1/standby07.log'
Tue Mar 25 11:23:58 2014
Media Recovery Log /u01/app/oracle/oradata/PRODSTD/Disk2/arch/1_12_842523531.arc
Media Recovery Waiting for thread 1 sequence 13 (in transit)
Tue Mar 25 11:24:30 2014
Redo Shipping Client Connected as PUBLIC
-- Connected User is Valid
RFS[4]: Assigned to RFS process 4262
RFS[4]: Identified database type as 'physical standby'
- 2.7 Verify the Physical Standby Database Is Performing Properly
Step 1 Identify the existing archived redo log files.
SYS@PRODSTD>SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME,applied from v$archived_log;
SEQUENCE# FIRST_TIM NEXT_TIME APP
---------- --------- --------- ---
11 25-MAR-14 25-MAR-14 YES
12 25-MAR-14 25-MAR-14 YES
Step 2 Force a log switch to archive the current online redo log file.
SYS@PROD>ALTER SYSTEM SWITCH LOGFILE;
System altered.
tail -f alert_PROD.log
Tue Mar 25 11:32:49 2014
Thread 1 advanced to log sequence 14
Current log# 1 seq# 14 mem# 0: /u01/app/oracle/oradata/PROD/Disk1/redo01.log
Current log# 1 seq# 14 mem# 1: /u01/app/oracle/oradata/PROD/Disk2/redo01_1.log
Tue Mar 25 11:32:50 2014
LNS: Standby redo logfile selected for thread 1 sequence 14 for destination LOG_ARCHIVE_DEST_2
tail -f alert_PRODSTD.log
Tue Mar 25 11:32:50 2014
Primary database is in MAXIMUM PERFORMANCE mode
RFS[3]: Successfully opened standby log 7: '/u01/app/oracle/oradata/PRODSTD/Disk1/standby07.log'
Tue Mar 25 11:32:51 2014
Media Recovery Log /u01/app/oracle/oradata/PRODSTD/Disk2/arch/1_13_842523531.arc
Media Recovery Waiting for thread 1 sequence 14 (in transit)
Step 3 Verify the new redo data was archived on the standby database.
Step 4 Verify new archived redo log files were applied.
SYS@PRODSTD>SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME,applied from v$archived_log;
SEQUENCE# FIRST_TIM NEXT_TIME APP
---------- --------- --------- ---
11 25-MAR-14 25-MAR-14 YES
12 25-MAR-14 25-MAR-14 YES
13 25-MAR-14 25-MAR-14 YES