DM数据库文件迁移
DM数据库文件迁移
·
一、部分迁移
部分迁移指:迁移除了SYSTEM、MAIN、TEMP、ROLL以外的表空间的数据文件
1. 创建测试用表空间
create tablespace test datafile 'test01.dbf' size 128 ,'test02.dbf' size 128;
2. 创建测试数据
CREATE TABLE TEST.DM_INI AS SELECT * FROM V$DM_INI ;
INSERT INTO TEST.DM_INI SELECT * FROM V$DM_INI ;
COMMIT ;
SELECT COUNT(1) FROM TEST.DM_INI ;
3.确定需要移动的表空间
select tablespace_name, file_name, status from dba_data_files where tablespace_name not in ('MAIN','ROLL','SYSTEM','TEMP')order by 1;
拼接批处理语句
select DISTINCT tablespace_name, status , 'alter tablespace '||tablespace_name||' offline;' from dba_data_files where tablespace_name not in ('MAIN','ROLL','SYSTEM','TEMP')order by 1;
4.使表空间离线
alter tablespace test offline;
5.修改表空间对应数据文件路径
alter tablespace test rename datafile '/home/dmdba/dmdbms/data/DAMENG/test01.dbf' to '/home/dmdba/dmdata/test01.dbf' ;
alter tablespace test rename datafile '/home/dmdba/dmdbms/data/DAMENG/test02.dbf' to '/home/dmdba/dmdata/test02.dbf' ;
6.使表空间在线
alter tablespace test online;
二、全部迁移(包括SYSTEM、MAIN、TEMP、ROLL表空间)
1.关闭数据库服务
2.转换控制文件为txt,并修改txt中数据文件路径到指定路径
./dmctlcvt TYPE=1 SRC=/home/dmdba/dmdbms/data/DAMENG/dm.ctl DEST=/home/dmdba/dmdbms/data/DAMENG/dmctl.txt
vi /home/dmdba/dmdbms/data/DAMENG/dmctl.txt
...
对应调整文件中的所有DBF路径即可。
3. 移动所有数据文件到数据盘
mv *.DBF /home/dmdba/dmdata/
4.转换控制文件为ctl
#备份原ctl文件
mv /home/dmdba/dmdbms/data/DAMENG/dm.ctl /home/dmdba/dmdbms/data/DAMENG/dm_bak.ctl
#转换新的控制文件
dmctlcvt TYPE=2 SRC=/home/dmdba/dmdbms/data/DAMENG/dmctl.txt DEST=/home/dmdba/dmdbms/data/DAMENG/dm.ctl
5.启动数据库
6.确定所有数据文件的状态都是 AVAILABLE
select tablespace_name, file_name, status from dba_data_files order by 1;
更多资讯请上达梦技术社区了解:https://eco.dameng.com/
更多推荐
所有评论(0)