本文主要对达梦8中文件移动进行了汇总。
1 达梦8的物理存储结构
主要有控制文件,数据文件,重做日志文件组成。
其中数据文件根据存放的数据不同,又有系统的数据文件,普通数据文件,ROLL文件,临时文件。
2 普通数据文件的移动
2.1 查看当前数据文件test101.dbf的位置
SQL> select tablespace_name,file_name from dba_data_files;
行号 TABLESPACE_NAME FILE_NAME
---------- --------------- ----------------------------------
1 SYSTEM /opt/dm8/data/DAMENG/SYSTEM.DBF
2 roll2 /home/dmdba/roll2.dbf
3 TBS1_NEW /opt/dm8/data/DAMENG/tbs102.dbf
4 TBS1_NEW /opt/dm8/data/DAMENG/tbs101.dbf
5 TEST1 /opt/dm8/data/DAMENG/test101.dbf
6 MAIN /opt/dm8/data/DAMENG/disk/MAIN.DBF
7 TEMP /opt/dm8/data/temp/TEMP.DBF
8 ROLL /opt/dm8/data/DAMENG/ROLL.DBF
8 rows got
已用时间: 57.745(毫秒). 执行号:5.
2.2 移动test101.dbf文件
2.2.1 将test1置为离线状态
SQL> alter tablespace test1 offline;
操作已执行
已用时间: 101.732(毫秒). 执行号:6.
2.2.2 移动位置
SQL> alter tablespace test1 rename datafile '/opt/dm8/data/DAMENG/test101.dbf' to '/opt/dm8/data/DAMENG/disk/test01.dbf';
操作已执行
已用时间: 314.194(毫秒). 执行号:7.
2.2.3 将表空间置为在线状态
SQL> alter tablespace test1 online;
操作已执行
已用时间: 20.210(毫秒). 执行号:8.
2.2.4 确认修改结果
SQL> select tablespace_name,file_name from dba_data_files where tablespace_name='TEST1';
行号 TABLESPACE_NAME FILE_NAME
---------- --------------- ------------------------------------
1 TEST1 /opt/dm8/data/DAMENG/disk/test01.dbf
已用时间: 6.874(毫秒). 执行号:9.
3 移动重做日志文件
3.1 查询当前重做日志文件的位置
SQL> select group_id,file_id,path,rlog_size from v$rlogfile;
行号 GROUP_ID FILE_ID PATH RLOG_SIZE
---------- ----------- ----------- ---------------------------------
1 2 0 /opt/dm8/data/DAMENG/DAMENG01.log 268435456
2 2 1 /opt/dm8/data/DAMENG/DAMENG02.log 268435456
3 2 2 /opt/dm8/data/DAMENG/DAMENG03.log 268435456
4 2 3 /opt/dm8/data/DAMENG/DAMENG04.log 419430400
已用时间: 1.815(毫秒). 执行号:10.
3.2 移动重做日志文件
SQL> alter database mount;
操作已执行
已用时间: 00:00:01.769. 执行号:0.
SQL> alter database rename logfile
2 '/opt/dm8/data/DAMENG/DAMENG01.log' to '/opt/dm8/data/DAMENG/disk/DAMENG01.log';
操作已执行
已用时间: 00:00:02.301. 执行号:11.
SQL> alter database open;
操作已执行
已用时间: 00:00:01.738. 执行号:0.
SQL> select group_id,file_id,path,rlog_size from v$rlogfile;
行号 GROUP_ID FILE_ID PATH RLOG_SIZE
---------- ----------- ----------- ---------------------------------
1 2 0 /opt/dm8/data/DAMENG/disk/DAMENG01.log 268435456
2 2 1 /opt/dm8/data/DAMENG/DAMENG02.log 268435456
3 2 2 /opt/dm8/data/DAMENG/DAMENG03.log 268435456
4 2 3 /opt/dm8/data/DAMENG/DAMENG04.log 419430400
4 移动系统文件与roll文件
注:系统文件system与roll文件不允许offline。所以在移动时,只能修改控制文件中的路径。
4.1 转储控制文件为文本
cd /opt/dm8/data/DAMENG
[dmdba@enmoedu1 DAMENG]$ dmctlcvt type=1 src=dm.ctl dest=/home/dmdba/dm.txt
DMCTLCVT V8
convert ctl to txt success!
编辑dm.txt,修改system.dbf与roll.dbf的位置
[dmdba@enmoedu1 ~]$ cat dm.txt | grep -i system
ts_name=SYSTEM
fil_path=/opt/dm8/data/DAMENG/disk/SYSTEM.DBF
[dmdba@enmoedu1 ~]$ cat dm.txt | grep -i roll
ts_name=ROLL
fil_path=/opt/dm8/data/DAMENG/disk/ROLL.DBF
4.2 将文本控制文件转储为二进制文件
[dmdba@enmoedu1 DAMENG]$ dmctlcvt type=2 src=/home/dmdba/dm.txt dest=/opt/dm8/data/DAMENG/dm.ctl
DMCTLCVT V8
convert txt to ctl success!
4.3 关闭数据库拷贝文件之后启动服务
[dmdba@enmoedu1 ~]$ DmServiceDMSERVER stop
Stopping DmServiceDMSERVER: [ OK ]
[dmdba@enmoedu1 ~]$ cp /opt/dm8/data/DAMENG/SYSTEM.DBF /opt/dm8/data/DAMENG/disk/SYSTEM.DBF
[dmdba@enmoedu1 ~]$
[dmdba@enmoedu1 ~]$ cp /opt/dm8/data/DAMENG/ROLL.DBF /opt/dm8/data/DAMENG/disk/ROLL.DBF
[dmdba@enmoedu1 ~]$ DmServiceDMSERVER start
Starting DmServiceDMSERVER: [ OK ]
4.4 验证结果
SQL> select file_name from dba_data_files;
行号 FILE_NAME
---------- ------------------------------------
1 /opt/dm8/data/DAMENG/disk/SYSTEM.DBF
2 /home/dmdba/roll2.dbf
3 /opt/dm8/data/DAMENG/tbs102.dbf
4 /opt/dm8/data/DAMENG/tbs101.dbf
5 /opt/dm8/data/DAMENG/disk/test01.dbf
6 /opt/dm8/data/DAMENG/disk/MAIN.DBF
7 /opt/dm8/data/temp/TEMP.DBF
8 /opt/dm8/data/DAMENG/disk/ROLL.DBF
5 临时文件移动位置
5.1 查看相关参数
SQL> select type,name,value from v$parameter where name like '%TEMP%';
行号 TYPE NAME VALUE
---------- --------- ---------------- ------------------
1 READ ONLY TEMP_PATH /opt/dm8/data/temp
2 IN FILE TEMP_SIZE 10
3 SYS TEMP_SPACE_LIMIT 0
5.2 修改文件中TEMP_PATH的值
[dmdba@enmoedu1 DAMENG]$ cat dm.ini | grep TEMP_PATH
TEMP_PATH = /home/dmdba/temp
5.3 重启服务生效
[dmdba@enmoedu1 DAMENG]$ DmServiceDMSERVER stop
Stopping DmServiceDMSERVER: [ OK ]
[dmdba@enmoedu1 DAMENG]$ DmServiceDMSERVER start
Starting DmServiceDMSERVER: [ OK ]
5.4 验证结果
SQL> select type,name,value from v$parameter where name like '%TEMP%';
服务器[LOCALHOST:5236]:处于普通打开状态
已连接
行号 TYPE NAME VALUE
---------- --------- ---------------- ----------------
1 READ ONLY TEMP_PATH /home/dmdba/temp
2 IN FILE TEMP_SIZE 10
3 SYS TEMP_SPACE_LIMIT 0
[dmdba@enmoedu1 DAMENG]$ cd /home/dmdba/temp/
[dmdba@enmoedu1 temp]$ ll
总用量 10240
-rw-r--r-- 1 dmdba dinstall 10485760 9月 1 10:33 TEMP.DBF
SQL> select file_name from dba_data_files where file_name like '%TEMP%';
行号 FILE_NAME
---------- -------------------------
1 /home/dmdba/temp/TEMP.DBF
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。