一、环境
#uname -a
Linux oracle11g 2.6.9-42.EL #1 Wed Jul 12 23:16:43 EDT 2006 i686 athlon i386 GNU/Linux
sql>select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
PL/SQL Release 11.1.0.6.0 - Production
CORE 11.1.0.6.0 Production
TNS for Linux: Version 11.1.0.6.0 - Production
NLSRTL Version 11.1.0.6.0 - Production
/etc/hosts
172.168.1.211 oracle11g --primary sid

rcl
172.168.1.212 11gstandby --standby sid

rcl2
二、oracle11g的安装
2.1系统要求:
2.1.1 物理内存:512M
2.1.2 交换空间2G
2.1.3 禁用secure Linux
2.1.4 已经安装下列包(为简单起见,安装RedHat AS 4时最好选择全部安装):
A、X Window System
B、GNOME Desktop Environment
C、Editors
D、Graphical Internet
E、Text-based Internet
F、Server Configuration Tools
G、Development Tools
H、Administration Tools
I、System Tools
2.2设置核心参数
2.2.1.在/etc/sysctl.conf文件中加入下列行:
kernel.shmall = 2097152
kernel.shmmax = 2147483648
kernel.shmmni = 4096
# semaphores: semmsl, semmns, semopm, semmni
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000
net.core.rmem_default=4194304
net.core.rmem_max=4194304
net.core.wmem_default=262144
net.core.wmem_max=262144
2.2.2.运行下列命令改变核心参数:/sbin/sysctl –p
2.2.3.在/etc/security/limits.conf文件中加入下列行:
* soft nproc 2047
* hard nproc 16384
* soft nofile 1024
* hard nofile 65536
2.2.4.在/etc/pam.d/login文件中加入下列行,如果里面没有的话:
session required /lib/security/pam_limits.so
2.2.5.通过编辑/etc/selinux/config 文件禁用secure linux,确认其中的SELINUX标记如下:SELINUX=disabled。也可以通过GUI工具(Applications > System Settings > Security Level),选择SELinux禁用该属性。
2.3 安装前准备
2.3.1.检查下列包是否安装,若未安装则要先安装:
The following packages (or later versions) must be installed:
binutils-2.15.92.0.2-18
compat-libstdc++-33.2.3-47.3
elfutils-libelf-0.97-5
elfutils-libelf-devel-0.97-5
glibc-2.3.9.4-2.19
glibc-common-2.3.9.4-2.19
glibc-devel-2.3.9.4-2.19
gcc-3.4.5-2
gcc-c++-3.4.5-2
libaio-devel-0.3.105-2
libaio-0.3.105-2
libgcc-3.4.5
libstdc++-3.4.5-2
libstdc++-devel-3.4.5-2
make-3.80-5
sysstat-5.0.5
unixODBC-2.2.11
unixODBC-devel-2.2.11
可以到
http://glitesoft.cern.ch/cern/slc4X/i386/yum/updates/下载
rpm -Uvh参数是更新安装的意思,如果你根本没装这些包,需要用rpm -ivh参数,查看包的参数是rpm -qa|grep 包名
2.3.2.创建下列组和用户
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
passwd oracle
2.3.3.创建安装oracle的目录
mkdir -p /opt/oracle/product/10.2.0/db_1
chown -R oracle.oinstall /opt
2.3.4.远程操作执行本操作,用root登录,执行下列指令:
xhost +<machine-name>
2.3.5.用oracle登录把下列行加在.bash_profile文件末尾,注意把其中ORACLE_SID换成自己的实例名:
PATH=$PATH:$HOME/bin
export PATH
unset USERNAME
TMP=/tmp;
export TMP
TMPDIR=$TMP;
export TMPDIR
ORACLE_BASE=/home/oracle/oracle;
export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/11.1.0/db_1;
export ORACLE_HOME
ORACLE_SID=orcl;
export ORACLE_SID
ORACLE_TERM=xterm;
export ORACLE_TERM
PATH=/usr/sbin:$PATH;
export PATH
PATH=$ORACLE_HOME/bin:$PATH;
export PATH
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;
export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib;
export CLASSPATH
#LD_ASSUME_KERNEL=2.4.1;
export LD_ASSUME_KERNEL
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK;
export NLS=en_US;
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi
2.4 安装
2.4.1.用oracle用户登录。如果用的是X模式,要把DISPLAY设置如下:
DISPLAY=<machine-name>:0.0; export DISPLAY
2.4.2.在Disk1目录下用如下命令开始安装:
./runInstaller
2.4.3.详细过程就不说了,大家看着提示填写就好。
2.4.4.netca,和以前不同11g需要先建立监听,然后在建库。
2.4.5.dbca建库。
三 DG配置,在standby上安装oracle11g软件,不建库,方法同上,sid设置为orcl2,安装路径和primary一样。
3.1 让数据强制归档
SQL> ALTER DATABASE FORCE LOGGING;
Database altered.
3.2 创建standby控制文件
SQL> alter database create standby controlfile as '/opt/standbyctl.ctl';
3.2 使用pfile启动数据库,这样为了更好的配置参数文件,DG配置好后可以在改回来
SQL> create pfile from spfile;
3.4 关闭primary数据库,将数据文件、参数文件、standby控制文件、密码文件等传到standy
[oracle@oracle11g oracle]$ pwd
/home/oracle/oracle
[oracle@oracle11g oracle]$ ls
admin cfgtoollogs diag oradata product
将admin、cfgtoollogs、diag、oradata四个文件夹打包,传到standby。
到ORACLE_HOME/dbs目录,将 initorcl.ora,orapworcl 传到standby的相同路径
在standby下看到,将standbyctl.ctl到这个路径
[oracle@11gstandby oracle]$ pwd
/home/oracle/oracle
[oracle@11gstandby oracle]$ ls
admin cfgtoollogs diag oradata product standbyctl.ctl
将oradata下orcl改名为standby的sid
[oracle@11gstandby oracle]$ cd oradata/
[oracle@11gstandby oradata]$ mv orcl orcl2
修改密码文件和参数文件,将从主库传过来的initorcl.ora, orapworcl改名
[oracle@11gstandby dbs]$mv initorcl.ora initorcl2.ora
[oracle@11gstandby dbs]$mv orapworcl orapworcl2
3.5修改primary参数,如下
orcl.__db_cache_size=20971520
orcl.__java_pool_size=12582912
orcl.__large_pool_size=4194304
orcl.__oracle_base='/home/oracle/oracle'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=155189248
orcl.__sga_target=159383552
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=117440512
orcl.__streams_pool_size=0
*.audit_file_dest='/home/oracle/oracle/admin/orcl/adump'
*.audit_trail='db'
*.compatible='11.1.0.0.0'
*.control_files='/home/oracle/oracle/oradata/orcl/control01.ctl','/home/oracle/oracle/oradata/orcl/control02.ctl','/home/oracle/oracle/oradata/orcl/control03.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='orcl'
*.diagnostic_dest='/home/oracle/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.log_archive_format='%t_%s_%r.dbf'
*.memory_target=314572800
*.nls_language='SIMPLIFIED CHINESE'
*.nls_territory='CHINA'
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
*.DB_UNIQUE_NAME=orcl
*.service_names=orcl
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orcl2)'
*.LOG_ARCHIVE_DEST_1=
'LOCATION=/opt/arch/
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=orcl'
*.LOG_ARCHIVE_DEST_2=
'SERVICE=orcl2 ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=orcl2'
*.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
#*.standby_archive_dest=/opt/arch
*.FAL_CLIENT='orcl2'
*.FAL_SERVER='orcl'
3.6修改standby参数
orcl.__db_cache_size=20971520
orcl.__java_pool_size=12582912
orcl.__large_pool_size=4194304
orcl.__oracle_base='/home/oracle/oracle'#ORACLE_BASE set from environment
orcl.__pga_aggregate_target=155189248
orcl.__sga_target=159383552
orcl.__shared_io_pool_size=0
orcl.__shared_pool_size=117440512
orcl.__streams_pool_size=0
*.audit_file_dest='/home/oracle/oracle/admin/orcl/adump'
*.audit_trail='db'
*.compatible='11.1.0.0.0'
*.db_block_size=8192
*.db_domain=''
*.diagnostic_dest='/home/oracle/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)'
*.log_archive_format='%t_%s_%r.dbf'
*.memory_target=314572800
*.nls_language='SIMPLIFIED CHINESE'
*.nls_territory='CHINA'
*.open_cursors=300
*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
*.DB_NAME=orcl
*.DB_UNIQUE_NAME=orcl2
*.service_names=orcl2
*.LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orcl2)'
*.CONTROL_FILES='/home/oracle/oracle/standbyctl.ctl'
*.DB_FILE_NAME_CONVERT='orcl','orcl2'
*.LOG_FILE_NAME_CONVERT=
'/opt/arch/','/opt/arch'
*.LOG_ARCHIVE_FORMAT=log%t_%s_%r.arc
*.LOG_ARCHIVE_DEST_1=
'LOCATION=/opt/arch/
VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
DB_UNIQUE_NAME=orcl2'
*.LOG_ARCHIVE_DEST_2=
'SERVICE=orcl ASYNC
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=orcl'
*.LOG_ARCHIVE_DEST_STATE_1=ENABLE
*.LOG_ARCHIVE_DEST_STATE_2=ENABLE
*.REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
*.STANDBY_FILE_MANAGEMENT=AUTO
*.FAL_SERVER=orcl
*.FAL_CLIENT=orcl2
#*.standby_archive_dest=/opt/arch
*.instance_name=orcl2
3.7 primary监听和TNS
[oracle@oracle11g admin]$ cat listener.ora
# listener.ora Network Configuration File: /home/oracle/oracle/product/11.1.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle11g)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
[oracle@oracle11g admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /home/oracle/oracle/product/11.1.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL2 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.168.1.212)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl2)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.168.1.211)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
3.8 standby监听和TNS
由于我standby是虚拟机copy的主机,采用静态listener.ora,总报错监听找不到TNS,所以我采用动态listener
将listener.ora,改名,然后lsnrctl start
LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 21-AUG-2007 10:56:16
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Starting /home/oracle/oracle/product/11.1.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 11.1.0.6.0 - Production
Log messages written to /home/oracle/oracle/diag/tnslsnr/11gstandby/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=11gstandby)(PORT=1521)))
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.1.0.6.0 - Production
Start Date 21-AUG-2007 10:56:16
Uptime 0 days 0 hr. 0 min. 1 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /home/oracle/oracle/diag/tnslsnr/11gstandby/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=11gstandby)(PORT=1521)))
The listener supports no services
The command completed successfully
启动实例
[oracle@11gstandby ~]$ sqlplus /nolog
SQL*Plus: Release 11.1.0.6.0 - Production on Tue Aug 21 10:58:23 2007
Copyright (c) 1982, 2007, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected to an idle instance.
SQL> startup mount
ORACLE instance started.
Total System Global Area 313860096 bytes
Fixed Size 1299624 bytes
Variable Size 192940888 bytes
Database Buffers 113246208 bytes
Redo Buffers 6373376 bytes
Database mounted.
SQL> quit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@11gstandby ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.1.0.6.0 - Production on 21-AUG-2007 10:59:13
Copyright (c) 1991, 2007, Oracle. All rights reserved.
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.1.0.6.0 - Production
Start Date 21-AUG-2007 10:56:16
Uptime 0 days 0 hr. 2 min. 56 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Log File /home/oracle/oracle/diag/tnslsnr/11gstandby/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=11gstandby)(PORT=1521)))
Services Summary...
Service "orcl2" has 1 instance(s).
Instance "orcl2", status READY, has 1 handler(s) for this service...
Service "orcl2_XPT" has 1 instance(s).
Instance "orcl2", status READY, has 1 handler(s) for this service...
The command completed successfully
可以看到orcl2已经起来。
[oracle@11gstandby admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /home/oracle/oracle/product/11.1.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
ORCL2=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.168.1.212)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl2)
)
)
ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 172.168.1.211)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
3.9启动standby,进行测试。
SQL> startup mount
ORACLE instance started.
Total System Global Area 313860096 bytes
Fixed Size 1299624 bytes
Variable Size 192940888 bytes
Database Buffers 113246208 bytes
Redo Buffers 6373376 bytes
Database mounted.
SQL> alter database recover managed standby database disconnect from session;
Database altered.
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# FIRST_TIME NEXT_TIME
---------- ------------ ------------
20 19-AUG-07 19-AUG-07
21 19-AUG-07 20-AUG-07
22 20-AUG-07 20-AUG-07
23 20-AUG-07 20-AUG-07
24 20-AUG-07 20-AUG-07
25 20-AUG-07 21-AUG-07
26 21-AUG-07 22-AUG-07
27 22-AUG-07 22-AUG-07
28 22-AUG-07 22-AUG-07
29 22-AUG-07 22-AUG-07
10 rows selected.
SQL> select sequence#,applied from v$archived_log;
SEQUENCE# APP
---------- ---
20 YES
21 YES
22 YES
23 YES
24 YES
25 YES
28 YES
27 YES
26 YES
29 YES
10 rows selected.
primary
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# FIRST_TIME NEXT_TIME
---------- ------------ ------------
. . . . . . . . . . . .
SEQUENCE# FIRST_TIME NEXT_TIME
---------- ------------ ------------
27 22-AUG-07 22-AUG-07
28 22-AUG-07 22-AUG-07
28 22-AUG-07 22-AUG-07
29 22-AUG-07 22-AUG-07
29 22-AUG-07 22-AUG-07
49 rows selected.
SQL> select sequence#,applied from v$archived_log;
SEQUENCE# APP
---------- ---
. . . . . .
SEQUENCE# APP
---------- ---
28 YES
27 YES
26 YES
29 NO
29 YES
49 rows selected.
在主归档,看主、备的情况
SQL> alter system switch logfile;
System altered.
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# FIRST_TIME NEXT_TIME
---------- ------------ ------------
27 22-AUG-07 22-AUG-07
28 22-AUG-07 22-AUG-07
28 22-AUG-07 22-AUG-07
29 22-AUG-07 22-AUG-07
29 22-AUG-07 22-AUG-07
30 22-AUG-07 22-AUG-07
30 22-AUG-07 22-AUG-07
备
SEQUENCE# FIRST_TIME NEXT_TIME
---------- ------------ ------------
20 19-AUG-07 19-AUG-07
21 19-AUG-07 20-AUG-07
22 20-AUG-07 20-AUG-07
23 20-AUG-07 20-AUG-07
24 20-AUG-07 20-AUG-07
25 20-AUG-07 21-AUG-07
26 21-AUG-07 22-AUG-07
27 22-AUG-07 22-AUG-07
28 22-AUG-07 22-AUG-07
29 22-AUG-07 22-AUG-07
30 22-AUG-07 22-AUG-07
可以看出主的归档已经传到备库。
四、体验11gDATAGUARD的Snapshot Standby Database
SQL> ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;
ALTER DATABASE CONVERT TO SNAPSHOT STANDBY
*
ERROR at line 1:
ORA-38784: Cannot create restore point 'SNAPSHOT_STANDBY_REQUIRED_08/20/2007
15:54:38'.
ORA-38786: Flash recovery area is not enabled.
当时安装的时候没有设置FRA,现在手工设置:
db_recovery_file_dest='/opt/arch' 指定闪回恢复区的位置
db_recovery_file_dest_size=3G 指定闪回恢复区的可用空间大小
db_flashback_retention_target 指定数据库可以回退的时间,单位为分钟,默认1440分钟,也就是一天。当然,实际上可回退的时间还 决定于闪回恢复区的大小,因为里面保存了回退所需要的flash log。所以这个参数要和 db_recovery_file_dest_size配合修改。
然后,启动数据库到mount状态
SQL> shutdown immediate;
SQL> startup mount;
SQL> alter database flashback on;
SQL> alter database open;
SQL> select FLASHBACK_ON from v$database;
FLASHBACK_ON
------------------------------------
YES
在备库进行操作
SQL> startup mount
ORACLE instance started.
Total System Global Area 313860096 bytes
Fixed Size 1299624 bytes
Variable Size 192940888 bytes
Database Buffers 113246208 bytes
Redo Buffers 6373376 bytes
Database mounted.
SQL> ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;
Database altered.
改变模式后不能直接打开数据库,需要重启
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01507: database not mounted
SQL> shutdown immediate;
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 313860096 bytes
Fixed Size 1299624 bytes
Variable Size 192940888 bytes
Database Buffers 113246208 bytes
Redo Buffers 6373376 bytes
Database mounted.
Database opened.
SQL> select name,open_mode,PROTECTION_MODE,DATABASE_ROLE from v$database;
NAME OPEN_MODE PROTECTION_MODE DATABASE_ROLE
--------- ---------- -------------------- ----------------
ORCL READ WRITE MAXIMUM PERFORMANCE SNAPSHOT STANDBY
SQL> create table t(a number);
Table created.
SQL> commit
2 ;
Commit complete.
SQL> insert into t values(10);
1 row created.
SQL> commit;
Commit complete.
SQL> select * from t;
A
----------
10
SQL> alter system switch logfile;
System altered.
SQL> SELECT SEQUENCE#, FIRST_TIME, NEXT_TIME FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
SEQUENCE# FIRST_TIME NEXT_TIME
---------- ------------ ------------
1 22-AUG-07 22-AUG-07
1 22-AUG-07 22-AUG-07
20 19-AUG-07 19-AUG-07
21 19-AUG-07 20-AUG-07
22 20-AUG-07 20-AUG-07
23 20-AUG-07 20-AUG-07
24 20-AUG-07 20-AUG-07
25 20-AUG-07 21-AUG-07
26 21-AUG-07 22-AUG-07
27 22-AUG-07 22-AUG-07
28 22-AUG-07 22-AUG-07
SEQUENCE# FIRST_TIME NEXT_TIME
---------- ------------ ------------
29 22-AUG-07 22-AUG-07
30 22-AUG-07 22-AUG-07
13 rows selected.
SQL> select sequence#,applied from v$archived_log;
SEQUENCE# APP
---------- ---
20 YES
21 YES
22 YES
23 YES
24 YES
25 YES
28 YES
27 YES
26 YES
29 YES
1 NO
SEQUENCE# APP
---------- ---
30 YES
1 NO
13 rows selected.
可以看出当SNAPSHOT STANDBY工作的时候,也是进行归档的。
SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
ALTER DATABASE CONVERT TO PHYSICAL STANDBY
*
ERROR at line 1:
ORA-01126: database must be mounted in this instance and not open in any
instance
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 313860096 bytes
Fixed Size 1299624 bytes
Variable Size 192940888 bytes
Database Buffers 113246208 bytes
Redo Buffers 6373376 bytes
Database mounted.
SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
Database altered.
SQL> alter database recover managed standby database disconnect from session;
alter database recover managed standby database disconnect from session
*
ERROR at line 1:
ORA-01507: database not mounted
SQL> shutdown immediate;
ORA-01507: database not mounted
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 313860096 bytes
Fixed Size 1299624 bytes
Variable Size 192940888 bytes
Database Buffers 113246208 bytes
Redo Buffers 6373376 bytes
Database mounted.
SQL> select name,open_mode,PROTECTION_MODE,DATABASE_ROLE from v$database;
NAME OPEN_MODE PROTECTION_MODE DATABASE_ROLE
--------- ---------- -------------------- ----------------
ORCL MOUNTED MAXIMUM PERFORMANCE PHYSICAL STANDBY
SQL> alter database recover managed standby database disconnect from session;
Database altered.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
Database altered.
SQL> alter database open read only;
Database altered.
SQL> select * from t;
select * from t
*
ERROR at line 1:
ORA-00942: table or view does not exist
表已经不存在!
其实个人觉得,oracle的这个功能在实际中可能用的不是很多,把备库写是很不错的主意,但是进行闪回后还是回到原点,那么你对备库写有什么意义?
期间NinGoo兄对我帮助不小,再次一并谢过。