1.首先关闭数据库 shutdown immediate; 2.打开mount状态 startup mount; 3.更改数据库为归档模式 alter database archivelog; 4.打开数据库 alter database open; 5.再次检查 archive log list; |
由于数据会有中文,提前再环境变量修改好 su - root vi /etc/profile export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK source /etc/profile su - oracle vi .bash_profile export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK export LANG=zh_CN.UTF-8 source .bash_profile select * from students; select * from teachers; select * from classes; |
源库和目标库都创建此目录
mkdir -p /u01/backup 为目录赋予用户权限 chown -R oracle:oinstall /u01/backup chmod 775 /u01/backup |
使用rman进行全库备份(数据文件和控制文件)
进去sqlplus sqlplus / as sysdba alter system switch logfile; 使用RMAN: rman target / 备份数据文件 RMAN> backup database format '/u01/backup/data_%U.dbf'; |
备份控制文件 RMAN> backup current controlfile format '/u01/backup/control_%f.dbf'; 在/u01/backup目录下查看 |
在源库中查看参数文件路径
SQL> show parameter spfile |
在目标库中查看是否有源库参数文件的路径,没有则需创建
cd /opt/oracle/product/19c/dbhome_1/dbs/ Ll |
目标库如果有参数文件,删掉目标库的参数文件
首先关闭数据库 shu immediate 然后在dbs目录下删除参数文件 cd /opt/oracle/product/19c/dbhome_1/dbs/ rm -rf init.ora spfileoracle.ora |
源库复制参数文件到目标库 cd $ORACLE_HOME/dbs scp init.ora root@192.168.238.32:/opt/oracle/product/19c/dbhome_1/dbs chown -R oracle:oinstall init.ora spfileitpuxdb.ora cd $ORACLE_HOME/dbs scp spfileitpuxdb.ora root@192.168.238.32:/opt/oracle/product/19c/dbhome_1/dbs chown -R oracle:oinstall init.ora spfileitpuxdb.ora chmod 775 init.ora spfileitpuxdb.ora Ll |
SQL> select name from v$datafile; |
在目标库查看参数文件init.ora
cat init.ora |
如果存在路径则不用创建
mkdir -p /u01/app/oracle/admin/oracle/adump mkdir -p /u01/app/oracle/flash_recovery_area |
cd /u01/app/oradata/oracle rm -rf * |
如果目标库跟源库一致则不用
查看源库环境变量
cat ~/.bash_profile |
修改目标库环境变量跟源库一致
vim .bash_profile source .bash_profile cat .bash_profile |
select name from v$archived_log order by 1; |
cd /opt/oracle/ITPUXDB/archivelog Ll |
将这三条归档文件拷贝过去
scp * oracle@192.168.238.32:/opt/oracle/ITPUXDB/archivelog |
cd /u01/backup scp * oracle@192.168.238.32:/u01/backup |
在目标库中的操作,开启数据库到nomount状态
sqlplus / as sysdba SQL> startup nomount |
注:启动到nomount状态,先确认参数文件里目录是否都存在,查看参数文件可以使用 |
打开RMAN开始恢复
rman target / RMAN> restore controlfile from '/u01/backup/control_0.dbf'; |
RMAN> sql 'alter database mount'; sql statement: alter database mount released channel: ORA_DISK_1 RMAN> restore database; |
RMAN> crosscheck archivelog all; |
RMAN> catalog archivelog '/u01/app/oracle/fast_recovery_area/ORACLE/archivelog/2024_03_31/o1_mf_1_9_m0l6tbyl_.arc'; |
RMAN> recover database; |
完成修复
RMAN> sql 'alter database open RESETLOGS'; |
SQL> select group#,status from v$log; SQL> select status from v$instance; |
conn zgc/123456 select * from students; select * from teachers; select * from classes; |
到此数据迁移完成。