一、在生產環境中,可能遇到磁碟空間不足的情況,需要將資料檔案移動到先掛載的磁碟上。
二、環境描述
作業系統版本:
[root@damengtest ~]# cat /etc/redhat-release
red hat enterprise linux server release 7.3 (maipo)
資料庫版本:
sql> select * from v$version;
行號 banner
---------- -------------------------
1 dm database server 64 v8
2 db version: 0x7000a
三、資料檔案遷移步驟
方法一、以資料檔案為單位移動
1、關閉資料庫服務並通過dmctlcvt轉換控制檔案為文字檔案;
2、拷貝資料檔案到新的路徑;
3、修改控制檔案中資料檔案的路徑到新的路徑並重建控制檔案;
4、啟動資料庫服務
注意:如果是使用者表空間的所有資料檔案都更換了位置,也需要同時修改dm.ini中的資料檔案的路徑
方法二、以表空間為單位進行移動
1、表空間offline;
2、修改控制檔案路徑
3、表空間online
四、資料檔案遷移過程
4.1、建立測試環境
建立如下表空間及使用者用於資料檔案遷移測試
新建表空間及使用者並授權
sql> create tablespace "xiao" datafile '/opt/dm8/data/dm/xiao.dbf' size 128 autoextend on cache = normal;
操作已執行
sql> create user "xiao" identified by "xiao1234!"
limit failed_login_attemps 3, password_lock_time 1, password_grace_time 10
default tablespace "xiao"
default index tablespace "xiao";
操作已執行
sql> grant "dba","public","resource","soi","vti" to "xiao";
操作已執行
sql>
檢視資料檔案路徑
sql> select path from v$datafile;
行號 path
---------- -----------------------------
1 /opt/dm8/data/dm/system.dbf
2 /opt/dm8/data/dm/roll.dbf
3 /opt/dm8/data/dm/temp.dbf
4 /opt/dm8/data/dm/main.dbf
5 /opt/dm8/data/dm/bookshop.dbf
6 /opt/dm8/data/dm/dmhr.dbf
7 /opt/dm8/data/dm/xiao.dbf
7 rows got
sql> exit
方法一:以資料檔案為單位移動
4.2、停庫並轉換控制檔案為文字檔案
1、停止資料庫例項
[dmdba@damengtest bin]$ ./dmservicedm stop
stopping dmservicedm: [ ok ]
2、轉換控制檔案
[dmdba@damengtest bin]$ ./dmctlcvt type=1 src=/opt/dm8/data/dm/dm.ctl dest=/opt/dm8/data/dm/dmctl.txt
dmctlcvt v8
convert ctl to txt success!
[dmdba@damengtest bin]$
3、拷貝資料檔案到新的路徑
[dmdba@damengtest dm]$ mv xiao.dbf ../
[dmdba@damengtest dm]$ cd ..
[dmdba@damengtest data]$ ls
dm dmtest newpath test xiao.dbf
4、修改文字檔案中資料檔案路徑到新路徑並重建控制檔案
將dmctl.txt路徑改成現在的
# file path
fil_path=/opt/dm8/data/xiao.dbf
將dmctl.txt轉化為dm.ctl
[dmdba@damengtest bin]$ ./dmctlcvt type=2 src=/opt/dm8/data/dm/dmctl.txt dest=/opt/dm8/data/dm/dm.ctl
dmctlcvt v8
convert txt to ctl success!
[dmdba@damengtest bin]$
5、啟動資料庫並進行驗證
[dmdba@damengtest bin]$ ./dmservicedm start
starting dmservicedm: [ ok ]
sql> select path from v$datafile;
行號 path
---------- -----------------------------
1 /opt/dm8/data/dm/system.dbf
2 /opt/dm8/data/dm/roll.dbf
3 /opt/dm8/data/dm/temp.dbf
4 /opt/dm8/data/dm/main.dbf
5 /opt/dm8/data/dm/bookshop.dbf
6 /opt/dm8/data/dm/dmhr.dbf
7 /opt/dm8/data/xiao.dbf
7 rows got
sql> exit
方法二、以表空間為單位進行移動
1、表空間offline
sql> alter tablespace "xiao" offline;
操作已執行
2、修改控制檔案路徑
sql> alter tablespace "xiao" rename datafile '/opt/dm8/data/xiao.dbf' to '/opt/dm8/data/dm/xiao.dbf';
操作已執行
3、表空間online
sql> alter tablespace "xiao" online;
操作已執行
4、驗證
[dmdba@damengtest dm]$ ls
arch dm01.log dmctl.txt dm_service.prikey roll.dbf trace
bak dm02.log dmhr.dbf hmain sqllog.ini xiao.dbf
bookshop.dbf dmarch.ini dm.ini main.dbf system.dbf
ctl_bak dm.ctl dminit20201224170230.log rep_conflict.log temp.dbf
sql> select path from v$datafile;
行號 path
---------- -----------------------------
1 /opt/dm8/data/dm/system.dbf
2 /opt/dm8/data/dm/roll.dbf
3 /opt/dm8/data/dm/temp.dbf
4 /opt/dm8/data/dm/main.dbf
5 /opt/dm8/data/dm/bookshop.dbf
6 /opt/dm8/data/dm/dmhr.dbf
7 /opt/dm8/data/dm/xiao.dbf
7 rows got
由以上2種方法可將資料檔案遷移到新的位置。
達夢資料庫之資料檔案遷移
一 前言 在實際生產環境中,可能存在資料磁碟空間不足的情況,一般情況下,我們會通過增加新的磁碟來解決,當新磁碟增加完畢後,需要將原資料檔案遷移一部分到新磁碟空間,以釋放原資料磁碟的空間,本文主要闡述此種情況下資料檔案的移動。二 環境描述 作業系統版本 dmdba dm3 cat etc redhat...
mysql資料庫儲存路徑更改 資料檔案位置
mysql資料庫儲存路徑更改 使用了vps一段時間之後發現磁碟空間快滿了。本人的vps在購買的時候買了500gb的磁碟,提供商贈送了20gb的高效能系統磁碟。這樣系統就有兩個磁碟空間了。在初次安裝mysql 的時候將資料庫目錄安裝在了系統盤。第乙個磁碟 使用了一段時間之後資料庫儲存量變大,快將20g...
mysql資料庫儲存路徑更改 資料檔案位置
使用了vps一段時間之後發現磁碟空間快滿了。本人的vps在購買的時候買了500gb的磁碟,提供商贈送了20gb的高效能系統磁碟。這樣系統就有兩個磁碟空間了。在初次安裝mysql 的時候將資料庫目錄安裝在了系統盤。第乙個磁碟 使用了一段時間之後資料庫儲存量變大,快將20gb的存放空間佔滿了。因此必須將...