標籤:lines ble 備份 from dir 匯入 ref 控制 詳細
步驟:(面試)
1,在新主機DBCA建庫,執行個體名和原主機資料庫名一致
2,在新主機建立使用者
3,dbms_metadata.get_ddl匯出資料表空間產生語句
4,在新主機建立資料表空間
5,exp匯出原庫全部資料
6,imp匯入複製資料庫
Oracle備份與恢複系列 五 續 EXP/IMP遷移、複製資料庫
詳細步驟如下:
遷移資料庫可以採用三種方式。首先可以採用作業系統的檔案拷貝進行物理資料庫的還原和恢複,並重新建立資料庫控制檔案。其次可以用Oracle Export和Import工具將原資料庫邏輯還原到一個新的資料庫。最後可以用Oracle復原管理員RMAN進行資料檔案和可控制檔案的一個物理還原。
遷移資料庫不像複製word文檔那樣簡單。需要注意Oracle中三種類型的檔案(資料檔案、重做記錄檔和控制檔案)必須協調一致。
本次實驗採用EXP/IMP的邏輯備份方式把Oracel 11g 11.2.0.3 RAC複製到Oracle 11g 11.2.0.3單一實例資料庫上。實驗步驟如下
1,在新主機DBCA建庫,執行個體名和原主機資料庫名一致
2,在新主機建立使用者
3,dbms_metadata.get_ddl匯出資料表空間產生語句
4,在新主機建立資料表空間
5,exp匯出原庫全部資料
6,imp匯入複製資料庫
注意原庫的字元集
[email protected] >select userenv(‘language‘) from dual;
USERENV(‘LANGUAGE‘)
--------------------------------------------------------------------------------
AMERICAN_AMERICA.WE8MSWIN1252
1,在新主機DBCA建庫
步驟省略,注意執行個體名與原庫資料庫名一致,這裡採用devdb
2,在新主機建立使用者
查看原主機使用者
[email protected] >select username from dba_users order by username;
在複製主機上建立原主機使用者
SQL> create user TPCC identified by tpcc;
SQL> create user SNOW identified by snow;
3,dbms_metadata.get_ddl匯出資料表空間產生語句
查看原主機資料表空間
[email protected] >select name from v$tablespace;
產生原主機資料表空間建立語句
[email protected] >set linesize 200
[email protected] >set long 999999
[email protected] >SELECT DBMS_METADATA.GET_DDL(‘TABLESPACE‘, GOLDENGATE) FROM dba_tablespaces;
CREATE TABLESPACE "GOLDENGATE" DATAFILE
‘+DATA/devdb/datafile/goldengate.dbf‘ SIZE 104857600
AUTOEXTEND ON NEXT 8192 MAXSIZE 32767M
LOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT
NOCOMPRESS SEGMENT SPACE MANAGEMENT AUTO
根據匯出的建立資料表空間語句修改成我們需要的建立語句
CREATE TABLESPACE "GOLDENGATE" DATAFILE
‘/u01/app/oracle/oradata/devdb/goldengate.dbf‘ SIZE 104857600 AUTOEXTEND ON;
[email protected] >SELECT DBMS_METADATA.GET_DDL(‘TABLESPACE‘,‘EXAMPLE‘) from dba_tablespaces;
CREATE TABLESPACE "EXAMPLE" DATAFILE
SIZE 104857600
AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M
NOLOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT
NOCOMPRESS SEGMENT SPACE MANAGEMENT AUTO
ALTER DATABASE DATAFILE
‘+DATA/devdb/datafile/example.264.853490879‘ RESIZE 32
8335360
根據匯出的建立資料表空間語句修改成我們需要的建立語句
CREATE TABLESPACE "EXAMPLE" DATAFILE
‘/u01/app/oracle/oradata/devdb/example.dbf‘ SIZE 104857600 AUTOEXTEND ON;
[email protected] >SELECT DBMS_METADATA.GET_DDL(‘TABLESPACE‘,‘TOOLS‘) from dual;
CREATE TABLESPACE "TOOLS" DATAFILE
SIZE 20971520
AUTOEXTEND ON NEXT 20971520 MAXSIZE 32767M
LOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT
NOCOMPRESS SEGMENT SPACE MANAGEMENT AUTO
根據匯出的建立資料表空間語句修改成我們需要的建立語句
CREATE TABLESPACE TOOLS DATAFILE ‘/u01/app/oracle/oradata/devdb/tools01.dbf.dbf‘ SIZE 20971520 AUTOEXTEND ON;
[email protected] >SELECT DBMS_METADATA.GET_DDL(‘TABLESPACE‘,‘INDX‘) from dual;
CREATE TABLESPACE "INDX" DATAFILE
SIZE 20971520
AUTOEXTEND ON NEXT 20971520 MAXSIZE 32767M
LOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT
NOCOMPRESS SEGMENT SPACE MANAGEMENT AUTO
根據匯出的建立資料表空間語句修改成我們需要的建立語句
CREATE TABLESPACE INDX DATAFILE ‘/u01/app/oracle/oradata/devdb/indx01.dbf.dbf‘ SIZE 20971520 AUTOEXTEND ON;
4,在新主機建立資料表空間
SQL> CREATE TABLESPACE "GOLDENGATE” DATAFILE ‘/u01/app/oracle/oradata/devdb/goldengate.dbf‘ SIZE 104857600 AUTOEXTEND ON;
SQL> CREATE TABLESPACE "EXAMPLE” DATAFILE ‘/u01/app/oracle/oradata/devdb/example.dbf‘ SIZE 104857600 AUTOEXTEND ON;
SQL> CREATE TABLESPACE TOOLS DATAFILE ‘/u01/app/oracle/oradata/devdb/tools01.dbf.dbf‘ SIZE 20971520 AUTOEXTEND ON;
SQL> CREATE TABLESPACE INDX DATAFILE ‘/u01/app/oracle/oradata/devdb/indx01.dbf.dbf‘ SIZE 20971520 AUTOEXTEND ON;
imp \‘sys/oracle as sysdba\‘ file=/home/oracle/full.dmp full=y
5,exp匯出原庫全部資料
[[email protected]~]$ exp \‘sys/oracle as sysdba\‘ file=/home/oracle/full.dmp full=y direct=y
將匯出檔案scp到複製主機
[[email protected] ~]$ scp full.dmp [email protected]:/home/oracle
6,imp匯入原庫全部資料
[[email protected] ~]$ imp \‘sys/oracle as sysdba\‘ file=/home/oracle/full.dmp full=y
Oracle備份與恢複