某Oracle OA数据库原机迁移方案

某Oracle OA数据库原机迁移方案

  • 背景
    • 因前期配置数据文件目录挂载在裸盘,随着数据量不断增长,剩余空间无法满足需求。

(1) 查看pfile文件

  • 修改pfile文件
su - oracle

sqlplus / as sysdba


create pfile='/home/oracle/new_oadb_20240603.pfile' from spfile;

*._allow_level_without_connect_by=TRUE
*.audit_file_dest='/u01/app/oracle/admin/oadb/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/oradata/oadb/control01.ctl','/oradata/oadb/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='oadb'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4322230272
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=oadbXDB)'
*.log_archive_dest_1='location=/u01/archivelog'
*.log_archive_format='%t_%s_%r.dbf'
*.memory_target=3300917248
*.nls_territory='CHINA'
*.open_cursors=300
*.processes=2000
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'

  • 备份一份pfile文件,以便回退使用
vi /home/oracle/new_oadb_20240603.pfile

## 修改*._allow_level_without_connect_by=TRUE
*.audit_file_dest='/u01/app/oracle/admin/oadb/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/app/oracle/oradata/oadb/control01.ctl','/u01/app/oracle/fast_recovery_area/oadb/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='oadb'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4322230272
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=oadbXDB)'
*.log_archive_dest_1='location=/u01/archivelog'
*.log_archive_format='%t_%s_%r.dbf'
*.memory_target=3300917248
*.nls_territory='CHINA'
*.open_cursors=300
*.processes=2000
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'

(2) 备份数据库

lsnrctl stop 

sqlplus / as sysdba

shutdown immediate;

start MOUNT;

  • 数据全备
vi  /home/oracle/a.sh

##----------------------------------------------------------------------------------------
echo `date +"%Y%m%d"` > /u01/backup/shell/rman_backup_date.info
RMANDATE=`cat /u01/backup/shell/rman_backup_date.info`

## begin rman 
rman log=/backup/oadb/full_OADB_${RMANDATE}.log  <<EOF
connect target /;
crosscheck archivelog all;
crosscheck backup;
run
{
allocate channel c1 type disk;
backup AS COMPRESSED BACKUPSET database tag 'fullbackup' format '/backup/oadb/full_data_${RMANDATE}_%d_%I.%s' ;
release channel c1;

allocate channel c2 type disk;
backup current controlfile format '/backup/ /full_controlfile_${RMANDATE}_%d_%I.%s' ;
release channel c2;

sql 'alter system archive log current'; 

allocate channel c3 type disk;
backup AS COMPRESSED BACKUPSET  archivelog all format  '/backup/oadb/full_arch_${RMANDATE}_%d_%I_%h_%e.%s';
release channel c3;
}
EOF

## change rman backup file mode
chmod 744 /backup/oadb/*
##----------------------------------------------------------------------------------------
chmod u+x /home/oracle/a.sh

/home/oracle/a.sh

##----------------------------------------------------------------------------------------

(3) 使用new pfile启动到mount状态

sqlplus / as sysdba


start nomount pfile='/home/oracle/new_oadb_20240603.pfile';

(4) 恢复控制文件

  • ## 环境准备
## mkdir -p /oradata/oadb/


rman target /

restore controlfile from '/u01/oadb/oa_rman/full_data_XXXXXXXX_OADB_XXXXXXXX.12396';

startup nomount;
  • 冷备迁移方案
cp -r /u01/app/oracle/oradata/oadb/* /oradata/oadb/

(5) 启动数据库

sqlplus / as sysdba

create spfile from pfile='/home/oracle/new_oadb_20240603.pfile';

shutdown immediate;


startup mount;

alter database open;

(6) 回退方案

vi /home/oracle/old_oadb_20240001.pfile

*._allow_level_without_connect_by=TRUE
*.audit_file_dest='/u01/app/oracle/admin/oadb/adump'
*.audit_trail='db'
*.compatible='11.2.0.0.0'
*.control_files='/u01/app/oracle/oradata/oadb/control01.ctl','/u01/app/oracle/fast_recovery_area/oadb/control02.ctl'
*.db_block_size=8192
*.db_domain=''
*.db_name='oadb'
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
*.db_recovery_file_dest_size=4322230272
*.diagnostic_dest='/u01/app/oracle'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=oadbXDB)'
*.log_archive_dest_1='location=/u01/archivelog'
*.log_archive_format='%t_%s_%r.dbf'
*.memory_target=3300917248
*.nls_territory='CHINA'
*.open_cursors=300
*.processes=2000
*.remote_login_passwordfile='EXCLUSIVE'
*.undo_tablespace='UNDOTBS1'
  • 启动原来的库
sqlplus / as sysdba

startup nomount pfile='/home/oracle/old_oadb_20240001.pfile';

create spfile from pfile='/home/oracle/old_oadb_20240001.pfile';


-- 恢复控制文件
-- restore controlfile from '/u01/oadb/oa_rman/full_data_XXXXXXXX_OADB_XXXXXXXX.12396';


alter database mount;

alter database open;

lsnrctl stop

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

の正在缓存99%

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值