当前位置: 首页 > news >正文

手游网站怎么做微信推广引流方法

手游网站怎么做,微信推广引流方法,wordpress 类似建站,河南省建筑一体化平台官网本文总结分析了 Oracle 迁移至 OceanBase 时#xff0c;在出现三种不兼容对象的情况时的处理策略以及迁移前的预检方式#xff0c;通过提前发现并处理这些问题#xff0c;可以有效规避迁移过程中的报错风险。 作者#xff1a;余振兴#xff0c;爱可生 DBA 团队成员#x…本文总结分析了 Oracle 迁移至 OceanBase 时在出现三种不兼容对象的情况时的处理策略以及迁移前的预检方式通过提前发现并处理这些问题可以有效规避迁移过程中的报错风险。 作者余振兴爱可生 DBA 团队成员热衷技术分享、编写技术文档。本文共 1500 字预计阅读需要 5 分钟。 背景 在推进自研改造的进程中我们需将Oracle数据库迁移至OceanBaseOracle模式数据库。尽管 OceanBase 在 Oracle 兼容性方面已表现出色但仍旧存在一些特殊语法或对象需要我们进行特别处理。以下是我们在迁移过程中遇到的一些不完全兼容对象及其处理逻辑。 Oracle 中 LOB 类数据迁移到 OB 时的处理逻辑 Oracle 中 CLOB 和 BLOB 类型均可达到 4G 大小以 Oracle 11.2 为例而 OceanBase 数据库当前版本3.2.3.x所支持的大对象数据类型的信息如下表所示 类型BLOBCLOB长度变长变长自定义长度上限字符48MB48MB字符集BINARY与租户字符集一致 考虑到从 Oracle 迁移到 OceanBase如果涉及 LOB 类字段可能会存在当 LOB 数据大于 48M 时数据丢失的问题需要提前发现这类数据并进行处理。 2.1 找到 Oracle 中 LOB 数据最大长度 我们可以构建一个实验生成 CLOB 及 BLOB 类型数据使用 Oracle 自带的 DBMS_LOB 包获取对应类型的最大值。 2.1.1 构建包含LOB类型的数据表 CREATE TABLE t_lob(c_ID NUMBER,c_clob CLOB,c_blob BLOB );2.1.2 创建造数据存储过程 随机插入 100 条记录到 t_lob 表。 CREATE OR REPLACE PROCEDURE insert_random_lob_data AS BEGINDECLAREl_random_string VARCHAR2(10000);l_random_blob BLOB;BEGINFOR i IN 1..100 LOOPl_random_string : dbms_random.string(U, dbms_random.value(1, 10000));dbms_lob.createtemporary(l_random_blob, TRUE);dbms_lob.writeappend(l_random_blob, LENGTH(l_random_string), utl_raw.cast_to_raw(l_random_string));INSERT INTO t_lob(c_ID, c_clob, c_blob)VALUES(i, l_random_string, l_random_blob);dbms_lob.freetemporary(l_random_blob);END LOOP;COMMIT;END; END; /2.1.3 查询该表中 CLOB 和 BLOB 字段的最大值 SELECT MAX(DBMS_LOB.GETLENGTH(C_CLOB)) AS LONGEST_CLOB,MAX(DBMS_LOB.GETLENGTH(C_BLOB)) AS LONGEST_BLOBFROM T_LOB;2.2 获取整个数据库中 LOB 字段值较大的清单 排除了系统用户获取 LOB 字段清单后再基于清单中的 LOB 字段单独分析其最大值。 SELECT COL.OWNER,COL.TABLE_NAME,COL.COLUMN_NAME,COL.DATA_TYPE,COL.AVG_COL_LEN,COL.CHAR_LENGTH,TAB.NUM_ROWSFROM DBA_TABLES TAB, DBA_TAB_COLUMNS COLWHERE TAB.OWNER COL.OWNERAND TAB.TABLE_NAME COL.TABLE_NAMEAND COL.DATA_TYPE IN (CLOB, BLOB)AND COL.OWNER NOT IN (SYS, SYSTEM)AND COL.OWNER IN(SELECT USERNAME FROM DBA_USERS WHERE ACCOUNT_STATUS OPEN)AND COL.TABLE_NAME NOT LIKE BIN%;Oracle 中 disable 约束在 OMS 迁移过程中的处理逻辑 在对 Oracle 中的约束类非表对象做一致性校验时发现部分约束在 OMS 迁移完成后丢失了需要分析其 OMS 丢失的原因。 3.1 问题分析 从 OMS 界面中获取 DDL 的语句可以看到有 2 个 WARN且类型是 DISCARD表示 OMS 判断其是 DISABLE 状态的约束直接选择了舍弃掉。 -- [WARN] [DISCARD] CONSTRAINT PK_T_PARTKEY_IS_PK PRIMARY KEY (CRT_DTTM) DISABLE NOVALIDATE - [NULL] -- [WARN] [DISCARD] CHECK (ACT_ID IS NOT NULL) DISABLE NOVALIDATE - [NULL] CREATE TABLE T_PARTKEY_IS_PK (ACT_ID NUMBER(10,0),SRT_ID NUMBER(10,0),SRT_ORIGNAL_ID NUMBER(10,0),CRT_DTTM DATE,LASTUPT_DTTM DATE )3.2 问题结论 Oracle 侧处于 DISABLE 状态的约束通过 OMS 迁移时会被舍弃不会在 OB 侧创建在对约束对象比对时需要额外注意 Oracle 端约束的 status 是否处于 DISABLE 状态本身对业务和功能没有影响。 3.3 约束校验时提前排除 DISABLE 的约束 可以通过以下语句观测源端 Oracle 约束状态。 -- 手工将T_PARTKEY_IS_PK表的约束都disable ALTER TABLE ZHENXING.T_PARTKEY_IS_PK DISABLE NOVALIDATE CONSTRAINT PK_T_PARTKEY_IS_PK; ALTER TABLE ZHENXING.T_PARTKEY_IS_PK DISABLE CONSTRAINT SYS_C0011109;SELECT OWNER,TABLE_NAME,CONSTRAINT_NAME,CONSTRAINT_TYPE,INDEX_NAME,STATUSFROM DBA_CONSTRAINTSWHERE OWNER ZHENXINGAND TABLE_NAME T_PARTKEY_IS_PK;Oracle 中分区表迁移到 OB 后带有的自动分区属性丢失 自动分区属性是 Oracle 11g 的特性可以用 INTERVAL 语法基于天、月、年做自动分区创建。 在通过 OMS 迁移到 OB 后发现自动分区属性丢失了会导致当分区未自动创建时导致新增数据没法写入分区表导致报错。 4.1 问题分析 从 OMS 界面中获取 DDL 的语句可以看到有 1 个 WARN且类型是 DISCARD表示 OMS 判断其不完全兼容直接选择了舍弃掉。 -- OMS 迁移表结构时记录的WARN信息表示自动分区属性由于不兼容会自动DISCARD舍弃 [WARN] [DISCARD] INTERVAL (NUMTOYMINTERVAL (1,MONTH)) - [NULL]4.2 问题结论 所以在 Oracle 迁移到 OB 前需要把 Oracle 端存在自动分区属性的表提前找出避免由于迁移到 OB 后分区为未自动创建导致的数据无法插入的报错并且找出这类分区后先在 Oracle 端创建足够的多分区避免迁移过程中源端分区数增加导致比对不一致的情况。并记录清单告知业务开发待后续用其他方式定期生成新分区。 4.3 如何找出 Oracle 中自动分区的表 4.3.1 Oracle 侧模拟自动分区 -- 创建基于天的自动分区表 SQL create table interval_sales (prod_id number(6),time_id date)partition by range (time_id)INTERVAL(NUMTOYMINTERVAL(1, MONTH))(partition p1 values less than (to_date(2015-01-01,yyyy-mm-dd)));-- 查询当前分区默认生成了1个定义好的分区 SQL SELECT TABLE_NAME, PARTITION_NAMEFROM USER_TAB_PARTITIONSWHERE TABLE_NAME INTERVAL_SALES;TABLE_NAME PARTITION_NAME ------------------------------ ------------------------------ INTERVAL_SALES P1-- 插入数据不在默认分区内 SQL INSERT INTO INTERVAL_SALES VALUES(001, TO_DATE(2015-02-01, yyyy-mm-dd));-- 自动生成了新分区 TABLE_NAME PARTITION_NAME ------------------------------ ------------------------------ INTERVAL_SALES P1 INTERVAL_SALES SYS_P221-- 单独查看该分区数据验证数据确实存在新分区 SQL SELECT * FROM INTERVAL_SALES PARTITION(SYS_P221);PROD_ID TIME_ID ---------- ---------1 01-FEB-154.3.2 统计 Oracle 侧有哪些表是自动分区的表 /* PARTITION_COUNT: Number of partitions in the table. For interval partitioned tables, the value of this column is always 1048575. */ SELECT T1.OWNER,T1.TABLE_NAME,T1.INTERVAL,T1.PARTITIONING_TYPE,T1.PARTITION_COUNT,T1.SUBPARTITIONING_TYPE AS SUB_TYPE,T1.SUBPARTITIONING_KEY_COUNT SUB_COUNT,T1.STATUSFROM DBA_PART_TABLES T1WHERE 1 1AND TABLE_NAME NOT LIKE BIN%AND (INTERVAL IS NOT NULL OR PARTITION_COUNT 1048575);总结 以上总结分析了 3 种 Oracle 对象和 OB 对象不兼容时的处理方法和提前统计发现的操作方式在迁移前提前发现这类问题能有效避免在迁移过程中报错的问题。
http://www.ho-use.cn/article/10816534.html

相关文章:

  • 行业门户网站程序天猫建设网站的目的
  • 网站开发项目挣钱吗wordpress安装到ESC
  • 青岛网站设计哪家好前端个人介绍网站模板下载
  • 网站开发基本过程甘肃最新消息今天
  • 公司建设网站需要注意什么wordpress主题制作导航的n种方法
  • 张家港做网站的推荐大学学术建设专题网站
  • 网站建设被骗维护费手机免费云服务器永久使用
  • 2008 iis 添加网站google浏览器官网下载
  • wordpress 建购物网站网站推广方法大全
  • 番禺品牌型网站大连城乡建设局官网
  • 网站内容设计要求汕头定制网站建设
  • 互联网网站名字金融网站建设方案ppt
  • 北京网站建设首选小峰logo头像设计
  • 马可波罗网站如何做产品推广中国住房建设网官方网站
  • lamp网站开发 pdf有阿里空间怎么做网站
  • wordpress淘宝客建站阿里巴巴国际站运营教程
  • 旅游网站建设方案简介做网站的第一步
  • 网站的要素是什么意思wordpress 图片排列
  • 贵阳网站方舟网络最好网站开发有哪些服务器
  • 上传了网站标志怎么弄360建筑网上怎么删除投递信息
  • o2o网站系统建设重庆企业的网站建设
  • 合肥专业做网站公司有哪些中国建设银行济南招聘信息网站
  • 赣州 做网站免费行情软件的特点和优势
  • 网站设计规划范文医疗器械有限公司
  • 电子商务网站建设论文课题国外电商网站如何做icp备案
  • 网站域名解析错误怎么办自己做的网站网页滑动不
  • 建站网址导航hao123wordpress里的模板怎么用
  • 做详情页到那个网站找模特素材网站首页浮动广告怎么做
  • 宿州网站建设网站制作网站软件哪个好
  • 网站怎么搬家wordpress数据库表管理