点击上方“IT那活儿”,关注后了解更多内容,不管IT什么活儿,干就完了!!!
前提条件检查
1)数据库版本源库不低于11203;
2)推荐patch参考1557031.1以及2193391.1;
3)检查是否存在不支持的对象类型;
4)Latest GoldenGate/Database (OGG/RDBMS) Patch recommendations ( Doc ID 2193391.1 。
实施环境
实施流程
影响范围及风险评估
配置goldengate软件均在线完成, 不需要停止业务,备库初始化需要在源库导出一份数据,导数据在夜间业务闲时操作;goldengate配置完成后,对主机性能有1-3%的影响。
实施环境准备
操作系统用户建议使用Oracle用户也可使用新建用户,但该用户必须加入到oinstall组,该用户使用与oracle相同的profile文件,操作系统必须为该用户开放一定的CPU、内存等资源限制,可以通过ulimit –a查看,建议在/etc/security/limits.conf中设置和oracle用户一致,本次实施使用已有的oracle用户。
确保为 Oracle 和 Oracle Goldengate 运行用户配置动态库路径。确保 Oracle 数据库的运行库(
#export SHLIB_PATH=$ORACLE_HOME/lib32:$SHLIB_PATH:$SHLIB_PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/lib32:$LD_LIBRARY_PATH
Oracle GoldenGate 只需要复制两端的 IP 地址之间能够建立 TCP 连接,一个 Goldengate 复制链路需要 10 个 TCP 动态端口,具体端口建议使用 7839~7949。
hosts配置
192.168.79.26 oggsre
192.168.79.27 oggtar
goldengate软件安装目录1GB,trail文件目录根据归档量计算,除此之外,还应该考虑BR目录和临时目录(ogg使用的临时目录)。
分配表空间,大小不小于日志组大小--分配表空间,大小不小于日志组大小。
set linesize 150
col FILE_NAME for a50
select tablespace_name ,file_name from dba_data_files;
select bytes/1024/1024from v$log;
CREATETABLESPACE goldengate DATAFILE +DATA size 1G autoextend on maxsize 10G;
创建用户并授权:
CREATEUSER GOLDENGATE IDENTIFIED BY goldengate DEFAULTTABLESPACE GOLDENGATE TEMPORARYTABLESPACETEMP;
GRANTCONNECTTO GOLDENGATE;
GRANTALTERANYTABLETO GOLDENGATE;
GRANTALTERSESSIONTO GOLDENGATE;
GRANTCREATESESSIONTO GOLDENGATE;
GRANT FLASHBACK ANYTABLETO GOLDENGATE;
GRANTSELECTANY DICTIONARY TO GOLDENGATE;
GRANTSELECTANYTABLETO GOLDENGATE;
GRANT RESOURCE TO GOLDENGATE;
GRANTEXECUTEANYTYPETO GOLDENGATE;
GRANTSELECTANYTRANSACTIONTO GOLDENGATE;
GRANTCREATEany TABLE,CREATEany SEQUENCE TO goldengate ;
GRANTINSERTANYTABLETO GOLDENGATE;
GRANTUPDATEANYTABLETO GOLDENGATE;
GRANTDELETEANYTABLETO GOLDENGATE;
GRANTCREATEANYINDEXTO GOLDENGATE;
grant unlimited tablespaceto goldengate ;
grantexecuteon DBMS_FLASHBACK to goldengate;
grant COMMENTANYTABLE to goldengate;
alter system set enable_goldengate_replication=true sid=* scope=both;
exec dbms_goldengate_auth.grant_admin_privilege(goldengate)
12c授权语法如下:
exec dbms_goldengate_auth.grant_admin_privilege(C##GGADMIN,container=>ALL);
grant dba to c##ggadmin container=all;
不建议使用DBA权限替GOldenGate所需要的权限。
set line 350 pages 999
col NAME for a15
col LOG_MODE for a15
col OPEN_MODE for a15
col PLATFORM_NAME for a25
col FORCE_LOGGING for a20
col SUPPLEMENTAL_LOG_DATA_MIN for a25
SELECT
NAME,
LOG_MODE,
OPEN_MODE,
PLATFORM_NAME,
FORCE_LOGGING,
SUPPLEMENTAL_LOG_DATA_MIN
FROM
V$DATABASE;
select log_mode from v$database;
确认补充日志是否打开:
SQL> SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;
SUPPLEMENTAL_LOG_DATA_MIN
-------------------------
NO
打开源端的补充日志:
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
Verify that it is enabled:
SQL> SELECT SUPPLEMENTAL_LOG_DATA_MIN FROM V$DATABASE;
SUPPLEMENTAL_LOG_DATA_MIN
-------------------------
YES
C
注:打开补充日志最好在夜里业务很少的时候进行。如果是 RAC 需要在每个节点上都执行。完成后建议执行一次归档操作:
alter system archive log current;
select NAME,FORCE_LOGGING from v$database;
alter database FORCE LOGGING;
set line 350 pages 999
col NAME for a15
col LOG_MODE for a15
col OPEN_MODE for a15
col PLATFORM_NAME for a25
col FORCE_LOGGING for a20
col SUPPLEMENTAL_LOG_DATA_MIN for a25
SELECT
NAME,
LOG_MODE,
OPEN_MODE,
PLATFORM_NAME,
FORCE_LOGGING,
SUPPLEMENTAL_LOG_DATA_MIN
FROM
V$DATABASE;
The output of the query must be YES for both properties。
修改spfile,重启生效,rac可以指定节点修改,临时修改到内存可以使用如下命令:
alter system set streams_pool_size=1500m scope=memory sid=ringdb1;
配置过程
上传并解压软件;
执行runInstaller,按照提示完成安装;
测试控制台:
以 oracle(运行用户)用户身份登录;分别在源端和目标端执行:./ggsci;
如果成功进入控制台,说明环境满足 GoldenGate 要求。
源端和目标端配置过程一样。
生成密文:
GGSCI (goldengate)1> ENCRYPT PASSWORD goldengate EncryptKey Default --为密码字符goldengate生成密文
Using Blowfish encryption with DEFAULT key.
Encrypted password: AACAAAAAAAAAAAKAPATACEHBIGQGCFZCCDIGAEMCQFFBZHVC --生成的密文
Algorithm used: BLOWFISH
编辑mgr参数文件:
view params mgr
PORT 7809
DYNAMICPORTLIST 7840-7849
ACCESSRULE, PROG SERVER, ALLOW
AUTOSTART EXTRACT *
AUTORESTART EXTRACT * retries 5 waitminutes 3
--AUTOSTART REPLICAT *
--AUTORESTART REPLICAT * retries 5 waitminutes 1
PURGEOLDEXTRACTS /oracle/ogg/dirdat/*,usecheckpoints, minkeepdays 2
LAGREPORTMINUTES 10
LAGREPORTHOURS 1
LAGINFOMINUTES 30
LAGCRITICALMINUTES 60
--STARTUPVALIDATIONDELAY 5
--USERID goldengate, PASSWORD goldengate
USERID goldengate, PASSWORD AACAAAAAAAAAAAKAPATACEHBIGQGCFZCCDIGAEMCQFFBZHVC, ENCRYPTKEY DEFAULT
PURGEDDLHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 5, FREQUENCYMINUTES 30 --触发器模式需要配置
PURGEMARKERHISTORY MINKEEPDAYS 3, MAXKEEPDAYS 5, FREQUENCYMINUTES 30
安装用户添加:
dblogin userid goldengate,password goldengate
add schematrandata oggsre
dblogin userid goldengate,password GoldenGate_23
add trandata SPCLUSDP.t_opencloselog
add trandata SPCLUSDP.t_personaldownreport
不使用add trandata user.* ,因为新加的表不会自动打开附加日志。
按照用户添加验证:
info SCHEMATRANDATA scott
按照表添加的验证:
info trandata SPCLUSDP.t_busgrouplooptone
排除外部表和已确认临时表的抽取:
set line 230 pages 999
col OWNER for a25
col DEFAULT_DIRECTORY_NAME for a15
col ACCESS_TYPE for a12
col ACCESS_PARAMETERS for a45
col REJECT_LIMIT for a10
select * from dba_external_tables;
编辑参数:
edit params ext_01
--base parameter
extract ext_01
SETENV (ORACLE_SID = test)
SETENV (ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db)
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID goldengate, PASSWORD AACAAAAAAAAAAAKAPATACEHBIGQGCFZCCDIGAEMCQFFBZHVC, ENCRYPTKEY DEFAULT
-- SOURCECATALOG yzxdb
exttrail /oracle/ogg/dirdat/ex
TRANLOGOPTIONS EXCLUDEUSER goldengate
numfiles 5000
TRANLOGOPTIONS INTEGRATEDPARAMS (max_sga_size 512, parallelism 4)
DISCARDFILE /oracle/ogg/dirrpt/ext_01.dsc,APPEND,MEGABYTES 100
DISCARDROLLOVER AT 3:00
REPORTCOUNT EVERY 30 MINUTES, RATE
REPORTROLLOVER AT 9:00
--TRANLOGOPTIONS CHECKPOINTRETENTIONTIME 20
WARNLONGTRANS 2h, CHECKINTERVAL 30m
--TRANLOGOPTIONS INCLUDEREGIONID --和时间格式相关,不报错就不添加
--map objects
SEQUENCE oggsre.*;
Table oggsre.*;
TABLEEXCLUDE oggsre.emp ;
--ddl support
DDL INCLUDE MAPPED
DDLOPTIONS REPORT
TRANLOGOPTIONS FETCHPARTIALLOB,GETCTASDML --CAST支持,记录insert的日志,保证数据一致,但处理大表时,replicat性能极差
DDLOPTIONS ADDTRANDATA --取决于添加附件日志的方式
-- DDLOPTIONS GETREPLICATES --添加附加日志的语句是否复制, 和是否配置DDLOPTIONS ADDTRANDATA有关
-- DDLOPTIONS NOCROSSRENAME --12c 已经废弃
--LOGALLSUPCOLS
--UPDATERECORDFORMAT compact
-- Performance optimization
cachemgr cachesize 512M, cachedirectory /oracle/ogg/dirtmp 10G
BR BRINTERVAL 40M, BRDIR BR
如果是pdb环境,应该在pdb级别运行sequence.sql 支持脚本,和在pdb内进行授权;
首先在源配置GLOBALS文件,如果为打开DDL复制已经配置过,可以跳过该步:
ggsci>EDIT PARAMS ./GLOBALS --在该文件中添加以下内容
GGSCHEMA goldengate --指定的进行DDL复制的数据库用户
在源端和目标端均需要以sysdba用户执行以下脚本:
sqlplus>connect /as sysdba
Sqlplus>@sequence.sql --该文件在/ggs目录下
输入用户:goldengate
授权:
在源端进行授权:
SQL> GRANT EXECUTE on goldengate.updateSequence TO goldengate;
SQL>alter table sys.seq$ add supplemental log data(primary key) columns;
在目标进行授权:
SQL>GRANT EXECUTE on goldengate.replicateSequence TO goldengate;
在源端和目标端进程参数中配置:
Extract和pump均配置:
SEQUENCE zly.seq1;或者SEQUENCE zly.*;
TABLE zly.*;
replicat中需要配置:
MAP zly.seq1, TARGET zly.seq1;
或者是MAP zly.*, TARGET zly.*;这样就包括了表和序列;
(不能在replicat中配置成SEQUENCE gtj.seq1的形式)。
序列在复制过程中,replicat缺省会CHECKSEQUENCEVALUE,确保目标大于原的序列值。
create sequence gtj.seq1
minvalue 1
maxvalue 99999999
start with 1 increment by 2
cache 20
cycle;
sequence不建议加入复制。
优化建议
replicat进程拆分:多带带进程配置sequence复制;
确保目标端next_value值大于源端,算法如下:
source_highwater_value + (source_cache_size * source_increment_size * source_RAC_nodes) <= target_highwater_value
Cycle的影响
如果序列有cycle,目标端必然先达到最大值,然后从循环从最小值开始,这违背了目标端next_value值大于源端的原则。
解决方案:
--DBOPTIONS _MAXSEQUENCEDISTANCE
确保replicat进程配置参数CheckSequenceValue。
DBLOGIN USERID goldengate, PASSWORD goldengate
REGISTER EXTRACT ext_01 DATABASE
ADD EXTRACT ext_01, INTEGRATED TRANLOG, BEGIN NOW
ADD EXTTRAIL /oracle/ogg/dirdat/ex, EXTRACT ext_01, MEGABYTES 50
start ext_01
info all
pdb按如下方式注册:
REGISTER EXTRACT ext_01 DATABASE CONTAINER(yzxdb)
编辑参数:
extract pmp_01
SETENV (ORACLE_SID = test)
SETENV (ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db)
passthru
rmthost goldengate,mgrport 7809, compress
rmttrail /oracle/ogg/dirdat/rt
DISCARDFILE /oracle/ogg/dirrpt/pmp_01.dsc,APPEND,MEGABYTES 100
DISCARDROLLOVER AT 9:00
REPORTROLLOVER AT 9:00
REPORTCOUNT EVERY 1 HOURS, RATE
table oggsre.*;
------- sequence-----
SEQUENCE oggsre.*;
注册datapump进程:
DBLOGIN USERID goldengate, PASSWORD goldengate
ADD EXTRACT pmp_01 EXTTRAILSOURCE /oracle/ogg/dirdat/ex --extract进程trial文件位置
ADD RMTTRAIL /oracle/ogg/dirdat/rt, EXTRACT pmp_01, MEGABYTES 500 --远程trial文件位置
target端mgr进程启动后启动datapump进程。
基于scn做一致性备份恢复。
查询当前scn:
col current_scn for 9999999999999999999999999999
select current_scn from v$database;
确保数据库中事物启动时间晚于capture进程启动时间。
Select start_time from gv$transaction where to_date(start_time, yyyy-mm-dd hh24:mi:ss)
(20XX-05-03 11:20:55, yyyy-mm-dd hh24:mi:ss);
导出数据:
vi schema.par
userid= "/ AS SYSDBA"
directory=ogg_dump
dumpfile=obj_%U.dmp
logfile=exp.log
parallel=6
flashback_scn=
schemas=oggsre
cluster=n
EXCLUDE = TABLE:"IN ( , )" --根据情况确定(排除外部表和临时表)
nohup expdp parfile=schema.par &
备库恢复数据:
vi impscheam.par
userid= "/ AS SYSDBA"
directory=ogg_dump
dumpfile=obj_%U.dmp
logfile=imp.log
parallel=6
schemas=oggtar
cluster=n
impdp parfile= impsche
am.par
备库禁用触发器,外键约束,job等。
禁用外键约束:
select alter table ||owner||.||table_name|| disable
constraint ||constraint_name||; from dba_constraints
where constraint_type in (R) and owner = SUBADMIN order by status,owner;
执行返回的sql语句。
禁用触发器:
select alter trigger ||owner||.||trigger_name||
disable; from dba_triggers where owner =SUBADMIN order by status,owner;
执行返回的sql,但是新创建的触发器,在备库任然需要手动禁用,这在生产中显然不可取,因此不采用该方式处理触发器问题。
在replicat进程配置如下参数限制,配置该参数后,备库的触发器将不会被触发(即使触发器状态为enable)。
DBOPTIONS SUPPRESSTRIGGERS。
禁用job
备库设置如下参数job和Schedul被
alter system set job_queue_processes=0 scope=both;
也可多带带禁用job:
select execute DBMS_IJOB.BROKEN(||job||,TRUE); commit;
from dba_jobs
where schema_user in (MIGUAPP,MGSTATIS,MIGU_BO,MIGUAPPTEST,TYQK,MGACTIVEMQ) and BROKEN=N;
set linesize 300 pages 999
col OWNER for a20
col JOB_NAME for a45
col JOB_CREATOR for a25
col ENABLED for a10
col START_DATE for a25
col NEXT_RUN_DATE for a25
col LAST_START_DATE for a25
col REPEAT_INTERVAL for a50
select OWNER,JOB_NAME,ENABLED,to_char(START_DATE,yyyy/mm/dd hh:mm) START_DATE,to_char(LAST_START_DATE,yyyy/mm/dd hh:mm) LAST_START_DATE,to_char(NEXT_RUN_DATE,yyyy/mm/dd hh:mm) NEXT_RUN_DATE,REPEAT_INTERVAL ,RUN_COUNT from dba_scheduler_jobs where owner in (MIGUAPP,MGSTATIS,MIGU_BO,MIGUAPPTEST,TYQK,MGACTIVEMQ);
exec dbms_scheduler.disable(name => lower(delete_4_old_records),force => true);
mgr配置同source端mgr配置。
编辑replicat参数:
--base parameter
REPLICAT rep_01
SETENV (ORACLE_SID = test)
SETENV (ORACLE_HOME = /oracle/app/oracle/product/11.2.0/db)
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID goldengate, PASSWORD AACAAAAAAAAAAAKAPATACEHBIGQGCFZCCDIGAEMCQFFBZHVC, ENCRYPTKEY DEFAULT
DISCARDFILE /oracle/ogg/dirrpt/rep_01.dsc,APPEND,MEGABYTES 100
DISCARDROLLOVER AT 3:00
DBOPTIONS INTEGRATEDPARAMS(parallelism 4)
DBOPTIONS SUPPRESSTRIGGERS -- 不触发触发器
DBOPTIONS DEFERREFCONST -- 不校验外键约束
ASSUMETARGETDEFS
REPERROR DEFAULT, ABEND
REPORTCOUNT EVERY 60 MINUTES, RATE
REPORTROLLOVER AT 9:00
numfiles 5000
cachemgr cachesize 512M, cachedirectory /oracle/ogg/dirtmp 2GB
--map objects
Map oggsre.*, target oggtar.*;
--LIMITROWS
--ddl map
--DDL INCLUDE MAPPED,EXCLUDE OBJNAME ".
--sequence parameter
DBOPTIONS _MAXSEQUENCEDISTANCE 50
--performance
--优化相关
DBOPTIONS INTEGRATEDPARAMS (COMMIT_SERIALIZATION DEPENDENT_TRANSACTIONS) --按照事务依赖关系提交
BATCHSQL
GROUPTRANSOPS 100
replicat进程正常运行,goldengate运行用户需要适当的权限。
grant execute on utl_file to goldengate;
--grant dba to goldengate;
grant create table,create sequence to goldengate;
exec dbms_goldengate_auth.grant_admin_privilege(goldengate)
添加replicat进程:
DBLOGIN USERID goldengate, PASSWORD goldengate
add replicat rep_01 integrated exttrail /oracle/ogg/dirdat/rt
start replicat rep_01, aftercsn
遇到错误
启动报错:
WARNING OGG-01877 Missing explicit accessrule for server collector
解决:
This is just part of the new security in GoldenGate 12.2.
As mentioned above by Vinodh you should add the ACCESSRULE
parameter to the mgr.prm file. This is telling the Manager
what systems can have access to the manager in order to
start a task or a collector. The minimum required to make this message go away is
ACCESSRULE, PROG SERVER, ALLOW
It is designed to allow you to specify specific access to
specific machines on the network. This provides an
additional layer of security for the manager process. I see
this message regardless of whether the systems are in the same or different subnets.
ERROR OGG-02912 Patch 17030189 is required on your Oracle mining database for trail format RELEASE 12.2 or later。
20XX-05-31 00:33:17 INFO OGG-01971 The previous message, INFO OGG-02776, repeated 1 times.
Source Context :
SourceModule : [ggdb.ora.ddl]
SourceID : [../gglib/ggdbora/ddlora.c]
SourceMethod : [metadata_from_logminer]
SourceLine : [1267]
ThreadBacktrace : [16] elements
: [/opt/oragate/goldengate/libgglog.so(CMessageContext::AddThreadContext())]
: [/opt/oragate/goldengate/libgglog.so(CMessageFactory::CreateMessage(CSourceContext*, unsigned int, ...))]
: [/opt/oragate/goldengate/libgglog.so(_MSG_(CSourceContext*, int, CMessageFactory::MessageDisposition))]
: [/opt/oragate/goldengate/extract()]
: [/opt/oragate/goldengate/extract()]
: [/opt/oragate/goldengate/extract(RedoAPI::createInstance(ggs::gglib::ggdatasource::DataSource*, ggs::gglib::ggapp::ReplicationContext*))]
: [/opt/oragate/goldengate/extract(ggs::er::OraTranLogDataSource::setup())]
: [/opt/oragate/goldengate/extract(ggs::gglib::ggapp::ReplicationContext::establishStartPoints(char, ggs::gglib::ggdatasource::DataSourceParams const&))]
: [/opt/oragate/goldengate/extract(ggs::gglib::ggapp::ReplicationContext::initializeDataSources(ggs::gglib::ggdatasource::DataSourceParams&))]
: [/opt/oragate/goldengate/extract()]
: [/opt/oragate/goldengate/extract(ggs::gglib::MultiThreading::MainThread::ExecMain())]
: [/opt/oragate/goldengate/extract(ggs::gglib::MultiThreading::Thread::RunThread(ggs::gglib::MultiThreading::Thread::ThreadArgs*))]
: [/opt/oragate/goldengate/extract(ggs::gglib::MultiThreading::MainThread::Run(int, char**))]
: [/opt/oragate/goldengate/extract(main)]
: [/lib64/libc.so.6(__libc_start_main)]
: [/opt/oragate/goldengate/extract()]
20XX-05-31 00:33:17 ERROR OGG-02912 Patch 17030189 is required on your Oracle mining database for trail format RELEASE 12.2 or later.
20XX-05-31 00:33:17 ERROR OGG-01668 PROCESS ABENDING.
执行sql:
[oracle@VUSDPDB-1 goldengate]$ pwd
/opt/oragate/goldengate
[oracle@VUSDPDB-1 goldengate]$ ll prvtlmpg
prvtlmpg.plb prvtlmpg_uninstall.sql
[oracle@VUSDPDB-1 goldengate]$ ll prvtlmpg.plb
-rwxr-xr-x 1 oracle oinstall 9487 May 27 2015 prvtlmpg.plb
[oracle@VUSDPDB-1 goldengate]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Sun May 31 00:39:46 2020
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> @prvtlmpg.plb
Oracle GoldenGate Workaround prvtlmpg
This script provides a temporary workaround for bug 17030189.
It is strongly recommended that you apply the official Oracle
Patch for bug 17030189 from My Oracle Support instead of using
this workaround.
This script must be executed in the mining database of Integrated
Capture. You will be prompted for the username of the mining user.
Use a double quoted identifier if the username is case sensitive
or contains special characters. In a CDB environment, this script
must be executed from the CDB$ROOT container and the mining user
must be a common user.
=========================== WARNING ==========================
You MUST stop all Integrated Captures that belong to this mining
user before proceeding!
================================================================
Enter Integrated Capture mining user: goldengate ## 数据库里的ogg运行用户
Installing workaround...
No errors.
No errors.
No errors.
Installation completed.
SQL>
SQL>
错误信息:
20XX-05-31 00:59:54 ERROR OGG-25127 Received an error
reply requesting a graceful shutdown. (Reply received is GSOutput file /data/goldengate/trail/us000000 is not in any
allowed output directories..).
20XX-05-31 00:59:54 ERROR OGG-01668 PROCESS ABENDING.
处理办法:
配置允许的文件路径:
EDIT PARAMS ./GLOBALS
ALLOWOUTPUTDIR /data/goldengate/trail
不支持的对象
dblink
GoldenGate可以通过复制源表支持对于同义词或者DBLink的复制。由于对于这些对象本身的操作发生于其所链接的源数据库对象,数据库日志中并不记录对这些链接目标对象的操作,因此GoldenGate不复制对同义词或者DBLink本身的操作,但这些操作会应用在源表上并产生日志,因此可以通过复制源表复制变化。
create job 不支持复制。
create trigger 是可以复制的,且enable状态,所以必须手工设置为disable或replicat参数(DBOPTIONS SUPPRESSTRIGGERS)。
create tablespace 可以复制,支持路径转换,eg: DDLSUBST SREDATADG with TARDATADG。
cast语句(create table as select * from cat),按本地数据执行,因此可能主库和备库数据不一致。
flashback table * to scn **** -- 可以支持复制。
flashback table * to before drop -- 不支持复制。
远程雾化视图,需要网络连通,--涉及到的dblink需要手工创建 。
END
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/129533.html
OGG Integrated Native DDL简单测试 img{ display:block; margin:0 auto !important; width:100%; } body{ width:75%;...
摘要:编码结束后,调用函数,来销毁和编码器。调用函数对参数中的格式音频数据帧进行解码,参数中存放解码后的音频数据帧。调用函数来销毁和解码器说重点当做即时通信产品,像微信这种的手机端,它们接受到很有可能就是协议压缩后的音频文件。 showImg(https://segmentfault.com/img/bVbtzkh?w=1024&h=682); 这么牛逼的轮子,肯定要美图镇楼 Speex是一...
阅读 1346·2023-01-11 13:20
阅读 1684·2023-01-11 13:20
阅读 1132·2023-01-11 13:20
阅读 1858·2023-01-11 13:20
阅读 4100·2023-01-11 13:20
阅读 2704·2023-01-11 13:20
阅读 1385·2023-01-11 13:20
阅读 3597·2023-01-11 13:20