1. 程式人生 > >oracle 各種檔案的重新命名及移動

oracle 各種檔案的重新命名及移動

最近在做一個銀行的資料庫遷移及升級的case,由於該系統為統計跑批,原系統配置已經無法滿足跑批效能要求,故要購買新的主機採用ssd及hd兩種混合型的儲存,中間過程型的表對應的表空間放入ssd對應目錄,歷史結果表放入hd對應目錄。所以需要在遷移過程中對資料檔案進行移動和重新命名。以下是從網上搜索到的一篇文章,比較細緻的做了測試!記錄以下

同時此次,從oracle 11.2.0.4 遷移到12.2.0.01上,重點採用了oracle  12c的In_memory特性。對跑批效能提升有很大的幫助!特此記錄一下

下面介紹移動Oracle資料檔案的兩種方法。

1.alter database方法

該方法,可以移動任何表空間的資料檔案。

***關閉資料庫***
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

***移動資料檔案,用oracle使用者操作***
[[email protected] ~]$ mv /u01/app/oracle/oradata/test/system01.dbf /oracledb/test/system01.dbf
[[email protected] ~]$ mv /u01/app/oracle/oradata/test/sysaux01.dbf /oracledb/test/sysaux01.dbf
[
[email protected]
~]$ mv /u01/app/oracle/oradata/test/undotbs01.dbf /oracledb/test/undotbs01.dbf [[email protected] ~]$ mv /u01/app/oracle/oradata/test/users01.dbf /oracledb/test/users01.dbf [[email protected] ~]$ mv /u01/app/oracle/oradata/test/temp01.dbf /oracledb/test/temp01.dbf [[email protected] ~]$ mv /u01/app/oracle/oradata/test/redo03.log /oracledb/test/redo03.log [
[email protected]
~]$ mv /u01/app/oracle/oradata/test/redo02.log /oracledb/test/redo02.log [[email protected] ~]$ mv /u01/app/oracle/oradata/test/redo01.log /oracledb/test/redo01.log ***啟動到mount狀態*** SQL> startup mount ORACLE instance started. Total System Global Area 1.0122E+10 bytes Fixed Size 2237088 bytes Variable Size 1610616160 bytes Database Buffers 8489271296 bytes Redo Buffers 19468288 bytes Database mounted. SQL> alter database rename file '/u01/app/oracle/oradata/test/system01.dbf' to '/oracledb/test/system01.dbf'; Database altered. SQL> alter database rename file '/u01/app/oracle/oradata/test/sysaux01.dbf' to '/oracledb/test/sysaux01.dbf'; Database altered. SQL> alter database rename file '/u01/app/oracle/oradata/test/undotbs01.dbf' to '/oracledb/test/undotbs01.dbf'; Database altered. SQL> alter database rename file '/u01/app/oracle/oradata/test/users01.dbf' to '/oracledb/test/users01.dbf'; Database altered. SQL> alter database rename file '/u01/app/oracle/oradata/test/temp01.dbf' to '/oracledb/test/temp01.dbf'; Database altered. SQL> alter database rename file '/u01/app/oracle/oradata/test/redo01.log' to '/oracledb/test/redo01.log'; Database altered. SQL> alter database rename file '/u01/app/oracle/oradata/test/redo02.log' to '/oracledb/test/redo02.log'; Database altered. SQL> alter database rename file '/u01/app/oracle/oradata/test/redo03.log' to '/oracledb/test/redo03.log'; Database altered. SQL> alter database open; Database altered. ***重啟驗證*** SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORACLE instance started. Total System Global Area 1.0122E+10 bytes Fixed Size 2237088 bytes Variable Size 1610616160 bytes Database Buffers 8489271296 bytes Redo Buffers 19468288 bytes Database mounted. Database opened.

2.alter tablespace方法

該方法,不能移動system表空間,回滾段表空間和臨時段表空間的資料檔案。

***offline system表空間時報錯***
SQL> alter tablespace system offline;
alter tablespace system offline
*
ERROR at line 1:
ORA-01541: system tablespace cannot be brought offline; shut down if necessary
報錯:說明system表空間不能offline
***由此說明一下system表空間的特性--不能離線offline
                              --不能置為只讀read only
                              --不能重新命名
                              --不能刪除

SQL> alter tablespace sysaux offline;

Tablespace altered.

[[email protected] ~]$ cp /oracledb/test/sysaux01.dbf /u01/app/oracle/oradata/test/sysaux01.dbf

SQL> alter tablespace sysaux rename datafile '/oracledb/test/sysaux01.dbf' to '/u01/app/oracle/oradata/test/sysaux01.dbf';

Tablespace altered.

SQL>  alter tablespace sysaux online;

Tablespace altered.

***offline UNDO表空間時報錯***
SQL> alter tablespace UNDOTBS1 offline;
alter tablespace UNDOTBS1 offline
*
ERROR at line 1:
ORA-30042: Cannot offline the undo tablespace

***offline TEMP表空間時報錯***
SQL> alter tablespace TEMP offline;
alter tablespace TEMP offline
*
ERROR at line 1:
ORA-03217: invalid option for alter of TEMPORARY TABLESPACE

#把需要移動的資料檔案對應的表空間offline
SQL> alter tablespace USERS offline;

Tablespace altered.

#移動資料檔案至目標位置
[[email protected] ~]$ cp /oracledb/test/users01.dbf /u01/app/oracle/oradata/test/users01.dbf

#修改表空間中資料檔案的位置
SQL> alter tablespace USERS rename datafile '/oracledb/test/users01.dbf' to '/u01/app/oracle/oradata/test/users01.dbf';

Tablespace altered.

#把表空間online
SQL> alter tablespace users online;

Tablespace altered.

3.總結

  • alter database方法可以移動任何表空間的資料檔案,但其要求資料庫必須處於mount狀態,故此種方法更適合做整體資料庫的遷移。
  • alter tablespace方法需要資料庫處於open狀態,表空間在offline的狀態下才可更改。但其不能移動system表空間,undo表空間和temp表空間的資料檔案,故此種方法更適合於做使用者資料檔案的遷移。
原作地址:http://blog.csdn.net/snowying97/article/details/52576028

相關推薦

oracle 各種檔案重新命名移動

最近在做一個銀行的資料庫遷移及升級的case,由於該系統為統計跑批,原系統配置已經無法滿足跑批效能要求,故要購買新的主機採用ssd及hd兩種混合型的儲存,中間過程型的表對應的表空間放入ssd對應目錄,歷史結果表放入hd對應目錄。所以需要在遷移過程中對資料檔案進行移動和重

十三、根據HDFS提供的API,實現檔案上傳、下載、刪除、重新命名移動

一、 根據HDFS提供的API,實現以下功能: 針對檔案: 上傳、下載、刪除、重新命名、移動 package HdfsApi; import java.io.File; import java.io.FileInputStream; import java.io.IOExc

linux 下檔案重新命名/移動/複製命令 linux新建目錄命令

例:要把名為:abc   重新命名為:123   可以這樣操作: 重新命名:MV命令 1、進入你的檔案目錄,執行命令:   /cd  dir  (dir指的是你檔案所在目錄) 2、然後命令:ls (例出你的所有資料夾),我們可以看到有  abc 這個檔案了 3、最後命令:mv abc 123 但是要注意的是

Python檔案管理對相應目錄下的進刪除、重新命名移動檔案等相應操作

#coding=utf8 ''' 該庫用來管理檔案。 初始化函式呼叫讀取配置檔案模組中的Config類 用來獲取下載路徑、儲存路徑。 模組包含四個方法: clearResultCSV(): 用來刪除下載路徑下所有的result開頭的csv檔案 moveCSVToSave()

C# 多檔案重新命名思路實現 上:步驟

        之前C#做的一個程式設計練習,涉及到多檔案重新命名,現把當時實現思路及大致實現記錄下方便日後查閱。效率可能不最優,僅供學習探討。         多檔案重新命名無非迴圈遍歷中對單檔案重新命名,倘若這些多檔案的命名規則都一樣(例如只是末尾Number遞增),

java程式碼實現根據JSON檔案進行批量檔案重新命名或者改目錄結構

使用JAVA程式碼根據JSON檔案進行批量修改檔名以及路徑 某些網站視訊加密分割,首先去下載格式轉換工具,再用chrome F12開啟控制檯,找到json檔案進行檔案還原 json資料: {“message”:“hello”,“result”:[],“status”:200

利用Java對本地磁碟的檔案重新命名

一、需求    不管是C/C++還是JAVA,都可能生成一些永續性資料,我們可以將資料儲存在檔案或資料庫中,此專案主要訓練學習Java對本地磁碟的檔案重新命名,例如C:\nowcoder.txt重新命名C:\nowcoder2.txt    二、程式碼實現 1 package

OpenCV—python影象標註(批量檔案重新命名

""" 批量修改檔名:我這裡用於對圖片資料集標註 注意:輸入目錄與輸出目錄相同才行 """ import os input_dir = "../SandBox/label_pictures" ou

java檔案重新命名有趣實驗

@Test public void filetest() throws Exception { //判斷檔案會寫入到哪個檔案內 File file = new File("test.txt"); file.renameTo(new File("test1.txt"));

Git學習筆記2:使用前的配置&建立第一個倉庫並配置local使用者資訊&給檔案重新命名的簡便方法

  git使用前的配置: 1.配置User資訊 配置user.name 和 user.email git config --global user.name 'yourName' git config --global user.email 'yourEmail' 這裡的e

Centos 7 中網絡卡重新命名網亂序解決方案---詳!

1. udev 網絡卡規則載入順序 1.1 udev 配置檔案 路徑 作用 /lib/udev/rules.d 包含 udev 預設配置檔案(不要修改) /etc/udev/rules

Python 批量給檔案重新命名,新增檔名字尾

批量給檔案重新命名 我想從coachoutlet網站上抓取所有coach包包的圖片,但儲存網頁後發現儲存的圖片沒有後綴名,如果用系統自帶的圖片檢視器檢視圖片會非常不方便。圖片非常對的話,一個個修改會很麻煩。 Python程式碼實現將檔名新增字尾 參考文章 Pyt

檔案上傳---檔案解壓---讀取檔案---檔案重新命名壓縮

JAVA開發web專案 程式碼的順序是按照程式碼執行的順序寫的,以下寫的是沒有傳遞id情況下,即是新增檔案情況 jsp頁面用uploadify外掛實現檔案上傳 //觸發上傳外掛的html頁面程式碼 <span class="chooseNodeSmall" oncl

BAT批處理 檔案重新命名

1.bat重新命名檔案 ren 111.txt 222.doc 解釋:將111.txt 命名為222.doc 2.迴圈重新命名一個資料夾下的所有結尾為xls的檔案,前加上A for /f %%i in ('dir /b *.txt') do (ren %%i A

檔案重新命名的快捷鍵是什麼F2

做行人檢測資料處理的時候總是會重複一些操作,比如圖片重新命名,規則的時候用程式碼實現,不規則時很麻煩,搜了一下,F2,順便把其他快捷鍵放這裡以備不時之需。 F1幫助 F2改名 F3搜尋 F4地址 F5重新整理 F6切換 F10選單 CTRL+A全選 CTRL

Java版CKFinder上傳檔案重新命名

CKFinder上傳的檔案如果是中文名,因為URL編碼的一些問題,有可能會訪問不了。 上網搜了一些解決方法,常用的就是將檔案重新命名,但網上的方法多為asp和php版的。 Java版的修改步驟如下: 1.下載Java版CKFinder的原始碼 我用的是CKFinder-2.

CMD批量檔案重新命名命令

在windows中,批量重新命名某一資料夾下的檔案。 例如資料夾下檔案: abc-zhangsan.doc def-zhangsan.doc ghi-zhangsan.doc jkl-zhangsan.doc 要將檔名中的“-zhangsan”去掉,改名為: abc.doc

File java的檔案重新命名

當新檔名已經存在時可以選擇刪除它 /** *//**檔案重新命名 * @param path 檔案目錄 * @param oldname 原來的檔名 * @param

Java 檔案重新命名 和拷貝檔案

import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; public class

檔案重新命名+python

該python程式碼可以批量更改影象檔名,更改檔名從1-totalnum,需注意檔名不能重複,否則程式中途停止不能更改全部檔案。 import os class BatchRename(): def init(self): sel