部署一个测试库, 当时的要求是, 从一个源库copy一份到目标库, 更换一个ORACLE_SID. 在同一个机器同一个磁盘上操作.由于是测试库, 没有ARCHIVE LOG 所以停库冷备份所有文件到目标位置, 然后重建控制文件的方式是最高效的,建库的时间基本上可以忽略不计, 数据库的DBF大概有50G左右. 所以基本开销在这50G的DBF文件拷贝上面.
1、停止源库监听
lsnrctl stop
2、 生成并备份源库 SPFILE,PFILE。
create pfile from spfile;
3、备份控制文件
alter database backup controlfile to trace as '/opt/ora11g/tools/cf.sql' reuse;
alter database backup controlfile to trace;
提取/opt/ora11g/tools/cf.sql中的建立控制文件的语句. 这个"CREATE CONTROLFILE"开头的一段. 后面重新建立新库的时候要用到.
这个建立控制文件的语句包含了所有的日志文件, 数据文件DBF的信息. 将新的数据文件DBF替换过去, 并且RESETLOGS, NOARCHIVELOG就可以达到新建立控制文件的目的.
4、冷备份数据文件,控制文件,redolog,spfile, pfile, orapwd
数据文件: /share/data1 — /share/data3 /share/data2 — /share/data4
控制文件:/share/data1/controlfiles
redolog:/share/data1/system
spfile, pfile, orapwd:
5、备份新生成的pfile, 修改pfile成目标库的名字, 并修改里面所有的SID相关的信息.
haincrm.__db_cache_size=5301600256
haincrm.__java_pool_size=16777216
haincrm.__large_pool_size=16777216
haincrm.__oracle_base='/opt/ora11g/app'#ORACLE_BASE set from environment
haincrm.__pga_aggregate_target=2533359616
haincrm.__sga_target=7566524416
haincrm.__shared_io_pool_size=0
haincrm.__shared_pool_size=2181038080
haincrm.__streams_pool_size=0
*.audit_file_dest='/opt/ora11g/app/admin/haincrm/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/opt/ora11g/oradata/data3/haincrm/control01.ctl','/opt/ora11g/oradata/data3/haincrm/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_files=2000
*.db_name='haincrm'
*.db_recovery_file_dest='/opt/ora11g/app/fast_recovery_area'
*.db_recovery_file_dest_size=4322230272
将环境变了设置成haincrm. export ORACLE_SID=haincrm
利用新的PFILE启动数据库到NOMOUNT状态。
startup nomount
6、重建控制文件
CREATE CONTROLFILE SET DATABASE "HAINCRM" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 1600
MAXINSTANCES 8
MAXLOGHISTORY 2920
LOGFILE
GROUP 1 '/opt/ora11g/oradata/data3/hnancrm/redo01.log' SIZE 50M BLOCKSIZE 512,
GROUP 2 '/opt/ora11g/oradata/data3/hnancrm/redo02.log' SIZE 50M BLOCKSIZE 512,
GROUP 3 '/opt/ora11g/oradata/data3/hnancrm/redo03.log' SIZE 50M BLOCKSIZE 512
DATAFILE
'/opt/ora11g/oradata/data3/hnancrm/system01.dbf',
'/opt/ora11g/oradata/data3/hnancrm/sysaux01.dbf',
'/opt/ora11g/oradata/data3/hnancrm/undotbs01.dbf',
'/opt/ora11g/oradata/data3/hnancrm/users01.dbf',
'/opt/ora11g/oradata/data3/BASE_DATA_01.DBF',
'/opt/ora11g/oradata/data3/BASE_DATA_02.DBF',
'/opt/ora11g/oradata/data3/BASE_DATA_03.DBF'
CHARACTER SET ZHS16GBK
;
7、启动数据库到OPEN状态;—需要重置日志文件
alter database open resetlogs;
8、完工, 检测;
select tablespace_name ,status from dba_tablespaces;
所有的tablespace都是ONLINE状态。
9、检查业务数据:
select * from UCR_CRM41.tf_f_user where rownum<10;