Oracle修改數據文件所在目錄的掛載點小結
2024-01-25 17:09 瀟湘隱者 閱讀(506) 評論(0) 收藏 舉報如何修改Oracle數據庫文件所在目錄的掛載點名稱。這里先簡單介紹一下背景情況,這套數據庫是剛搭建不久的一套Oracle 19c單機的UAT,數據庫安裝在/opt目錄下,$ORACLE_HOME目錄為/opt/oracle19c/product/19.3.0/db_1。由于前期掛盤,設置掛載點命名沒有嚴格按規范操作,將數據文件和歸檔日志放置在下面目錄下:
/gspdbuat --存放數據文件等...
/gspdbloguat --存放歸檔日志文件...
現在系統管理員想統一規范掛載點的命名,將這個掛載點重新命名。由于修改這些掛載點目錄對數據庫的影響非常大。當前環境涉及到數據文件,臨時文件(temp文件),聯機重做日志文件,歸檔日志文件等文件修改路徑。當然,這里不需要拷貝移動數據文件。
具體的掛載點重命名如下所示:
/gspdbuat 修改為 /gspuatdb
/gspdbloguat 修改為 /gspuatlog
下面簡單介紹修改數據庫文件所在目錄的掛載點名稱的簡單步驟。
1: 創建數據庫的pfile
show parameter spfile;
create pfile from spfile;
或
create pfile='$ORACLE_HOME/dbs/initgsp.ora' from spfile;
2:環境檢查,信息收集
檢查控制文件路徑/位置
select name from v$controlfile;
或
show parameter control_files;
檢查數據庫文件路徑/位置
set linesize 690;
set pagesize 100;
select name from v$datafile;
檢查臨時文件路徑/位置
set linesize 690;
set pagesize 100;
select name from v$tempfile;
檢查聯機重做日志路徑/位置
set linesize 690;
set pagesize 100;
select member from v$logfile;
3:關閉數據庫實例和監聽
shutdown immediate;
lsnrctl stop gsp;
4:修改掛載點名稱
/gspdbuat 修改為 /gspuatdb
/gspdbloguat 修改為 /gspuatlog
這里的工作是系統管理員處理,這里不做詳細展開。
5:修改pfile中的參數
如下所示,將control_files,log_archive_dest_1等參數的值修改如下:
*.control_files='/gspuatdb/data/control01.ctl','/gspuatdb/data/control02.ctl'
*.log_archive_dest_1='LOCATION=/gspuatlog'
具體還以實際情況為準,涉及到相關目錄的參數需要根據實際情況調整。例如,控制文件所在的路徑沒有變化的,則無需修改。
4:用pfile啟動Oracle實例到mount狀態
startup mount pfile='$ORACLE_HOME/dbs/initgsp.ora';
5:控制文件修改
數據文件重命名
set linesize 680;
select 'alter database rename file ''' || name || ''' to ''' || replace(name,'gspdbuat', 'gspuatdb') ||''';' from v$datafile;
執行上面腳本生成的腳本,重定向數據庫的所有數據文件.
重做日志文件重命名
select 'alter database rename file ''' || member || ''' to ''' || replace(member,'gspdbuat', 'gspuatdb') ||''';' from v$logfile;
執行上面腳本生成的腳本,重定向數據庫的redo文件.
臨時文件(temp file)重命名
select 'alter database rename file ''' || name || ''' to ''' || replace(name,'gspdbuat', 'gspuatdb') ||''';' from v$tempfile;
執行上面腳本生成的腳本,重定向數據庫的臨時文件.
6:啟動數據庫到OPEN狀態
alter databae open;
7:檢查告警日志,檢查數據文件,聯機重做日志等文件路徑
檢查數據庫文件路徑/位置
set linesize 690;
set pagesize 100;
select name from v$datafile;
檢查臨時文件路徑/位置
set linesize 690;
set pagesize 100;
select name from v$tempfile;
檢查聯機重做日志路徑/位置
set linesize 690;
set pagesize 100;
select member from v$logfile;
8:重新生成spfile,然后重新啟動數據庫實例。
--執行前先備份舊的spfile。
create spfile form pfile='$ORACLE_HOME/dbs/initgsp.ora'
shutdown immediate;
startup;
掃描上面二維碼關注我
如果你真心覺得文章寫得不錯,而且對你有所幫助,那就不妨幫忙“推薦"一下,您的“推薦”和”打賞“將是我最大的寫作動力!
本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接.
浙公網安備 33010602011771號