rman数据迁移测试

1.以oracle用户身份,备份源数据库,脚本如下:
run{
allocate channel c1 type disk
format '/oracle/rman_bk/lev_0_%d_%T%s%p%u.bak';
BACKUP  database ;
sql 'alter system switch logfile';
}

备份完毕后,修改备份集文件的权限为777.
chmod 777 lev_0_PROD_200802236106j9e8fo.bak


2.创建新用户ora9208,并以该用户身份安装oracle软件。安装完毕后,参照oracle用户的初始化参数文件,为ora9208用户创建初始化参数文件。如下:
*.background_dump_dest='/ora9208/admin/prod/bdump'
*.compatible='9.2.0.4'
*.control_files='/ora9208/oradata/prod/control01.ctl','/ora9208/oradata/prod/control02.ctl'
*.core_dump_dest='/ora9208/admin/prod/cdump'
*.db_16k_cache_size=30M
*.db_block_size=8192
*.db_cache_size=30M#DEMO
*.db_file_multiblock_read_count=16
*.db_name='prod'
*.job_queue_processes=1
*.log_archive_dest='/ora9208/arch'
*.log_archive_max_processes=2
*.log_archive_start=TRUE
*.max_dump_file_size='100000'
*.nls_date_format='yyyy-mm-dd hh24:mi:ss'
*.optimizer_mode='CHOOSE'
*.oracle_trace_enable=TRUE
*.parallel_automatic_tuning=true
*.parallel_threads_per_cpu=4#SMALL
*.partition_view_enabled=true
*.pga_aggregate_target=30M#DEMO
*.query_rewrite_enabled='true'
*.query_rewrite_integrity='trusted'
*.remote_login_passwordfile='exclusive'
*.shared_pool_size=20M#DEMO
*.sql_trace=FALSE
*.star_transformation_enabled='true'
*.undo_management='auto'
*.undo_retention=180
*.undo_tablespace='UNDOTBS'
*.user_dump_dest='/ora9208/admin/prod/udump'
*.utl_file_dir='/oracle/admin/log'
#*.db_file_name_convert='/oracle/oradata/prod','/ora9208/oradata/prod'
*.log_file_name_convert='/oracle/oradata/prod','/ora9208/oradata/prod'

创建完毕后,将oracle用户下的密码文件copy到ora9208用户的相应目录下。

同时,需要将自动备份的控制文件copy到ora9208用户的$ORACLE_HOME/dbs下(rman恢复时,会自动到这个路径下寻找自动备份的控制文件)
[ora9208@ora-as4 prod]$ cp /oracle/product/9.2.0.4/dbs/c-59186099-20080223-03 $ORACLE_HOME/dbs

3.在ora9208用户下,将备份恢复到新的路径下,恢复脚本如下:
rman target /<startup force nomount;
set DBID=51059446;
run{
restore controlfile from autobackup;
sql 'alter database mount';
set newname for datafile  1  to    '/ora9208/oradata/prod/system01.dbf';
set newname for datafile  2  to    '/ora9208/oradata/prod/undotbs01.dbf';
set newname for datafile  3  to    '/ora9208/oradata/prod/users01.dbf';
set newname for datafile  4  to    '/ora9208/oradata/prod/idx01.dbf';
set newname for datafile  5  to    '/ora9208/oradata/prod/tools01.dbf';
set newname for datafile  6  to    '/ora9208/oradata/prod/stress_test_tables01.dbf';
set newname for datafile  7  to    '/ora9208/oradata/prod/stress_test_indexes01.dbf';
restore database;
switch datafile 1;
switch datafile 2;
switch datafile 3;
switch datafile 4;
switch datafile 5;
switch datafile 6;
switch datafile 7;
recover database ;
}
EOF

4.将源数据库的归档日志copy到目标数据库的归档路径下,做recover。
[ora9208@ora-as4 arch]$ sqlplus '/as sysdba'
 
SQL*Plus: Release 9.2.0.4.0 - Production on Sat Feb 23 12:39:34 2008
 
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
 
 
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production
 
SQL> recover database using backup controlfile;
ORA-00279: change 2929288 generated at 02/23/2008 12:07:20 needed for thread 1
ORA-00289: suggestion : /ora9208/arch/1_130.dbf
ORA-00280: change 2929288 for thread 1 is in sequence #130
 
 
Specify log: {=suggested | filename | AUTO | CANCEL}
auto
ORA-00279: change 2929319 generated at 02/23/2008 12:08:49 needed for thread 1
ORA-00289: suggestion : /ora9208/arch/1_131.dbf
ORA-00280: change 2929319 for thread 1 is in sequence #131
ORA-00278: log file '/ora9208/arch/1_130.dbf' no longer needed for this
recovery
 
 
ORA-00279: change 2929613 generated at 02/23/2008 12:23:23 needed for thread 1
ORA-00289: suggestion : /ora9208/arch/1_132.dbf
ORA-00280: change 2929613 for thread 1 is in sequence #132
ORA-00278: log file '/ora9208/arch/1_131.dbf' no longer needed for this
recovery
 
 
ORA-00279: change 2929615 generated at 02/23/2008 12:23:23 needed for thread 1
ORA-00289: suggestion : /ora9208/arch/1_133.dbf
ORA-00280: change 2929615 for thread 1 is in sequence #133
ORA-00278: log file '/ora9208/arch/1_132.dbf' no longer needed for this
recovery
 
 
ORA-00279: change 2929618 generated at 02/23/2008 12:23:24 needed for thread 1
ORA-00289: suggestion : /ora9208/arch/1_134.dbf
ORA-00280: change 2929618 for thread 1 is in sequence #134
ORA-00278: log file '/ora9208/arch/1_133.dbf' no longer needed for this
recovery
 
 
ORA-00279: change 2929620 generated at 02/23/2008 12:23:25 needed for thread 1
ORA-00289: suggestion : /ora9208/arch/1_135.dbf
ORA-00280: change 2929620 for thread 1 is in sequence #135
ORA-00278: log file '/ora9208/arch/1_134.dbf' no longer needed for this
recovery
 
 
ORA-00308: cannot open archived log '/ora9208/arch/1_135.dbf'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
 
 
SQL> exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production
[ora9208@ora-as4 arch]$

5.当所有的归档日志都被apply后,将源数据库shutdown,并copy所有剩下的归档日志及redo日志到目标数据库的归档路径下,
继续执行recover
[ora9208@ora-as4 arch]$ sqlplus '/as sysdba'
 
SQL*Plus: Release 9.2.0.4.0 - Production on Sat Feb 23 12:42:57 2008
 
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
 
 
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production
 
SQL> recover database using backup controlfile;
ORA-00279: change 2929620 generated at 02/23/2008 12:23:25 needed for thread 1
ORA-00289: suggestion : /ora9208/arch/1_135.dbf
ORA-00280: change 2929620 for thread 1 is in sequence #135
 
 
Specify log: {=suggested | filename | AUTO | CANCEL}
/oracle/oradata/prod/redo03.log
Log applied.
Media recovery complete.
SQL> exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production

6.由于备份的控制文件中,redo log的存放位置仍然指向源数据库的redo log,需要重建控制文件,将redo log的存放位置指向新的路径。将control file备份为trace文件,并修改。

STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "PROD" RESETLOGS  ARCHIVELOG
--  SET STANDBY TO MAXIMIZE PERFORMANCE
    MAXLOGFILES 200
    MAXLOGMEMBERS 5
    MAXDATAFILES 500
    MAXINSTANCES 1
    MAXLOGHISTORY 226
LOGFILE
  GROUP 1 '/ora9208/oradata/prod/redo01.log'  SIZE 20M,
  GROUP 2 '/ora9208/oradata/prod/redo02.log'  SIZE 20M,
  GROUP 3 '/ora9208/oradata/prod/redo03.log'  SIZE 20M
-- STANDBY LOGFILE
DATAFILE
  '/ora9208/oradata/prod/system01.dbf',
  '/ora9208/oradata/prod/undotbs01.dbf',
  '/ora9208/oradata/prod/users01.dbf',
  '/ora9208/oradata/prod/idx01.dbf',
  '/ora9208/oradata/prod/tools01.dbf'
CHARACTER SET ZHT16BIG5
;

7.重建控制文件并打开数据库。
[ora9208@ora-as4 arch]$ sqlplus '/as sysdba'
 
SQL*Plus: Release 9.2.0.4.0 - Production on Sat Feb 23 12:44:36 2008
 
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
 
 
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning option
JServer Release 9.2.0.4.0 - Production
 
SQL> shutdown immediate
ORA-01109: database not open
 
 
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "PROD" RESETLOGS  ARCHIVELOG
--  SET STANDBY TO MAXIMIZE PERFORMANCE
    MAXLOGFILES 200
    MAXLOGMEMBERS 5
    MAXDATAFILES 500
    MAXINSTANCES 1
    MAXLOGHISTORY 226
LOGFILE
  GROUP 1 '/ora9208/oradata/prod/redo01.log'  SIZE 20M,
  GROUP 2 '/ora9208/oradata/prod/redo02.log'  SIZE 20M,
  GROUP 3 '/ora9208/oradata/prod/redo03.log'  SIZE 20M
-- STANDBY LOGFILE
DATAFILE
  '/ora9208/oradata/prod/system01.dbf',
  '/ora9208/oradata/prod/undotbs01.dbf',
  '/ora9208/oradata/prod/users01.dbf',
  '/ora9208/oradata/prod/idx01.dbf',
  '/ora9208/oradata/prod/tools01.dbf'
CHARACTER SET ZHT16BIG5
;ORACLE instance started.
 
Total System Global Area  131143096 bytes
Fixed Size                   452024 bytes
Variable Size              62914560 bytes
Database Buffers           67108864 bytes
Redo Buffers                 667648 bytes
SQL>   2    3    4    5    6    7    8    9   10   11   12   13   14   15   16   17   18   19   20 
 
Control file created.
 
SQL> alter database open resetlogs;
 
Database altered.

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10972173/viewspace-263437/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10972173/viewspace-263437/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表中的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库中的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命周期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值