欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Oracle數(shù)據(jù)庫如何更改數(shù)據(jù)文件位置

 更新時間:2023年08月02日 10:58:42   作者:goyeer  
這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫如何更改數(shù)據(jù)文件位置的相關(guān)資料,Oracle數(shù)據(jù)庫的數(shù)據(jù)文件的位置和信息都被記錄在控制文件中,需要的朋友可以參考下

一、概述

突然收到zabbix報警提示OA數(shù)據(jù)庫服務(wù)器磁盤不足,經(jīng)常查發(fā)現(xiàn)根目錄磁盤空間不足,由于無法添加磁盤來擴容,需要將數(shù)據(jù)庫目錄從/oradata更改到/home/oracle/oradata。

由于數(shù)據(jù)庫文件和表空間具有不同的性質(zhì),將數(shù)據(jù)文件位置更改分為四個步驟:

  • 控制文件位置更改
  • 數(shù)據(jù)文件位置更改*(不包括臨時數(shù)據(jù)文件)*
  • 臨時數(shù)據(jù)文件位置更改
  • 日志文件位置更改

二、控制文件位置更改

停止數(shù)據(jù)庫監(jiān)聽,防止有應(yīng)用連接對數(shù)據(jù)庫進行修改。

lsnrctl stop

數(shù)據(jù)庫open的狀態(tài)下

alter system set 
control_files='/home/oracle/oradata/oa/control01.ctl','/home/oracle/oradata/oa/control02.ctl','/home/oracle/oradata/oa/control03.ctl' scope=spfile;

然后將數(shù)據(jù)庫shutdown

shutdown immediate;

將控制文件移動到新目錄/home/oracle/oradata/oa下

mv /oradata/oa/control* /home/oracle/oradata/oa/

將數(shù)據(jù)庫啟動到mount狀態(tài),至此,控制文件位置更改結(jié)束。

三、數(shù)據(jù)文件位置更改(不包括臨時數(shù)據(jù)文件)

數(shù)據(jù)庫需要在open狀態(tài)下

將表空間全部offline,使用一下命令:

SELECT 'alter tablespace ' || DTS.Tablespace_Name || ' offline;'
  FROM Sys.Dba_Tablespaces DTS
 WHERE DTS.Contents <> 'TEMPORARY'
   AND DTS.Tablespace_Name <> 'UNDOTBS1'
   AND DTS.Tablespace_Name <> 'SYSTEM';

生成的SQL語句如下,使用sysdba賬戶執(zhí)行

alter tablespace SYSAUX offline;
alter tablespace USERS offline;
...

將這些表空間的數(shù)據(jù)文件復(fù)制到新目錄/home/oracle/oradata目錄下,數(shù)據(jù)文件rename的時候,需要兩邊都有數(shù)據(jù)文件。

使用以下語句生成rename數(shù)據(jù)文件的SQL語句

SELECT 'alter tablespace ' || Ddf.Tablespace_Name || ' rename datafile ''' ||
       Ddf.File_Name || ''' to ''' || '/home/oracle' || Ddf.File_Name ||
       ''';'
  FROM Sys.Dba_Data_Files Ddf
 WHERE Ddf.Tablespace_Name <> 'SYSTEM'
   AND Ddf.Tablespace_Name <> 'UNDOTBS1';

生成的SQL語句如下,使用sysdba賬戶執(zhí)行

alter tablespace USERS rename datafile '/oradata/ipcc/users01.dbf' to '/home/oracle/oradata/ipcc/users01.dbf';
alter tablespace SYSAUX rename datafile '/oradata/ipcc/sysaux01.dbf' to '/home/oracle/oradata/ipcc/sysaux01.dbf';
......

執(zhí)行結(jié)束之后,將表空間全部**online,**使用以下語句生成表空間online的SQL語句

SELECT 'alter tablespace ' || Ds.Tablespace_Name || ' online;'
  FROM Sys.Dba_Tablespaces Ds
 WHERE Ds.Contents <> 'TEMPORARY'
   AND Ds.Tablespace_Name <> 'UNDOTBS1'
   AND Ds.Tablespace_Name <> 'SYSTEM';

生成的SQL語句如下,使用sysdba賬戶執(zhí)行

alter tablespace SYSAUX online;
alter tablespace USERS online;
......

四、臨時數(shù)據(jù)文件位置更改

臨時表空間比較特殊,不能將臨時表空間offline,需要將臨時表空間的臨時數(shù)據(jù)文件offline。

數(shù)據(jù)庫在open狀態(tài)下,生成臨時數(shù)據(jù)文件offline的SQL語句如下:

SELECT 'alter database tempfile ''' || File_Name || ''' offline;'
   FROM Dba_Temp_Files
  ORDER BY File_Id;  

生成的SQL語句如下,使用sysdba賬戶執(zhí)行

alter database tempfile '/oradata/ipcc/temp01.dbf' offline;
alter database tempfile '/oradata/ricd_temp10' offline;
......

將臨時數(shù)據(jù)文件復(fù)制到/home/oracle/oradata目錄下

生成rename臨時數(shù)據(jù)文件的SQL語句如下:

SELECT 'alter database rename file ''' || File_Name || ''' to ''' ||
       '/home/oracle' || File_Name || ''';'
  FROM Dba_Temp_Files
 ORDER BY File_Id;

生成的SQL語句如下,使用sysdba賬戶執(zhí)行

alter database rename file '/oradata/oa/temp01.dbf' to '/home/oracle/oradata/oa/temp01.dbf';
alter database rename file '/oradata/oa_temp10' to '/home/oracle/oradata/oa_temp10';
......

執(zhí)行結(jié)束之后,將臨時數(shù)據(jù)文件online,生成臨時數(shù)據(jù)文件online的SQL語句如下:

SELECT 'alter database tempfile ''' || File_Name ||
       ''' online;'
  FROM Dba_Temp_Files
 ORDER BY File_Id;

生成的SQL語句如下,使用sysdba賬戶執(zhí)行

alter database tempfile '/home/oracle/oradata/oa/temp01.dbf' online;
alter database tempfile '/home/oracle/oradata/oa_temp10' online;
......

至此,臨時數(shù)據(jù)文件位置更改結(jié)束

五、臨時數(shù)據(jù)文件位置更改

數(shù)據(jù)庫可以在mount狀態(tài)或open狀態(tài)下。

查看日志文件狀態(tài)

select group#,thread#,sequence#,members,archived,status from v$log;
select member from v$logfile;

當(dāng)日志文件狀態(tài)不為current的時候,將日志文件復(fù)制到新目錄/home/oracle/oradata下,然后可以切換日志文件位置。也可以使用alter system switch logfile,切換日志文件狀態(tài)

SQL> alter database rename file '/oradata/oa/redo01.log' to '/home/oracle/oradata/oa/redo01.log';
SQL> alter database rename file '/oradata/oa/redo02.log' to '/home/oracle/oradata/oa/redo02.log';

至此,日志文件位置更改結(jié)束。當(dāng)所有文件位置均更改結(jié)束時,測試數(shù)據(jù)庫的可用性;如果無問題,可以刪除舊數(shù)據(jù)目錄下的文件。

總結(jié)

到此這篇關(guān)于Oracle數(shù)據(jù)庫如何更改數(shù)據(jù)文件位置的文章就介紹到這了,更多相關(guān)Oracle更改數(shù)據(jù)文件位置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論