重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設、域名注冊、服務器等服務
為企業(yè)提供網(wǎng)站建設、域名注冊、服務器等服務
這篇文章主要介紹ASM與File System數(shù)據(jù)文件轉(zhuǎn)移方法有哪些,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
在汾陽等地區(qū),都構建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務理念,為客戶提供成都網(wǎng)站設計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設公司 網(wǎng)站設計制作按需策劃,公司網(wǎng)站建設,企業(yè)網(wǎng)站建設,品牌網(wǎng)站設計,成都全網(wǎng)營銷,外貿(mào)網(wǎng)站制作,汾陽網(wǎng)站建設費用合理。
1、環(huán)境介紹
實驗使用Oracle Linux環(huán)境,對應底層Oracle 11g單實例+ASM存儲方案。
[root@SimpleLinux ~]# uname -r
2.6.18-128.el5
[root@SimpleLinux ~]# ps -ef | grep pmon
grid 3214 1 0 13:53 ? 00:00:00 asm_pmon_+ASM
oracle 3294 1 0 13:53 ? 00:00:00 ora_pmon_ora11g
root 3376 3107 0 13:53 pts/0 00:00:00 grep pmon
數(shù)據(jù)庫使用11gR2版本。
SQL> select * from v$version;
BANNER
-------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - Production
PL/SQL Release 11.2.0.3.0 - Production
CORE 11.2.0.3.0 Production
TNS for Linux: Version 11.2.0.3.0 - Production
NLSRTL Version 11.2.0.3.0 – Production
建立一個數(shù)據(jù)文件目錄。
[oracle@SimpleLinux oracle]$ cd $ORACLE_HOME
[oracle@SimpleLinux db_1]$ mkdir oradata
[oracle@SimpleLinux db_1]$ ls -l | grep oradata
drwxr-xr-x 2 oracle oinstall 4096 Dec 27 13:56 oradata
數(shù)據(jù)庫采用歸檔模式,注意:下述實驗要求在歸檔模式才能實現(xiàn)。
SQL> archive log list;
Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 25
Next log sequence to archive 27
Current log sequence 27
創(chuàng)建一個實驗文件表空間。
SQL> create tablespace test datafile '/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf' size 100m
2 extent management local uniform size 1m
3 segment space management auto;
Tablespace created
SQL> select file_name, tablespace_name from dba_data_files;
FILE_NAME TABLESPACE_NAME
-------------------------------------------------- ------------------------------
+DATA/ora11g/datafile/users.259.825944329 USERS
+DATA/ora11g/datafile/undotbs1.258.825944329 UNDOTBS1
+DATA/ora11g/datafile/sysaux.257.825944327 SYSAUX
+DATA/ora11g/datafile/system.256.825944325 SYSTEM
+DATA/ora11g/datafile/example.265.825944513 EXAMPLE
/u01/app/oracle/product/11.2.0/db_1/oradata/testtb TEST
l.dbf
6 rows selected
2、ASMCMD命令
ASMCMD是Oracle提供的管理ASM的命令行工具。進入11g之后,ASMCMD提供了cp命令,仿照Linux平臺的cp命令。ASMCMD是我們事先拷貝的一種選擇。
我們實驗是將文件系統(tǒng)的TEST文件,轉(zhuǎn)移到+DATA ASM DiskGroup中。
首先切換一下logfile。
SQL> alter system switch logfile;
System altered
--我們事先online移動,是進行offline之后才行;
SQL> alter database datafile '/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf' offline;
Database altered
SQL> select file_name, online_status from dba_data_files where file_id=6;
FILE_NAME ONLINE_STATUS
-------------------------------------------------- -------------
/u01/app/oracle/product/11.2.0/db_1/oradata/testtb RECOVER
l.dbf
進入ASMCMD命令行進行處理。
--使用grid用戶,注意這個過程是伴隨著登錄ASM實例過程的。
[oracle@SimpleLinux oradata]$ su - grid
Password:
[grid@SimpleLinux ~]$ asmcmd
ASMCMD> cp /u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf +DATA/ora11g/datafile/testtbl.dbf
copying /u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf -> +DATA/ora11g/datafile/testtbl.dbf
在ASM中,查看到文件的確保存在目錄了。
ASMCMD> ls -l
Type Redund Striped Time Sys Name
DATAFILE UNPROT COARSE DEC 27 13:00:00 Y EXAMPLE.265.825944513
DATAFILE UNPROT COARSE DEC 27 13:00:00 Y SYSAUX.257.825944327
DATAFILE UNPROT COARSE DEC 27 13:00:00 Y SYSTEM.256.825944325
DATAFILE UNPROT COARSE DEC 27 13:00:00 Y UNDOTBS1.258.825944329
DATAFILE UNPROT COARSE DEC 27 13:00:00 Y USERS.259.825944329
N testtbl.dbf => +DATA/ASM/DATAFILE/testtbl.dbf.268.835279797
另外在Oracle的控制文件體系中,修改文件名稱。
SQL> alter database rename file '/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf' to '+DATA/ora11g/datafile/testtbl.dbf';
Database altered
SQL> select file_name, file_id from dba_data_files;
FILE_NAME FILE_ID
-------------------------------------------------- ----------
(篇幅原因,有省略……)
+DATA/ora11g/datafile/example.265.825944513 5
+DATA/ora11g/datafile/testtbl.dbf 6
6 rows selected
由于進行online操作,對數(shù)據(jù)文件6進行恢復、上線。
SQL> alter database recover datafile 6;
Database altered
SQL> alter database datafile 6 online;
Database altered
SQL> select file_name, file_id, online_status from dba_data_files;
FILE_NAME FILE_ID ONLINE_STATUS
-------------------------------------------------- ---------- -------------
(篇幅原因,有省略……)
+DATA/ora11g/datafile/example.265.825944513 5 ONLINE
+DATA/ora11g/datafile/testtbl.dbf 6 ONLINE
6 rows selected
原來的數(shù)據(jù)文件,刪掉就好了。
[oracle@SimpleLinux oradata]$ ls -l
total 102512
-rw-r----- 1 oracle asmadmin 104865792 Dec 27 14:02 testtbl.dbf
[oracle@SimpleLinux oradata]$ rm testtbl.dbf
試驗成功。
3、DBMS_FILE_TRANSFER包方法
Oracle PL/SQL中包dbms_file_transfer也可以實現(xiàn)傳輸。其中的copy_file過程,可以實現(xiàn)將文件傳輸跨越ASM和文件系統(tǒng)。
使用dbms_file_transfer包前提需要指定文件目錄,在Oracle中是通過directory對象實現(xiàn)的。
SQL> create directory souredir as '+DATA/ora11g/datafile/';
Directory created
SQL> create directory destdir as '/u01/app/oracle/product/11.2.0/db_1/oradata';
Directory created
本方法我們將上節(jié)中的ASM文件傳輸?shù)紽ile System中。
SQL> select file_name, file_id, online_status from dba_data_files;
FILE_NAME FILE_ID ONLINE_STATUS
-------------------------------------------------- ---------- -------------
(篇幅原因,有省略……)
+DATA/ora11g/datafile/example.265.825944513 5 ONLINE
+DATA/ora11g/datafile/testtbl.dbf 6 RECOVER –已經(jīng)被offline狀態(tài)的數(shù)據(jù)文件
6 rows selected
SQL> begin
2 dbms_file_transfer.copy_file(source_directory_object => 'souredir',
3 source_file_name => 'testtbl.dbf',
4 destination_directory_object => 'destdir',
5 destination_file_name => 'testtbl.dbf');
6 end;
7 /
PL/SQL procedure successfully completed
文件系統(tǒng)中查看到文件testtbl.dbf。
[oracle@SimpleLinux oradata]$ ls -l
total 102512
-rw-r----- 1 oracle asmadmin 104865792 Dec 27 14:34 testtbl.dbf
SQL> alter database rename file '+DATA/ora11g/datafile/testtbl.dbf' to '/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf';
Database altered
SQL> alter database recover datafile 6;
Database altered
對數(shù)據(jù)文件online操作。
SQL> alter database datafile '/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf' online;
Database altered
SQL> select file_name, file_id, online_status from dba_data_files;
FILE_NAME FILE_ID ONLINE_STATUS
-------------------------------------------------- ---------- -------------
(篇幅原因,有省略……)
+DATA/ora11g/datafile/example.265.825944513 5 ONLINE
/u01/app/oracle/product/11.2.0/db_1/oradata/testtb 6 ONLINE
l.dbf
6 rows selected
試驗成功。
4、RMAN方法
在沒有cp命令之前,RMAN是一種比較常用的方法。我們先將文件offline。
SQL> alter database datafile '/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf' offline;
Database altered
啟動RMAN copy過程。
RMAN> connect target /
connected to target database: ORA11G (DBID=4222144573)
using target database control file instead of recovery catalog
RMAN> copy datafile '/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf' to '+RECO'
2> ;
Starting backup at 27-DEC-13
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=41 device type=DISK
channel ORA_DISK_1: starting datafile copy
input datafile file number=00006 name=/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf
output file name=+RECO/ora11g/datafile/test.282.835281667 tag=TAG20131227T144106 RECID=2 STAMP=835281676
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:15
Finished backup at 27-DEC-13
更改文件名,進行數(shù)據(jù)文件online操作。
SQL> alter database rename file '/u01/app/oracle/product/11.2.0/db_1/oradata/testtbl.dbf' to '+RECO/ora11g/datafile/test.282.835281667';
Database altered
SQL> alter database recover datafile 6;
Database altered
SQL> alter database datafile 6 online;
Database altered
試驗成功。
以上是“ASM與File System數(shù)據(jù)文件轉(zhuǎn)移方法有哪些”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!