1. 程式人生 > >Oracle備份與恢復

Oracle備份與恢復

ron 還原 類型 修改 文件拷貝 per esp 主機數 segment

步驟:(面試)

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備份與恢復