创建logical standby

创建逻辑备数据库Logical Standby Database 创建逻辑备数据库 阅读详情

1.试验环境
SQL> select * from v$version;

BANNER
------------------------------------------------------------------

Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
PL/SQL Release 10.2.0.1.0 - Production
CORE 10.2.0.1.0 Production
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
NLSRTL Version 10.2.0.1.0 - Production

主库名:ning
备库名:test

2.数据类型支持情况
支持的数据类型
CHAR
NCHAR
VARCHAR2 and VARCHAR
NVARCHAR2
NUMBER
DATE
TIMESTAMP
TIMESTAMP WITH TIMEZONE
TIMESTAMP WITH LOCAL TIMEZONE
INTERVAL YEAR TO MONTH
INTERVAL DAY TO SECOND
RAW
CLOB and NCLOB
BLOB
LONG
LONG RAW
BINARY_FLOAT
BINARY_DOUBLE

不支持的数据类型
BFILE
ROWID, UROWID
User-defined types
Collections (including VARRAYS and nested tables)
XML type
Encrypted columns
Multimedia data types (including Spatial, Image, and Context)

3.存储类型支持

支持的存储类型
堆表
索引组织表
簇表

不支持的存储类型
压缩段

4.PL/SQL包支持

支持的PL/SQL包
不修改系统元数据的包
不会产生redo的包

比如:DBMS_OUTPUT, DBMS_RANDOM,DBMS_PIPE, DBMS_DESCRIBE, DBMS_OBFUSCATION_TOOLKIT,

DBMS_TRACE, 和DBMS_METADATA.

不支持的PL/SQL包
修改系统元数据的包
DBMS_JAVA, DBMS_REGISTRY,DBMS_ALERT, DBMS_SPACE_ADMIN, DBMS_REFRESH, DBMS_REDEFINITION,

DBMS_SCHEDULER, 和DBMS_AQ

例外情况,dbms_job包是被支持的,在主库添加的job会复制到备库,但不会自动运行。

5.不支持的数据库对象

不支持的schema
SQL> SELECT OWNER FROM DBA_LOGSTDBY_SKIP WHERE STATEMENT_OPT = 'INTERNAL SCHEMA';

OWNER
----------
SYSTEM
SYS
DIP
OUTLN
WMSYS
DBSNMP

已选择6行。

不支持的表:
压缩表
使用了不支持的数据类型的表
列被加密过的表

下面的sql可以查询出不支持的数据库对象
SQL>SELECT DISTINCT OWNER,TABLE_NAME FROM DBA_LOGSTDBY_UNSUPPORTED ORDER BY

OWNER,TABLE_NAME;

未选定行

6.忽略的SQL语句
一般情况下,在主库执行的sql语句都会在备库执行,但以下除外:
ALTER DATABASE
ALTER SESSION
ALTER MATERIALIZED VIEW
ALTER MATERIALIZED VIEW LOG
ALTER SYSTEM
CREATE CONTROL FILE
CREATE DATABASE
CREATE DATABASE LINK
CREATE PFILE FROM SPFILE
CREATE SCHEMA AUTHORIZATION
CREATE MATERIALIZED VIEW
CREATE MATERIALIZED VIEW LOG
CREATE SPFILE FROM PFILE
DROP DATABASE LINK
DROP MATERIALIZED VIEW
DROP MATERIALIZED VIEW LOG
EXPLAIN
LOCK TABLE
SET CONSTRAINTS
SET ROLE
SET TRANSACTION

7.确保表都有唯一性约束
由于逻辑库的rowid和主库不一致。数据就需要唯一性标识:
如果有主键,则使用主键
如果没有主键,但有NOT NULL的唯一性约束,则使用该唯一性约束
如果两者都没有,则使用整个数据行

所有,为了更好的性能,确保每个table都有主键

查找没有主键或唯一性约束的表
SQL> select owner,table_name
2 from dba_logstdby_not_unique
3 where (owner,table_name) not in
4 (select distinct owner,table_name from dba_logstdby_unsupported)
5 and bad_column='Y';

未选定行

如果上面的查询发现有不符合条件的table,可以为其添加主键。如果应用能确保表中的数据是唯一的,

为了不影响性能,也可以使用rely constraints,关于rely,constraints,请参考Data Warehouse Guide文档笔记(三):RELY constraints

alter table test add constraints primary key(id) rely disable;

8.创建physical standby
具体过程可参考:

Oracle10G Physical Standby Database笔记

利用rman创建standby(一)

利用rman创建standby(二)

9.停止physical standby的恢复进程

SQL> alter database recover managed standby database cancel;

数据库已更改。

10.在主库redo中生成数据字典信息

logical standby使用了logminer技术,需要生成数据字典信息。
SQL> exec dbms_logstdby.build

PL/SQL 过程已成功完成。

执行该过程需要等到所有活动事务结束。所以,如果有条件的话,最好重启主库到restrict模式后再执行

。另外,还要利用flashback查询来获得一致性数据,所有请将undo_retention设置得足够大。

11.为备库生成spfile
SQL> create spfile from pfile;

文件已创建。

SQL> shutdown immediate;
ORA-01109: 数据库未打开

已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup nomount
ORACLE 例程已经启动。

Total System Global Area 142606336 bytes
Fixed Size 1247732 bytes
Variable Size 83887628 bytes
Database Buffers 50331648 bytes
Redo Buffers 7139328 bytes
SQL> alter database mount standby database;

数据库已更改。

12.将physical standby转换成logical standby

SQL> alter database recover to logical standby test;

数据库已更改。

该操作同时会将参数db_name设置为test

13.打开logical standby

SQL> alter database open resetlogs;

数据库已更改。

14.启用日志应用

SQL> alter database start logical standby apply;

数据库已更改。

在alert日志中可以发现相关的恢复进程启用成功的信息。

15.验证
在主库上
SQL> insert into ning.test values(2,'a');

已创建 1 行。

SQL> commit;

提交完成。

SQL> alter system switch logfile;

系统已更改。

等待一段时间后,从逻辑备库上查询,得到结果
SQL> select * from ning.test;

ID NAME
---------- ------------------------------------------------------------
2 a

说明逻辑备库已经运行正常。至此,逻辑备库创建成功。

16.Logical standby相关视图

v$logstdby
v$logstdby_process
v$logstdby_state
v$logstdby_stats
v$logstdby_transcation
dba_logstdby_events
dba_logstdby_history
dba_logstdby_log
dba_logstdby_not_unique
dba_logstdby_parameters

17.启用实时日志应用(real-time apply)
oracle10g加入了实时应用的新特性,需要使用lgwr来传送日志才能使用。

a.首先在备库添加standby redo logfile
SQL> alter database add standby logfile group 4 ('e:/oracle/ora10/oradata/test/standby
04.redo') size 10m;
Database altered.
SQL> alter database add standby logfile group 5 ('e:/oracle/ora10/oradata/test/standby
05.redo') size 10m;
Database altered.
SQL> alter database add standby logfile group 6 ('e:/oracle/ora10/oradata/test/standby
06.redo') size 10m;
Database altered.
SQL> alter database add standby logfile group 7 ('e:/oracle/ora10/oradata/test/standby
07.redo') size 10m;
Database altered.

b.在主库将日志传送方式改为lgwr
alter system set log_archive_dest_2='service=test lgwr async db_unique_name=test'

c.停止日志应用
SQL> alter database stop logical standby apply;

数据库已更改。

d.启用real-time apply
SQL> alter database start logical standby apply immediate;

数据库已更改。

e.在主库插入记录并commit
SQL> insert into ning.test values(3,'b');

已创建 1 行。

SQL> commit;

提交完成。

f.马上在备库就可以查到对应的数据了
SQL> select * from ning.test;

ID NAME
---------- ------------------------------------------------------------
2 a
3 b

Oracle DG物理备库转换为逻辑备库和快照备库 将物理备用数据库转换为逻辑备用数据库或快照备用数据库,文章详细描述了两种DG类型数据库的概念、支持的数据类型、转换的操作步骤等,妥妥的保姆级教程!!! 阅读详情

相关推荐

oracle standby 原理,Oracle10gR2 Logical Standby(一)概念与原理 ---转载

Oracle9i开始支持逻辑Standby,通过logminer从日志中挖掘出sql语句重新在备库应用,来达到主备库数据冗余的目的。由于逻辑备库在应用sql的同时是处于open状态了,那么除了可以利用其冗余数据的特性来做冗灾之外,考虑得更多的可能是利用其做为报表查询库,或者做为读写分离的一种解决方案来分担整个系统的负载,可以充分利用做为备库的主机和存储资源。但是9i的逻辑备库有很多不成熟的地方,...

weixin_30323179的博客 342

管理逻辑备数据库(Logical Standby Database)

Oracle Data Guard管理逻辑备数据库

jetliu05的博客 904

Logical Standby日常维护与性能优化(一)—日常维护与故障排除

   本篇主要讲述logical stanby日常管理维护中的检查和故障排除要点,不涉及性能问题。性能问题和相关调整将在下篇中单独阐述。 Logical Standby日常维护与性能优化(二)—性能诊断与优化      10gR2大大简化了logical stanby的创建步骤,从physical到logical的转换步骤异常简单,不再对搭建过程过多描述。      因为Lo...

Fangrn的专栏 338

oracle logical standby,创建Oracle 11g logical standby

其实过程很简单。。。。做过10g创建logical standby的同志看都不用看了,除了新增加一个ALTER DATABASE RECOVER TO LOGICAL STANDBY KEEP IDENTITY功能,它可以保证standby数据库的DB_NAME 和 DBID不变化,从而方便进行rolling upgrade[@more@]首先还是创建物理的standby,然后进行转换,rac p...

weixin_29596051的博客 193

创建Oracle 11g logical standby

其实过程很简单。。。。做过10g创建logical standby的同志看都不用看了,除了新增加一个ALTER DATABASE RECOVER TO LOGICAL STANDBY KEEP IDENTITY功能,它可以保证s...

cishui7245的博客 184

Oracle学习笔记:创建logical standby

和physical创建类似,此处只标明logical standby特殊的地方。 logical standby和physical standby最大的不同在于:它是从redo文件中抽取sql应用到logical database上,standby数据库和primary、physica数据库在系统结构角度上是不同的,他可以实时处于open状态,可以有自己的辅助数据库模式对象!但由于抽过sql的限...

weixin_30809333的博客 125

创建logical standby步骤

10.2.0.5 on windows 2008 64bit 1 创建一个physical

loryliu的专栏 781

创建逻辑备用库(Logical Standby Database)

下面的是Logical Standby Database的配置步骤.(下面用到的一些文件的位置都是临时性的,还得做一定的修改)将主数据库置为FORCE LOGGING模式.在主数据库创建之后做如下操作:SQL>ALTER DATABASE FORCE LOGGING; 确认主数据库是归档的并定义好本地归档.如下:SQL >ALTER SYSTEM SET LOG_ARCHIVE

hayyon的专栏 1518

创建 Logical Standby Database

创建 Logical Standby Database[@more@]一、确认主库包含逻辑STANDBY支持的表和数据类型1、 逻辑STANDBY支持的数据类型:CHARNCHARVARCHAR2 and VARCHARNVAR...

cmbnpmmvb59343041的博客 210

创建Data guard logical standby database须知

数据类型1.1 Logical standby database 支持的数据类型CHARNCHARVARCHAR2 and VARCHARNVARCHAR2NUMBERDATETIMESTAMPTIMESTAMP WITH TI...

cps9988的博客 159

创建Oracle dataguard logical standby database

1.1 创建physical standby数据库--具体步骤参见前面创建物理备库部分1.2 停止physical standby的redo applySQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;Database altered.1.3 准备主库的角色切换$ mkdir /u01/app/flash_recovery_ar

randyamor的专栏 1137

【DG】之创建Logical Standby Database

1 环境说明 两台数据库,实例名分别为BEIJING和SHANGHAI,配置为Logical Standby Database。并进行主备切换测试。两台数据库结构相同也可以不同。 说明:主备数据库是靠控制文件来...

cqh07516368311的博客 228

Oracle Data Guard Linux 平台 Logical Standby 创建实例

操作系统:linux redhat 4.7 Oracle10.2.0.1 主库:orcl_pd 备库:LGDG   一.  逻辑Standby创建过程   1  创建物理Standby 具体的参考我的blog: Oracle Data Guard Linux 平台 Physical Standby 搭建实例 http://blog.c

小宝老豆的专栏 917

Logical Standby创建过程

Logical Standby

weixin_60912935的博客 187
上一篇: 遭遇ORA-16047错误
下一篇: 关于Treedump
NinGoo
博客等级 码龄22年 31粉丝 78原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值