Oracle数据迁移及Oracle全局索引变动为分区索引

1.在新环境数据库用户下执行建须要迁移表的建表语句

 CREATE TABLE "T_TSPS_CONDUCT_AUDITS" (
  "C_ID" VARCHAR2(64 BYTE), 
  "N_PERSON_ID" NUMBER, 
  "C_CODE" VARCHAR2(64 BYTE), 
  "C_NAME" VARCHAR2(64 BYTE), 
  "C_DEPT" VARCHAR2(64 BYTE), 
  "N_LOG_TIME" NUMBER, 
  "C_LOG_TYPE" NUMBER, 
  "C_CONTENT" VARCHAR2(1024 BYTE), 
  "C_RESULT" VARCHAR2(2 BYTE), 
  "C_SN" VARCHAR2(128 BYTE), 
  "N_DEPT_ID" NUMBER, 
  "C_BLACK_FLAG" VARCHAR2(2 BYTE), 
  "C_CREATE_TIME" DATE, 
  "C_IDENTIFIER" VARCHAR2(36 BYTE)
) PARTITION BY RANGE (C_CREATE_TIME)  interval (numtodsinterval (1,'DAY'))
(
 PARTITION audit_p180613 VALUES LESS THAN (TO_DATE('2018-6-13', 'yyyy-mm-dd'))
 );

   COMMENT ON COLUMN "T_TSPS_CONDUCT_AUDITS"."C_ID" IS '主键';

   COMMENT ON COLUMN "T_TSPS_CONDUCT_AUDITS"."N_PERSON_ID" IS '人员id';

   COMMENT ON COLUMN "T_TSPS_CONDUCT_AUDITS"."C_CODE" IS '人员编码';

   COMMENT ON COLUMN "T_TSPS_CONDUCT_AUDITS"."C_NAME" IS '人员姓名';

   COMMENT ON COLUMN "T_TSPS_CONDUCT_AUDITS"."C_DEPT" IS '所属部门';

   COMMENT ON COLUMN "T_TSPS_CONDUCT_AUDITS"."N_LOG_TIME" IS '日志上报时间';

   COMMENT ON COLUMN "T_TSPS_CONDUCT_AUDITS"."C_LOG_TYPE" IS '日志类型 1:网络2:进程3:外设4:安装文件5:登录操做系统10:url日志类型 11:单流量日志类型12:批量流量日志类型';

   COMMENT ON COLUMN "T_TSPS_CONDUCT_AUDITS"."C_CONTENT" IS '操做内容';

   COMMENT ON COLUMN "T_TSPS_CONDUCT_AUDITS"."C_RESULT" IS '0:被禁止,1:成功,2:其它';

   COMMENT ON COLUMN "T_TSPS_CONDUCT_AUDITS"."C_SN" IS '证书sn';

   COMMENT ON COLUMN "T_TSPS_CONDUCT_AUDITS"."N_DEPT_ID" IS '部门id';

   COMMENT ON COLUMN "T_TSPS_CONDUCT_AUDITS"."C_IDENTIFIER" IS '身份证号';

 CREATE UNIQUE INDEX "T_TSPS_CONDUCT_AUDITS_PK" ON "T_TSPS_CONDUCT_AUDITS" ("C_ID");

2.在新服务上创建与老板数据库的服务通讯

create public database link lnDblink 
connect to topsec 
identified by manager 
using '(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=10.106.12.71)(PORT=4521)))
(CONNECT_DATA=(SERVICE_NAME=ora11g)))';

解释:此SQL在新数据库服务上执行 topsec :老服务数据库用户名 manager :老服务数据库用户密码 HOST:老数据库地址 PORT:老数据库端口 SERVICE_NAME:老数据库服务名数据库

3.迁移数据

insert into T_TSPS_CONDUCT_AUDITS select * from topsec.T_TSPS_CONDUCT_AUDITS@lnDblink;

4.全局索引改成分区索引

a.-- 查询出指定用户(TOPSEC_MNHLJ)下,指定表(T_TSPS_CONDUCT_AUDITS) 上的索引网络

select * from dba_indexes where owner='TOPSEC_MNHLJ' and table_name='T_TSPS_CONDUCT_AUDITS';

b.-- 删除以上查询到的索引ide

DROP INDEX "TOPSEC_MNHLJ"."T_TSPS_CONDUCT_AUDITS_PCODE";
DROP INDEX "TOPSEC_MNHLJ"."T_TSPS_CONDUCT_AUDITS_PID";
DROP INDEX "TOPSEC_MNHLJ"."T_TSPS_CONDUCT_AUDITS_INDEX1";

c.-- 删除主键约束后,删除主键对应的索引编码

ALTER TABLE "TOPSEC_MNHLJ"."T_TSPS_CONDUCT_AUDITS" DROP CONSTRAINT T_TSPS_CONDUCT_AUDITS_PK;
DROP INDEX "TOPSEC_MNHLJ"."T_TSPS_CONDUCT_AUDITS_PK";

d.-- 依次建立所需的分区索引url

CREATE INDEX "TOPSEC_MNHLJ"."IDX_TTCA_CTIME_G" ON "TOPSEC_MNHLJ"."T_TSPS_CONDUCT_AUDITS" ("C_CREATE_TIME", 0) LOCAL NOLOGGING
PARALLEL 8;

CREATE INDEX "TOPSEC_MNHLJ"."T_TSPS_CONDUCT_AUDITS_PID" ON "TOPSEC_MNHLJ"."T_TSPS_CONDUCT_AUDITS" ("N_PERSON_ID") LOCAL NOLOGGING
PARALLEL 8;

CREATE INDEX "TOPSEC_MNHLJ"."T_TSPS_CONDUCT_AUDITS_PK" ON "TOPSEC_MNHLJ"."T_TSPS_CONDUCT_AUDITS" ("C_ID") LOCAL NOLOGGING
PARALLEL 8;

e.-- 取消新建索引上的并行度spa

alter index "TOPSEC_MNHLJ"."IDX_TTCA_CTIME_G" noparallel;
alter index "TOPSEC_MNHLJ"."T_TSPS_CONDUCT_AUDITS_PID" noparallel;
alter index "TOPSEC_MNHLJ"."T_TSPS_CONDUCT_AUDITS_PK" noparallel;

f.-- 查看分区索引是否建立成功操作系统

select * from dba_part_indexes where owner='TOPSEC_MNHLJ' and table_name='T_TSPS_CONDUCT_AUDITS';
相关文章
相关标签/搜索