ITPUB??ì3
新一届的微软MVP评选已经开始,欢迎各位推荐!
ITPUB论坛 » Oracle新技术/11g » oracle11g下Snapshot_Standby_Database安装体验

标题: [Tips] oracle11g下Snapshot_Standby_Database安装体验
离线 shengang34
态度决定一切


精华贴数 0
个人空间 0
技术积分 1696 (995)
社区积分 37 (5648)
注册日期 2005-3-28
论坛徽章:4
会员2007贡献徽章生肖徽章2007版:猴生肖徽章2007版:鸡ITPUB新首页上线纪念徽章  
      

发表于 2007-8-22 17:15 
oracle11g下Snapshot_Standby_Database安装体验

一、环境
#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 sidrcl
172.168.1.212           11gstandby     --standby sidrcl2


二、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兄对我帮助不小,再次一并谢过。


__________________
长路漫漫,任重道远。
只看该作者    顶部
离线 NinGoo
何乡是吾乡


来自 杭州
精华贴数 4
个人空间 235
技术积分 12772 (90)
社区积分 4339 (327)
注册日期 2004-12-7
论坛徽章:91
现任管理团队成员ITPUB元老2008北京奥运纪念徽章:水球2008北京奥运纪念徽章:摔跤2008北京奥运纪念徽章:网球2008北京奥运纪念徽章:篮球
2008北京奥运纪念徽章:艺术体操2008北京奥运纪念徽章:拳击2008北京奥运纪念徽章:田径2008北京奥运纪念徽章:乒乓球2008北京奥运纪念徽章:体操2008年新春纪念徽章

发表于 2007-8-22 18:35 
应用的场景也很多的,比如有些报表需要建中间表什么的,就可以利用该特性,在报表出来后再闪回让后利用归档和主库保持一致,需要出报表的时候又可以再次置于读写模式

taobao目前就在利用10g的该特性,巴乔最近是深有体会


__________________
只看该作者    顶部
离线 sailor_123
初级会员



精华贴数 0
个人空间 0
技术积分 72 (21291)
社区积分 2 (29746)
注册日期 2006-8-25
论坛徽章:0
      
      

发表于 2007-8-23 17:07 
楼主辛苦了,实在太棒了,收藏回去学习!


只看该作者    顶部
离线 brucewoo
资深会员



精华贴数 0
个人空间 119
技术积分 2275 (691)
社区积分 608 (1260)
注册日期 2004-3-30
论坛徽章:38
ITPUB元老会员2007贡献徽章铁扇公主2008北京奥运纪念徽章:皮划艇静水生肖徽章2007版:虎生肖徽章2007版:鼠
生肖徽章2007版:牛生肖徽章2007版:兔生肖徽章:兔生肖徽章:虎生肖徽章:鼠生肖徽章:牛

发表于 2007-8-23 17:56 
有机会学习一下


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问