首页 技术 正文
技术 2022年11月15日
0 收藏 426 点赞 3,967 浏览 7215 个字

[20180423]flashback tablespace与snapshot standby.txt

–//缺省建立表空间是打开flashback on,如果某个表空间flashback off,在dg启动snapshot standby时注意,可能”回不来”,
–//通过测试说明问题.

1.环境:
SCOTT@book> @ ver1
PORT_STRING                    VERSION        BANNER
—————————— ————– ——————————————————————————–
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 – 64bit Production

2.设置备库tea表空间关闭flashback.

SCOTT@book> alter tablespace tea flashback off;
Tablespace altered.

SCOTT@book> select * from v$tablespace;
         TS# NAME      INC BIG FLA ENC
———— ——— — — — —
           0 SYSTEM    YES NO  YES
           1 SYSAUX    YES NO  YES
           2 UNDOTBS1  YES NO  YES
           4 USERS     YES NO  YES
           3 TEMP      NO  NO  YES
           6 EXAMPLE   YES NO  YES
           7 TEA       YES NO  NO
7 rows selected.

–//tea表空间FLASHBACK_ON设置为NO.注意这些信息应该记录在控制文件,你可以发现备库还是On .
–//备库:
SYS@bookdg> select flashback_on from v$database;
FLASHBACK_ON
——————
NO

SYS@bookdg> select * from v$tablespace;
       TS# NAME                 INC BIG FLA ENC
———- ——————– — — — —
         0 SYSTEM               YES NO  YES
         1 SYSAUX               YES NO  YES
         2 UNDOTBS1             YES NO  YES
         4 USERS                YES NO  YES
         3 TEMP                 NO  NO  YES
         6 EXAMPLE              YES NO  YES
         7 TEA                  YES NO  YES
7 rows selected.
–//备库还是yes,tea表空间.

SYS@bookdg> alter tablespace tea flashback off;
alter tablespace tea flashback off
                     *
ERROR at line 1:
ORA-16000: database open for read-only access
–//无法在open read only修改.

SYS@bookdg> startup mount
ORACLE instance started.
Total System Global Area  634732544 bytes
Fixed Size                  2255792 bytes
Variable Size             197133392 bytes
Database Buffers          427819008 bytes
Redo Buffers                7524352 bytes
Database mounted.
SYS@bookdg> alter tablespace tea flashback off;
Tablespace altered.

SYS@bookdg> select * from v$tablespace;
       TS# NAME                 INC BIG FLA ENC
———- ——————– — — — —
         0 SYSTEM               YES NO  YES
         1 SYSAUX               YES NO  YES
         2 UNDOTBS1             YES NO  YES
         4 USERS                YES NO  YES
         3 TEMP                 NO  NO  YES
         6 EXAMPLE              YES NO  YES
         7 TEA                  YES NO  NO
7 rows selected.
–//OK,现在成功.

3.备库打开snapshot standby:
–//参考http://blog.itpub.net/267265/viewspace-2134547/
–//实际上就是保证存储点,只要闪回区足够,许多dml操作没有问题,在转换physical standby时,返回原来的存储点;

–//备库:
SYS@bookdg> alter database convert to snapshot standby;
Database altered.

SYS@bookdg> select database_role from v$database;
DATABASE_ROLE
—————-
SNAPSHOT STANDBY

SYS@bookdg> alter database open ;
Database altered.

SCOTT@bookdg> create table tt1 tablespace tea as select * from dba_objects;
Table created.

–//在主库也产生一些日志对于tea表空间:
SCOTT@book> create table empx tablespace tea as select * from emp;
Table created.

–//现在转换为physical standby
–//备库:
SYS@bookdg> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

SYS@bookdg> startup mount
ORACLE instance started.
Total System Global Area  634732544 bytes
Fixed Size                  2255792 bytes
Variable Size             197133392 bytes
Database Buffers          427819008 bytes
Redo Buffers                7524352 bytes
Database mounted.

SYS@bookdg> alter database convert to physical standby ;
alter database convert to physical standby
*
ERROR at line 1:
ORA-38753: Cannot flashback data file 6; no flashback log data.
ORA-01110: data file 6: ‘/mnt/ramdisk/book/tea01.dbf’

–//可以发现备库的数据文件6无法转换,这个应该引起足够重视,在备库转换为snapshot standby时,注意检查表空间是否flashvback是否都是on的状态.
$ oerr ora 38753
38753, 00000, “Cannot flashback data file %s; no flashback log data.”
// *Cause:  An attempt to perform a FLASHBACK DATABASE failed because the file
//          does not have enough flashback log data to cover the time to
//          flash back.  Either the file did not have flashback generation
//          enabled for it, or had flashback generation turned off for it
//          some time during the time span of the flashback.
// *Action: The file cannot be flashed back.  The file must be taken offline
//          or the tablespace dropped before continuing with the FLASHBACK
//          DATABASE command.

4.恢复:
–//简单一点,主库tea表空间设置为read only;
–//主库:
SCOTT@book> alter tablespace tea read only;
Tablespace altered.

$ scp /mnt/ramdisk/book/tea01.dbf oracle@192.168.100.40:/mnt/ramdisk/book/
tea01.dbf                            100%   40MB  40.0MB/s   00:01

–//备库:
SYS@bookdg> alter database convert to physical standby ;
alter database convert to physical standby
*
ERROR at line 1:
ORA-38753: Cannot flashback data file 6; no flashback log data.
ORA-01110: data file 6: ‘/mnt/ramdisk/book/tea01.dbf’
–//不行:

SYS@bookdg> alter tablespace tea flashback on;
Tablespace altered.

SYS@bookdg> alter database convert to physical standby ;
alter database convert to physical standby
*
ERROR at line 1:
ORA-19926: Database cannot be converted at this time

–//根本不能这样转换.

SYS@bookdg> alter tablespace tea offline;
alter tablespace tea offline
*
ERROR at line 1:
ORA-01109: database not open

SYS@bookdg> alter database datafile 6 offline;
Database altered.

–//关闭备库重来.
SYS@bookdg> startup mount
ORACLE instance started.
Total System Global Area  634732544 bytes
Fixed Size                  2255792 bytes
Variable Size             197133392 bytes
Database Buffers          427819008 bytes
Redo Buffers                7524352 bytes
Database mounted.

SYS@bookdg> alter database convert to physical standby ;
Database altered.

SYS@bookdg> shutdown immediate
ORA-01507: database not mounted
ORACLE instance shut down.

SYS@bookdg> startup mount
ORACLE instance started.
Total System Global Area  634732544 bytes
Fixed Size                  2255792 bytes
Variable Size             197133392 bytes
Database Buffers          427819008 bytes
Redo Buffers                7524352 bytes
Database mounted.

SYS@bookdg> alter database datafile 6 online;
Database altered.

SYS@bookdg> alter database recover managed standby database using current logfile disconnect ;
Database altered.

SYS@bookdg> @ &r/dg/dg
PROCESS       PID STATUS       CLIENT_P GROUP# THREAD#  SEQUENCE#     BLOCK#     BLOCKS DELAY_MINS
——— ——- ———— ——– —— ——- ———- ———- ———- ———-
ARCH         2394 CONNECTED    ARCH     N/A          0          0          0          0          0
ARCH         2396 CONNECTED    ARCH     N/A          0          0          0          0          0
ARCH         2398 CONNECTED    ARCH     N/A          0          0          0          0          0
RFS          2403 IDLE         UNKNOWN  N/A          0          0          0          0          0
RFS          2405 IDLE         LGWR     2            1        789         50          1          0
ARCH         2400 CLOSING      ARCH     4            1        788          1        183          0
MRP0         2407 APPLYING_LOG N/A      N/A          1        789         50     102400          0
7 rows selected.
–//日志开始传输并应用.

SYS@bookdg> alter database recover managed standby database cancel ;
Database altered.

SYS@bookdg> alter database open read only;
Database altered.

SYS@bookdg> alter database recover managed standby database using current logfile disconnect ;
Database altered.

SYS@bookdg> select count(*) from scott.empx;
  COUNT(*)
———-
        14

SYS@bookdg> select count(*) from scott.tt1;
select count(*) from scott.tt1
                           *
ERROR at line 1:
ORA-00942: table or view does not exist
–//测试时建立的表不存在.
        
–//主库执行:
SCOTT@book> alter tablespace tea read write;
Tablespace altered.

SCOTT@book> delete from empx where rownum=1;
1 row deleted.

SCOTT@book> commit ;
Commit complete.

–//在备库检查,发现少一条记录.
SYS@bookdg> select count(*) from scott.empx;
  COUNT(*)
———-
        13

总结:
–//这个在以后工作中注意,在转换snapshot standby,注意表空间flaashback是否在on状态.

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,020
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,513
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,359
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,142
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,772
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,850