| 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;
|
到此数据迁移完成。




















































