1.查看存在的job 可忽略(如果有需要和应用确认停止job)
"
SELECT * FROM DBA_DATAPUMP_JOBS;
select * from dba_jobs;
select sid from dba_jobs_running; 正在运行的job
--EXEC DBMS_JOB.BROKEN(job#,TRUE); 停止job
--exec dbms_job.run(103); 启动job
"
2.查看回收站大小及回收站内的对象(和应用确认是否可清理)
"
SHOW PARAMETER RECYCLEBIN;
SELECT count(*) FROM DBA_RECYCLEBIN;
select sum(SPACE)*8/1024/1024 G from dba_recyclebin;
select object_name,object_type, status ,count(*) from dba_objects where owner not in ('username') and object_name like 'BIN%' group by object_name,object_type ,status order by 2 desc;
"
3.根据源表空间数据大小创建目标库数据表空间 "一、小文件表空间(小文件表空间,一个文件的最大大小为32G,blocksize决定)
1、创建数据表空间
create tablespace XXX datafile '+DATA' size 30G autoextend on next 500m uniform size 1m;
添加数据文件:
alter tablespace XXX add datafile '+DATA' size 30G autoextend on next 500m;
alter tablespace USERS add datafile '+DATA' size 30G autoextend on next 500m;
"
4."扩容temp表空间
(由于导数消耗临时表空间,尽可能给较大的temp空间(添加自动扩展临时文件),后面重建进行回收)" "扩容临时表空间
ALTER TABLESPACE TEMP ADD TEMPFILE '+DATA ' size 1G autoextend on;
"
5.修改undo_retention 提前确认
6."清理回收站(应用确认是否需要清理)可忽略
" "
SHOW PARAMETER RECYCLEBIN;
SELECT count(*) FROM DBA_RECYCLEBIN;
select sum(SPACE)*8/1024/1024 G from dba_recyclebin;
purge dba_recyclebin;
"
7.创建数据泵备份目录 "
mkdir /backup/dmp
chown oracle:oinstall /backup/dmp
sqlplus / as sysdba
create directory DMP as '/backup/dmp/';
grant read, write on directory DMP to PUBLIC;
"
创建数据泵恢复目录 同上
数据泵导出元数据 "1、在目标库创建dblink指向源端ADG备库
CREATE PUBLIC DATABASE LINK ""TO_XXX"" CONNECT TO system IDENTIFIED BY ""******"" USING '
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.XXX.xx.xxx)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = XXX)
)
)';
8.、导出元数据排除序列,排除序列,注意序列单独导(本次方案只导表结构并修改分区表结构,第三方数据同步)
expdp system/******* network_link=TO_XXX dumpfile=20220919.dmp directory=dmp logfile=20220919.log schemas=username content=METADATA_ONLY exclude=sequence
"
目标端导入元数据 "
impdp system/******* directory=DMP dumpfile=20230609.dmp logfile=20230609_imp.log remap_tablespace=xx:xx,xxx:xxx
修改表指定空间,已废弃
alter table AFC_PRPLCONTENT move tablespace XXX_CCONT;
alter table AFB_PRPLBPMMAIN move tablespace XXX_BPM;
alter table AFD_PRPCITEMKIND tablespace XXX_DKIND;
"
9.查看目标端外键状态 "查看外键状态
col owner for a30
col CONSTRAINT_NAME for a40
col TABLE_NAME for a30
col COLUMN_NAME for a20
set linesize 400 pagesize 400
select a.owner,a.CONSTRAINT_NAME,a.CONSTRAINT_TYPE,a.TABLE_NAME,a.status,b.column_name from dba_constraints a,dba_cons_columns b where a.owner=b.owner and a.CONSTRAINT_NAME=b.CONSTRAINT_NAME and a.table_name=b.table_name and a.owner in ('username') and a.CONSTRAINT_TYPE='R';
"
目标端外键disable
select 'alter table '||owner||'.'||table_name||' disable constraint '|| CONSTRAINT_NAME||';' from dba_constraints where CONSTRAINT_TYPE='R' and owner in ('username');
"开启库级别的唯一键补充日志和无主键表级别的全列日志
(需提前起变更操作)" "
"
alter database add supplemental log data(unique) columns;
select 'alter table '||owner||'.'||table_name||' add supplemental log data(all) columns;' from
dba_tables a
where not exists (select *
from user_constraints b
where b.constraint_type = 'P'
and a.table_name = b.table_name)
and owner in ('username');