複製資料庫

tanxiaoke88發表於2009-09-21

OS:windows 2003

當前庫wolf ,現複製庫bb.

1、複製oradata下的wolf資料夾中的資料檔案到新資料夾bb下
2、複製admin下的wolf資料夾中的dump檔案到新資料夾bb下
3、在wolf庫中建立pfile.

     create pfile from spfile.

     在c:\oracle \product\10.2.0\db_1\databse\  下生成:initwolf.ora

    修改initwolf.ora檔名為initbb.ora
    將initbb中的所有wolf的欄位都改為bb.

 4. 備份控制檔案為trace檔案:
   alter database backup controlfile to trace as 'bb.sql'

    在c:\oracle \product\10.2.0\db_1\databse\  下生成:bb.sql

   修改controlfile生成的trace檔案aactl.sql,把裡面 create controlfile 那行中      reuse "wolf"  改成  set "bb" ;路徑全改為新資料夾bb的路徑
   修改後的檔案如下:

STARTUP NOMOUNT pfile=C:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\INITbb.ora
CREATE CONTROLFILE set DATABASE "bb" RESETLOGS  NOARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
  GROUP 1 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\bb\REDO01.LOG'  SIZE 50M,
  GROUP 2 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\bb\REDO02.LOG'  SIZE 50M,
  GROUP 3 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\bb\REDO03.LOG'  SIZE 50M
-- STANDBY LOGFILE
DATAFILE
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\bb\SYSTEM01.DBF',
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\bb\UNDOTBS01.DBF',
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\bb\SYSAUX01.DBF',
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\bb\USERS01.DBF',
  'C:\ORACLE\PRODUCT\10.2.0\ORADATA\bb\EXAMPLE01.DBF'
CHARACTER SET ZHS16GBK;
ALTER DATABASE OPEN RESETLOGS;
ALTER TABLESPACE TEMP ADD TEMPFILE 'C:\ORACLE\PRODUCT\10.2.0\ORADATA\bb\TEMP01.DBF'
 SIZE 22020096  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;
ALTER DATABASE RENAME GLOBAL_NAME TO bb;

 

5  .使用oradim建立新程式服務bb:  oradim -new -sid  bb

 同時複製密碼檔案PWDwolf.ora,修改成新的檔名PWDbb.ora

  c:\oracle \product\10.2.0\db_1\databse\ PWDbb.ora

6. 刪除bb下的控制檔案.

7.重新建立控制檔案.

  c:\set  ORACLE_SID=bb
   sqlplus / nolog

    conn /as sysdba

8. 最後完成階段出現了這樣的問題:

alter database open;
alter database open
*
ERROR 位於第 1 行:
ORA-01589: 要開啟資料庫則必須使用 RESETLOGS 或 NORESETLOGS 選項


SQL> alter database open noresetlogs;
alter database open noresetlogs
*
ERROR 位於第 1 行:
ORA-01610: 使用 BACKUP CONTROLFILE 選項的恢復必須已完成

SQL> ALTER DATABASE OPEN RESETLOGS;
ALTER DATABASE OPEN RESETLOGS
*
ERROR 位於第 1 行:
ORA-01195: 檔案1的聯機備份需要更多的恢復來保持一致性
ORA-01110: 資料檔案 1: 'D:\ORACLE\ORADATA\FLY\SYSTEM01.DBF'

SQL> RECOVER DATABASE;
ORA-00283: 恢復會話因錯誤而取消
ORA-01610: 使用 BACKUP CONTROLFILE 選項的恢復必須已完成。

SQL> recover database using backup controlfile;
        ???????????????
指定日誌: {=suggested | filename | AUTO | CANCEL}

輸入:  c:\oracle\product\10.2.0\oradata\redo01.log

ORA-00310: 存檔日誌包含序列 1;要求序列 2

ORA-00334: 歸檔日誌: 'D:\ORA90\ORADATA\ICE\REDO01.LOG'

SQL> recover database using backup controlfile;
        ???????????????
指定日誌: {=suggested | filename | AUTO | CANCEL}

輸入:   c:\oracle\product\10.2.0\oradata\redo02.log
已應用的日誌。
完成介質恢復。
SQL> alter database open resetlogs;

資料庫已更改。


SQL> select tablespace_name from user_tablespaces;

TABLESPACE_NAME
------------------------------
SYSTEM
UNDOTBS1
SYSAUX
TEMP
USERS
EXAMPLE

完成^^^^^^^





 

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

相關文章