激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Oracle - Oracle遷移數據文件再也不用求人了

Oracle遷移數據文件再也不用求人了

2023-11-28 06:00未知服務器之家 Oracle

N 多年前安裝的 oracle 數據庫,巡檢的時候發現磁盤滿了,檢查發現是數據文件占用了很大的空間,當前存放數據文件的磁盤不能再進行擴容,于是準備把業務數據文件遷移到其他磁盤分區。 遷移數據文件主要有兩種方法: alter

N 多年前安裝的 oracle 數據庫,巡檢的時候發現磁盤滿了,檢查發現是數據文件占用了很大的空間,當前存放數據文件的磁盤不能再進行擴容,于是準備把業務數據文件遷移到其他磁盤分區。

Oracle遷移數據文件再也不用求人了

遷移數據文件主要有兩種方法:

  • alter database  rename file ··· to ···
  • alter tablespace ··· rename datafile ··· to ···
  • 這兩種方法都可以遷移數據文件,但是操作上有些不同,主要體現在以下方面:


    方法1:數據庫必須處于mount狀態,該方法適用于所有的數據文件,包括 system 數據文件;
  • 方法2:與方法1不同,此時數據庫必須處于open狀態,且該方法只適用于非 system 表空間的數據文件。

接下來以遷移TS01表空間的數據為例,分別使用兩種不同的方法進行操作:

一、使用alter database  rename file ··· to ···

首先,查看當前數據文件路徑:

SQL> select FILE_NAME,TABLESPACE_NAME from dba_data_files;

FILE_NAME        TABLESPACE
-------------------------------------------------- ----------
/u01/app/oracle/oradata/orcl/system01.dbf          SYSTEM
/u01/app/oracle/oradata/orcl/sysaux01.dbf          SYSAUX
/u01/app/oracle/oradata/orcl/undotbs01.dbf         UNDOTBS1
/u01/app/oracle/oradata/orcl/users01.dbf           USERS
/u01/app/oracle/oradata/orcl/ts01.dbf              TS01

SQL> 

在新的磁盤分區上創建新的數據文件存放路徑,并授予相應的用戶權限:

[root@orcldb ~]# /u02/app/oracle/oradata/orcl
[root@orcldb ~]# chown -R oracle:oinstall /u02

關閉數據庫,并拷貝文件:

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> 
SQL> host cp /u01/app/oracle/oradata/orcl/ts01.dbf /u02/app/oracle/oradata/orcl/

將數據庫啟動到mount狀態,并對數據文件進行重命名操作:

SQL> startup mount
ORACLE instance started.

Total System Global Area 2147483648 bytes
Fixed Size      8622776 bytes
Variable Size   1325403464 bytes
Database Buffers   805306368 bytes
Redo Buffers      8151040 bytes
Database mounted.
SQL> 
SQL> alter database rename file '/u01/app/oracle/oradata/orcl/ts01.dbf' to '/u02/app/oracle/oradata/orcl/ts01.dbf';

Database altered.

打開數據庫,并查看數據文件的狀態,結果顯示,表空間TS01的數據文件已經在新的路徑下了:

SQL> alter database open;

Database altered.

SQL> 
SQL> select file_name,tablespace_name,status from dba_data_files;

FILE_NAME        TABLESPACE STATUS
--------------------------------------------  ---------- ---------
/u01/app/oracle/oradata/orcl/system01.dbf     SYSTEM     AVAILABLE
/u01/app/oracle/oradata/orcl/sysaux01.dbf     SYSAUX     AVAILABLE
/u01/app/oracle/oradata/orcl/undotbs01.dbf    UNDOTBS1   AVAILABLE
/u01/app/oracle/oradata/orcl/users01.dbf      USERS      AVAILABLE
/u02/app/oracle/oradata/orcl/ts01.dbf         TS01       AVAILABLE

查詢表空間中表的數據,用于驗證數據的完整性:

SQL> select owner,table_name,tablespace_name from dba_tables where tablespace_name='TS01';

OWNER  TABLE_NAME TABLESPACE
------ ---------- ----------
HARRY  EMP        TS01

SQL> 
SQL> SELECT * FROM HARRY.EMP;

 ID        USERNAME                  AGE
---------- ------------------ ----------
         1 張三                       22

結果顯示數據完好沒有丟失,接下來可以在系統中刪掉原來的文件從而釋放存儲空間:

[root@orcldb ~]# rm -rf /u01/app/oracle/oradata/orcl/ts01.dbf

二、使用alter tablespace ··· rename datafile ··· to ···

還是以TS01表空的數據為例,再把數據遷移回原來的路徑。

首先在EMP表中插入一條新的數據:

SQL> insert into EMP values (2,'李四',20);

1 row created.

SQL> select * from EMP;

        ID USERNAME                                AGE
---------- -------------------------------- ----------
         1 張三                                     22
         2 李四                                     20

將TS01表空間offline:

SQL> alter tablespace TS01 offline normal;
Tablespace altered.
SQL> 

將表空間的數據文件拷貝回原來的位置(這里省略了目標位置的用戶權限設置):

SQL> host cp /u02/app/oracle/oradata/orcl/ts01.dbf /u01/app/oracle/oradata/orcl/;

使用alter tablespace命令rename datafile到目標位置:

SQL> alter tablespace TS01 rename datafile '/u02/app/oracle/oradata/orcl/ts01.dbf' to '/u01/app/oracle/oradata/orcl/ts01.dbf';

Tablespace altered.

將目標表空間進行online操作,并檢查數據文件路徑:

SQL>  alter tablespace TS01 online;

Tablespace altered.

SQL> select FILE_NAME,TABLESPACE_NAME from dba_data_files;

FILE_NAME          TABLESPACE
--------------------------------------------- ----------
/u01/app/oracle/oradata/orcl/system01.dbf     SYSTEM
/u01/app/oracle/oradata/orcl/sysaux01.dbf     SYSAUX
/u01/app/oracle/oradata/orcl/undotbs01.dbf    UNDOTBS1
/u01/app/oracle/oradata/orcl/users01.dbf      USERS
/u01/app/oracle/oradata/orcl/ts01.dbf         TS01

驗證表空間的數據,查詢表數據沒有異常:

SQL> select * from EMP;

        ID USERNAME                                AGE
---------- -------------------------------- ----------
         1 張三                                     22
         2 李四                                     20

最后在系統中刪掉原來的文件從而釋放存儲空間:

[root@orcldb ~]# rm -rf /u02/app/oracle/oradata/orcl/ts01.dbf

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品99久久久久久久 | 99久久99视频| 在线视频观看一区二区 | 斗罗破苍穹在线观看免费完整观看 | 国产自91精品一区二区 | 一级黄色欧美 | 激情网站免费观看 | 亚洲一区二区三区在线看 | 97超碰资源站 | 国产精品自拍av | 成人18网站 | 国产午夜三级一区二区三桃花影视 | 91精品国 | 欧美日韩色片 | 深夜免费福利视频 | 国产精品免费在线 | 国产一级伦理片 | 天天黄色片 | 中文字幕在线播放一区 | 免费看一级片 | 久青草免费视频 | 欧美成人精品不卡视频在线观看 | 国产视频软件在线 | 国产成人高潮免费观看精品 | 一区二区三区欧美在线 | 亚洲精品日韩色噜噜久久五月 | 欧美韩国日本在线 | 欧美日韩在线影院 | 欧美特一级片 | 免费毛片免费看 | 成人免费看片a | 免费看成年人网站 | vidz 98hd| 欧美伦交 | 特一级毛片 | 涩涩伊人| 色综合欧美| 久久99久久99免费视频 | 成人综合区一区 | 一区国产在线观看 | 亚洲精品无码不卡在线播放he |