ORACLE DB建立步驟-運用冷備份和RMAN

ljm0211發表於2012-06-20

u  RMAN建立資料庫

 

1.環境的準備

²  在新建立資料庫的機器上申請在DBA組的ORACLE OWNER 使用者名稱必須與原資料庫的ORACLE OWNER 相同。

²  安裝ORACLE 軟體,安裝的路徑可以和源路徑不同。

²  確保備份組同事已經使用RMAN將資料檔案恢復到指定的路徑。

2.資料庫啟動

²  由於RMAN恢復出來的資料檔案並不處於同一時刻,因此需要恢復日誌。

SQL> sqlplus internal

SQL> recover database using backup controlfile ;

ORA-00279: change 3078306444075 generated at 03/29/2004 22:00:19 needed for thread 1

ORA-00289: suggestion : /data3/lurept/arch/lass/lass_0000002378.arc

ORA-00280: change 3078306444075 for thread 1 is in sequence #2378

Specify log: {=suggested | filename | AUTO | CANCEL}

從報錯資訊中可以得到需要恢復的log sequence#,把這個數字告訴備份組同事請他們恢復log

²  Apply 歸檔日誌

SQL> recover database using backup controlfile ;

²  Open Database

SQL> alter database open resetlogs ;

 3.資料庫複製

RMAN恢復資料庫後,需要將資料庫複製到我們的測試環境(或其他主機)。複製方法與下面運用冷備建立資料庫的方法相同。

 

 

u  運用冷備份建立資料庫

 

環境的準備

²  確保備份組同事已經將冷備份檔案恢復到某一臺UNIX機器A上路徑為PATH1並保證給予DBA使用者讀許可權。

²  在即將建立新資料庫的UNIX機器B上確保已建好ORACLE OWNER,裝好ORACLE軟體並配置好ORACLE OWNER的環境變數.profile 檔案。

2.Copy 冷備份檔案到即將建立的新庫資料檔案路徑 

在新建資料庫機器B上用ORACLE OWNER執行:

cd $HOME/oradata

mkdir $ORACLE_SID

cd $ORACLE_SID

scp UserA@UNIXA:PATH1/* .

3.建立$ORACLE_BASE下的目錄

在新建資料庫機器B上用ORACLE OWNER執行:

cd $ORACLE_BASE

mkdir admin

mkdir admin/$ORACLE_SID

cd admin/$ORACLE_SID

mkdir bdump cdump udump

4.配置新建資料庫的init  檔案

建立$ORACLE_HOME/dbs下面的init.ora檔案。可以參考標準的資料庫init檔案配置手冊來配置新建資料庫的init 檔案。可以copy其他資料庫的init.ora檔案,然後修改其中的引數。

5.(一)同名建庫方法:a -> a (在不同的伺服器上)

    注意mount之後需要修改資料檔案路徑。

    SQL>STARTUP MOUNT

SQL>ALTER DATABASE RENAME FILE *** TO ***

-> SQL>ALTER DATABASE RENAME FILE *** TO ***

 

SQL>ALTER DATABASE RENAME FILE *** TO ***

-> SQL>ALTER DATABASE RENAME FILE *** TO ***

 

SQL>ALTER DATABASE OPEN ;

SQL>SHUTDOWN IMMEDIATE

SQL>STARTUP

(二)改名建庫方法,區別在於要重建 控制檔案

透過重建control file修改資料庫名稱。

如果需要更改資料庫的名稱(DB_NAME),請按照如下步驟執行:

--原庫

alter database backup controlfile to trace as '/tmp/cre_con1010.sql' resetlogs;

 

 

e2cs4020:ltzz8i > sqlplus /nolog

SQL> conn / as sysdba

SQL> alter database backup controlfile to trace;

――注意,這裡會在udump目錄下生成的 trc 檔案含有控制檔案生成指令碼,可以在這裡抽取控制檔案建立指令碼如下:

CREATE CONTROLFILE REUSE DATABASE "LUZZ0" NORESETLOGS NOARCHIVELOG        

    MAXLOGFILES 32                                                        

    MAXLOGMEMBERS 2                                                       

    MAXDATAFILES 254                                                      

    MAXINSTANCES 8                                                        

    MAXLOGHISTORY 2726                                                    

LOGFILE                                                                   

    GROUP 1 '/paic/8i/lbs/exp/dmpfiles/oradata/ltzz8i/redo01.log'  SIZE 30M,

    GROUP 2 '/paic/8i/lbs/exp/dmpfiles/oradata/ltzz8i/redo02.log'  SIZE 30M,

    ..............................

DATAFILE                                                                  

    '/paic/8i/lbs/exp/dmpfiles/oradata/ltzz8i/system01.dbf',                

    '/paic/8i/lbs/exp/dmpfiles/oradata/ltzz8i/tools01.dbf',                 

    '/paic/8i/lbs/exp/dmpfiles/oradata/ltzz8i/rbs01.dbf',                   

    ..........................            

     '/paic/8i/lbs/exp/dmpfiles/oradata/ltzz8i/factuser_data01.dbf'          

CHARACTER SET ZHS16GBK                                                    

;             

--SQL> shutdown immediate;

 

--在新庫上操作

(1)修改引數檔案 DB_NAME 引數為新的資料庫名稱

 

(2)將控制檔案移走(最好更名儲存,以備更名操作失敗資料庫仍輕鬆可用)

 

(3)從生成的控制檔案闖將指令碼中的一行作如下修改:

      FROM: CREATE CONTROLFILE REUSE DATABASE "olddbname" NORESETLOGS ..

TO:   CREATE CONTROLFILE SET DATABASE "newdbname"  RESETLOGS ...  

e2cs4020:ltzz8i > sqlplus /nolog

SQL> conn / as sysdba

SQL> startup nomount;

SQL> @控制檔案建立指令碼.sql

SQL> alter database open resetlogs;

 

 

-------------------------------------------------------------------------------------------------------  

不同名建庫方法:A->B

 

At original DB:

0\ alter database backup controlfile to trace as '/tmp/cre_con1010.sql' resetlogs;

1\shutdown immediate

 

At new DB:

1\copy dbf files (scp palog@10.8.35.119:xx ./)

2\ STARTUP NOMOUNT

CREATE CONTROLFILE SET DATABASE "RETAD1" RESETLOGS  NOARCHIVELOG

ALTER DATABASE OPEN RESETLOGS;

 

 

6. 修改資料庫為非歸檔模式

    如果原資料庫為歸檔模式,那麼複製過來之後仍未歸檔模式。需要修改資料庫為非歸檔模式。

    SQL> shutdown immediate;

SQL> startup mount;

SQL> alter database noarchive log;

SQL> alter database open;

SQL> archive log list;

7. 根據需要進行資料庫的初始化

   可能需要的初始化工作有:使用者口令初始化、許可權初始化等。根據需要進行。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/11411056/viewspace-733456/,如需轉載,請註明出處,否則將追究法律責任。

相關文章