ITPub博客

首页 > 数据库 > Oracle > Physical Standby Database 切换到 Snapshot Standby Database

Physical Standby Database 切换到 Snapshot Standby Database

原创 Oracle 作者:duduyey 时间:2014-08-26 10:36:07 0 删除 编辑
快照数据库是由物理备库转换而来的,它可以接受和归档主库传过来的日志,但并不应用日志,等到将快照数据库切换回到物理备库的时候,再应用这些日志,从而实现主备库的一致性,同时快照备库之前曾经的操作也将会被清除。
快照数据库主要应用于测试一些将要应用与主库的操作。

主库信息:


NAME      DB_UNIQUE_NAME                 DATABASE_ROLE    SWITCHOVER_STATUS    PRIMARY_DB_UNIQUE_NAME         PROTECTION_MODE
--------- ------------------------------ ---------------- -------------------- ------------------------------ --------------------
PHYPRIMA  phyprimary                     PRIMARY          TO STANDBY           phystandby                     MAXIMUM PERFORMANCE

备库信息:

NAME      DB_UNIQUE_NAME                 DATABASE_ROLE    SWITCHOVER_STATUS    PRIMARY_DB_UNIQUE_NAME         PROTECTION_MODE
--------- ------------------------------ ---------------- -------------------- ------------------------------ --------------------
PHYPRIMA  phystandby                     PHYSICAL STANDBY NOT ALLOWED          phyprimary                     MAXIMUM PERFORMANCE

实验步骤:


1 重启备库到mount阶段(备库操作)

 SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area  422670336 bytes
Fixed Size                  1336960 bytes
Variable Size             343935360 bytes
Database Buffers           71303168 bytes
Redo Buffers                6094848 bytes
Database mounted.

2 关闭备库日志应用(备库操作)

SQL> alter database recover managed standby database cancel;

Database altered.

3 切换物理备库到快照备库,并查看备库状态

SQL> alter database convert to snapshot standby;  

Database altered.

SQL> select open_mode,database_role,switchover_status from v$database;

OPEN_MODE            DATABASE_ROLE    SWITCHOVER_STATUS
-------------------- ---------------- --------------------
READ WRITE           SNAPSHOT STANDBY NOT ALLOWED

4 打开快照备库 添加一些测试数据库

主库操作:

在主库创建测试表
SQL> create table user01.test04 as select * from dba_users;

Table created.

切换日志,
SQL> alter system switch logfile;

System altered.

在备库日志文件中可以看到,备库依然在接受日志

ARC1: Becoming the 'no SRL' ARCH
Archived Log entry 179 added for thread 1 sequence 72 ID 0x136827ea dest 1:
RFS[4]: Selected log 8 for thread 1 sequence 73 dbid 324097933 branch 855859489
Mon Aug 25 19:03:33 2014

但并没有应用到备库上,备库上不存在主库新建的表

SQL> desc user01.test04;
ERROR:
ORA-04043: object user01.test04 does not exist


在备库新建测试表

create user02 identified by oracle;

grant resource,connect to user02;

create table user02.test01 as select * from dba_users;

SQL> select username,account_status from user02.test01;

USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
MGMT_VIEW                      OPEN
SYS                            OPEN
SYSTEM                         OPEN
DBSNMP                         OPEN
SYSMAN                         OPEN
USER02                         OPEN
OUTLN                          EXPIRED & LOCKED
FLOWS_FILES                    EXPIRED & LOCKED
MDSYS                          EXPIRED & LOCKED
ORDSYS                         EXPIRED & LOCKED
EXFSYS                         EXPIRED & LOCKED

USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
WMSYS                          EXPIRED & LOCKED
APPQOSSYS                      EXPIRED & LOCKED
APEX_030200                    EXPIRED & LOCKED
OWBSYS_AUDIT                   EXPIRED & LOCKED
ORDDATA                        EXPIRED & LOCKED
CTXSYS                         EXPIRED & LOCKED
ANONYMOUS                      EXPIRED & LOCKED
XDB                            EXPIRED & LOCKED
ORDPLUGINS                     EXPIRED & LOCKED
OWBSYS                         EXPIRED & LOCKED
SI_INFORMTN_SCHEMA             EXPIRED & LOCKED

USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
OLAPSYS                        EXPIRED & LOCKED
SCOTT                          EXPIRED & LOCKED
ORACLE_OCM                     EXPIRED & LOCKED
XS$NULL                        EXPIRED & LOCKED
BI                             EXPIRED & LOCKED
PM                             EXPIRED & LOCKED
MDDATA                         EXPIRED & LOCKED
IX                             EXPIRED & LOCKED
SH                             EXPIRED & LOCKED
DIP                            EXPIRED & LOCKED
OE                             EXPIRED & LOCKED

USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
APEX_PUBLIC_USER               EXPIRED & LOCKED
HR                             EXPIRED & LOCKED
SPATIAL_CSW_ADMIN_USR          EXPIRED & LOCKED
SPATIAL_WFS_ADMIN_USR          EXPIRED & LOCKED

37 rows selected.


5 重新切换快照数据库到物理备库。

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area  422670336 bytes
Fixed Size                  1336960 bytes
Variable Size             343935360 bytes
Database Buffers           71303168 bytes
Redo Buffers                6094848 bytes
Database mounted.
SQL> alter database convert to physical standby;  

Database altered.

6 重新启动备库,查看备库测试数据



SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01507: database not mounted


SQL> select status from v$instance;

STATUS
------------
STARTED

SQL> alter database mount
  2  ;
alter database mount
*
ERROR at line 1:
ORA-00750: database has been previously mounted and dismounted


SQL> shutdown immediate
ORA-01507: database not mounted


ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area  422670336 bytes
Fixed Size                  1336960 bytes
Variable Size             343935360 bytes
Database Buffers           71303168 bytes
Redo Buffers                6094848 bytes
Database mounted.
SQL> alter database recover managed standby database;

Database altered.

SQL> alter database open;

Database altered.


之前新建的用户user02已经不存在
SQL> conn /as sysdba
Connected.
SQL> select username from dba_users where username='USER02';   

no rows selected


在物理备库上查看之前在主库创建的表,发现已经自动应用到了备库上

SQL> desc user01.test04;
Name                                                                                                              Null?    Type
----------------------------------------------------------------------------------------------------------------- -------- ----------------------------------------------------------------------------
USERNAME                                                                                                          NOT NULL VARCHAR2(30)
USER_ID                                                                                                           NOT NULL NUMBER
PASSWORD                                                                                                                   VARCHAR2(30)
ACCOUNT_STATUS                                                                                                    NOT NULL VARCHAR2(32)
LOCK_DATE                                                                                                                  DATE
EXPIRY_DATE                                                                                                                DATE
DEFAULT_TABLESPACE                                                                                                NOT NULL VARCHAR2(30)
TEMPORARY_TABLESPACE                                                                                              NOT NULL VARCHAR2(30)
CREATED                                                                                                           NOT NULL DATE
PROFILE                                                                                                           NOT NULL VARCHAR2(30)
INITIAL_RSRC_CONSUMER_GROUP                                                                                                VARCHAR2(30)
EXTERNAL_NAME                                                                                                              VARCHAR2(4000)
PASSWORD_VERSIONS                                                                                                          VARCHAR2(8)
EDITIONS_ENABLED                                                                                                           VARCHAR2(1)
AUTHENTICATION_TYPE  



来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28719055/viewspace-1257802/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-07-09

  • 博文量
    31
  • 访问量
    174869