ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 复制数据库

复制数据库

原创 Linux操作系统 作者:tanxiaoke88 时间:2009-09-21 19:42:19 0 删除 编辑

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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-05-12

  • 博文量
    36
  • 访问量
    31115