网络通的情况下,建议使用dts迁移工具。可以模式对模式直接迁移,也可以导出成sql\EXCLE等
目的库会被清空,进行全库备份还原,如果目的库为空可使用该方法,或者在目的端同网段初始一个中间库进行备份与还原,再通过迁移工具进行迁移
登录数据库,执行以下命令,必须开归档,参考以下链接打开归档
https://eco.dameng.com/document/dm/zh-cn/ops/physical-backup.html#%E5%BD%92%E6%A1%A3%E9%85%8D%E7%BD%AE
BACKUP DATABASE FULL BACKUPSET '/opt/dmdbms/BAK/db_full_bak_for_restore';
数据库为停止状态,cd到/opt/dmdbms/bin,执行以下命令
BACKUP DATABASE '/opt/dmdbms/data/DAMENG/dm.ini' FULL BACKUPSET '/home/dm_bak/db_full_bak_for_restore';
目的库为停止状态,且目的端归档日志要打开,参考以下链接打开归档
https://eco.dameng.com/document/dm/zh-cn/ops/physical-backup.html#%E5%BD%92%E6%A1%A3%E9%85%8D%E7%BD%AE
归档打开后,使用dmdba用户,cd到/opt/dmdbms/bin,启动 DMRMAN
./dmrman
1)还原数据库。执行以下命令:
RESTORE DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/home/dm_bak/db_full_bak_for_restore';
2)恢复数据库。启动 DMRMAN,执行以下命令:
RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' FROM BACKUPSET '/home/dm_bak/db_full_bak_for_restore';
3)恢复 db_magic,执行以下命令:
RECOVER DATABASE '/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini' UPDATE DB_MAGIC;
建议导出前先使用3.5的sql统计源端库表的数据量,到目的库导入后再执行一次sql统计。源端和目的端进行对比。
导出文件为 dexp01.dmp ,导出日志为 dexp01.log,导出文件和日志文件都存放在 /emc_2/data/dexp 目录中。
dexp.exe SYSDBA/SYSDBA@192.168.0.248:5236 FILE=dexp01.dmp LOG=dexp01.log DIRECTORY=/emc_2/data/dexp
dexp.exe DMTEST/123456789 FULL=Y FILE=D:\DM20181207_rows_no.dmp directory=D:\ log=exp_20181207_rows_no.log rows=n
dexp.exe DMTEST/123456789 schemas=(DMTEST) FILE=D:\DM20181207.dmp directory=D:\log=exp_20181207.log
dexp.exe DMTEST/123456789 tables=(ALL_TABLES,IND_T1) FILE=D:\DM20181207_sechemas_tables.dmp directory=D:\ log=exp_20181207_schemas_tables.log
D:\dmdbms\bin>dimp.exe TEST/123456789 FILE=DM20181207.dmp directory=D:\log=dimp_20181207.log full=y
D:\dmdbms\bin>dimp.exe TEST/123456789 FILE=DM20181207.dmp directory=D:\ log=dimp_20181207.log ignore=y
D:\dmdbms\bin>dimp.exe DMTEST/123456789 FILE=DM20181207.dmp directory=D:\ log=dimp_20181207.log TABLES=ALL_TABLES,IND_T1 remap_schema=DMTEST:TEST
说明:remap_schema=<源模式>:<目标模式>
D:\dmdbms\bin>dimp.exe TEST/123456789 FILE=DM20181207_rows_no.dmp directory=D:\ log=dimp_20181207_row_now.log
./dimp SYSBENCHUSER/SYSBENCHUSER123:5228 directory=/data/ file=full_bak.dmp log=imp_full_bak.log PARALLEL=64 TABLE_PARALLEL=16 FAST_LOAD=Y COMMIT_ROWS=1000000 TASK_THREAD_NUMBER=96 BUFFER_NODE_SIZE=2048 OWNER=SYSBENCHUSER INDEXFIRST=Y
创建中间表
create table oracle_tables(tab_owner varchar(100),tab_name
varchar(100),tab_count int);
表总行数统计语句:
create
PROCEDURE PRO_TEST
AS
begin
for rec in
(
select
owner,
object_name
from
all_objects
where
owner ='模式名'
and object_type='TABLE'
)
loop
begin
execute immediate 'insert into oracle_tables select '''|| rec.owner || ''',''' || rec.object_name || ''',count(*) from ' || rec.owner || '.' || rec.object_name;
exception
when others then
print ('get count error');
end;
end loop;
end;
执行存储过程
CALL PRO_TEST
源端与目的端进行数据对比
文章
阅读量
获赞