1. 程式人生 > 資料庫 >Oracle dbf檔案移動的方法

Oracle dbf檔案移動的方法

背景

oracle空間不足,發現dbf檔案未按設計的路徑存放,linux磁碟掛載空間未利用,需要移動一下位置錯誤的dbf檔案。

檢查檔案系統

/home/oracle \>df -h
檔案系統 容量 已用 可用 已用% 掛載點
/dev/mapper/lv01-root 22G 4.5G 16G 23% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 96K 3.9G 1% /dev/shm
tmpfs 3.9G 153M 3.7G 4% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 190M 132M 44M 75% /boot
/dev/mapper/lv02-home 20G 19G 0 100% /home
/dev/mapper/oradatalv-oradata 30G 18G 9.8G 65% /oradata
tmpfs 781M 16K 781M 1% /run/user/42
tmpfs 781M 0 781M 0% /run/user/1001
tmpfs 781M 0 781M 0% /run/user/0

home掛載點下空間已達到100%。

檢查大檔案

/home/oracle/oradata/ora12c \>ls -lh
總用量 8.7G
\-rw-r-----. 1 oracle oinstall 6.7G 5月 20 13:54 upbs_data.dbf
\-rw-r-----. 1 oracle oinstall 2.0G 5月 20 05:06 upbs_index.dbf

發現是dbf檔案過大後,準備移動一下。應該存放資料庫檔案的oradata掛載點下還有剩餘空間可以存放dbf檔案。

/home/oracle/oradata/ora12c >sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on
Wed May 20 14:18:36 2020
Copyright (c) 1982,2014,Oracle. All rights reserved.
ERROR:
ORA-09817: Write to audit file failed.
Linux-x86_64 Error: 28: No space left on device
Additional information: 12
ORA-09945: Unable to initialize the audit trail file
Linux-x86_64 Error: 28: No space left on device

oracle sqlplus直接登入失敗,顯示空間不足。

刪除審計檔案日誌

/home/oracle/audit \>rm \*
/home/oracle/audit \>ll
總用量 0

刪除後檢視磁碟空間,發現剛刪的審計檔案有點少

/home/oracle/audit \>df -h
檔案系統 容量 已用 可用 已用% 掛載點
/dev/mapper/lv01-root 22G 4.5G 16G 23% /
devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs 3.9G 96K 3.9G 1% /dev/shm
tmpfs 3.9G 153M 3.7G 4% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 190M 132M 44M 75% /boot
/dev/mapper/lv02-home 20G 19G 60K 100% /home
/dev/mapper/oradatalv-oradata 30G 18G 9.8G 65% /oradata
tmpfs 781M 16K 781M 1% /run/user/42
tmpfs 781M 0 781M 0% /run/user/1001
tmpfs 781M 0 781M 0% /run/user/0

刪除後有60k空間剩餘,開始沒發現aud檔案路徑有問題, 不是正常的aud路徑。

重新查詢清理審計日誌釋放空間

/home/oracle/app/oracle/admin/orcl \>find ./ -name \*aud

查詢出結果後清除前30天的

/home/oracle/app/oracle/admin/orcl \>find ./ -name \*aud -mtime +30 \|xargs rm
-f

關閉資料庫

/home/oracle/audit \>sqlplus / as sysdba
SQL\*Plus: Release 12.1.0.2.0 Production on Wed May 20 14:14:30 2020
Copyright (c) 1982,Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning,OLAP,Advanced Analytics and Real Application Testing
options
SQL\> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

複製dbf檔案

/home/oracle/oradata/ora12c \>cp upbs_data.dbf
/oradata/orcl/appdata/upbs_data.dbf

登入資料庫修改dbf檔案路徑

home/oracle/app/oracle/admin/orcl \>sqlplus / as sysdba
SQL\*Plus: Release 12.1.0.2.0 Production on Wed May 20 14:33:30 2020
Copyright (c) 1982,Oracle. All rights reserved.
Connected to an idle instance.
SQL\> startup mount;
ORACLE instance started.
Total System Global Area 2466250752 bytes
Fixed Size 2927384 bytes
Variable Size 671089896 bytes
Database Buffers 1778384896 bytes
Redo Buffers 13848576 bytes
Database mounted.
SQL\> alter database rename file '/home/oracle/oradata/ora12c/upbs_data.dbf' to
'/oradata/orcl/appdata/upbs_data.dbf';
Database altered.

重啟資料庫服務

SQL\> shutdown immediate
ORA-01109: database not open
Database dismounted.
ORACLE instance shut down.
SQL\> startup
ORACLE instance started.
Total System Global Area 2466250752 bytes
Fixed Size 2927384 bytes
Variable Size 671089896 bytes
Database Buffers 1778384896 bytes
Redo Buffers 13848576 bytes
Database mounted.
Database opened.
SQL\>

plsql重新連線資料庫成功,刪除原來的dbf檔案釋放空間

總結

到此這篇關於Oracle dbf檔案移動的文章就介紹到這了,更多相關Oracle dbf檔案移動內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!