最近一個項目使用到Oracle,由於資料庫比較大,每次備份恢復比較長,這幾天參考了較多的資料,終於成功進行了資料庫複製,欣喜之餘通過圖解方式把這個過程共用出來。
Oracle 10g複製資料庫步驟:
1、 準備目標資料庫存放路徑、配置資訊等
2、 配置目標資料庫控制檔案指令碼
3、 準備目標資料庫的資料檔案(通過冷備份方式進行)
4、 運行控制檔案指令碼
5、 開啟複製的資料庫
1、 準備目標資料庫存放路徑、配置資訊等
a) 建立目標資料庫存放路徑:
分別建立資料庫檔案 (D:\oracle\product\10.1.0\oradata\CLNE)和運行資訊(D:\oracle\product\10.1.0\admin\CLNE)檔案夾,其中運行資訊檔夾包括bdump、cdump、create、pfile、udump五個檔案夾
b) 初始化參數檔案:
可以從其他資料庫拷貝,進行修改。在這裡拷貝來源資料庫PRACTICE的初始化設定檔到D:\oracle\product\10.1.0\Db_1\databas\目錄中,並把該檔案命名為initCLNE.ora,開啟該檔案把”PRACTICE”替換成”CLNE”
修改後如:
c) 資料庫密碼檔案
通過命令列進行建立,放置於D:\oracle\product\10.1.0\Db_1\database\ ,檔案名稱為PWDCLNE.ora
命令為:orapwd file=D:\oracle\product\10.1.0\Db_1\database\PWDCLNE.ora password=CLNE entries=4
d) 建立Oracle執行個體服務
通過命令列進行建立,服務名稱為OracleServiceCLNE
命令為:oradim –new –sid CLNE –intpwd CLNE;
2、 配置目標資料庫控制檔案指令碼
在SQL PLUS以dba的身份登入PRACTICE,通過如下命令產生PRACTICE的控制檔案:
ALTER DATABASE BACKUP CONTROLFILE TO TRACE RESETLOGS;
可以在D:\oracle\product\10.1.0\admin\PRACTICE\udump檔案夾中找到建立控制檔案時刻的檔案,把該檔案複製到D:\oracle\product\10.1.0\admin\CLNE\create中,並且更名為create_control.sql;開啟該檔案進行
刪除指令碼中的注釋行
將CREATE CONTROLFILE REUSE DATABASE "CLNE"中的”REUSE”修改為”SET”
將CREATE CONTROLFILE 中的”PRACTICE”修改為”CLNE”
將每個資料檔案和記錄檔所在的路徑由原來的/oradata/PRACTICE目錄修改為/oradata/CLNE
修改後最好的結果:
3、 準備目標資料庫的資料檔案(通過冷備份方式進行)
在服務中把PRACTICE服務停止或者用Shutdown immediate等方法把來源資料庫關閉,然後把來源資料庫檔案(D:\oracle\product\10.1.0\oradata\PRACTICE)拷貝到目標資料庫檔案夾(D:\oracle\product\10.1.0\oradata\CLNE)中
4、 運行控制檔案指令碼
a) 配置TNS服務:開啟D:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN\ tnsnames.ora,添加目標資料庫服務
b) 配置Lisenter服務:開啟D:\oracle\product\10.1.0\Db_1\NETWORK\ADMIN\ listener.ora,添加目標資料庫服務
(缺圖待補)
c) 執行控制檔案:在命令列中以NOLOG方式登入
命令為:sqlplus /nolog
Connect sys/CLNE as sysdba
D:\oracle\product\10.1.0\admin\CLNE\create\create_control.sql
(缺圖待補)
5、 開啟複製的資料庫
通過重設日誌的方式開啟資料庫
命令為:alter database open resetlogs;
(缺圖待補)
至此,複製關閉資料庫的整個過程結束!
轉載自:http://server.chinabyte.com/175/2641675.shtml