草庐IT

ORACLE_UNQNAME

全部标签

CloudCanal实战-Oracle数据迁移同步到PostgreSQL

简述本篇文章主要介绍如何使用CloudCanal构建一条Oracle到PostgreSQL的数据同步链路技术要点缩小的数据库权限要求CloudCanal对Oracle数据库的高权限要求,主要来自两个面向DBA的操作,自动构建字典和自动切换归档日志,这两个操作主要是让用户使用更加自动化和便利,但是问题也比较明显,对数据库运维标准严苛的客户来说,这些权限对于我们的客户是没有的,所以新版本CloudCanal,通过参数配置,支持了关闭自动字典构建能力(默认打开)和关闭自动切换归档日志能力(默认关闭)多版本schema以支持位点回拉对于关系型数据库同步工具而言,增量数据本身往往和元数据分离,也就是消费

ORACLE常见报错ORA-00001: 违反唯一约束条件 --解决方法

1.问题原因分析出现这个问题的原因是插入数据的时候,由于之前没有使用序列插入,而是直接插入了一个比当前序列nextval还大的值,即直接将id写死了。后面再使用序列插入的时候,如果序列小于该值的话,是可以正常插入的,当序列号等于之前通过ID写死的方式插入的ID值时,就会出现这种情况。2.解决方案--查询出约束对应的表以及对应字段selecta.constraint_name,a.constraint_type,b.column_name,b.table_namefromuser_constraintsainnerjoinuser_cons_columnsbona.table_name=b.ta

Oracle 序列学习与使用总结

Oracle序列学习与使用总结by:授客QQ:1033553122简述序列是oracle提供的用于生成一系列数字的数据库对象,序列会自动生成顺序递增的序列号,可用于提供唯一的自动递增主键。序列和视图一样,并不占用实际的存储空间,只是在数据字典中保存他的定义信息。创建序列当创建序列时必须拥有createsequence或者createanysequence系统权限。CREATESEQUENCEsequenceName//创建序列名称[INCREMENTBYn]//序列递增值如果n是正数就递增,如果是负数则递减默认是1[STARTWITHn]//序列起始值,递增默认是minvalue递减是maxv

Oracle字符集不匹配导入dmp文件报错

在做文件迁移的时候在本地导出了一份dmp的备份文件,结果导入服务器的数据库的时候报错这个时候我们可以执行以下sql查看一下服务器的数据库字符集是什么select*fromnls_database_parameterswhereparameter='NLS_CHARACTERSET';  这个时候可以看到是AL32UTF8,但是我本地的字符集是ZHS16GBK,那就需要在执行exp导出前先修改一下我电脑的字符集,打开cmd输入setNLS_LANG=SIMPLIFIEDCHINESE_CHINA.AL32UTF8这样就可以把我本机的字符集设置为跟客户端一样的了,然后再去执行导出,导出的dmp文件

maven添加oracle的依赖驱动

目录1、下载需要的jdbcjar包2、下载jar包3、在当前目录下输入cmd进入控制台4、控制台输入命令解释5、执行后有如下就表示成功6、在maven配置1、下载需要的jdbcjar包查询自己的oracle的版本信息,下载相应的驱动jar包select*fromv$version;2、下载jar包方式1、官网地址:点击下载官网地址下载完成后放在任意的目录下,最后建议放在方式2的目录下方式2:查看自己的oracle的安装目录:我的目录是:D:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib下发现有ojdbc6.jar.所以不用下载了,直接用3

ORACLE常见报错ORA-00001: 违反唯一约束条件 --解决方法

1.问题原因分析出现这个问题的原因是插入数据的时候,由于之前没有使用序列插入,而是直接插入了一个比当前序列nextval还大的值,即直接将id写死了。后面再使用序列插入的时候,如果序列小于该值的话,是可以正常插入的,当序列号等于之前通过ID写死的方式插入的ID值时,就会出现这种情况。2.解决方案--查询出约束对应的表以及对应字段selecta.constraint_name,a.constraint_type,b.column_name,b.table_namefromuser_constraintsainnerjoinuser_cons_columnsbona.table_name=b.ta

Oracle 序列学习与使用总结

Oracle序列学习与使用总结by:授客QQ:1033553122简述序列是oracle提供的用于生成一系列数字的数据库对象,序列会自动生成顺序递增的序列号,可用于提供唯一的自动递增主键。序列和视图一样,并不占用实际的存储空间,只是在数据字典中保存他的定义信息。创建序列当创建序列时必须拥有createsequence或者createanysequence系统权限。CREATESEQUENCEsequenceName//创建序列名称[INCREMENTBYn]//序列递增值如果n是正数就递增,如果是负数则递减默认是1[STARTWITHn]//序列起始值,递增默认是minvalue递减是maxv

Oracle字符集不匹配导入dmp文件报错

在做文件迁移的时候在本地导出了一份dmp的备份文件,结果导入服务器的数据库的时候报错这个时候我们可以执行以下sql查看一下服务器的数据库字符集是什么select*fromnls_database_parameterswhereparameter='NLS_CHARACTERSET';  这个时候可以看到是AL32UTF8,但是我本地的字符集是ZHS16GBK,那就需要在执行exp导出前先修改一下我电脑的字符集,打开cmd输入setNLS_LANG=SIMPLIFIEDCHINESE_CHINA.AL32UTF8这样就可以把我本机的字符集设置为跟客户端一样的了,然后再去执行导出,导出的dmp文件

maven添加oracle的依赖驱动

目录1、下载需要的jdbcjar包2、下载jar包3、在当前目录下输入cmd进入控制台4、控制台输入命令解释5、执行后有如下就表示成功6、在maven配置1、下载需要的jdbcjar包查询自己的oracle的版本信息,下载相应的驱动jar包select*fromv$version;2、下载jar包方式1、官网地址:点击下载官网地址下载完成后放在任意的目录下,最后建议放在方式2的目录下方式2:查看自己的oracle的安装目录:我的目录是:D:\oraclexe\app\oracle\product\11.2.0\server\jdbc\lib下发现有ojdbc6.jar.所以不用下载了,直接用3

Oracle 删除大量表记录操作总结

By:授客QQ:1033553122删除表数据操作清空所有表记录TRUNCATETABLEyour_table_name;或者批量删除满足条件的表记录BEGINLOOPDELETEFROMyour_table_nameWHERErownum释放表空间存放大数据量的表,其表空间占用也比较大,删除数据后并不会自动释放这些记录占用的表空间,所以,即便表里面数据量很少,查询效率依旧很慢,所以,需要释放表空间。--查询数据表占用的表空间大小SELECTsum(bytes)/(1024*1024)FROMuser_segmentsWHEREsegment_name='YOUR_TABLE_NAME';--