1. 程式人生 > >【ASM】從asm中複製檔案到本地,或者從本地到asm中方法

【ASM】從asm中複製檔案到本地,或者從本地到asm中方法

工作中,有時需要把檔案從ASM中複製到檔案系統中或者反過來,做一些維護操作,本文介紹了4種複製檔案的的方法:

  • ASMCMD中的cp命令(11g)
  • dbms_file_transfer包
  • rman的convert或backup as copy
  • FTP

下面分別介紹這4種方法

1、ASMCMD中的cp命令(11g)

cp命令是11g新增的命令,使用它可以輕鬆的把檔案從ASM中複製到檔案系統中或者反過來。還可以把ASM中的檔案複製到網路上的其他伺服器的檔案系統中。

#從ASM複製到檔案系統 [[email protected] ~]$ asmcmd -p   --顯示路徑 ASMCMD [+] > cd data ASMCMD [+data] > cd orcl ASMCMD [+data/orcl] > cd datafile ASMCMD [+data/orcl/datafile] > ls SYSAUX.257.925306091 SYSTEM.256.925306089 UNDOTBS1.258.925306091 UNDOTBS2.264.925306377 USERS.259.925306091 ASMCMD [+data/orcl/datafile] > ls -l Type      Redund  Striped  Time             Sys  Name DATAFILE  UNPROT  COARSE   MAY 21 11:00:00  Y    SYSAUX.257.925306091 DATAFILE  UNPROT  COARSE   MAY 21 11:00:00  Y    SYSTEM.256.925306089 DATAFILE  UNPROT  COARSE   MAY 21 11:00:00  Y    UNDOTBS1.258.925306091 DATAFILE  UNPROT  COARSE   MAY 21 11:00:00  Y    UNDOTBS2.264.925306377 DATAFILE  UNPROT  COARSE   MAY 21 11:00:00  Y    USERS.259.925306091 ASMCMD [+data/orcl/datafile] > 
cp USERS.259.925306091 /home/grid/users.dbf copying +data/orcl/datafile/USERS.259.925306091 -> /home/grid/users.dbf ASMCMD [+data/orcl/datafile] > #檢視複製結果 [[email protected] ~]$ ll /home/grid/users.dbf  -rw-r-----. 1 grid oinstall 5251072 May 21 15:20 /home/grid/users.dbf #從檔案系統複製到ASM ASMCMD [+data/orcl/datafile] > 
cp /home/grid/users.dbf +data/orcl copying /home/grid/users.dbf -> +data/orcl/users.dbf #檢視複製結果 ASMCMD [+data/orcl/datafile] > cd +data/orcl ASMCMD [+data/orcl] > ls -l Type           Redund  Striped  Time             Sys  Name                                                  Y    ARCHIVELOG/                                                  Y    CONTROLFILE/                                                  Y    DATAFILE/                                                  Y    ONLINELOG/                                                  Y    PARAMETERFILE/                                                  Y    TEMPFILE/                                                  N    spfileorcl.ora => +DATA/ORCL/PARAMETERFILE/spfile.268.925423909                                                  N    users.dbf => +DATA/ASM/DATAFILE/users.dbf.271.944580085

cp的詳細使用情況可以使用help cp命令獲得。

如果ASM的版本是11g以前的版本可以使用如下三種方法複製檔案。

2、dbms_file_transfer包

這個包是從Oracle 9不開始提供的,利用這個包可以在兩個位置之間傳輸檔案,這兩個位置可以是同一臺計算機或者網路上的兩臺計算機。Oracle10g擴充套件了這個包的功能,可以完成從一個ASM Diskgroup拷貝到另一個ASM Diskgroup、從ASM Diskgroup拷貝到普通檔案系統、從普通檔案系統拷貝到ASM Diskgroup、從檔案系統拷貝到檔案系統或者RAW Device。這個包提供了3個方法,可以完成不同的任務。

   方法                                                      功能說明
copy_file 完成檔案從本地一個目錄拷貝到本地的另一個目錄,這個方法不能完成遠端傳輸
get_file 這個方法完成把遠端的檔案拷貝到本地的目錄中,類似於下載
put_file 這個方法完成本地檔案傳送到遠端的目的,類似於上傳

使用方法:

#建立目錄 SQL> create directory asm_dir as '+data/ASM/DATAFILE/'; Directory created. SQL> create directory os_dir as '/home/oracle'; Directory created. #執行復制 SQL> exec dbms_file_transfer.copy_file('asm_dir','user2.dbf.272.944581345','os_dir','user.dbf');    --括號中的分別是('源目錄','檔名稱','複製到哪個目錄,就是目的目錄','複製後的名稱') PL/SQL procedure successfully completed. #驗證複製結果 [[email protected] ~]$ ls -l /home/oracle/user.dbf -rw-r-----. 1 oracle asmadmin 5251072 May 21 15:49 /home/oracle/user.dbf #進行反向複製 SQL> exec dbms_file_transfer.copy_file('os_dir','user.dbf','asm_dir','user2.dbf'); PL/SQL procedure successfully completed. #驗證 ASMCMD [+data/ASM/DATAFILE] > ls -l Type      Redund  Striped  Time             Sys  Name                                             N    user2.dbf => +DATA/ORCL/DATAFILE/COPY_FILE.273.944581883

3、rman的convert和backup as copy命令

3.1 convert命令

convert命令是用於對資料檔案進行位元組格式轉換的。Oracle可以在不同OS平臺間進行表空間傳(TTS),如果兩個平臺的位元組格式不一致,則需要引數據檔案進行格式轉換,這個轉換可以 在源資料庫進行,也可以在目的資料庫中執行。如果在源資料庫中執行,則需要使用convert tablespace命令,如果在目的資料庫中執行,則需要使用convert datafile命令。

雖然convert這個命令主要用於跨平臺傳輸表空間,它也可以完成ASM和本地檔案系統間拷貝檔案,並且也是很簡單的一種方法。

#使用convert datafile從ASM複製到檔案系統 RMAN> convert datafile '+data/orcl/datafile/USERS.259.925306091' format '/home/oracle/user3.dbf'; Starting conversion at target at 21-MAY-17 using channel ORA_DISK_1 channel ORA_DISK_1: starting datafile conversion input file name=+DATA/orcl/datafile/users.259.925306091 converted datafile=/home/oracle/user3.dbf channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01 Finished conversion at target at 21-MAY-17 #驗證 [[email protected] ~]$ ls -l /home/oracle/user3.dbf -rw-r-----. 1 oracle asmadmin 5251072 May 21 16:00 /home/oracle/user3.dbf #使用convert tablespace,使用時需要把users表空間置為只讀 RMAN> sql 'alter tablespace users read only'; using target database control file instead of recovery catalog sql statement: alter tablespace users read only RMAN> convert tablespace users format '/home/oracle/users%U.dbf'; Starting conversion at source at 21-MAY-17 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=81 instance=orcl1 device type=DISK channel ORA_DISK_1: starting datafile conversion input datafile file number=00004 name=+DATA/orcl/datafile/users.259.925306091 converted datafile=/home/oracle/usersdata_D-ORCL_I-1453086940_TS-USERS_FNO-4_0ns4qbtn.dbf channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01 Finished conversion at source at 21-MAY-17 #驗證 [[email protected] ~]$ ll /home/oracle/usersdata_D-ORCL_I-1453086940_TS-USERS_FNO-4_0ns4qbtn.dbf -rw-r-----. 1 oracle asmadmin 5251072 May 21 16:03 /home/oracle/usersdata_D-ORCL_I-1453086940_TS-USERS_FNO-4_0ns4qbtn.dbf #從檔案系統拷貝到ASM RMAN>convert datafile '/home/oracle/user3.dbf','/home/oracle/usersdata_D-ORCL_I-1453086940_TS-USERS_FNO-4_0ns4qbtn.dbf' format '+data'; Starting conversion at target at 21-MAY-17 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=64 instance=orcl1 device type=DISK channel ORA_DISK_1: starting datafile conversion input file name=/home/oracle/user3.dbf converted datafile=+DATA/orcl/datafile/users.274.944582713 channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01 channel ORA_DISK_1: starting datafile conversion input file name=/home/oracle/usersdata_D-ORCL_I-1453086940_TS-USERS_FNO-4_0ns4qbtn.dbf converted datafile=+DATA/orcl/datafile/users.275.944582713 channel ORA_DISK_1: datafile conversion complete, elapsed time: 00:00:01 Finished conversion at target at 21-MAY-17 #從日誌中看出轉換的檔名 #converted datafile=+DATA/orcl/datafile/users.274.944582713 #converted datafile=+DATA/orcl/datafile/users.274.944582713

3.2 backup as copy命令

backup as copy命令是以映象方式對檔案進行備份,自然可以把檔案從ASM複製到檔案系統中。這也是從檔案系統遷移到ASM時可以選擇的方法之一。

#執行復制 RMAN> backup as copy datafile '+DATA/orcl/datafile/users.259.925306091' format '/home/oracle/user4.dbf'; Starting backup at 21-MAY-17 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=69 instance=orcl1 device type=DISK channel ORA_DISK_1: starting datafile copy input datafile file number=00004 name=+DATA/orcl/datafile/users.259.925306091 output file name=/home/oracle/user4.dbf tag=TAG20170521T161225 RECID=17 STAMP=944583145 channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01 Finished backup at 21-MAY-17 #驗證 [[email protected] ~]$ ls -l /home/oracle/user4.dbf  -rw-r-----. 1 oracle asmadmin 5251072 May 21 16:12 /home/oracle/user4.dbf

4.FTP方法

FTP方法可以像庫中複製使用傳統檔案傳輸協議(FTP)對普通檔案執行常規操作那樣,對ASM檔案和目錄執行操作。通過這種方式訪問ASM檔案的典型應用是從一個數據庫向另一個數據庫中複製ASM檔案。需要XML DB支援,配置起來最麻煩,有興趣的同學可以參考《Oracle Database 11g RAC手冊原書第2版》或官方文件:http://docs.oracle.com/cd/E11882_01/server.112/e18951/asmfiles.htm#BABJCCEI

相關推薦

ASMasm複製檔案本地或者本地asm方法

工作中,有時需要把檔案從ASM中複製到檔案系統中或者反過來,做一些維護操作,本文介紹了4種複製檔案的的方法: ASMCMD中的cp命令(11g)dbms_file_transfer包rman的convert或backup as copyFTP下面分別介紹這4種方法 1、AS

cmd批處理:bat檔案執行cmd會顯示中文亂碼Jenkins日誌顯示中文亂碼——解決方案

目錄 一、批處理命令執行亂碼情況 二、解決方法 一、批處理命令執行亂碼情況 (1)Jenkins批處理命令亂碼: (2)cmd視窗顯示亂碼: 二、解決方法 (1)【最關鍵的步驟!】bat檔案編碼格式修改為ANSI格式: (

Androidapp打包成apk檔案以後如何檢視VersionCode、VersionName等版本資訊

Android App打包成Apk後,其實是一個壓縮檔案,可以將字尾名apk改為zip然後用winrar開啟也能看到裡面的檔案結構。還能看到AndroidManifest.xml。但是裡面的內容經過編碼顯示為亂碼,不方便檢視。 aapt工具:

機器人學機器人開源專案KDL原始碼學習:(7)examples的CMakeList.txt檔案解讀

通過學習KDL開源專案的程式碼可以學習CMake構建程式的知識,現簡單介紹一下orocos_kinematics_dynamics-master\orocos_kinematics_dynamics-master\orocos_kdl\examples\CMakeList.txt檔案的指令。

整理eclipse.ini/myeclipse.ini檔案引數配置zz

     今天下午查了一些關於優化MyEclipse速度的文章,受益匪淺。不過知其然也要知其所以然。比如說在提到通過修改myeclipse.ini檔案中引數-Xms,-Xmx,-PerSize的值時,這幾個引數具體是指什麼?在網上搜集了一些資料,現整理如下: 這涉及到JVM的

shellshell指令碼在大檔案日誌按照時間段快速搜尋日誌

問題描述: 在大流量線上服務中,日誌系統會產生數量龐大的日誌,動輒就是幾十G。在如此之大的檔案中快速搜尋日誌是運維人員經常遇見的問題。我們經常遇見的問題是查詢一段時間內的某些條日誌。比如,今天有一

Linux使用者不在sudoers檔案(不會vi的裡面也有使用到的步驟說明)

轉載自:http://blog.csdn.net/dreamback1987/article/details/8766302 *** is not in the sudoers file.  This incident will be reported.”  (使用者不

angular專案node_modules複製檔案到資料夾

對於自配置的webpack構建工具1. 下載 test.js npm 包(npm install test.js@latest )const CopyWebpackPlugin = require('copy-webpack-plugin');const HtmlWebpac

薦讀珍惜願意批評你的人那是你生命的貴人

over round ace style poi == 自己 .com 有一個 【薦讀】珍惜願意批評你的人,那是你生命中的貴人 2017-08-03人民日報1  有人喜歡在街頭算命,聽到一句自己會有“貴人相助”,心裏往往會高興好一陣子。  在許多人心底,大多都有一個貴人

模板LCA(最近公共祖先)的各種寫法(施工

def getchar() div 輸入輸出格式 memset while 樹結構 算法 its 以洛谷模板題(P3379)為例。 題目描述 如題,給定一棵有根多叉樹,請求出指定兩個點直接最近的公共祖先。 輸入輸出格式 輸入格式: 第一行包含三個正整數N、M、S,分別表

BIEE11_BIEE圖形報表在谷歌瀏覽器64.0.3282.140訪問圖例亂碼解決

中文 order image 下載谷歌 isp pap 但是 api png 如上圖,使用谷歌瀏覽器訪問BIEE圖形報表的時候,標題、圖例等涉及到中文的地方全部亂碼了!但是用IE打開是不會亂碼的,這是由於:谷歌需要設置編碼格式但是55版本以後,谷歌公司為了加快瀏覽器的速度,

Maven項目中將配置文件打包到jar包

int clas sta 參考 AR blog views red tom 參考博客:http://blog.csdn.net/ciedecem/article/details/10382275 問題: 項目中需要用到從文件中加載json數據,如圖放在co

javamybatis在使用mybatis進行批量插入批量更新等批量操作時切割In集合List進行分批批量操作的java的切割代碼

lse span ati 批量更新 次數 sublist 調用 size ==       紅字部分代表mybatis的批量操作調用方法:       int num = 0; int maxLength = 200; in

練習題第十四章--檔案(Think Python)

2.讀寫檔案   要寫入一個檔案,就必須要在開啟它的時候用『w』作為第二個引數(譯者注:w 就是 wirte 的意思了): >>> fout = open('output.txt', 'w') 如果檔案已經存在了,這樣用寫入的模式來開啟,會把舊的檔案都清

LOJ2329「清華集訓 2017」我的生命已如風殘燭

【題目連結】 點選開啟連結 【思路要點】 一個直觀的思路是模擬該過程,當路上遇到環的時候通過類似取模的手段加速。 注意到每繞一個環

Python不用numpy用純python求極差、平均數、位數、眾數與方差python的列印到控制檯

原文連結:https://blog.csdn.net/yongh701/article/details/50150619 python作為資料分析的利器,求極差、平均數、中位數、眾數與方差是很常用的,然而,在python進行統計往往要使用外部的python庫numpy,這個庫不難裝,然而,如果單

Androiddumpsys為什麼要傳送檔案描述符

 突然間想起一個問題:dumpsys為什麼要傳送檔案描述符 而不採用獲取返回字串,然後再進行列印呢?   考慮了下,發現傳送檔案描述符這個大招確實很妙。 1. dump列印的資訊有時候很大,而binder不適合傳送大量的資料,binder驅動中分配的空間也是有限的

Ubuntu將root許可權的檔案改為使用者許可權

大家在使用ubuntu的時候有沒有遇到下面的情況比如我用VSCode寫html儲存的時候會提示我許可權的問題,讓我用更高的許可權來儲存這個檔案,遇到這個問題的主要原因其實就是因為當前資料夾的許可權為root許可權。而VSCode執行使用的是使用者許可權。 要解決這個問題我們可以對vscode

在 Linux cp複製檔案出現略過的提示

想要進行的操作時把當前目錄下的data檔案複製到/Desktop/data/abbs資料夾中,但是沒有成功,只是提示 cp: 略過目錄 ./data [email protected]:~/Desktop$ cp ./data /Desktop/data/abbs

LeetCode4.Median of Two Sorted Arrays 兩個排序陣列的位數

示例 1: nums1 = [1, 3] nums2 = [2] 中位數是 2.0 示例 2: nums1 = [1, 2] nums2 = [3, 4] 中位數是 (2 + 3)/2 = 2.5 解題思路: 糟糕- -沒理解題意,首先需要知道“中位數”